Provide a GTK 4 example of ListView with custom content

As I understand it from this list guide, there are 2 ways to create a ListView with your own custom content type in GTK 4. The first way is to inherit from the ListModel and implement your own version. So for example done here. The second way is to use a ready-made ListStore, either by filling it with your own GObject objects, or by filling several columns in it with different built-in GType types.
The List API looks like one of the most complex parts of GTK, and it would be cool to make it as easy as possible thanks to the powerful macro system in Nim. For example, create a simple way to create GObject objects with properties of the desired types, I mean without setting GType through strings like setProperty (renderer, "foreground-set", toBoolVal (true)) where toBoolVal is another helper function.
Maybe something that looks like:
type
   MyGObject = ref gobject # or traditionally ref object of GObject
       somebool: bool # or maybe gbool, create this by setProperty, or one call of new_with_properties func

In general, a macro for simply creating a GObject or GValue, or both.

For example, create a simple way to create GObject objects with properties of the desired types, I mean without setting GType through strings like setProperty

Yes sure, Python bindings do that. I guess that we do not even need macros for that. But we know only for sure what helper functions we need and how the helper functions should look and behave in detail, when we at the same time use that functions in our own GTK programs. So we have to create some real tools , maybe like Gimp or Inkscape. For me I have to learn more GTK4, continue the GTK4 book then, and continue my drawing app.

You mentioned Fidget many times, in the context that Araq likes Fidget more and that it is getting more development in the Nim community. I just tried it, and it seems to me that it is ready for 10%, for example, you can check work with text. I don't want to insult the author, just to achieve 20 years of GTK development developed by several people on a salary takes a lot of effort.

I have not tried fidget at all, and not the 20 other Nim GUI toolkits at all. For GTK it is clear that we can create tools like Inkscape with it. Gintro may have restrictions, but at least in theory we can hire someone from the Rust team and have GTK bindings for Nim as good as for Rust.
For all the other Nim GUI toolkits I really want to see an app compatible in function and look with Inkscape first, and not only toy apps. A toy app can look simple, clean and elegant. For most people that seems to be enough.
The fidget author treeform is smart and works really very hard, and authors of other tools are smart too and work also hard. And as coding in Nim is much faster and easier as coding in C or C++, maybe in a few years we may have really useful pure Nim GUI toolkits. But what is "a few years"? When we get a big baker like google or mozilla maybe only 2 to 3 years, without that maybe more 8 to 12 years?

hire someone from the Rust team and have GTK bindings for Nim as good as for Rust

To hire someone, there must be a need for some company to do this. I also doubt that among the creators of Rust bindings there are people who know Nim at a sufficient level. I don't think that's going to happen heh.
Also I have a strange idea temporarily use json instead of gobject by storing it in a StringList. Most likely, this will be slower, but much more convenient than the constant get/set property and casting types as text for Value like gtype " gstringarray"
https://github.com/gavr123456789/NimTests/blob/main/jsonAsList/Types.nim
https://github.com/gavr123456789/NimTests/blob/main/jsonAsList/nim.nim

Thanks for bringing up this topic.
I was just about to try to code one of the list demos, for example the list_clock, in Nim.
I choose this demo because it's simple enough to start with. Unfortunately I wasn't able to figure out how to subclass objects in Nim, so I really appreciate if you could provide us some tutorial/example on how to do slightly more advanced programs, more than single file, flat functions style. It would be a great companion to your excellent book.
Thank you very much.

@aeldemery wow, hi, nice to see you also interested in Nim + GTK.
Hope you will help me to provide more GTK 4 examples here https://github.com/StefanSalewski/gintro/pull/122

@aeldemery

subclass objects in Nim

Just added subclass example int this PR.
The subtype is described in the project's README

@gavr123456789 Thanks for the friendly reception :)
I wouldn't be too excited as I'm trying to find my way around in Nim. So don't expect something useful, yet ;)

@gavr123456789 how to implement certain interfaces like GDK.Paintable or Glib.ListModel. please note that those are interfaces not classes.

@aeldemery Nim has no concept of interfaces. But it has concepts, ... but they not ready yet( I created issue about support them when they come out. https://github.com/StefanSalewski/gintro/issues/130

how to implement certain interfaces like GDK.Paintable or Glib.ListModel. please note that those are interfaces not classes.

GTK supports the concept of interfaces, Nim not really, Nim's concepts may be a substitute. For gintro we use Nim's or types to handle the GTK interaces. (Well, interfaces can be also constructed with a struct containing function pointers, Nim's streams module does that)
I have to admit that I do not really understand your question: Interfaces are generally useful when we write a library, but not that much when we write an application program. Gintro is fine for writing applications, but currently not really if you are a GTK core dev and want to extend GTK, maybe working on GTK5 or GTK6 already. If that is the case I would recommend using Rust, as Rust may have the best GTK bindings currently, and Rust is not using proxy objects like gintro. So rust may be the best choice to replace Vala.
For your concrete question, please show us some apps in C or another language that uses interfaces in a way that you desire for Nim.

Unfortunately I wasn't able to figure out how to subclass objects in Nim,

Currently Nim is using proxy objects, so we do subclassing GTK entities in exactly the same way as we do it for ordinary Nim objects. It is described in
http://ssalewski.de/gintroreadme.html#_extending_or_sub_classing_widgets
Note that you do not need to create your own destructor with Nim versions >= 1.4.
Subclassing this way is mostly adding additional information to widgets, which is generally all we need. But of course it is very different from the way gobject does it. Initially we did it with the oldgtk3 Nim bindings in the gobject way indeed, the old NEd Nim editor is still an example for that. But it was ugly. Rust has better support for that, but it is difficult to provide the gobject way of object handling for high level languages.
Note that the whole OOP programming style with subclassing and inheritance is not that popular any more. Modern languages like GoLang generally use composition instead of inheritance, Rust and Nim go in the same direction, and when you read some of the GTK blog posts you may notice that GTK4 uses more composition and less inheritance now.
You asked for larger example programs: Well at https://github.com/StefanSalewski there is already NEd2, SDT, nim-chess4. All in very early stages, but it should show you the direction. And in the examples/gtk3 directory there is the drawingarea example, which shows how widgets (grid, drawing area, scrollbars) work together.

I was just about to try to code one of the list demos, for example the list_clock, in Nim.

Oh, there is an official C implementation. So if it really helps I can provide you a Nim version, I may try it this evening.

@StefanSalewski thanks for the detailed answer.
As a concrete example, as shown in this demo, an object conforms to the Gdk.Paintable interface, that is, implement snapshot (Gtk.Snapshot, width, height) and other size negotiating functions like get_interinsic_width and so on.
I want to build an object which implements the paintable API so it can be drown by Gtk.
How would you implement that in Nim?

How would you implement that in Nim?

OK, I will send you the Nim version of the original C code...

@StefanSalewski Thanks for your reply.
Actually previously, as I started learning Vala/Gtk, I was trying to translate the C code as much as possible. But as my knowledge about the subject expanded a little bit, I was able to implement the same functionality using vala's Object-Oriented techniques. For example, one of the complexer demos is the listview_color which I translated to vala several times, settling down in my last version here.
For the current simple example of Clock listview, I've done the Clock custom widget which have:

few properties like time, time_zone and location
and provide drawing api, in OOP Language, implement virtual methods in snapshot, get_intrinsic_width, get_intrinsic_height and get_intrinsic_aspect_ratio, get_flags and get_current_image.
starting and stopping drawing happens as a GLib.Timeout callback inside initialization and destructor.
In the MainWindow is adding the clock widgets to the listview and binding the label and paintable properties to a Label and Picture children.

Just for info, I've updated the clock list demo to make it a little more interesting, and separated display widget from data source.

Nice. And nice that you have not already retired -- it is not much fun when people ask for support and vanish some weeks later and get never seen again. (But well I saw your other Vala examples at github, so I had some confidence.)
We are working still on the initial listview_clocks example, see
https://discourse.gnome.org/t/listview-clocks-c-from-gtk4-demo-standalone-and-in-other-programming-languages/6629
The main problem for Nim is that the C example creates indeed a new GObject/Widget with new properties using low level gobject functions and macros. My current idea is to just split the app in a small low level C part and the Nim part. I tested that with a tiny program and it seems to be possible in principle, as explained in
https://nim-lang.org/docs/backends.html#nim-code-calling-the-backend-c-invocation-example
One problem is that we would have to use passL with the actual full glib and gobject library path.
In theory we could provide all the low levels parts in Nim directly, that includes the nested C macros like G_DECLARE_FINAL_TYPE() or low level calls like g_clear_handle_id (&ticking_clock_id, g_source_remove); which are not supported by gobject-introspection.
As you have some experience with GTK, maybe you have an idea what the statement
grep Builder gtk/demos/gtk-demo/listview_clocks.c
 * Typically, this will be done using GtkBuilder .ui files with the

tells us? How much can use of GtkBuilder simplify the low level parts?
I found this
https://stackoverflow.com/questions/54278014/how-to-subclass-gtk-iconview-in-vala-with-glade
as an example for subclassing with new properties. But it is still GTK3.

@StefanSalewski Thank you for your response.

I've read your response several times to try to understand your full-of-meanings words. But to tell the truth I wasn't sure what you mean exactly by your first part. As if you imply that you had asked me for assistance with something but I had let you down. I tried hard to remember any occurrences like that but I couldn't. But If that should happen in any way, I sincerely apologize for that. It wasn't by any means intentional. Sorry.
Yes I was away for some time, this could be explained partly because we, humans, have tides of interests in life, sometimes we got excited about something then in a turn of a day we loose that! The other reason is because my professional life is very demanding (I work as a Doctor in cardiac surgery field). My interest in programming is merely a hobby which I got a chance to fulfill only sporadically at weekends. If you could believe it, several weeks pass by without even touching my laptop, let alone do any code related stuff. That influences and explains of course my very limited knowledge about the inner-workings of programming or coding styles.
I've seen your question on Discourse just now, as I don't visit the forum very often. I get an email every two weeks about the most recent topics only.

Coming to the subject at hand:

How Vala achieve the seamless binding with GObject libraries, I must say I don't know exactly! I have compiled a simple vala program like this:

public class Test.TestClass {
}

int main (string[] args) {
    return 0;
}

The result on the C side was about 400 lines, stripping away some of the code, it's similar to the following:
#define TEST_TYPE_TESTCLASS (test_testclass_get_type ())
#define TEST_TESTCLASS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_TESTCLASS, TestTestClass))
#define TEST_TESTCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TEST_TYPE_TESTCLASS, TestTestClassClass))
#define TEST_IS_TESTCLASS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_TYPE_TESTCLASS))
#define TEST_IS_TESTCLASS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TEST_TYPE_TESTCLASS))
#define TEST_TESTCLASS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TEST_TYPE_TESTCLASS, TestTestClassClass))

typedef struct _TestTestClass TestTestClass;
typedef struct _TestTestClassClass TestTestClassClass;
typedef struct _TestTestClassPrivate TestTestClassPrivate;
typedef struct _TestParamSpecTestClass TestParamSpecTestClass;

struct _TestTestClass {
	GTypeInstance parent_instance;
	volatile int ref_count;
	TestTestClassPrivate * priv;
};

struct _TestTestClassClass {
	GTypeClass parent_class;
	void (*finalize) (TestTestClass *self);
};

struct _TestParamSpecTestClass {
	GParamSpec parent_instance;
};

static gpointer test_testclass_parent_class = NULL;

VALA_EXTERN gpointer test_testclass_ref (gpointer instance);
VALA_EXTERN void test_testclass_unref (gpointer instance);
VALA_EXTERN GParamSpec* test_param_spec_testclass (const gchar* name,
                                       const gchar* nick,
                                       const gchar* blurb,
                                       GType object_type,
                                       GParamFlags flags);
VALA_EXTERN void test_value_set_testclass (GValue* value, gpointer v_object);
VALA_EXTERN void test_value_take_testclass (GValue* value, gpointer v_object);
VALA_EXTERN gpointer test_value_get_testclass (const GValue* value);
VALA_EXTERN GType test_testclass_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TestTestClass, test_testclass_unref)
VALA_EXTERN TestTestClass* test_testclass_new (void);
VALA_EXTERN TestTestClass* test_testclass_construct (GType object_type);
static void test_testclass_finalize (TestTestClass * obj);
static GType test_testclass_get_type_once (void);
static gint _vala_main (gchar** args, gint args_length1);

If you add properties to the class, for instance, int counter { get; set; }
the following lines are generated in addition to the the previous ones:
VALA_EXTERN gint test_testclass_get_counter (TestTestClass* self);
VALA_EXTERN void test_testclass_set_counter (TestTestClass* self,  gint value);

and inside the private struct
struct _TestTestClassPrivate {
	gint _counter;
};

VALA_EXTERN is merely a linking attribute
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

If you some how implement some nim macros to generate those boilerplate code behind the scene It would achieve the goal of a better binding for the gnome platform.
As a side note, the problem with nim it forces you to some programming paradigm, which the language creator thinks it works best universally. Unfortunately this is untrue in all situations. There are thousands of software which were written in OOP manner and very successful, among those GUI application and toolkits.
The excerpt from the List Clock documentation about using Builder files, is discriping how to use GtkExpression inside ui files to communicate objects and data sources with displaying widgets. I've done that in code here. If you want to build ListViews in ui files you could check this python example. The Documention about using GtkExpression inside ui files could be found in Gtk Blog Post.
For the last part about using custom made widgets inside ui files, as I learned in Vala, you have to call GLib.Type.ensure() before using that widget in Gtk.Builder probably early in the program execution before getting to the window which uses that widget.

Again my apologies for not being at level of your expectations.
Thanks

As if you imply that you had asked me for assistance with something but I had let you down.

Sorry. No, the point is that in the past people asked for support of additional packages like libhandy, libadwaita, gstreamer, libnice, webkitgtk and some more. All packages I was not familiar with. I tried to provide that packages with at least one example. And then that people generally vanished very fast. Or in early days people said: I would like to try gintro/gtk but I need more documentation. So I extended the readme and started the GTK4 book. Same for Nim itself: Years ago people asked for beginner docs. So last year I started writing the kids book, which has 200 pages now. But my feeling is that only very few people have read it. So my conclusion is to react not on all user wishes immediately.

programming is merely a hobby

That is surprising for me, as you have made really great Vala examples. My personal feeling is that GTK is just too difficult for hobby programmers. I started with GTK in 2007 with the book of A. Krause for GTK2, using it from Ruby. And still I do know only a tiny part of GTK. I think we have currently only very few people who really know GTK, which is of course Mr. Bassi, and maybe Mr.Larsen and M.Droege and a few more. Compared to learning programming languages like C, Ruby or Nim learning GTK is a very large, never ending effort. Using GTK from C is difficult, and using it from other languages is difficult as well, as there are no examples or tutorials and as bindings may have not best quality.
I will continue with the listview_clocks example in the next days, it provides a lot stuff to learn for me :-)

I think gintro would be more useful if it's a generic gobject binding generator. It could be used to produce bindings for other libraries, like for example, the Apache Arrow library.

I think gintro would be more useful if it's a generic gobject binding generator.

I would say it is exactly that. For C libs that support gobject-introspection it is basically adding one line to the gen.nim generator script to support one more lib. Well basically, libnice and gstreamer was some more work, as both are very low level. libadwaita, libhandy, webkitgtk2 and vte was not much more than adding one line. Well and providing at least one example.
I never heard about Apache Arrow library before. And as I said above I will not add libs that nobody heard of that soon any more.

I was just about to try to code one of the list demos, for example the list_clock, in Nim.

See
https://github.com/StefanSalewski/gintro/issues/141
for a possible solution.


Exclude telemetry devices based on serverless status

Can be tested using:
esrally race --track-path=$HOME/src/rally-tracks/geonames --test-mode --target-hosts=... --pipeline=benchmark-only --client-options=serverless.json --on-error=abort --telemetry=ccr-stats

This will run the race and print:
[INFO] Excluding telemetry device [ccr-stats] as it is unavailable on serverless.

To test without operator status, you should either include https://github.com/elastic/rally/pull/1768 or set serverless.operator to false in the rally.ini [driver] section.
TODO:

[ ] Tests
[x] Figure out why the message is printed twice

To be clear, here is the current output:
[INFO] Race id is [de8d87c7-26d2-4caa-a8b6-5747281babb1]
[INFO] Treating parallel task in challenge [indexing-querying] as public.
[INFO] Excluding [put-settings], [check-cluster-health], [force-merge], [wait-until-merges-finish] as challenge [indexing-querying] is run on serverless.
[INFO] Racing on track [pmc], challenge [indexing-querying] and car ['external'] with version [8.10.0].

[INFO] Excluding telemetry device [ccr-stats] as it is unavailable on serverless.
Running delete-index                                                           [100% done]
Running create-index                                                           [100% done]
Running initial-index-append                                                   [100% done]
Running refresh-after-index                                                    [100% done]
Running refresh-after-force-merge                                              [100% done]
Running phrase,articles_monthly_agg_uncached,default,term,articles_mont...     [100% done]
[INFO] Excluding telemetry device [ccr-stats] as it is unavailable on serverless.

The empty line between "Racing" and "Excluding" is annoying, but I want to remove the second "Excluding" message between the  "Running" messages and the summary report.

OK, it should be correct now! A nice win for test-driven development. Please take another look.


Fix Doozer crash with 'tuple' object does not support item assignment

Traceback (most recent call last):
  File "./doozerlib/runtime.py", line 98, in wrapper
    return func(*args, **kwargs)
  File "./doozerlib/runtime.py", line 110, in wrapper
    return func(*args)
  File "./doozerlib/cli/__main__.py", line 180, in <lambda>
    lambda rpm, terminate_event: rpm.build_rpm(
  File "./doozerlib/rpmcfg.py", line 486, in build_rpm
    self.assert_golang_versions()
  File "./doozerlib/rpmcfg.py", line 544, in assert_golang_versions
    latest_builds = brew.get_latest_builds([(buildroot, component) for component in golang_components], "rpm", None, brew_session)
  File "./doozerlib/brew.py", line 184, in get_latest_builds
    for tag, component_name in tag_component_tuples:
  File "/home/dev/.local/lib/python3.8/site-packages/koji/__init__.py", line 3215, in __exit__
    self.call_all()
  File "/home/dev/.local/lib/python3.8/site-packages/koji/__init__.py", line 3187, in call_all
    _results = self._session._callMethod('multiCall', args, {})
  File "./doozerlib/brew.py", line 564, in _callMethod
    params[-1] = self.modify_koji_call_kwargs(method_name, possible_kwargs, aggregate_kw_opts)
TypeError: 'tuple' object does not support item assignment

This issue was introduced by
https://github.com/openshift/doozer/pull/311 to speed up scan-sources.
Simply converting the tuple to list should fix it.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@2d69f4a). Click here to learn what that means.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master     #329   +/-   ##
=========================================
  Coverage          ?   26.36%
=========================================
  Files             ?       33
  Lines             ?     7329
  Branches          ?     1456
=========================================
  Hits              ?     1932
  Misses            ?     5328
  Partials          ?       69

Impacted Files
Coverage Δ

doozerlib/brew.py
32.12% <0.00%> (ø)

doozerlib/constants.py
100.00% <0.00%> (ø)

doozerlib/source_modifications.py
68.29% <0.00%> (ø)

doozerlib/dotconfig.py
21.42% <0.00%> (ø)

doozerlib/cli/images_streams.py
0.00% <0.00%> (ø)

doozerlib/cli/release_gen_payload.py
27.59% <0.00%> (ø)

doozerlib/olm/bundle.py
0.00% <0.00%> (ø)

doozerlib/rhcos.py
75.00% <0.00%> (ø)

doozerlib/pushd.py
90.47% <0.00%> (ø)

... and 24 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2d69f4a...0d97159. Read the comment docs.


Encoded chars in URLs

suppport links like
transformed by logi
https://appsight.iscinternal.com/dsw/index.html#/APPSIGHT/Downloads/Overview.dashboard?FILTERS%3DTARGET%3A*%3BFILTER%3A[TimeStamp].[H2].[MonthYear].%26[NOW-1]~[ProductMajorVersion].[H1].[ProductMajorVersion].%26[2022.1]
how it should be
https://appsight.iscinternal.com/dsw/index.html#/APPSIGHT/Downloads/Overview.dashboard?FILTERS=TARGET:*;FILTER:[TimeStamp].[H2].[MonthYear].%26[NOW-1]~[ProductMajorVersion].[H1].[ProductMajorVersion].%26[2022.1]
https://appsight.iscinternal.com/dsw/index.html#/APPSIGHT/Downloads/Overview.dashboard?FILTERS%3DTARGET%3A*%3BFILTER%3A[TimeStamp].[H2].[MonthYear].%26[NOW]
this part should be readable by DSW -->
FILTERS%3DTARGET%3A*%3BFILTER%3A%5BTimeStamp%5D.%5BH2%5D.%5BMonthYear%5D.%26%5BNOW%5D
https://appsight.iscinternal.com/dsw/index.html#/APPSIGHT/Downloads/Overview.dashboard?FILTERS=TARGET:*;FILTER:[TimeStamp].[H2].[MonthYear].&[NOW]~[ProductMajorVersion].[H1].[ProductMajorVersion].&[2022.1]
Logi transforms symbols
= -> %3D
: -> %3A
; -> %3B
~ -> %7E
so we need that DSW could transform them back or read this tranformed symbols like (%3D...)

check after release if it works

waiting for feedbacj from tecccode (double escaping)

@gnibeda release with crunch

my heart is here
On Tue, Aug 22, 2023 at 1:20 PM Lena-Ev @.***> wrote:

Closed #393
https://github.com/intersystems-community/DeepSeeWeb/issues/393 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/intersystems-community/DeepSeeWeb/issues/393#event-10156637255,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAVHEP2ERS7CTBV7TDA2TQTXWSBVTANCNFSM6AAAAAA3GWXQ6M
.
You are receiving this because you were assigned.Message ID:
<intersystems-community/DeepSeeWeb/issue/393/issue_event/10156637255@
github.com>


Incorrect sorting with sort criteria partially covered by index

My Environment

ArangoDB Version:        3.4.8 & self-compiled devel branch
Storage Engine:             RocksDB
Deployment Mode:       Single Server
Operating System:        Ubuntu 18.04
Total RAM in your machine:        16GB

Component, Query & Data
Affected feature:
AQL query using web interface
AQL query (if applicable):
FOR a in activities
    FILTER a.user_id == "31132147"
    SORT a.datetime DESC, a.order DESC, a._key DESC
    LIMIT 10
    RETURN KEEP(a, "_key", "name", "order", "datetime")

AQL explain (if applicable):
Query String (178 chars, cacheable: true):
 FOR a in activities
     FILTER a.user_id == "31132147"
     SORT a.datetime DESC, a.order DESC, a._key DESC
     LIMIT 10
     RETURN KEEP(a, "_key", "name", "order", "datetime")

Execution plan:
 Id   NodeType          Est.   Comment
  1   SingletonNode        1   * ROOT
 12   IndexNode          589     - FOR a IN activities   /* reverse skiplist index scan */
  6   CalculationNode    589       - LET #5 = a.`order`   /* attribute expression */   /* collections used: a : activities */
  7   CalculationNode    589       - LET #7 = a.`_key`   /* attribute expression */   /* collections used: a : activities */
  8   SortNode           589       - SORT #5 DESC, #7 DESC
  9   LimitNode           10       - LIMIT 0, 10
 10   CalculationNode     10       - LET #9 = KEEP(a, "_key", "name", "order", "datetime")   /* simple expression */   /* collections used: a : activities */
 11   ReturnNode          10       - RETURN #9

Indexes used:
 By   Type       Collection   Unique   Sparse   Selectivity   Fields                                 Ranges
 12   skiplist   activities   false    false        37.29 %   [ `user_id`, `datetime`, `_key` ]   (a.`user_id` == "31132147")

Functions used:
 Name   Deterministic   Cacheable   Uses V8
 KEEP   true            true        false

Optimization rules applied:
 Id   RuleName
  1   move-calculations-up
  2   move-filters-up
  3   move-calculations-up-2
  4   move-filters-up-2
  5   use-indexes
  6   remove-filter-covered-by-index
  7   use-index-for-sort
  8   remove-unnecessary-calculations-2

Problem:
The query optimizer recognizes correctly that the filter and the first sorting criterion are covered by the index on [user_id, datetime, _key], so it removes them. However, this still leaves the SORT node with the two remaining criteria and the query therefore produces a result that is not sorted correctly.
Expected result:
Result is sorted correctly
Workaround:
Create an index that covers all fields used for sorting.
Steps to reproduce

Create a collection activities
Insert these sample documents sample.json.gz
Create an index for [user_id, datetime, _key]
Run the query

I think the dataset does not match the query somehow.
The dataset does not include any user_id attributes for any of the documents.
However, I will make up some data on my own and try to reproduce.

Reproduced. Looking into it...

Right, sorry. I simply took the result of the query and forgot that it doesn't include a user_id.

The above PRs address this issue.
They are expected to land in

3.4.9: https://github.com/arangodb/arangodb/pull/10444
3.5.4: https://github.com/arangodb/arangodb/pull/10443
devel: https://github.com/arangodb/arangodb/pull/10442


Subscription emits InstallPlan containing update to unrelated operator/clusterServiceVersion

Bug Report
What did you do?
Purpose: Curate an install of specific ClusterService versions by using Subscription with startingCSV and Manual approval for InstallPlan. This is an attempt to avoid #1076
Create a Subscription requiring manual approval to install a clusterServiceVersion that is not at the latest level, startingCSV: openshift-pipelines-operator.v0.5.2
Create a second subscription requiring manual approval to install another operator, startingCSV: serverless-operator.v1.0.0
What did you expect to see?
Expected to have openshift-pipelines-operator.v0.5.2 and serverless-operator.v1.0.0 versions installed
What did you see instead? Under which circumstances?
openshift-pipelines-operator.v0.7.0 was installed.
The automatically emitted InstallPlan for serverless-operator contained an update for openshift-pipelines-operator.
    clusterServiceVersionNames:
    - openshift-pipelines-operator.v0.7.0
    - serverless-operator.v1.0.0

The CSV for serverless-operator does not contain a required for openshift-pipelines-operator.
Environment

operator-lifecycle-manager version: 0.11.0 & 0.12.0

OLM 0.11.0 with OCP 4.2-RC3 was attempted
OLM 0.12.0 with OCP 4.2.-RC3 was attempted via disabling CVO
oc scale --replicas 0 -n openshift-cluster-version deployments/cluster-version-operator
apply
https://github.com/operator-framework/operator-lifecycle-manager/tree/master/deploy/ocp/manifests/0.12.0

Kubernetes version information:

Client Version: version.Info{Major:"", Minor:"", GitVersion:"v0.0.0-master+$Format:%h$", GitCommit:"$Format:%H$", GitTreeState:"", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.12.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.6+c795c6c", GitCommit:"c795c6c", GitTreeState:"clean", BuildDate:"2019-10-07T15:17:54Z", GoVersion:"go1.12.8", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes cluster kind: OCP 4.2-rc3

Possible Solution
Additional context
The problematic automatically emitted InstallPlan has multiple metadata.ownerReferences, referencing both Subscriptions.
Attached Subscriptions, InstallPlans, ClusterServiceVersions
sic.yaml.txt

Hi @dacleyra
The good news is that #1076 is now resolved, which may be a more immediate fix to your problems. It will be backported to 4.2 shortly.
This is expected behavior given the actions performed. Allow me to annotate what happened:

Create a Subscription for openshift-pipelines-operator.v0.5.2

OLM  created an installplan for openshift-pipelines-operator.v0.5.2 - I see this in your attatchment.
The installplan was manually approved, so the CSV for 0.5.2 was installed.

Create a Subscription for serverless-operator.v1.0.0

OLM must reconcile the update settings you have specified, which are:

Manual approval
Subscribe to updates for serverless-operator starting at serverless-operator.v1.0.0
Check for updates for openshift-pipelines-operator starting at 0.5.2

OLM sees that 0.5.2  of openshift-pipelines-operator is installed, so it checks for updates and finds 0.7.0
OLM sees that no serverless-operator is installed, so it uses the startingCSV of v1.0.0
OLM creates an unapproved installplan for 0.7.0 and 1.0.0

It seems like the confusion is around startingCSV - this indicates where OLM should begin walking through operator updates, it does not freeze the operator at the particular version.
Subscriptions indicate a desire for updates. If updates aren't desired, you can remove the Subscription after install.
As an additional reference, I would point you to our docs on dependency resolution.
If you're interested, we have a v2 set of APIs we are working on that will help address your use-case much better. Specifically the proposed Install api will allow you to ask for an exact set of operators to install (without updates).

Thanks, I will look at the v2 API
What I consider a problem is that during these steps
OLM sees that 0.5.2 of openshift-pipelines-operator is installed, so it checks for updates and finds 0.7.0
OLM creates an unapproved installplan for 0.7.0 and 1.0.0
The Subscription & associated InstallPlan for serverless-operator.v1.0.0 (install-7t46x) contains the CSV update for openshift-pipelines-operator.v0.7.0
The reconcile generated an individual InstallPlan for the openshift-pipelines-operator.v0.7.0 update (install-v2lfk)
I don't think that update to openshift-pipelines-operator.v0.7.0 has any business being in InstallPlan install-7t46x
I would expect with startingCSV and a Subscription with Manual installPlanApproval would allow one to start at a CSV and only approve related upgrades / InstallPlans manually as desired.

I would point you to this enhancement: https://github.com/openshift/enhancements/blob/master/enhancements/olm/simplify-apis.md
We discuss some of these UX issues more in depth there.

I don't think that update to openshift-pipelines-operator.v0.7.0 has any business being in InstallPlan install-7t46x

They're currently resolved as a set, because a future version of one operator may introduce a dependency on another. It's simpler to raise them for approval as a group. But the linked enhancement discusses emitting different Install resources for disconnected sets of operators.


Preliminary draft for CLI reference

Closing the preliminary draft in favor of the one in the current Docs2.0 structure https://github.com/kadena-community/kadena.js/pull/2092


feat: upgrade tailscale to 1.32.3

Hello, thank you for the work on the addon for tailscale! 😄
Proposed Changes

This change upgrades tailscale to 1.32.2

Related Issues
https://github.com/hassio-addons/addon-tailscale/pull/108 (Upgrade Tailscale to 1.30.1)

duplicate of #122


T35591 more block definitions

https://phabricator.endlessm.com/T35591

Here is more porting to the new block definitions. Compared with @wnbaum PR, this is using resource files, not through code like in https://github.com/endlessm/godot-block-coding/pull/147/commits/f390ae83057e050084dcd5b580c4934a21a4e015#diff-d355da8c634915f2c506c52aaf96eba422696b3c4b7cf0362804bd673b3a4767R431-R438

Should we transform the data type of raw_input, before assign to _line_edit.text?  It shows error with Godot 4.3:
res://addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.gd:65 - Invalid assignment of property or key 'text' with value of type 'float' on a base object of type 'LineEdit'.

I migrated the property blocks and the custom blocks. But now I have to change the tests.

I read through all this and it looks good to me! It would be nice to make the InputMap stuff happen without the hack in blocks_catalog, but I don't feel like we need to do that here. (And I was going to mess around with that type of thing in #191). This already lands us a significant upgrade from the previous setup :)

Thanks for taking a deep look @dylanmccall . Now it should also work and tests are passing again. This is because the last commit which is basically @wnbaum 0946f373 plus some of 073eddda (the raw_input_to_code_string(input)).

Should we transform the data type of raw_input, before assign to _line_edit.text? It shows error with Godot 4.3:
res://addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.gd:65 - Invalid assignment of property or key 'text' with value of type 'float' on a base object of type 'LineEdit'.

Adressed in commit 8d18e338

I think this is ready for a final review. Compared with the original PR #147:

This uses resource files for the per-class blocks like Area2D "on body entered / exited". For this, a new field @export var target_node_class: String was added to the BlockDefinition.
Like the original PR, defines custom blocks in each "Simple" class script.
The "is input actioned" block is defined in code too because the options need to be fed according to the running project. Maybe as a follow-up we can have a resource file and change the options dynamically?
The "get / set variable" blocks are defined in code too. And since these are per BlockScriptSerialization, I'm not adding them to the catalog. Because the whole point of a catalog is to have a unique name for the block that can be instantiated. But since I'm not adding them to the catalog, they end up serialized in the old way. I need to work on this as a follow-up. At least they still work, so there are no regressions.
The old serialization is not removed yet because of the above item.

Thank you @manuq!  It is a big refactor.
However, I notice if I add BlockCode under SimpleCharater and SimpleScoring node, it shows error:
Cannot get class 'SimpleCharacter'.
Cannot get class 'SimpleScoring'.

Thank you @manuq! It is a big code refactoring.
However, I notice if I add BlockCode under SimpleCharater and SimpleScoring node, it shows error:
Cannot get class 'SimpleCharacter'.
Cannot get class 'SimpleScoring'.

I see it now, thanks. It seems that the block catalog is trying to add their blocks too early. If I switch to another BlockCode and then back to the SimpleCharacter one, I see the custom blocks.

I just redid the Pong example with the new blocks in the PR. While doing it, I've found that there is a hack adding suffix "nil" in some parameter inputs in the original PR. I don't quite understand why that was needed in the original PR, but removing it makes things work again. So I appended another fixup.


BottomNavigationBar issue #Flutter

Getting the following error when I try to click on the second or third icon.
'package:flutter/src/material/bottom_navigation_bar.dart': Failed assertion: line 190 pos 15: 'items != null': is not true.
I am following this youtube tutorial
https://www.youtube.com/watch?v=DNCV1K5eVMw

@bilalali1 Can you provide the code with flutter doctor log.

@bilalali1
Please provide flutter doctor -v and a minimal complete code sample that shows the issue.
Thanks.

Not more important, I saw on stack overflow, someone said to upgrade my flutter version. I upgraded it now I am facing so many issues, I run flutter clean, get package, flutter run, even included characters in pubs but nothing happened

@bilalali1 it's hard to interpret what does that mean. Please elaborate on the issue and provide all or some of the details mentioned in issue template.

Issue Template
If you are looking for support, please check out our documentation
or consider asking a question on Stack Overflow:
- https://flutter.dev/
- https://api.flutter.dev/
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent

If you have found a bug or if our documentation doesn't have an answer
to what you're looking for, then fill our the template below. Please read
our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports

Steps to Reproduce

Please tell us exactly how to reproduce the problem you are running into.

Please attach a small application (ideally just one main.dart file) that
reproduces the problem. You could use https://gist.github.com/ for this.

If the problem is with your application's rendering, then please attach
a screenshot and explain what the problem is.

1. ...
2. ...
3. ...

Please tell us which target platform(s) the problem occurs (Android / iOS / Web / macOS / Linux / Windows)
Which target OS version, for Web, browser, is the test system running?
Does the problem occur on emulator/simulator as well as on physical devices?

Target Platform:
Target OS version/browser:
Devices:

Run your application with `flutter run --verbose` and attach all the
log output below between the lines with the backticks. If there is an
exception, please see if the error message includes enough information
to explain how to solve the issue.

Run `flutter analyze` and attach any output of that command below.
If there are any analysis errors, try resolving them before filing this issue.

Finally, paste the output of running `flutter doctor -v` here.

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel unknown, 1.22.0, on Microsoft Windows [Version 10.0.18362.1082], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
Now, I upgrade my flutter version I am getting this error
Failed assertion: line 195 pos 15: 'items != null': is not true.

@darshankawar

@bilalali1 We need a minimal complete reproducible code sample that we can use to see the issue. Please provide the code that you are using and seeing the issue on.
Thanks.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Make iana-time-zone dep and local_tz function optional

If https://github.com/strawlab/iana-time-zone/pull/104 is merged, I'd like to depend on iana-time-zone directly so I can control which features are activated. I believe I'd be able to implement local_tz myself by calling:
let tz = tzdb::raw_tz_by_name(iana_time_zone::get_timezone()?);

Additionally, un-nesting iana-time-zone from this crate's dependency tree should improve compile times for apps depending on tzdb by allowing this crate (which takes 6 seconds to compile on my machine) to move earlier in the crate DAG.

This works great! thanks @Kijewski 🙇
I've gone ahead and upgraded to tzdb v0.6.0-pre.1.

Thank you for testing the pre-release! :) I just pushed the stable release 0.6.0.


feat(output): Add HTML outputs to Prowler

Description
HTML outputs are back for all the providers.
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Great job!! Please change the screenshot in the docs index and solve the kubernetes summary tables.


tpl: Add os.fileExists template function

This pull request is intended to fix #3839
Currently, I've an issue with the test cases. fileExists returns a boolean and an error / nil.
Due to the type assertion false can become ambiguous: it can either mean that a file does not exist or that an error is expected.
If the file does not exist, fileExists returns false (correctly), implicating that no error occurred, but the test fails because false is interpreted like an expected error.
Any ideas how this ambiguity can be circumvented?

Any ideas how this ambiguity can be circumvented?

Check the error returned from Stat.
``go
if !os.IsNotExist(err) {
return err
}
return false

In general, it would be great if you could check if your PR goes green before you leave it to dry.

This function seems to only work with absolute paths. Could some please help me (add this to the docs as well!) to use a relative path (checking if an image inside the posts folder exists), or update the function to support both?
I used this dirty workaround:
        {{ $imgPath := print "/content/" $.Dir "header.png" }}
        {{ if (fileExists $imgPath) -}}
              <img alt="{{ .Title }}" class="img-fluid mb-2" src="header.png" />
        {{ end }}

@NicoHood, please don't comment on issues that were closed 3 years ago.  Open a new ticket or ask on the discussion forums.


Rename tutorial "training a dataset" to "quick example"

📓 Documentation Update
Getting started can take a long time to train, so have a quick example that uses the fridge dataset is a good idea.

Add a warning to the getting start that training the pets dataset can take a long time, refer to the quick example to faster training time.

First point was handled by #439 , still need to refer to the new quickstart tutorial in the getting started


Isn't working with Tetr.io (Web Based Tetris Clone with a Downloadable Client)

Describe the bug
Trying to configure the device in the options menu doesn't let you bind anything
To Reproduce
Steps to reproduce the behavior (example):

Start vigem with any controller configured already
open tetr.io
go to the options menu, controls, and set it to custom
Try to bind anything to your controller

Expected behavior
I should be able to bind the buttons and navigate the game without my mouse.
Screenshots
If applicable, add screenshots to help explain your problem.
System details (please complete the following information):

OS: Win 10
Feeder software: USendMii (Wii U), 3DSCPlusViGEM (3DS/ 3DS XL), Probably Happens with any other one too.
Driver Version: 1.17.333

Additional context
Doesn't work on the web browser verisons of tetr.io either, or firefox for that matter.

Does the emulated controller work with this or this?
What is emulated; x360 pad or ds4?


Telemetry, Logs and Alerts

Hi,
we are currently investigation the use of TSI PAYG. For now it seems like a great product.
But a few questions remain.
Our devices can send telemetry, logs and alerts. In our current architecture, we have our IotHub with different routes for each type of message.
TSI can only be "plugged" onto the default route of an event hub or an IoT hub.
How do you manage different types of data ? I find weird to have a service message queue then an event hub and then TSI on the default route of the event hub. Let’s say we want to have another TSI for logs and another for alert, then we have 1 iothub, 3 queues, 3 events hub? Seems like a lot of "repetitive" service and thus higher cost.
We could also try to mix telemetry, logs and alerts into one TSI. Right now, we have a composite key of deviceId and sensorId. Our logs and alert would be on deviceId not on sensorId. And we would need to add a third key with something like messageType. And we could always set sensorId to null or a placeholder. We could create custom types for each.
But, I find it weird to mix everything in there.
We could also not use TSI for logs and alerts, but it would be nice to have a nice explorer and all the features TSI offers.
I was wondering if any of you had this case before and what could be a solution ?
Thank you !

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e75543f0-fb2a-191f-4a35-200b4b148d85
Version Independent ID: 20bdd49b-abed-af27-f4de-24b2bcfdd7ef
Content: Overview: What is Azure Time Series Insights Preview? - Azure Time Series Insights
Content Source: articles/time-series-insights/time-series-insights-update-overview.md
Service: time-series-insights
GitHub Login: @deepakpalled
Microsoft Alias: dpalled

@MaxThom Thank you for your interest in Azure. It appears you have opened two issues for the same inquiry. I am going to close #47603 as a duplicate and respond to your inquiry through this GitHub issue.

@MaxThom This question is being reviewed by the product group and I will update you when I have more information to share.

Salut @MaxThom,
Thanks for your patience on this and apologies for the delayed response. This is a great question. Essentially Azure IoT Time Series Insights is a solution for time series data where the primary search and query scenarios are time-based, whereas querying logs is often text-based.
If you do desire to have one unified solution for telemetry and logs I would recommend looking at our sister team Azure Data Explorer (ADX). ADX is an analytics service that is generic, thus it can be used for many different needs--ranging from log analytics to IoT, whereas TSI is an end-to-end solution specifically focused on Industrial IoT. With ADX you can create various charts and dashboards like you do in TSI, although you'd author the query yourself. TSI abstracts a lot of that from you as it strives to be a turn-key solution. TSI also offers the semantic model to contextualize your data.
So depending on your needs you might use both TSI and ADX, or go with ADX exclusively. Please feel free to ask any follow-up questions.

@MaxThom Want to provide an additional resource with regard to using ADX for both Log and Telemetry data:
Ingest data using the Azure Data Explorer Python library

We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


Error: Method OPTIONS not allowed for URL /latest

I am getting this error when calling:
      let response = await this.$axios.post('https://api.exchangeratesapi.io/latest', {
        headers: {
          'Access-Control-Allow-Origin': '*'
        }
      })

Any ideas?

Actually the error is
Access to XMLHttpRequest at 'https://api.exchangeratesapi.io/latest' from origin 'https://erp.dewesoft.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
I am using Axios to make JavaScript Ajax request tot the API. It is the options request that is already failing
Request URL: https://api.exchangeratesapi.io/latest
Request Method: OPTIONS
Status Code: 405
Remote Address: <IP_ADDRESS>:443
Referrer Policy: no-referrer-when-downgrade
allow: HEAD, GET
cf-ray: 4fd7c513ac74cbcc-VIE
content-length: 49
content-type: text/plain; charset=utf-8
date: Sun, 28 Jul 2019 15:08:41 GMT
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
status: 405
Access-Control-Request-Headers: authorization,content-type
Access-Control-Request-Method: POST
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36


Refusing to install package with name "homeassistant" under a package

~/Works/homeassistant_node$ npm install homeassistant
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "homeassistant" under a package
npm ERR! also called "homeassistant". Did you name your project the same
npm ERR! as the dependency you're installing?
npm ERR!
npm ERR! For more information, see:
npm ERR!     https://docs.npmjs.com/cli/install#limitations-of-npms-install-algorithm
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/xxx/.npm/_logs/2018-09-25T02_34_17_596Z-debug.log

Is the name of the package you are developing also called "homeassistant"? If so, you'll need to change it. Otherwise, can you provide the contents of your log file?

Closing due to inactivity.

npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "savjeecoin" under a package
npm ERR! also called "savjeecoin". Did you name your project the same
npm ERR! as the dependency you're installing?
SORRY to ask this one again but it suggests that the Target Directory or Folder should be different to that that is being Cloned. Would I make a temporary ReName ? Then name it back ?
Thanks for the Help ....
H

Renaming the Folder to a Temp Name doesn't work. Do I edit the package.json file and/or the package-lock.json file ? Again temporaly ? H

Isn't an over write possible as I am following a Tutorial ? H


feat: add github actions

revert 掉，测 SSR

seems https://dev.to/taranjeetsingh/deploy-next-js-app-to-aws-lambda-using-aws-sam-5ael


fixed: Add host default value as 'consul'

If there is no default host value when initialize, island-keeper will use <IP_ADDRESS>:8500.
Instead of <IP_ADDRESS>:8500, changed to use 'consul' as default host value.

approved


Interactive window- don't leave space for insert toolbar

Interactive window is more compact than Notebook now, by not leaving space for the insert cell toolbar(which has no items anyway in the interactive window)
This is cleaned up from #164760

Thanks @amunger, users at my workplace will be very happy. During the change, I noticed #182120 as well.


[DPE-1781] Configuration support

Issue
There is no way to provide custom configurations to the workload (PostgreSQL database).
Solution
Add to patroni.yaml the requested configurations with their default values.
Expose the allowed configurations through charm config options (and add validators based on the allowed values).
max_connections and max_prepared_transactions can be changed only through the Patroni API, so they are changed in the charm code differently from the other configurations.
Also, added a call to time.sleep(10) to give some time to Patroni to reload the configurations before it's possible to know which ones need a database restart. Previously, sometimes a change in shared_buffers wouldn't trigger a restart.

LGTM.
JFMI, why don't we set defaults in config.yaml?

No specific reason. I think it's a good idea to put them. I'll update the code.

LGTM.
JFMI, why don't we set defaults in config.yaml?

I added the default values and the feedback from the K8S charm PR to https://github.com/canonical/postgresql-operator/pull/239/commits/efc7c8fe5a98f571ca8aeeaa5ad97b522b760184.


#147 removing deprecation warning

Removing call to _super() since:

#147 deprecation of attributes passed to this.
we do not extend another component which needs to be called.

:+1: fantastic, thanks


Polish national characters missing from the font on website

Since the website is already available in polish I would consider it a bug. Screenshot here
Polish characters include: ó ł ć ę ś ą ź ż ń

We are aware of the bug and are working on solutions for it. You can track the status on bug #411.

Sorry for that, hopefully next reporters will find out it's a duplicate when searching for "polish + font" like me ;)

This is fixed for Raleway, but not for Open Sans. On #411 it says to report these kind of issues separately now.


build: add means of linking with C libs in Py packages

Extend the Python repository_rule used to create external repositories, adding targets for C-language binary libraries shipped inside Python packages; e.g., that shipped in package tensorflow-gpu.
These targets are to be used as dependencies by C-language targets.
Note: when debugging the build, it can be helpful to examine the repository directory and BUILD file this repository_rule generates in the bazel cache.
Begin using a python/ directory at the root of the project for code that is specific to Python.
Upgrade to the latest version of rules_python first. Note that the unit test to keep requirements.in and requirements.txt is disabled (specifically with
ec6bdc5d4443285d28a44076f06c203d9582e4a1)
Add a unit test for this feature.
BUG=see description

I have updated the PR description to call out that test for requirements.in and requirements.txt consistency is currently disabled. Ideally we should have a bug for that with a corresponding TODO(b/) but it's not worth delaying this PR for that.


PowerMenu (custom plugin) not working as expected.

Describe the bug
When using the example Power menu from the wiki, no icon is shown at the left of entries and the prompt is not filtering out results.
Version
0.7.7
Minimal Config
 "plugins": [     {       "name": "power",       "placeholder": "Power",       "switcher_only": true,       "keep_sort": true,       "icon": true,       "entries": [         {           "label": "Shutdown",           "icon": "system-shutdown",           "exec": "shutdown now"         },         {           "label": "Reboot",           "icon": "system-reboot",           "exec": "reboot"         },         {           "label": "Lock Screen",           "icon": "system-lock-screen",           "exec": "playerctl --all-players pause & hyprlock"         }       ]     }   ]
To Reproduce
install the plugin in the config file and run
walker -m power -k
Expected behavior

Icons should appear to the left of entries
Typing letters in the prompt should filter out results.

Desktop

Arch + Sway

For icons to be shown when only loading up a single module, you need to specify "show_icon_when_single": true.

For the entries not being filtered: there's a bit of a oversight here: the entries require an "recalculate_score" to be true to get their score recalculated on typing. This should prob. be true by default....

module wide "recalculate_score" has been added so you don't have to define it for every entry.

Thanks a lot for looking into this.
For some reason the filtering is still ignored.
I'm running
❯ walker --version
0.7.8
with the attached config.
config.json

"keep_sort": true => false

Thanks its working now.
I just now figured the major difference between Walker and Rofi : Typing in the search bar in walker will not filter out invalid items (like Rofi does) , but rather reorder matching stuff on top.
I personally prefer filtering over reordering.   Could this be an option?

Awesome, thank you!   will update asap and report back.

Tested and approved!  This is such a game changer for me ;)


Add ability to attach probes if other probes don't exist/attach

Is your feature request related to a problem? Please describe.
This is to support cases (for example) when a kernel function was inlined on a newer kernel version and a tracepoint was added to make up for it. As well as other cases when a probe might not be available on specific kernel versions but another one would do.
e.g. https://github.com/bpftrace/bpftrace/issues/3621
Describe the solution you'd like
I don't have a good idea for an if-like syntax for probes but maybe as something as simple as
tracepoint:block:block_io_start {
  ...
}

if (attach_fail("tracepoint:block:block_io_start")) {
  kprobe:blah {
     ...
  }
}

But then we're bringing conditional logic into the top most level of the syntax, which feels a bit weird.
Here are also some possible stop-gap things we could do:

extend "missing_probes" config to work on single probes so if tracepoint:block:block_io_start was not available the whole script would NOT error out
add a probe attribute e.g.[on_attach_fail = warn]
tracepoint:block:block_io_start

I think we should separate the two concepts:

Changing what happens to a probe it the attach point(s) doesn't exist. Here, it can be controlled by a global config (which we already have) or per-probe by an attribute:

[missing_probe = ignore]
tracepoint:block:block_io_start

Controlling whether a probe should be executed/attached based on the (non-)attachment of a different probe. To me, this logically belongs to the predicate, i.e. inside /.../. I'd consider adding a new builtin for that purpose:

kprobe:...
/!attached(tracepoint:block:block_io_start)/

I know that this feels a bit inconsistent but when we already have a syntactic construct to control whether a probe should be executed, it doesn't feel right to introduce yet another one for the same purpose.

I think we should separate the two concepts:

Sure, I was just combining because they were serving the same use-case. Seems like there is general agreement that specific probe attribute syntax would be good for missing probes. I'm hesitant to use the global "missing_probes" config because the default behavior for multiple probes is currently "warn", which means we'd have to change this default (breaking) or have it apply differently to single probes (yucky).

Controlling whether a probe should be executed/attached based on the (non-)attachment of a different probe. To me, this logically belongs to the predicate

I think using the predicate system we already have is a interesting/good idea. I agree that there is a little inconsistency there (attachment vs execution) but from the user's standpoint, I don't see much of a difference.


Added support for nodeSelector, tolerations and affinity

We see the need for running Zeebe on separate k8s nodes. Added nodeSelector, tolerations and affinity to support scenarios like this

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: salaboy
If they are not already assigned, you can assign the PR to them by writing /assign @salaboy in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Hi @PashCracken. Thanks for your PR.
I'm waiting for a zeebe-io member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@PashCracken this makes a lot of sense.. can you please do the following:

add each new property to the readme.md table and document the default values to ""
you can remove the empty sections from the values.yaml file as they are not needed.

Thanks a lot.

@PashCracken now you removed the important changes.. look in the files changed tab here in the PR.

Added back the changes to values.yaml. Got a bit confused about your comment about the values. I think it's best practice to use {} and [] as default values. It will clearly indicate that 2 are objects and 1 is an array

@PashCracken please do remove the defaults from the values.yaml We need to make sure that the values.yaml file doesn't get populated with all the options if they are not really needed. In the case that you don't add anything to the values file, the actual values in the statefulset will be the ones you mention.

@salaboy Is values.yaml ok now?

@PashCracken let's merge it as it is, so I unblock you.. but I will probably remove the empty values later.


runtime: some programs broken on Wine after removing time compatibility hacks

go version devel +03ac39ce5e Mon Sep 2 12:57:37 2019 +0000 linux/amd64

I've started seeing panics like the one below when running some of my tests via GOOS=windows go test -exec=wine:
fatal error: nanotime returning zero

goroutine 1 [running, locked to thread]:
runtime.throw(0x60406f, 0x17)
        /home/mvdan/tip/src/runtime/panic.go:774 +0x79 fp=0xc00003bf60 sp=0xc00003bf30 pc=0x4309f9
runtime.main()
        /home/mvdan/tip/src/runtime/proc.go:152 +0x350 fp=0xc00003bfe0 sp=0xc00003bf60 pc=0x432500
runtime.goexit()
        /home/mvdan/tip/src/runtime/asm_amd64.s:1375 +0x1 fp=0xc00003bfe8 sp=0xc00003bfe0 pc=0x45e2e1
exit status 2

If anyone wants to reproduce the crash, the Go package in question is https://github.com/mvdan/sh/tree/6af96bc17993a990fcd2c341c83a168a3158daa1/interp. I can provide a small reproducer if necessary, but I think the crash is pretty evident.
It looks like this was intentional as of https://go-review.googlesource.com/c/go/+/191759. The CL reads:

Wine is useful and developers will appreciate being able to debug stuff with it.

This gets a big +1 from me, of course :)

(1) has been handled for some time by Wine with the introduction of the commit entitled "ntdll: Create thread to update user_shared_data time values when necessary".

Unfortunately, the commit message didn't include a direct link to said patch or fixed bug. All I could find is this patch maintained as part of wine-staging: https://github.com/wine-staging/wine-staging/blob/a46b9ff3dcb51398cd6626f7090d8885844e1b5b/patches/ntdll-User_Shared_Data/0003-ntdll-Create-thread-to-update-user_shared_data-time-.patch
I can further prove this; the crash happens on vanilla Wine 4.15, but doesn't happen on Wine 4.15 staging.
So I don't think that Wine has handled this for some time, as the CL describes. At best, a patch has been available on wine-staging since 2017, but most users don't run wine-staging. I would personally prefer sticking to vanilla Wine, as it's more stable, and I've had no reason to use staging patches until now.
This is not an issue to report a regression and demand a revert; I understand the code in the runtime package was a hack, and that in the long term we're better off without it. However, I think we should be aware that this will break a non-trivial amount of users. And, even if Wine 4.16 shipped tomorrow with a stable fix, it would at least be a year or two before most Linux users are using that newer Wine version.
At a minimum, I think we should keep an issue like this one open, to quickly point confused users at a temporary workaround. I'm all ears on that front; I can run wine-staging for now, but that's not an ideal solution.

Afaict, this is fixed in upstream wine. Upgrade your wine. This is 1.14 material which means it's a long way off from release.

Please read my detailed report above; I tested on Wine 4.15, which was released less than three days ago. Am I already out of date? :)

Reverted the CL in question as of CL 192622; my bad for forgetting the issue link in the commit message.


Allow the public to create issues on a private server

I apologize if this is a duplicate, didn't find it in the tracker.
I have a self-hosted gitea where I intend to move my projects to. I don't want people creating accounts, organizations and repositories on my server, but I would like them to be able to open issues.
Maybe I missed some config option that would allow this (?) but if no, this would be a valuable improvement. (This could of course be solved by federation, but we aren't there yet)

Gitea version: 1.3.2

I just implemented this option in gogs, I believe the file that would need changing is https://github.com/go-gitea/gitea/blob/master/models/repo_list.go but the code is sufficiently different in gitea that I can't see at a glance what you'd need to change.
for reference my changes to gogs: https://github.com/gogs/gogs/pull/5234/files

I'm not sure the proposal was clear enough - this was about creating issues without registration on "public" repos (for a gitea with registrations disabled). Alternatively to allow registration, but without the rights to create repositories - I don't want my small VPS to become another "github" or "gitlab.com".

@MightyPork  sorry I misunderstood, I've just realised that what you want would require something like a passwordless guest account or similar. please ignore my comment.

Yeah or maybe "login with GitHub" or similar, creating a "external user" account without some permissions.
For reference, here is my private server with the public project:
https://git.ondrovo.com/gex/gex-core
And a github mirror (which now has issues on it, as this is where the project started; But I would prefer the issues to live with the upstream):
https://github.com/gexpander/gex-core

As a workaround, you could open your instance for registration but set org and repo limits to 0. That way people could create issues and such, but no repos or orgs.
See https://docs.gitea.io/en-us/config-cheat-sheet/ under "Repository"

Would that limit also apply to administrator users? Or only to general users? Is there a way to override those settings on a per-user basis? I also want to be able to do this without locking myself out from making more repos.

You can set a per user limit for repos

I think https://github.com/go-gitea/gitea/pull/5833 will fix this.

hi +1 for this wanted feature, seems #5833 are a WIP for this get solved!

It seems this is a duplication of #639

Yeah or maybe "login with GitHub" or similar, creating an "external user" account without some permissions. I would consider trying to add this if I knew any Go.
For reference, here is my private server with the public project:
https://git.ondrovo.com/gex/gex-core
And a github mirror (which now has issues on it, as this is where the project started; but I would prefer the issues to live with the upstream):
https://github.com/gexpander/gex-core

@MightyPork

"login with GitHub" is implemented :D
is it a dublicate of #639

so might considder closing this issue ...?

I thinks it's more like bitbucket have that allow "anonymous" issues

Yes, guest access, similar as mentioned in https://github.com/go-gitea/gitea/issues/8649#issuecomment-1204513734


BNavItem does not consider RouterOptions for linkExactActiveClass and linkActiveClass

What i are trying to do.
Vue Router has the option to change the default classes router-link-active and router-link-exact-active, see here  and here. I want to use it, to override the Vue classes with the Bootstrap active class.
What i have already tried.
// at router/index.ts
const router = createRouter({
    history: createWebHashHistory(process.env.BASE_URL),
    routes,
    linkActiveClass: "",
    linkExactActiveClass: "active",
});

I set the following navigation links:
<BNav
	vertical
	class="nav-pills mb-auto"
>
	<BNavItem
		:to="{ name: ROUTES_PROJECT_ADD }"
		link-class="link-dark"
	>
		add
	</BNavItem>
	<router-link
		:to="{ name: ROUTES_PROJECT_ADD }"
		class="nav-link link-dark"
	>
		add
	</router-link>
</BNav>

That generates the following DOM, if the link is active:

		 add

	 add

Any error messages i are getting.
This shows for me, that BNavItem did not recognize the global Vue router settings, while the Vue native router-link did. I see in the documentation also no way, how to fix that. The active parameter seems only be useful if i want to set it by myself manually, but that is not the use case, i want to use the Vue router settings for automatically set active for the correct Bootstrap css.
To dynamically and automatically use the Bootstrap active class, based on Vue router settings, in my opinion the BNavItem should register and use the Vue settings. Or if not, how else is the "correct" way to solve this problem in an easy way?
Environment:

OS: Windows 10
Package Version: 0.15.5
<EMAIL_ADDRESS>
Thank your very much for responses in advance!

There is no way to do what you're requesting at the moment. Refer to https://github.com/bootstrap-vue-next/bootstrap-vue-next/issues/1607


Issue with traeger integration - Detected code that calls async_forward_entry_setup for integration traeger during setup without awaiting async_forward_entry_setup, which can cause the setup lock to be released before the setup is done. This will stop working in Home Assistant 2025.1.

System Health details
na
Checklist

[X] I have enabled debug logging for my installation.
[X] I have filled out the issue template to the best of my ability.
[X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
[X] This issue is not a duplicate issue of currently previous issues..

Describe the issue
The current integration works, but per the log it seems that some updates will need to happen before 2025.1.
Reproduction steps
1.restart
2.check log
3.
...
Debug logs
na

Duplicate of #76
Fixed in current release.

Thanks for the quick response.  I thought I was using the latest but apparently the update from August wasn't showing in HA.  I downloaded from GIT and updated manually.  Fixed.

From: njobrien1006 @.>
Sent: Wednesday, September 18, 2024 10:10 AM
To: njobrien1006/hass_traeger @.>
Cc: Thrillfiishing @.>; Author @.>
Subject: Re: [njobrien1006/hass_traeger] Issue with traeger integration - Detected code that calls async_forward_entry_setup for integration traeger during setup without awaiting async_forward_entry_setup, which can cause the setup lock to be released before th...
Duplicate of #76https://github.com/njobrien1006/hass_traeger/pull/76
Fixed in current release.
—
Reply to this email directly, view it on GitHubhttps://github.com/njobrien1006/hass_traeger/issues/78#issuecomment-2358581478, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFKMD4IXXUIPDNMQ5MZDOKDZXGCVNAVCNFSM6AAAAABONTCTU6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNJYGU4DCNBXHA.
You are receiving this because you authored the thread.Message ID: @.***>


dictionary empty

I suspect the problem you experienced is founded in not finding the big.txt file from which the starting dictionary is built. There should have been a println to that effect. I have now added a prompt dialog to make it obvious.
I suspect the problem leading to the file not being found is a difference in our file structures. Here is how I am locating the file:
gopath := os.Getenv("GOPATH")
bigdatapath := gopath + "/src/github.com/goki/gi/spell/big.txt"

in gi/svg/icons.go, this is the proper code -- replace "SrcDir" with "svg.SrcDir" -- actually I'll move it to kit instead as our general "kit" directory, and fix the use in spell
path, err := SrcDir("github.com/goki/gi/icons")
if err != nil {
	log.Println(err)
	return err
}


[BUG] chaosblades.chaosblade.io cannot support CRD apiextensions.k8s.io/v1

Error: INSTALLATION FAILED: failed to install CRD crds/crd.yaml: resource mapping not found for name: "chaosblades.chaosblade.io" namespace: "" from "": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"

hi, what is your k8s version?

Hi, My K8s version is v1.22.3. Thanks.


OKEnvelope can be three or four elements.

Can it? I think it should be always 4. The NIP implies it's 4, then I checked Nostream, nostr-rs-relay and strfry and they all return an empty string with an ok-true message.

TestOKEnvelopeEncodingAndDecoding tests it.
https://github.com/nbd-wtf/go-nostr/blob/f8fb9e8c26e4f61fb178e0f27f0a27baf83e3644/envelopes_test.go#L67-L71

OK, then I'll fix that test. It was based on me reading the spec wrongly in the past. Thank you.
Also I've been running all the tests automatically before pushing for all subpackages, but forgot to run the tests on the top-level package.


Add REarth and MEarth as standard units

Earth mass and radius are practical units for planetary simulations, useful to have them pre-defined.

I may change the Rearth value slightly to 6371.0088 at some point (IUGG mean radius)

Thanks for merging!
Best not wait with changing the value to IUGG mean radius then, otherwise re-running a simulation using this value will have changed results...

good point! done..


Option for Recurring Tasks to Be Scheduled from Completion Date

⚠ Please check that this feature request hasn't been suggested before.

[X] I searched previous Ideas in Discussions didn't find any similar feature requests.
[X] I searched previous Issues didn't find any similar feature requests.

🔖 Feature description
As it stands, a completed recurring task generates a new task from the original due date, not the date of completion.
Say I set a recurring task to clean my room "every day". If it was due on October 1st and I couldn't get to it until October 10th. I complete the task on October 10th but the new task recurrence will have a due date of October 2nd.  That means the new task is overdue even though I just completed it.
It would be great to have the new recurrence due date work off of the completed date instead so that the new task due date is October 11th.
✔ Solution
Have recurring task intervals start from the recurring task's completed date instead of its due date. Make a toggle switch in the options menu for this feature.
❓ Alternatives
No response
📝 Additional Context
No response

So, just to be clear, if you set the recurrence rule to be ‘every day when done’ you get exactly the behaviour you’re after.


Great Repo, Requesting permission to add Azure OpenAI Support

Love this repo, very simple and effective.
At work we use Azure OpenAI service and not OpenAI directly.  This means that the "model" need to be configurable with our deployment_id.
Cool if I submit a PR w/ this enhancement?

Go for it; thanks!

For your consideration: https://github.com/rvanasa/pandas-gpt/pull/4/commits/18edf3703a67d347bf9a025bc00dafa6708ac58b

Awesome, thanks! Great idea for making the prompt configurable.
I added a review with a possible refactor to increase flexibility for future use cases.

Great idea! Looks great, Tested, #ShipIt


I dont browse show ‘/#/nav/n4/***’

ionic：3.5.3
"@ionic/app-scripts": "2.0.2",
if use refresh browse,all error;
if i use "NavController"  method  "removeView" or "pop",and use
this.nav.push('AgentManagePage', {
addAgentInit: true
});
location  change #/nav/n4/agentManage;
I want hide " #/nav/n4/agentManage;"

Hello! While we appreciate you opening an issue with us i am going to close this issue and ask that you open a new one that has the issue template filled out please. Thanks for using Ionic!


Add support for v6 (latest)

Resources

Official Styling docs
Sample official theme - One Dark

Excuse me, is it available in 6 now


Mgmt 8764: agent fail to pull ignition in case the token is expired

The HyperShift ignition token gets rotated every 60 minutes.
This change updates the provider to set the machineConfigPool and ignition token on the agent only after the agent is bound to a ClusterDeployment.
This should minimize the problem but the race still exists

/hold
Let's give the e2e test a few runs...

No longer relevant
The issue was fixed by #20


Expand uploadPDF to support going to a directory

Hi there,
Thanks for this project. Just a little feature request. It would be great if uploadPDF could take an optional parentId for shoving those PDFs into a folder.
I'll probably dive in and make the change myself next time I have some time to hack away on a little project I'm working on but thought I'd give a heads up first, in case you felt like knocking it out or knew of some reason why it can't be done.
Thanks!

Hi! Done in<EMAIL_ADDRESS>


Relative links are translated into undeployable file:// URLs

Hi again, when building a static website, I find that relative link properties are translated into full URLs using the file:// scheme which is of course no good when deployed.

Is there any reason to touch relative link properties at all (I was assuming my link would be emitted unmolested)?
If there is a reason to translate to full URLs, then should this use the --base[-url] parameter as supplied to build command?

Many thanks, Phil.

Hey @phlash
Thank you for reporting

Is there any reason to touch relative link properties at all (I was assuming my link would be emitted unmolested)?

Indeed, it should be emitted untouched. This was done to meet the needs of my project. Now, it emits a separate relative field, which is relative to the workspace root.


Getters for numerator, denominator

@micahkendall Not sure if it is appropriate for this PR but the documention for the ceil function is wrong; it is using truncate in the examples.


Stop words

Are stop words supported? If yes, how do I add them?

Not yet, that would be a nice addition 😊

For inspiration :)
https://www.meilisearch.com/docs/reference/api/settings#stop-words

Yeah I know that feature, it could be easily added to our Configuration, we don't need to store them anywhere imho. PR is welcome!

Thanks to @daun, this will be possible in 0.9: https://github.com/loupe-php/loupe/pull/107 🥳


Authentication Token required at each connection

Describe the bug
Authentication Token is required at each connection in our configuration.
Our configuration uses kubeflow to launch VScode and each session is loaded in a POD.
Steps to reproduce
Steps to reproduce the behavior:

Go to SAS extention and click on "sign in"

Click on 'allow', then "open"

copy/paste the token and press enter, then we're logged in.

close the vscode tab in internet explorer and then reopen VScode: we have to begin the process from step 1.

Expected behavior
We'd like the authentication to be persistent, not to have to redo the authentication process after closing the kubeflow tab in the explorer.
Environment (please complete the following information):
Client OS: CentOS Linux release 7.9.2009 (over coderserver 4.16.1, KubeFlow 1.7)
Extensions version: v1.5.0
SAS Version: Viya LTS 2023.03 + SAS 9.04.01 M7

It's not a bug against this project. It looks like an issue against code-server that looks to be fixed at
https://github.com/coder/code-server/releases/tag/v4.17.1
If it still doesn't work, please report to code-server project, for example I saw https://github.com/coder/code-server/issues/6568.

Thank you I'll check this!


gw info: Add rate limit check for GitHub API

Thanks. Do we know what the rate limit is and have we seen it exceeded? Might there be a similar concern for downloads during gw update? And, finally, do you know if there's a way to increase these limits if they become a problem?

Ah maybe this is the 60 requests per hour anonymous limit.
Download of firmware would be probably subject to 5000/hr limit which is rather harder to hit.
I'll have a play. I'm sure I can trigger the limit.

Ah maybe this is the 60 requests per hour anonymous limit.

Yeah, when I repeatedly gw info to check the F1 board I made, it triggered the rate-limit. So https://github.com/keirf/greaseweazle/blob/e7c655ca14bf32b1c342cc05da11f3b2c3566e5d/src/greaseweazle/tools/info.py#L50 gave me a simple KeyError message. This made me think "is there something wrong with my F1 board?" lol.

Might there be a similar concern for downloads during gw update?

Yes.

if there's a way to increase these limits if they become a problem?

I don't know, but it shouldn't be difficult for people to just wait a little while to cool-down the limit or open github.com to manually download the firmware update?

Extended and applied to master.


[ISSUE #8419] update consume offset when not get msg in litepullconsumer

Fixes #8419

Codecov Report
Attention: Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.

Project coverage is 45.38%. Comparing base (bd61774) to head (1c5b3d4).

Files
Patch %
Lines

...ent/impl/consumer/DefaultLitePullConsumerImpl.java
0.00%
2 Missing :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #8420      +/-   ##
=============================================
+ Coverage      45.36%   45.38%   +0.02%
- Complexity     10987    10991       +4
=============================================
  Files           1274     1274
  Lines          88970    88972       +2
  Branches       11434    11435       +1
=============================================
+ Hits           40359    40382      +23
+ Misses         43581    43568      -13
+ Partials        5030     5022       -8

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


chore: update actions/checkout to v2

Fixes #144

Is this ready to review since there are debug ls in the workflows ? I believe not but i'm not sure

@vmarchaud I opened it as "ready" initially because it seemed so obvious, but i can't get the test to pass on browser or node 16. I'm getting weird permission errors even though the result of id shows that we are running as root.

@vmarchaud it is now ready


node.js assertion Assertion failed: (timeout != -1), function uv__io_poll, file ../deps/uv/src/unix/kqueue.c, line 256

Build: https://dev.azure.com/monacotools/a6d41577-0fa3-498e-af22-257312ff0545/_build/results?buildId=212098
Changes: https://github.com/Microsoft/vscode/compare/16307b3...f0a3f5f

This seems to be a native assertion exception in node.js itself, maybe related to the Electron update, not sure, but could also be specific to the Azure pipeline we run in:
  ResourceEditorInput
    ✔ basics
Assertion failed: (timeout != -1), function uv__io_poll, file ../deps/uv/src/unix/kqueue.c, line 256.

  EditorPane
##[error]Exit code 134 returned from process: file name '/Users/runner/runners/3.218.0/externals/node16/bin/node', arguments '"/Users/runner/work/_tasks/CmdLine_d9bafed4-0b18-4f58-968d-86655b4d2ce9/2.212.0/cmdline.js"'.
Finishing: Run unit tests (Electron)

I have no ideas how to address this from the unit test, I think this needs investigation what the assertion is about in libuv and then reason about it.

Relevant kqueue.c contents:
https://github.com/nodejs/node/blob/6b06e89c7dfccec6792008302af1cee57649445c/deps/uv/src/unix/kqueue.c#L256

Happened again: https://dev.azure.com/monacotools/Monaco/_build/results?buildId=222610&view=results
This time in the setup-npm-registery.js step:
/bin/bash --noprofile --norc /Users/runner/work/_temp/15d83cf3-9153-4e4c-a9dc-ca52e13f61d4.sh
Assertion failed: (timeout != -1), function uv__io_poll, file ../deps/uv/src/unix/kqueue.c, line 256.
/Users/runner/work/_temp/15d83cf3-9153-4e4c-a9dc-ca52e13f61d4.sh: line 1:  2124 Abort trap: 6           node build/setup-npm-registry.js $NPM_REGISTRY
##[error]Bash exited with code '134'.
Finishing: Setup NPM Registry

Refs https://github.com/nodejs/node/issues/47241#issuecomment-1482563632
Fixed in Node.js >= 18


Question - how should inferred or syntactic sorts be represented in Kore?

We have the general idea that kore represents sorts of variables by calls to sort predicates in the requires condition (perhaps considering isK implicit for otherwise unmentioned variables). By default we generate those predicate calls even if the variable sort information came from inference or a :: sort annotation, but we have the --non-strict flag to not promote those inferred types to runtime checks. Can and should we keep that information in kore in some other way if we don't want those checks?

We could always add them as attributes. Not relevant in the short term, but as attributes are not printed now, the sorts would be lost by a print-parse.


90_custom.yaml duplicate entries

Originally reported by Dave on Slack and now reproduced in the bundles test.
With the bundles tests config passed as a cdrom datasource (like the tests do), the /oem directory has various files:
kairos-aiup:~ # ls /oem/
90_custom.yaml	grubenv  lost+found  userdata  userdata.yaml

kairos-aiup:~ # cat /oem/userdata
#cloud-config

stages:
  initramfs:
    - name: "Set user and password"
      users:
        kairos:
          passwd: "kairos"
      hostname: kairos-{{ trunc 4 .Random }}
fail_on_bundles_errors: true

debug: true

install:
  auto: true
  reboot: true
  device: auto
  grub_options:
    extra_cmdline: foobarzz
  bundles:
  - rootfs_path: /var/lib/extensions/kubo
    targets:
    - container://ttl.sh/31fb00c6-a4d6-4c0f-9646-32a8a5d8f7c4:24h

kairos-aiup:~ # cat /oem/userdata.yaml
#cloud-config

stages:
  initramfs:
    - name: "Set user and password"
      users:
        kairos:
          passwd: "kairos"
      hostname: kairos-{{ trunc 4 .Random }}
fail_on_bundles_errors: true

debug: true

install:
  auto: true
  reboot: true
  device: auto
  grub_options:
    extra_cmdline: foobarzz
  bundles:
  - rootfs_path: /var/lib/extensions/kubo
    targets:
    - container://ttl.sh/31fb00c6-a4d6-4c0f-9646-32a8a5d8f7c4:24h

kairos-aiup:~ # cat /oem/90_custom.yaml
#cloud-config

debug: true
fail_on_bundles_errors: true
install:
    auto: true
    bundles:
        - rootfs_path: /var/lib/extensions/kubo
          targets:
            - container://ttl.sh/31fb00c6-a4d6-4c0f-9646-32a8a5d8f7c4:24h
        - rootfs_path: /var/lib/extensions/kubo
          targets:
            - container://ttl.sh/31fb00c6-a4d6-4c0f-9646-32a8a5d8f7c4:24h
    device: auto
    grub_options:
        extra_cmdline: foobarzz
    reboot: true
stages:
    initramfs:
        - hostname: kairos-{{ trunc 4 .Random }}
          name: Set user and password
          users:
            kairos:
                passwd: kairos
        - hostname: kairos-{{ trunc 4 .Random }}
          name: Set user and password
          users:
            kairos:
                passwd: kairos

Notice the duplicate entries in the 90_custom.yaml file above

Sanity check, the datasource cdrom doesn't have duplicate entries:
kairos-ft00:/home/kairos # mkdir /tmp/cdrom
kairos-ft00:/home/kairos # mount /dev/sr1 -t iso9660 -o ro /tmp/cdrom
kairos-ft00:/home/kairos # ls /tmp/cdrom/
meta-data  user-data
kairos-ft00:/home/kairos # cat /tmp/cdrom/user-data
#cloud-config

stages:
  initramfs:
    - name: "Set user and password"
      users:
        kairos:
          passwd: "kairos"
      hostname: kairos-{{ trunc 4 .Random }}
fail_on_bundles_errors: true

debug: true

install:
  auto: true
  reboot: true
  device: auto
  grub_options:
    extra_cmdline: foobarzz
  bundles:
  - rootfs_path: /var/lib/extensions/kubo
    targets:
    - container://ttl.sh/31fb00c6-a4d6-4c0f-9646-32a8a5d8f7c4:24h

Reproducer outside tests:

Create a cloud config with: earthly -P +prepare-bundles-tests . This will create a bundles-config.yaml in the root directory of the kairos repo
Create a datasource.iso from the above config: earthly +datasource-iso --CLOUD_CONFIG=bundles-config.yaml  . This will create the file build/datasource.iso
Boot a kairos core image with the above iso mounted too (2nd cdrom)
Let the installation finish and reboot (it automatically reboots due to the config we provided)
Check the files in /oem

userdata and userdata.yaml are generated here: https://github.com/mudler/yip/blob/48147fae9dbcc91559cd590976816ca3f65a3bff/pkg/plugins/datasource.go#L246-L252
90_custom.yaml is generated here: https://github.com/kairos-io/kairos-agent/blob/b2c2220f3e2b83b65089d6a60f90eb72541827e7/pkg/elemental/elemental.go#L398

I found the guilty code: https://github.com/kairos-io/kairos-sdk/blob/f37fc75b5dfadcb8b17d91ca8b47066ec68df881/collector/collector.go#L258
We read every files that either contains userdata in the name or has a yaml or yml extension. Given we have both userdata and userdata.yaml in /oem , both pass the check and are read.
There is no difference between userdata.yaml and userdata according to the yip code (see link above). We only write userdata.yaml when it passes validation which means, yip assumes only userdata.yaml will actually be used. I think the correct fix is to remove the match for userdata from the kairos-sdk, since after all, userdata.yaml will be used due to the extension.
I removed the userdata matching condition and the duplication is gone.

Actually, since this was discovered through the bundles test, maybe it's a good place to test for regressions. E.g. test that the produced 90_custom.yaml configuration doesn't have duplicate entries. Let's do that too.


testNoArgsFunctional failed

This issue was originally submitted by @sorrowloki in SpongePowered/SpongeForge#2593.

Hello all! Just try to build through gradlew on my system. During building I had this:

SpongeForge version:  latest stable-7 branch
Java version: openjdk version "1.8.0_171"
Operating System: Debian 8

org.spongepowered.api.command.CommandSpecTest > testNoArgsFunctional FAILED
java.lang.IllegalStateException: Sponge has not been initialized!
at com.google.common.base.Preconditions.checkState(Preconditions.java:444)
at org.spongepowered.api.Sponge.check(Sponge.java:77)
at org.spongepowered.api.Sponge.getCauseStackManager(Sponge.java:269)
at org.spongepowered.api.command.dispatcher.SimpleDispatcher.process(SimpleDispatcher.java:338)
at org.spongepowered.api.command.CommandSpecTest.testNoArgsFunctional(CommandSpecTest.java:57)
Full report: https://gist.github.com/sorrowloki/8a84b376c91735e648efdfa38daf63d8

I've moved the issue for you @sorrowloki!
I actually get this too running on a similar. The test itself it technically fine, it just seems that the tests run in a different order on different systems... I guess?
Anyway, I advise just slapping @Ignore on it for now for your own workspace. The fix to this is simple but we'd need to confirm it doesn't mess with tests on other platforms (because the order may be incorrectly relied upon and it might break other tests).

Hello, @dualspiral! Sorry, that answered so long.
Thank that moved my issue here and again sorry for the mistake, this was my inattention.
Maybe yes. How can I check it? Sorry, I am too new in Java and in sponge's plugin development in particular. I will be glad to provide you with all the information that you need.
The tempory fix is just to change @Test to @Ignore? I tried it but without any success. Maybe I do something wrong?

If you're developing plugins, you don't need to create a Sponge workspace, you just need to build against the API that you can get from our repositories. I suggest having a look at https://docs.spongepowered.org/stable/ru/plugin/workspace/index.html
(though I notice that you're Russian, so may find https://docs.spongepowered.org/stable/ru/plugin/workspace/index.html better). This should help you get a workspace set up that you can build against.
To answer your question, you'd find the testNoArgsFunctional method in the SpongeAPI test package and add the @Ignore annotation.

https://github.com/SpongePowered/SpongeAPI


Remove acceptNewFields

According to this issue https://github.com/meilisearch/integration-guides/issues/39

Hi @curquiza,
I would like to be assigned to this issue, is it still available?
Thanks.

Hello @Ethenyl! yes it is! I assign you! 😁
Thanks for your involvement!

I have created #51 to fix this issue.


thread '' panicked at 'can not find resource

Steps to reproduce

Is this a bug? How can i use svg in vue style tag?
What is expected?
Load svg correctly
What is actually happening?
thread '' panicked at 'can not find resource: resolving<EMAIL_ADDRESS>for ModuleId { relative_path: "src/views/sys/404.vue", query_string: "?vue&type=style&index=0&scoped=aa1eef2d&lang.scss" }', crates\plugin_css\src\source_replacer.rs:52:13
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
System Info
Win10

Any additional comments?
No response

What version of @farmfe/core you used?  and Do you configure compilation.resolve.alias? Above code seem to work fine in our examples/vite-adapter-vue

I am migrating old vite projects，remove vite-svg-loader plugin then is work fine.

I see. thanks for supporting farm