Tweaks to TypeDesc to allow arraylen -n to mean unsized, with default length n.

(Submitted on behalf of Daniel Heckenberg)
Instead of arraylen == -1 meaning "unsized" and length < -1 having no
meaning, -n means "unsized with default length n".
This is helpful in supporting OSL arrays with runtime-settable lengths. It doesn't
have any immediate impact on OIIO per se, which has no internal uses for the
"array of indeterminite length" notation.

Actually reading the description again -- it sounds like arraylen for the unsized case only captures the notion of "default" length, which kind of explains the semantics above.
This has the potential to be confusing, since "default" can mean different things to different users.
Without having looked at the OSL side review yet -- the previous implemention of TypeDesc fit my mental model better of float[] just being effectively a "pointer" type of unknown length. My understanding was that you want TypeDesc to be a lightweight way to describe C types, and C types don't really have the notion of "default" length (unless you intend this to become some way of effectively representing "slices" - ala "array_view").
Are we just trying to shoe-horn a length inside this type that really belongs on the OSL side?
Or have I mis-understood the intent?

OK, so previously, arraylen<0 already meant "unspecified length", i.e. float[].  But in practice, we always used -1 for that value and blithely ignored the possibility that it might take on a value <=-2.
I believe the intent of this patch is that all those places we tested specifically for -1, now we test for < 0. In some sense this is safer (having it set to -2 would probably have made for some very strange behavior). This patch makes it so that no values of the arraylen field will lead to undefined behavior.
On the OIIO side, that's all it does.
But in addition, this frees the particular negative value to have some meaning to an app (though not to TypeDesc internals), and on the OSL side, it seems convenient for it to mean "the number of initializers we were given for this unspecified-length array."
I think there are two questions to ask:

On the OIIO side, should we take all negative values to indicate "array of unspecified length", thus leaving no values for arraylen whose meaning is undefined. I believe this is an improvement and we should accept it.

On the OSL side, should we use this more robust behavior surrounding the range of negative arraylen values to encode the notion of "array of unspecified length, but with THIS many initializers" in the TypeDesc itself (with OIIO per se unaware that we are using particular values for particular meanings; OIIO itself treating all negative value lengths as having equivalent meaning, and comparing as equal). Or, is it sloppy to overload this meaning on the TypeDesc::arraylen, and we should instead make a new field in the Symbol (? or the TypeSpec?) that explicitly encodes the number of initializers that were found? That one is more shaky, and I would certainly support having an explicit field in the appropriate place rather than try to shoehorn it into TypeDesc.

I just pushed a follow-up delta to this PR that clarifies some comments, and adds is_array(), is_sized_array(), and is_unsized_array() methods, using those in several places rather than explicitly testing the arraylen field definitely makes the intent clearer.
So I think that is an improvement.
But in doing so, I think I've uncovered some conceptual cracks. Chris, as usual, may be on to something.
Let's take operator==. Should two arrays of indefinite length be considered equal types? I think, probably, yes. When we used -1 only to signify unspecified length, the == test worked in an intuitive way. But now we could have two arrays of indefinite length (one with -2, and one with -5), and it will fail the equality test. Should it fail? I don't know.
I don't know how to describe, in the comments to operator==, why arraylen -2 and arraylen -5 (which we previously said were semantically both meaning the same thing, "unspecified length array") should not be considered equal. And to explain it in terms of numbers of initializers or default length would seem likely to provoke a "huh?" in the reader rather than a sense of understanding. Similarly, it's not immediately clear why asking for the numelements() should give the abs(arraylen) as its result, without further explanation that the number does encode something in particular. So that kind of trashes my earlier argument that this keeps prior TypeDesc semantics and merely eliminates the possibility of values leading to undefined behaviors.
One way out of this is to further explain, on the OIIO side, that the particular negative arraylen value has a meaning after all: that although the length is unspecified, if the array ever needs to be allocated (e.g., it needs length, and nobody else has yet come along to change the unspecified length to a fixed length), that there is a notion of default length to use in that case. Chris might say "that's not a C concept", but I don't think that's a strong argument, considering that we also have aggregate and vecsemantics fields that encode things about the type that doesn't correspond to anything in C. The "not C" angle is not a showstopper for me.
I will observe that the use of particular negative values to mean a default length of the unspecified array leaves a conceptual hole: there is NO way to say that the array has unspecified length, and also has no initializers/default length, if you catch my drift. I'm not sure if this is important -- perhaps not, since the alternative (status quo) also doesn't give you any notion at all about default lengths.
The other solution is to admit that Chris is right, abandon (or at least delay) this patch while we search for an OSL-only solution for how OSL should encode the notion that an array of unspecified length may have a number of initializers. (Similarly to how OSL encodes that a type is a closure, or designates a struct, completely on the OSL side without burdening the compact and simple TypeDesc.)
I'm on the fence. An OSL-side solution is probably cleaner, but on the other hand I don't necessarily object to the idea of having the notion of "unspecified length, but if you are forced to allocate space for it and need to fix a length, here's the size to use."

I think what I'll do is noodle with Daniel's OSL-side patch, see if it can be made to work cleanly and more readably without any changes to TypeDesc, see how far I get. If that pans out, then we can abandon or alter the TypeDesc PR. If not, we have a stronger argument for it.

Yep - that summarizes where I was getting confused.
There are really two bits of information:

a type can be an array or not (note: we currently distinguish between float and float[1])
a type can be tagged as being a variable length array (encoded as negative arraylen in this patch)

The question is what "variable length array" really means. It does seem convenient on the OSL side, but its meaningless (I think?) outside of this context.
So maybe what we need to do is remove all notions of "unsized" or "varlen" arrays from OIIO's TypeDesc and handle the "varlen" concept purely on the OSL side where it does have a meaning. This way we can think of TypeDesc purely as something that describes concrete types that can exist in memory. As you said earlier, OIIO does not have any use for the "varlen" concept.

And just to make a case for the currently proposed change:
We could clarify that negative array lengths mean: "this type is a view onto externally allocated memory". The absolute value then tells you how many elements it is safe to access. I think this could also be useful on the OSL side for "varlen" arrays because it would reflect that although they are very much like arrays, their length is "controlled" externally (by the default value, the instance value or some other connection). I could also see it being useful in other places that use TypeDesc but that is more speculative.
Positive lengths would imply that this type is both an array and owns its own memory (like how you can declare an array of 3 floats on the stack in C).
If we took this stance, we might want to include the arraylen==0 case to mean: "this is a view onto an empty float array" (kind of how you can have a string_view of length 0).
This would imply either additional bits, or making arraylen==1 be used for regular types. In other words (float and float[1] would become the same thing).

I definitely don't think 'float' and 'float[1]' are the same thing at all. I'm firm on that. Like in C, you can't pass a float value to a function parameter whose type was declared as float[1], or vice versa. They are definitely not the same.
I understand what you're saying about views, but I never though of TypeDesc as describing that at all, it seems like a much bigger semantic change. Also note that the emerging C++ concept of views (string_view, and soon array_view) do not have any notion of unspecified lengths; they always have a definite length.
TypeDesc is meant to encode a type, not the allocation status of a variable. That is subtly different.  Consider the type of a function parameter. It may be "float[]", meaning it's a float array. But until the function is called and a variable is bound, you don't know its allocation status. But the type of the function parameter is not indeterminate, or shifting around like Shrödinger's Cat; it's an array, but of unspecified length. I want to be able to capture that concept.
One solution is to make a separate field for "arrayness": scalar, fixed length array, unspecified length array. And a separate (unsigned) length. For a scalar, the only length that makes sense is 1. For a fixed length array, the length is the length. For an array of unspecified length, a length of 0 could mean the usual float[] (no information on the length) while a nonzero length could mean that the array represents a view to a known safe length. Though, that's still not exactly what we want on the OSL side -- it's not a view, it's just the idea that the default initializer had a certain number of values, so if it's not overridden with a different instance value (an array of fixed length), that's the size that we'll eventually allocate. That does seem to argue for trying to capture it all on the OSL side.

That all makes sense.To me it suggests we should just remove the current support for "unsized" (-1) case from TypeDesc and make it unsized.
Hopefully not too many places on the OSL side rely on that case. My guess is they are mostly addressed by the parallel review. Its just a matter of moving the concept from TypeDesc to TypeSpec.
Maybe on the OSL side we want to always keep TypeDesc of the raw type (no array) and always measure the array view something in TypeSpec (at least until the concrete length is known for sure).

In https://github.com/imageworks/OpenShadingLanguage/pull/497 , I proposed an alternate patch on the OSL side that does not need any of these changes. I therefore recommend that we abandon this patch, it's unnecessary.

Thanks for the very detailed comments.  As observed, I took the path of greatest convenience and least code change for the patch, but I agree there are conceptual issues which would be best to solve cleanly.
The concept which the PR encodes is to describe an instance of a sized array which is allowed to change its size, which maps well to the "varlen" terminology.  The alternative being discussed is that TypeDesc doesn't so much apply to instances as definitions.

I agree: let's abandon this change and make it self-contained in OSL.

Rather than fully abandon, I decided that I still liked a few of the helper methods I had added, and DASSERT like in the corresponding OSL review, both to improve readability of the code and reduce the chances of subtle bugs in the use of this class. Updated the PR to have just these changes and no others.

LGTM

Looks good -- as noted in the OSL review, public access to the arraylen member leaves the possibility of bugs in the unsized case, but this is definitely an improvement.


How does EVCache handle race condition caused by ReplicationAgent

Hi,
Looks like EVCache does replication through Kafka and HTTPS. It means the replication mesaages can be out of order.
For example, SET K1=V1, DEL K1, SET K1 = V2 can be received by another datacenter as SET K1=V2, DEL, SET K1 = V1,which results into a stale value.
Does EVCache handle that? And what kind of consistency does it guarantee?

The scenario that you have described is for cross region and it is best effort. It can go out of order. For cache fronting a data store we usually delete the data. i.e. if
Region 1 we SET K1=V1 we send DEL K1 to region 2, region 3, etc. This ensure caches are coherent.
For use cases where evcache is the data store we offer checksum in the metadata that we write to kafka. so if when K1=V1 we compute the checksum and store it. If the replication system reads value for K1 and the checksum does not match it drops the event. There might be scenarios where we read K1=V1 and within short timespan we read K1=V2. When we replicate there are chances where the other regions can have K1=V1. If strong consistency is needed you can configure the topic to do key based partitioning in kafka so the key goes to same partition and is consumed by the same consumer. This way you can synchronize cross region events. Choosing this approach however will slowdown the replication.
For the use case where the writes happen in the same region we offer Latch which the users can block on to ensure writes are successful before they proceed to the next operation.


Add WIO_3G support

WIO_3G is added.

The repository was deprecated and it's being archived now. We are closing all issues/pull requests.


QR scanner.

-After using the QR scanner (main menu bottom middle button) and hiding it’s “tab” the camera stays toggled on for no reason. -Only when the app is open, goto different app it’s gone, switch back in and camera toggles on.

Ideally, this can be tackled as part of https://github.com/bithyve/hexa/issues/1833

Closing as a duplicate of #1833.


Original design files?

Probably too much to ask, but Im using this as a basis for a larger design for a 10.1" DSI display and a PI5.  Ive been slicing and dicing the STL files in tinkercad, trying to keep all dimensions the same (hinges/bezels etc), and only inserting space along the xy axis by cutting and then extruding a center part.  It's working well enough.  But If the original files were available in fusion, freecad or whatever was used that would make it easier.  The STEP files possibly could be used and look great, but I think it would be easier to adjust the constraints only in the places I need. Probably what I have would work fine if not. Just thought it might be worth asking.
Thanks again for a great project!.
Bryan

Oh and Ill be using a vortex core keyboard and an MNT Trackball if anyone was wondering.  Should make a nice little (and fairly useable) retro laptop.


Q: plotting [source x RGBA] array on brain surface

Hi there,
I am trying to plot an array of RGBA values (shape: [source x RGBA], [5124 x 4]) on a pysurfer brain. In other words, I want to manually specify the RGBA value at each vertex. The brain object can be from MNE-Python or Pysurfer natively, I don't mind. I have tried playing around with the LUT but I think I am making things much more complicated than they need to be.
Do you know of a way I could achieve this? Perhaps one method would be to access the RGBA values of the brain image itself, and simply add my RGBA values on top of it; but I can't find the cortex RGBA values to manipulate, and maybe you know a better method.
It's been suggested to me that @larsoner may be one of the people to ask - I hope you don't mind me flagging you here.
Thank you very much in advance. I really appreciate it!
Laura

I don’t know off the top of my head how to do this, or even if it is possible. Hopefully Eric knows. If it turns out to be reasonably straightforward, it would be a good thing to,add to,the example gallery.

You can more or less translate any VTK example to Mayavi using TVTK. Adapting this one, found by Googling "vtk mesh color per vertex":
https://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/TriangleColoredPoints
I made this:
import mne
from mayavi import mlab
import numpy as np
from tvtk.api import tvtk

rr, tris = mne.read_surface(
    mne.datasets.sample.data_path() + '/subjects/fsaverage/surf/lh.pial')
x, y, z = rr.T
colors = np.array([np.linspace(0, 1, len(x)), np.zeros(len(x)),
                   np.linspace(1, 0, len(x))]).T

fig = mlab.figure()
mesh = mlab.pipeline.triangular_mesh_source(
    x, y, z, tris, figure=fig)
mesh.data.point_data.scalars.number_of_components = 3
mesh.data.point_data.scalars = (colors * 255).astype('ubyte')
mapper = tvtk.PolyDataMapper()
configure_input_data(mapper, mesh.data)
actor = tvtk.Actor()
actor.mapper = mapper
fig.scene.add_actor(actor)

I think this could in principle be adapted to add data (e.g., after interpolating the R/G/B values to all surface vertices using the morphing matrix, similar to how we interpolate scalar data to the high-resolution mesh before colormapping). There might be other considerations such as blending with other elements in the scene, but we can figure those out later if need be.

... oh, and a screenshot after changing the code above to add an alpha that depends on the Z value:

This is really helpful, thank you so much!
My only other question is whether it is possible to plot this mesh on top of the grey/black cortex surface? Right now I have something like the screenshot below, which is pretty much what I was after, but I feel like the alpha isn't properly interpretable unless it's covering up the background brain to a greater or lesser extent. Would this be difficult to add in?
Thank you again,
Laura

The easiest way to do that would be to use PySurfer to give you the cortical surface before doing the stuff above:
fig = mlab.figure()
brain = surfer.Brain('fsaverage', 'left', 'lat', figure=fig)
...

There are plenty of ways to configure the view of the cortical surface:
https://pysurfer.github.io/generated/surfer.Brain.html#surfer.Brain

PS when modulating the alpha of the overlay it's generally best not to show the curvature on the brain surface or else you get into problems interpreting low alpha over the lighter color vs high alpha over the darker color.

ah, perfect! all solved -- thank you both so much for your help!

@LauraGwilliams do you have time to turn this into a little example for the gallery?

It’s worth thinking about whether we want to have examples that primarily involve futzing with mayavi in the gallery, or If there is a better place (I.e. more of a “cookbook”)

Sure, I can do that! Where do you want it to go?

https://github.com/nipy/PySurfer/tree/master/examples
Maybe plot_custom_colors? I assume you had to plot a brain, take your ~5000 values and interpolate them (using PySurfer interpolation matrix) and plot? If so this seems generally pretty useful, and a good showcase of how to use PySurfer's computations for custom viz.

ping @LauraGwilliams if you have time :)

Yes I'm so sorry -- I haven't forgotten. I will try to get to this soon!!


Typescript definition file

Hi all,
If someone has typescript d.ts file, can you please share?
Thanks.

I've updated the JSDoc comments and my typescript generator to bring you this:
https://github.com/englercj/resource-loader/tree/master/typings
If you encounter any issues, let me know.

@englercj Hi Chad, Thanks for d.ts
I a getting following issues..

node_modules/resource-loader/typings/resource-loader.d.ts:11:19 - error TS2709: Cannot use namespace 'async' as a type.

11     static async: async;
                     ~~~~~

node_modules/resource-loader/typings/resource-loader.d.ts:12:26 - error TS2304: Cannot find name 'encodeBinary'.

12     static encodeBinary: encodeBinary;
                            ~~~~~~~~~~~~

node_modules/resource-loader/typings/resource-loader.d.ts:13:20 - error TS2304: Cannot find name 'encodeBinary'.

13     static base64: encodeBinary;
                      ~~~~~~~~~~~~

node_modules/resource-loader/typings/resource-loader.d.ts:21:17 - error TS2304: Cannot find name 'Signal'.

21     onProgress: Signal;
                   ~~~~~~

Following changes needs to be done, to make it work.
https://github.com/englercj/resource-loader/blob/master/typings/resource-loader.d.ts#L11
static async: typeof async;
static encodeBinary: typeof encodeBinary;
static base64: typeof encodeBinary;

https://github.com/englercj/resource-loader/blob/master/typings/resource-loader.d.ts#L90
load(cb?: Loader.OnCompleteSignal): void;

and also could include Signal types inside Loader namespace.
Here is my handwritten d.ts for reference,
https://gist.github.com/goldenratio/4ec8441b21ac2a80d8f58b7bc12b60fe

I'm still trying to figure out how to annotate in jsdoc that a type should be typeof. Haven't figured that one out. If you know if JSDoc has a syntax to distinguish between an instance and typeof, let me know.
I'll make the change to fix the OnCompleteSignal, some of the Resource callbacks aren't getting set correctly.
As for signals, I think the typings here should import it but not define it since it is a separate module. I'll try to fix that up as well.

I've fixed up the typeof and OnCompleteSignal problems, but still thinking about how to solve the Signal one.

also shouldn't Signal be MiniSignal.  https://github.com/Hypercubed/mini-signals/blob/master/typings/mini-signals.d.ts
I see that we are using default import in Resource.js

triple-slash directive will not work. I think we might need to need include MiniSgnal types inside resource-loader.d.ts

Yeah I was going to experiment with using import directives and see if that let typescript resolve the files correctly through the mini-signals project. Not sure if it will work, and if not I'll put them in myself.

@englercj also add function is missing multiple signatures..
// tslint:disable-next-line:no-any
add(...params: any[]): Loader;

add(name: string, url: string, options?: LoaderOptions, cb?: () => void): Loader;

add(url: string, options?: LoaderOptions, cb?: () => void): Loader;

Yeah, again JSDoc doesn't really have a way to do overloads. So instead I picked a permissive one that contains most of them. If you can figure out how to make overloads show up in JSDoc, please update it.

function overloading seems to work in JSDoc. Try this please..
     /**
     * @function
     * @variation 1
     * @param {Array<string>} name Array containing urls
     * @return {this} Returns itself.
     *//**
     * @function
     * @variation 2
     * @param {string|object|any[]} name Array containing urls
     * @param {IAddOptions} [options] - The options for the load.
     * @param {Loader.OnCompleteSignal} [cb] - Function to call when this specific resource completes loading.
     * @return {this} Returns itself.
     *//**
     * @function
     * @variation 3
     * @param {string} name - The name of the resource to load, if not passed the url is used.
     * @param {string} url - The url for this resource, relative to the baseUrl of this loader.
     * @param {IAddOptions} [options] - The options for the load.
     * @param {Loader.OnCompleteSignal} [cb] - Function to call when this specific resource completes loading.
     * @return {this} Returns itself.
     */

It generates,
 add(name: string[]): this;
add(name: string | any | any[], options?: IAddOptions, cb?: Loader.OnCompleteSignal): this;
add(name: string, url: string, options?: IAddOptions, cb?: Loader.OnCompleteSignal): this;

I can create a PR when I get home.

I tried something similar to that before and didn't get what I expected, but if it is working for you, maybe you found the secret sauce. I'd love a PR!

@englercj  please check https://github.com/englercj/resource-loader/pull/126

I am seeing below errors now.. I will investigate soon
node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:23:17 - error TS2315: Type 'MiniSignal' is not generic.

23     onProgress: Signal<Loader.OnProgressSignal>;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:24:14 - error TS2315: Type 'MiniSignal' is not generic.

24     onError: Signal<Loader.OnErrorSignal>;
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:25:13 - error TS2315: Type 'MiniSignal' is not generic.

25     onLoad: Signal<Loader.OnLoadSignal>;
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:26:14 - error TS2315: Type 'MiniSignal' is not generic.

26     onStart: Signal<Loader.OnStartSignal>;
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:27:17 - error TS2315: Type 'MiniSignal' is not generic.

27     onComplete: Signal<Loader.OnCompleteSignal>;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:89:14 - error TS2315: Type 'MiniSignal' is not generic.

89     onStart: Signal<Resource.OnStartSignal>;
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:90:17 - error TS2315: Type 'MiniSignal' is not generic.

90     onProgress: Signal<Resource.OnProgressSignal>;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:91:17 - error TS2315: Type 'MiniSignal' is not generic.

91     onComplete: Signal<Resource.OnCompleteSignal>;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

node_modules/@gsbaltic/resource-loader/typings/resource-loader.d.ts:92:24 - error TS2315: Type 'MiniSignal' is not generic.

92     onAfterMiddleware: Signal<Resource.OnCompleteSignal>;
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

You probably included multiple type definitions for "mini-signals". The others are not generic.


[5.3] fire new Registered event when user registers

As proposed in laravel/internals#197 this PR adds a new event, Illuminate\Auth\Events\Registered, which fires when registering a user via the RegistersUsers trait.

🎉  Yay! Thanks @taylorotwell

🚀


chip-tool pairing ble-wifi command is failing

Problem
https://github.com/project-chip/connectedhomeip/pull/14751 had disabled Wi-Fi and replaced it with Thread.
By making the Thread (as default), the chip-tool pairing ble-wifi command does not work anymore.

expected behavior
chip-tool pairing ble-wifi command should work
actual behavior
chip-tool pairing ble-wifi command is not working in the latest master
steps to reproduce
Run "chip-tool pairing ble-wifi" command

Please provide more details about:

What is the config at commissioning side
What is the config at commissionee side
Logs for both sides

Slack resolution: lighting-app was being used, which does not have proper Network Commissioning cluster setup on LInux.


[tracking] clean up dependeny licenses

cargo license tells us we have a bit of cleaning up to:
GPL 3
The following leak the GPL-3.0 into our substrate (other than our local ones) – but are under our control:
parity-util-mem, fdlimit, kvdb-memorydb, parity-util-mem, parity-bytes, kvdb-rocksdb, kvdb, kvdb-web,
And the following are pulled in:

[x] webpki– Customm ISC afaid...
[x] ring – Custom License, I understand to be ISC, is that correct?
[x] target_info – MIT
[ ] fuchsia-cprng (via rand 0.4.6, through tempdir in sc-client-db), which I can't really find the appropriate License definition for, but  we should really upgrade rand because it dropped the dependency already

ring uses an ISC license for all new code, but it is based on BoringSSL, which is a fork of OpenSSL.

according to wikipedia fuchsia is " BSD, MIT, Apache License 2.0"


Pull #599 broke FormBuilderTypeAhead generics

https://github.com/danvick/flutter_form_builder/pull/599
I've been using it this way
FormBuilderTypeAhead<Category>(......)
I'm getting the error type 'String' is not a subtype of type 'Category' in type cast specifically on line 393
didChange(_typeAheadController.text as T);
Which obviously won't work since _typeAheadController.text will always be a String.
Thanks!  Love the plugin!

I can confirm I have a similar issue...

Glad I found this, because I was searching for hours for that TypeError in my code...
And I think the following may be related:
With version 3.1.4 this code was working:
                            FormBuilderTypeAhead<Manufacturer>(
                              decoration: const InputDecoration(
                                labelText: 'Manufacturer',
                              ),
                              initialValue: _device.manufacturer,
                              attribute: 'manufacturer',
                              onChanged: (manufacturer) {
                                logger.log(
                                    "Setting manufacturerName to " +
                                        manufacturer.name,
                                    name: _logCategory);
                                logger.log(
                                    "Setting manufacturerId to " +
                                        manufacturer.manufacturerId.toString(),
                                    name: _logCategory);
                                //some usage of the id here...
                              },
                              itemBuilder:
                                  (context, Manufacturer manufacturer) {
                                return ListTile(
                                  title: Text(manufacturer.name),
                                );
                              },
                              selectionToTextTransformer: (Manufacturer c) =>
                                  c.name,
                              suggestionsCallback: (query) {
                                if (query.isNotEmpty) {
                                  var lowercaseQuery = query.toLowerCase();
                                  return _manufacturers
                                      .where((manufacturer) {
                                    return manufacturer.name
                                        .toLowerCase()
                                        .contains(lowercaseQuery);
                                  }).toList(growable: false)
                                        ..sort((a, b) => a.name
                                            .toLowerCase()
                                            .indexOf(lowercaseQuery)
                                            .compareTo(b.name
                                                .toLowerCase()
                                                .indexOf(lowercaseQuery)));
                                } else {
                                  return _manufacturers;
                                }
                              },
                              validators: [
                                FormBuilderValidators.required(
                                    errorText: AppLocalizations.instance
                                        .text('info_required_field')),
                                FormBuilderValidators.maxLength(
                                  50,
                                  errorText: AppLocalizations.instance
                                          .text('info_max_length') +
                                      "50",
                                ),
                              ],
                            ),

It let me search for a manufacturer name and on the selection it gave me the id. I also used it to introduce a new manufacturer when a new name was entered (not in the list) because the id then was obviously not set.
Besides the error mentioned by the OP, I've an additional problem with version 4.0.2:
In case of a new entry I want to validate the length of the name.
                              validator: FormBuilderValidators.compose(
                                [
                                  FormBuilderValidators.required(context,
                                      errorText: AppLocalizations.instance
                                          .text('info_required_field')),
                                  FormBuilderValidators.maxLength(      //<--- Error here!
                                    context,
                                    25,
                                    errorText: AppLocalizations.instance
                                            .text('info_max_length') +
                                        "50",
                                  ),
                                ],
                              ),

But I get an error on the second FormBuilderValidator (maxLength) saying: "The element type 'String Function(String)' can't be assigned to the list type 'String Function(Manufacturer)'"
So please, If you fix this and my point is related, I'll be happy to test the next release!

The issue still exists with release 4.2.0. Which one is the duplicate issue?

The issue still exists with release 4.2.0. Which one is the duplicate issue?

The issue still exists with release 4.2.0. Which one is the duplicate issue?

https://github.com/danvick/flutter_form_builder/issues/674 I believe this one is related

The issue still exists with release 4.2.0. Which one is the duplicate issue?

https://github.com/danvick/flutter_form_builder/issues/674 I believe this one is related

This still a issue?

Due to lack of response and an old error, I will close this issue.
If the bug still exists, feel free to open a new issue


BUG AND FEATURE REQUEST

When you do reload pex via command the temporary permission (not group) resets too. players looses temporary perms when plugin is reloaded
Please save the temporary permission to file/sql
make main groups and subgroups

main group is priority on prefixes
subgroup you will only inherit the permission not the prefix

when adding a group to a player (not group set) the player looses the default group permission

work around is add the default inheritance to the sub group

If you have not done this already would like to see a way to use weights per world, I'm running older software that is not suppose to run on a bungee server and if I can have different weights for ranks per world I would be able to set citizen on a world to the dominate rank and another world it to another rank to be considered primary

These are all intentional design decisions in PEX 1.x. The first issue can be worked around by setting permissions on a group, then adding that group as a temporary group.
The second issue will hopefully be resolved in PEX 2.0 with more flexible weight handling.
The last issue is resolved in PEX 2.0: the default group is always applied to users


Support returning in update many

Motivation
Currently only update supports the RETURNING clause, but not the update_many.
This is limiting since sometimes you need to use an update_many when the update doesn't support a feature (like a column expression) but then you lose the returning.
Proposed Solutions
Add exec_with_returning to the UpdateMany struct.
Current Workarounds
You have to select back the rows.

Hey @Sytten, good suggestion!! I think it's possible and nice to have :)

Thanks!


uninitialized constant ActiveSupport::XmlMini::IsolatedExecutionState

Issue
RSpec NameError with Rails 7.x.x
joshuawilkosz@joshua binance-ruby % bundle exec rspec spec/binance/websocket_spec.rb

An error occurred while loading ./spec/binance/websocket_spec.rb.
Failure/Error: require "active_support/core_ext/string"

NameError:
  uninitialized constant ActiveSupport::XmlMini::IsolatedExecutionState
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/xml_mini.rb:184:in `current_thread_backend'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/xml_mini.rb:103:in `backend='
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/xml_mini.rb:201:in `<module:ActiveSupport>'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/xml_mini.rb:11:in `<top (required)>'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/array/conversions.rb:3:in `require'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/array/conversions.rb:3:in `<top (required)>'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/duration.rb:3:in `require'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/duration.rb:3:in `<top (required)>'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/time/calculations.rb:3:in `require'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/time/calculations.rb:3:in `<top (required)>'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/string/conversions.rb:4:in `require'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/string/conversions.rb:4:in `<top (required)>'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/string.rb:3:in `require'
# /Users/joshuawilkosz/.rvm/gems/ruby-2.7.5/gems/activesupport-7.0.1/lib/active_support/core_ext/string.rb:3:in `<top (required)>'
# ./lib/binance-ruby.rb:1:in `require'
# ./lib/binance-ruby.rb:1:in `<top (required)>'
# ./spec/spec_helper.rb:19:in `require'
# ./spec/spec_helper.rb:19:in `<top (required)>'
# ./spec/binance/websocket_spec.rb:1:in `require'
# ./spec/binance/websocket_spec.rb:1:in `<top (required)>'
No examples found.

Finished in 0.00002 seconds (files took 0.17595 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

greatly appreciate you submitting your PRs! 🙌


Delay when looping videos

Hey there! I noticed that when looping videos, there is a short delay between each loop.
If the video has a cover image, it is displayed until the video starts playing.
If the video doesn't have a cover image, the video disappears and then reappears when it starts playing.
We're trying to play some perfectly looping videos. The video files are on the device, not remote. Any ideas on how to go about fixing this?

I have the same issue here, I want to have a perfect loop for my videos but it keeps lagging in between loops.

The same thing. Only Android. iOS is working fine.

I'm trying to use this module to play sounds in my game and I also need seamless gapless looping. is it possible at all?

@holmesal We had the same issue but this is not a video player issue actually. A lot of times the audio track that's within the video file is slightly longer than the video itself. Therefore, there is a little lag.
You can either remove the audio track completely and make sure it's the same exact length. This is a tool that makes it both the same length: https://github.com/fluthaus/NHBAVAssetTrimming
Because even using the native Looper didn't work. Once we fixed the audio track, our loop was perfect.


feat: support guided panic info with backtrace

Summary

Panics are not supposed to happen on the user-side.
But when it occurs, we should provide more clear message to guide user to report the fatal error back to us.

Related issue (if exists)

Types of changes

[ ] Docs change / Dependency upgrade
[ ] Bug fix
[X] New feature / Improvement
[ ] Refactoring
[ ] Breaking change

Checklist

[X] I have added changeset via pnpm run changeset.
[ ] I have added tests to cover my changes.

CI is failed


Handle unnecessary dependencies

When someone is setting up a file server they have no need for the sparql related dependencies., Similar for file locks and redis locks and other components.
One solution would be to put those dependencies in peerDependencies instead. We would then need install scripts tied to configs to make sure the correct dependencies can easily be installed. Another way to do this would be to have separate packages with the correct dependencies like Comunica handles it, but that might be harder to keep track of and is more effort to keep up to date.
Question is also how far we would want to go with this. There are very few dependencies (I think only logging and componentsjs) that are relevant for all modules, so technically most of them could be put in peerDependencies, but that might make it more confusing for first-time users.

Since this is all server-side, having unused dependencies is probably not that big a problem.
-1 for using peerDependencies for this. Most users will not expect having to install additional dependencies, and this will probably lead to a lot of confusion.
I would be in favor of modularizing, but that would indeed require a bit more effort (a lot can be solved via a monorepo).

Probably not relevant indeed since this is all server-side


convert <class 'function'> failed: Transform failed of <class 'function'>: 'function' object has no attribute ''

debug info:

singledispatch_proxy wrapper first_param:  <function ProxySubmodule.getattribute.<locals>.<lambda> at 0x7fedb8479ab0>
MockEntityNameFormatter _format_full_class_name: onediff.infer_compiler.transform.builtin_transform.ProxySubmodule.getattribute.<locals>.<lambda>

error info:
onediff/src/onediff/infer_compiler/transform/builtin_transform.py:233 - convert <class 'function'> failed: Transform failed of <class 'function'>: 'function' object has no attribute ''
funciton info:
<function ProxySubmodule.getattribute at 0x7fedb847fe20>

could you tell me, which model are you trying to convert by onediff?
it may be caused some closure feature of python

@doombeaker I try to find an open source demo. Error related codes:
def getattribute(self, attribute) (onediff/src/onediff/infer_compiler/transform/builtin_transform.py)
elif attribute in ["forward", "_conv_forward"]:
replacement = proxy_class(type(self._oflow_proxy_submod))
return lambda *args, **kwargs: getattr(replacement, attribute)(
self, *args, **kwargs
)

@doombeaker https://github.com/MooreThreads/Moore-AnimateAnyone demo has similar errors.

@doombeaker could you tell me, how to fix this issue?  first of all,  do i need to redefine the corresponding oneflow class and register it based on the register interface? （https://github.com/MooreThreads/Moore-AnimateAnyone/tree/master/src/models）

error info:  TemporalBasicTransformerBlock module's forward interface is hijacked by hacked_basic_transformer_inner_forward.(https://github.com/MooreThreads/Moore-AnimateAnyone/blob/master/src/models/mutual_self_attention.py)
does oneflow support this situation？ @strint @doombeaker

TemporalBasicTransformerBlock module's forward is not hijacked(reference_attn is False),
oneflow can execute the compile process despite the following error.  (https://github.com/MooreThreads/Moore-AnimateAnyone/blob/master/src/models/mutual_self_attention.py)
ERROR run got error: <class 'oneflow._oneflow_internal.exception.Exception'> Cannot find the kernel matching Current OperatorConf.  The Info of OperatorConf are
op_name: model.up_blocks.0.upsamplers.0-upsample_nearest_3d-1965
op_type_name: upsample_nearest_3d
DeviceType_Name: kCUDA
DataType_Name of x_0: kFloat16
DataType_Name of y_0: kFloat16
File "oneflow/core/job/job_interpreter.cpp", line 326, in InterpretJob
RunNormalOp(launch_context, launch_op, inputs)
File "oneflow/core/job/job_interpreter.cpp", line 238, in RunNormalOp
it.Apply(op, inputs, &outputs, OpExprInterpContext(empty_attr_map, JUST(launch_op.device)))
File "oneflow/core/framework/op_interpreter/eager_local_op_interpreter.cpp", line 155, in NaiveInterpret
PhysicalRun([&](InstructionsBuilder builder) -> Maybe ... output_eager_blob_objects), ctx, result->stream()); })
File "oneflow/core/framework/instructions_builder.h", line 168, in PhysicalRun
Build(&instructions_builder)
File "oneflow/core/framework/instructions_builder.cpp", line 400, in Call
vm::OpCallInstructionPolicy::New( vm_stream, opkernel ... global_tensor_infer_result, ctx, *one::CurrentDevVmDepObjectConsumeMode())
File "oneflow/core/vm/op_call_instruction_policy.h", line 50, in New
ptr->Init()
File "oneflow/user/kernels/stateful_opkernel.cpp", line 920, in ChooseOpKernel
user_op::UserOpRegistryMgr::Get().GetOpKernelRegistryResult(op_type_name, reg_ctx)
Error Type: oneflow.ErrorProto.op_kernel_not_found_error

@wangerlie is working on it, and will let you know if there is any progress

hey,are you trying to use the onediff to accelerate the animate anyone? i'm also working on it. and i find that the torch2.2.0 + torch.compile + cudnn8.6 will speed up animate anyone about 30%. but it is really weird that if i run the pipeline consecutively twice，the second result is completely the same as the first result even if i change the reference image of second execution.
so i try to use onediff, and Transform failed of <class 'function'>: 'function' object has no attribute '<locals>' error happens

hey,are you trying to use the onediff to accelerate the animate anyone? i'm also working on it. and i find that the torch2.2.0 + torch.compile + cudnn8.6 will speed up animate anyone about 30%. but it is really weird that if i run the pipeline consecutively twice，the second result is completely the same as the first result even if i change the reference image of second execution.
so i try to use onediff, and Transform failed of <class 'function'>: 'function' object has no attribute '<locals>' error happens

@zhangvia torch.compile  dynamic=True?

my denoising unet takes fixed shape latent as input, and i don't use torch.compile to compile the referencenet,because the pipeline only run referencenet once when generate video.

sorry the bug is still here when set dynamic=true. but if i set os.environ['TORCH_LOGS']="recompiles", the bug disappear

@strint @doombeaker TemporalBasicTransformerBlock module's forward is not hijacked(reference_attn is False), oneflow can execute the compile process despite the following error. (https://github.com/MooreThreads/Moore-AnimateAnyone/blob/master/src/models/mutual_self_attention.py) ERROR run got error: <class 'oneflow._oneflow_internal.exception.Exception'> Cannot find the kernel matching Current OperatorConf. The Info of OperatorConf are op_name: model.up_blocks.0.upsamplers.0-upsample_nearest_3d-1965 op_type_name: upsample_nearest_3d DeviceType_Name: kCUDA DataType_Name of x_0: kFloat16 DataType_Name of y_0: kFloat16 File "oneflow/core/job/job_interpreter.cpp", line 326, in InterpretJob RunNormalOp(launch_context, launch_op, inputs) File "oneflow/core/job/job_interpreter.cpp", line 238, in RunNormalOp it.Apply(op, inputs, &outputs, OpExprInterpContext(empty_attr_map, JUST(launch_op.device))) File "oneflow/core/framework/op_interpreter/eager_local_op_interpreter.cpp", line 155, in NaiveInterpret PhysicalRun([&](InstructionsBuilder builder) -> Maybe ... output_eager_blob_objects), ctx, result->stream()); }) File "oneflow/core/framework/instructions_builder.h", line 168, in PhysicalRun Build(&instructions_builder) File "oneflow/core/framework/instructions_builder.cpp", line 400, in Call vm::OpCallInstructionPolicy::New( vm_stream, opkernel ... global_tensor_infer_result, ctx, *one::CurrentDevVmDepObjectConsumeMode()) File "oneflow/core/vm/op_call_instruction_policy.h", line 50, in New ptr->Init() File "oneflow/user/kernels/stateful_opkernel.cpp", line 920, in ChooseOpKernel user_op::UserOpRegistryMgr::Get().GetOpKernelRegistryResult(op_type_name, reg_ctx) Error Type: oneflow.ErrorProto.op_kernel_not_found_error

@doombeaker @wangerlie  copying the hijacked code to the original forward solves this problem first.
The upsample_nearest_3d error is due to missing registration of the half implementation.
After adding relevant implementations,  Error: CUDA out of memory.
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/oneflow/utils.py", line 21, in wrapper
return func(self, *args, **kwargs)
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/utils/graph_management_utils.py", line 91, in wrapper
ret = func(self, *args, **kwargs)
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/oneflow/deployable_module.py", line 99, in forward
output = dpl_graph(*args, **kwargs)
File "/data2/workspace/neiltian/oneflow/python/oneflow/nn/graph/graph.py", line 281, in call
return self._dynamic_input_graph_cache(*args, **kwargs)
File "/data2/workspace/neiltian/oneflow/python/oneflow/nn/graph/cache.py", line 115, in call
return graph(*args, **kwargs)
File "/data2/workspace/neiltian/oneflow/python/oneflow/nn/graph/graph.py", line 284, in call
self._compile(*args, **kwargs)
File "/data2/workspace/neiltian/oneflow/python/oneflow/nn/graph/graph.py", line 852, in _compile
return self._compile_new(*args, **kwargs)
File "/data2/workspace/neiltian/oneflow/python/oneflow/nn/graph/graph.py", line 876, in _compile_new
self.finish_compile_and_init_runtime()
File "/data2/workspace/neiltian/oneflow/python/oneflow/nn/graph/graph.py", line 1428, in finish_compile_and_init_runtime
self._c_nn_graph.init_runtime()
oneflow._oneflow_internal.exception.RuntimeError: Error: CUDA out of memory. Tried to allocate 292.4 GB

copying the hijacked code to the original forward, following error:
Traceback (most recent call last):
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/oneflow/utils.py", line 21, in wrapper
return func(self, *args, **kwargs)
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/utils/graph_management_utils.py", line 91, in wrapper
ret = func(self, *args, **kwargs)
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/oneflow/deployable_module.py", line 99, in forward
output = dpl_graph(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/graph.py", line 295, in call
self._compile(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/graph.py", line 861, in _compile
return self._dynamic_input_graph_cache._compile(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/cache.py", line 121, in _compile
return graph._compile(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/graph.py", line 865, in _compile
return self._compile_new(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/graph.py", line 884, in _compile_new
_, eager_outputs = self.build_graph(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/graph.py", line 1429, in build_graph
outputs = self.__build_graph(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/graph.py", line 1577, in __build_graph
outputs = self.build(*lazy_args, **lazy_kwargs)
File "/data2/workspace/neiltian/onediff/src/onediff/infer_compiler/oneflow/graph.py", line 19, in build
return self.model(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 188, in call
result = self.__block_forward(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 238, in __block_forward
result = unbound_forward_of_module_instance(self, *args, **kwargs)
File "/data2/workspace/neiltian/YT-AnimateAnyone/src/models/unet_3d_oflow.py", line 506, in forward
sample, res_samples = downsample_block(
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 188, in call
result = self.__block_forward(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 238, in __block_forward
result = unbound_forward_of_module_instance(self, *args, **kwargs)
File "/data2/workspace/neiltian/YT-AnimateAnyone/src/models/unet_3d_blocks_oflow.py", line 445, in forward
hidden_states = attn(
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 188, in call
result = self.__block_forward(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 238, in __block_forward
result = unbound_forward_of_module_instance(self, *args, **kwargs)
File "/data2/workspace/neiltian/YT-AnimateAnyone/src/models/transformer_3d_oflow.py", line 142, in forward
hidden_states = block(
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 188, in call
result = self.__block_forward(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/oneflow/nn/graph/proxy.py", line 238, in __block_forward
result = unbound_forward_of_module_instance(self, *args, **kwargs)
File "/data2/workspace/neiltian/YT-AnimateAnyone/src/models/attention_oflow.py", line 457, in forward
norm_hidden_states[_uc_mask],
RuntimeError: Error: Advanced indexing by boolean(mask) tensor only valid in eager mode.

@neiltian-tencent  hi, I have used onediff to accelerate Moore-AnimateAnyone demo: /MooreAnimateAnyone/scripts/pose2vid.py

and it doesn't seem to have any problem

could you tell me exactlly how do you use onediff to accelerate MooreAnimateAnyone, which model are you trying to accelerate?
it would be greate if you can provide me with your code.

convert <class 'function'> failed: Transform failed of <class 'function'>: 'function' object has no attribute '' @wangerlie I compile denoising_unet by oneflow_compile. compile_pipe has no acceleration effect, although
the above error is not report. What is the acceleration ratio you tested here?

@wangerlie AnimateAnyone pipeline has two unets(denoising_unet and reference_unet). compile_pipe may filter the two unets, this is the onediff filter _PARTS info.
_PARTS = [
"text_encoder",
"text_encoder_2",
"image_encoder",
"unet",
"controlnet",
"fast_unet",  # for deepcache
"prior",  # for StableCascadePriorPipeline
"decoder",  # for StableCascadeDecoderPipeline
"vqgan.down_blocks",  # for StableCascadeDecoderPipeline
"vqgan.up_blocks",  # for StableCascadeDecoderPipeline
"vae.decoder",
"vae.encoder",
]

adding denoising_unet to the _PARTS, the above error is report.

convert <class 'function'> failed: Transform failed of <class 'function'>: 'function' object has no attribute '' @wangerlie I compile denoising_unet by oneflow_compile. compile_pipe has no acceleration effect, although the above error is not report. What is the acceleration ratio you tested here?

I use compile_pipe to accelerate the Pose2VideoPipeline and find the same problem that it has no acceleration effect.

@wangerlie AnimateAnyone pipeline has two unets(denoising_unet and reference_unet). compile_pipe may filter the two unets, this is the onediff filter _PARTS info. _PARTS = [ "text_encoder", "text_encoder_2", "image_encoder", "unet", "controlnet", "fast_unet", # for deepcache "prior", # for StableCascadePriorPipeline "decoder", # for StableCascadeDecoderPipeline "vqgan.down_blocks", # for StableCascadeDecoderPipeline "vqgan.up_blocks", # for StableCascadeDecoderPipeline "vae.decoder", "vae.encoder", ]

@neiltian-tencent  Following your tips I reproduced the reported error and I am working on the problem. Thanks for your patience.

@doombeaker I try to find an open source demo. Error related codes: def getattribute(self, attribute) (onediff/src/onediff/infer_compiler/transform/builtin_transform.py) elif attribute in ["forward", "_conv_forward"]: replacement = proxy_class(type(self._oflow_proxy_submod)) return lambda *args, **kwargs: getattr(replacement, attribute)( self, *args, **kwargs )

@wangerlie Previous debugging records

Thanks for your feedback.
We will move to nexfort backend to avoid convert problems. Please take a look: https://github.com/siliconflow/onediff/tree/main/onediff_diffusers_extensions/examples/sdxl
@neiltian-tencent


Refactor Scale walkthrough to eliminate use of ENTRYPOINT

Pain Point? Please describe.
The example in the Scale walkthrough uses an ENTRYPOINT script. This somewhat obfuscates the full command that is being run and is a pattern we would like to avoid in our example documentation.
Desired Solution
Update the example in the Scale walkthrough to more closely match the Seed user guide example, which does not use ENTRYPOINT: https://ngageoint.github.io/seed-cli/#_sample_algorithm
Alternative / Workaround
The example works as-is, but this will align our examples to be more consistent across documents.

This can be confusing.  Entrypoint and CMD[] are
sooooo easy to confuse, ESPECIALLY when you’re passing Argument to an interpreter.
Take time to make sure it’s being explained VERY carefully.

On Jun 30, 2020, at 8:56 AM, Matt Anderson<EMAIL_ADDRESS>wrote:

Pain Point? Please describe.
The example in the Scale walkthrough uses an ENTRYPOINT script. This somewhat obfuscates the full command that is being run and is a pattern we would like to avoid in our example documentation.
Desired Solution
Update the example in the Scale walkthrough to more closely match the Seed user guide example, which does not use ENTRYPOINT: https://ngageoint.github.io/seed-cli/#_sample_algorithm
Alternative / Workaround
The example works as-is, but this will align our examples to be more consistent across documents.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

The pattern we are following is to use neither CMD nor ENTRYPOINT in the Dockerfile. As a result, the Seed CLI user must specify the full command with arguments in the Seed manifest. We felt this makes it more clear to the Seed user the full command that is being executed, rather than it being split between the Dockerfile (command) and Seed manifest (arguments).


Enabling SDS requires istio-system namespace

Bug description
Enabling SDS requires istio-system namespace.
If not installed is istio-system. All NodeAgent are stuck in crash loop because they are not
able to find the "istio-security" ConfigMap  even though the configMap is created is the installation  namespace.

If istio is installed in istio-system. It works perfectly.
If istio is not installed in istio-system (ex. istio-afg) but a ConfigMap named istio-security is create in istio-system it works as well.

It sounds like a istio-system is hardcoded somewhere in the NodeAgent logic.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ X] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
No crash loop for the NodeAgent pods.
Steps to reproduce the bug
helm template install/kubernetes/helm/istio --name istio-sds-demo --namespace **istio-afg** --values install/kubernetes/helm/istio/values-istio-demo.yaml > istio-sds-demo.yaml

cat values install/kubernetes/helm/istio/values-istio-demo.yaml

# This is used to generate minimal demo mode. It is included from demo and demo-auth values.
# It is shipped with the release, used for bookinfo or quick installation of istio.
# Includes components used in the demo, defaults to alpha3 rules.
# Note: please only put common configuration for the demo profiles here.
global:
  proxy:
    accessLogFile: "/dev/stdout"
    resources:
      requests:
        cpu: 10m
        memory: 40Mi

  disablePolicyChecks: false

  controlPlaneSecurityEnabled: false

  mtls:
    # Default setting for service-to-service mtls. Can be set explicitly using
    # destination rules or service annotations.
    enabled: false
  sds:
    enabled: true
    udsPath: "unix:/var/run/sds/uds_path"
    useNormalJwt: true

sidecarInjectorWebhook:
  enabled: true
  # If true, webhook or istioctl injector will rewrite PodSpec for liveness
  # health check to redirect request to sidecar. This makes liveness check work
  # even when mTLS is enabled.
  rewriteAppHTTPProbe: false

pilot:
  traceSampling: 100.0
  resources:
    requests:
      cpu: 10m
      memory: 100Mi

mixer:
  policy:
    enabled: true
    resources:
      requests:
        cpu: 10m
        memory: 100Mi

  telemetry:
    enabled: true
    resources:
      requests:
        cpu: 50m
        memory: 100Mi

  adapters:
    stdio:
      enabled: true

grafana:
  enabled: true

tracing:
  enabled: true

kiali:
  enabled: true
  createDemoSecret: true
  dashboard:
    jaegerURL: "http://tracing.rnd/jaeger/search"
    grafanaURL: "http://grafana.rnd"

gateways:
  istio-ingressgateway:
    resources:
      requests:
        cpu: 10m
        memory: 40Mi

  istio-egressgateway:
    enabled: true
    resources:
      requests:
        cpu: 10m
        memory: 40Mi

nodeagent:
  enabled: true
  image: node-agent-k8s
  env:
    CA_PROVIDER: "Citadel"
    CA_ADDR: "istio-citadel:8060"
    VALID_TOKEN: true

certmanager:
  enabled: true
  email<EMAIL_ADDRESS>
Version (include the output of istioctl version --remote and kubectl version)
-> k version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:18:22Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.5", GitCommit:"2166946f41b36dea2c4626f90a77706f426cdea2", GitTreeState:"clean", BuildDate:"2019-04-03T04:12:37Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

How was Istio installed?
Helm template. See value.yaml above.
Environment where bug was observed (cloud vendor, OS, etc)
On prem. 3 masters and 16 nodes.
NodeAgent pods can not find the istio-security configmap and get stuck in crash loop.
> kubectl get po -n istio-afg
NAME                                      READY   STATUS             RESTARTS   AGE
certmanager-cf775586-t62s7                1/1     Running            0          10m
grafana-5bfd8bcf79-qxkjs                  1/1     Running            0          10m
istio-citadel-dc7fcc945-p7d2p             1/1     Running            0          10m
istio-cleanup-secrets-1.2.2-fczbc         0/1     Completed          0          11m
istio-egressgateway-7cdc657f9c-qvjfx      1/1     Running            0          10m
istio-galley-6f444dc468-z9qxv             1/1     Running            0          10m
istio-grafana-post-install-1.2.2-lr9dz    0/1     Completed          0          11m
istio-ingressgateway-649d564d49-qgxns     1/1     Running            0          10m
istio-nodeagent-25dzs                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-5vkxz                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-7nsh2                     1/1     Running            3          10m
istio-nodeagent-8dslp                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-9wljx                     1/1     Running            3          10m
istio-nodeagent-bnvz2                     1/1     Running            3          10m
istio-nodeagent-bvxjx                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-d9kc9                     1/1     Running            3          10m
istio-nodeagent-njktl                     1/1     Running            3          10m
istio-nodeagent-nx7s7                     1/1     Running            3          10m
istio-nodeagent-rzs7k                     1/1     Running            3          10m
istio-nodeagent-tclsn                     1/1     Running            3          10m
istio-nodeagent-wpr7v                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-zh5vd                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-zm6zc                     0/1     CrashLoopBackOff   2          10m
istio-nodeagent-znzcs                     1/1     Running            3          10m
istio-pilot-68bdb7886-vjkcb               2/2     Running            0          10m
istio-policy-75865d8b75-trckw             2/2     Running            2          10m
istio-security-post-install-1.2.2-jv9rk   0/1     Completed          0          11m
istio-sidecar-injector-597d555984-z52f4   1/1     Running            0          10m
istio-telemetry-7bc4685856-m57vr          2/2     Running            2          10m
istio-tracing-6bfb484c49-xqhq4            1/1     Running            0          10m
kiali-7d6f496c94-6g7r5                    1/1     Running            0          10m
prometheus-5497d6bf6f-kmxk5               1/1     Running            0          10m

kubectl logs  istio-nodeagent-7nsh2 -f

2019-07-30T16:57:03.778086Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:05.782959Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:07.786851Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:09.791172Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:11.796389Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:13.799852Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:15.803612Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:17.806967Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:19.810673Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:21.813957Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:23.817783Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:25.821644Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:27.824727Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:29.831972Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:31.835198Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:33.844332Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:35.846855Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:37.850075Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:39.853243Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:41.856574Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:43.867838Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:45.871356Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:47.875691Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:49.879444Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:51.882765Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:53.892670Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:55.896802Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:57.901179Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:57:59.904384Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:58:01.908934Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:58:03.925458Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:58:05.929965Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:58:07.933467Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:58:09.936732Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s
2019-07-30T16:58:11.940019Z	info	unalbe to fetch CA TLS root cert: failed to get CA TLS root cert: configmaps "istio-security" not found, retry in 2s

@quanjielin I thought I remmebr you fixing this, is it just not released yet?

the fix was https://github.com/istio/istio/pull/15199
@Kalimero66 which build you used ?

@quanjielin Istio1.2.2
Note that installation in a different namespace works well. Only the NodeAgent is having this issue and this is prevent from using SDS in a non istio-system namespace.

@Kalimero66 the fix was not in 1.2.2, it's only checked in to master branch.
let me cherrypick it.

Thanku.


Addition of a build system generator

I suggest to reuse a higher level build system so that powerful checks for software features will become easier.

CMake
Autotools

Thanks Markus for your nice proposal :D
The reason why I choosed to write a simple bash script make.sh is because:

The libaco is very simple to build and also has very minimal dependencies on the POSIX.

gcc -g -O2 acosw.S aco.c app_of_libaco.c -o app_of_libaco

Using bash scripts could make the C flags matrix build process easier and clearer.

But still, adding the higher level build system support could even better.
I would like to add it to the ToDo list and it would be released in the future v1.3.0 since it is not so urgent.

Does a tool like “autoscan” show any software dependencies that you find worth for further considerations?
How do you think about to support more development environments by the reuse of build system generators?

Maybe I'll choose to use CMake, but the priority of this issue is not so high.

I have just committed a simple Makefile demo for test_aco_synopsis.c. A full functional makefile (also including the test suites) will come with the release of v1.3.0.

I propose to invest development resources more in better build scripts than in a questionable make file.

How do you think about to avoid intermediate work if you became convinced that other development approaches will provide better functionality?

Sometimes, such intermediate work is unavoidable, but I'll try to reduce
it.
Yes, if there are better approaches and also cost little, absolutely I'll
follow it.
On Fri, Jul 13, 2018 at 8:36 PM, Markus Elfring<EMAIL_ADDRESS>wrote:

How do you think about to avoid intermediate work if you became convinced
that other development approaches will provide better functionality?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/hnes/libaco/issues/5#issuecomment-404821072, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AHMtkyVk8ZApr7UDe8qjo8VaVlnlIt7_ks5uGJRZgaJpZM4VGYYB
.

Don't agree with using an overly-complex build system. A simple makefile is should be more than enough.
Check out this code philosophy; I think your code is so tiny it fits right in.
https://github.com/nothings/single_file_libs

Thank you very much for your kindly advice, @ddengster.
In the future, even we decide to add some build system generator, that would be only limited to the build of the test suites. There would be no such static or shared library makefile for libaco (the reason is described in the 2nd comment of this thread) unless there are some very strong benefits.

Is a build approach like “GNU Libtool” another incentive for further evolution in this software area?

Any updates on this @hnes ? :slightly_smiling_face:

Any updates on this @hnes ? :slightly_smiling_face:


TypeScriptExperimentalDecorators=true not working in VS2013 with TypeScript 1.8.5

TypeScript Version: 1.8.5
Visual Studio 2013 Version: 12.0.40629.00 Update 5
Code
The code is available via a codeproject article, called "First Angular2 App with TypeScript and Visual Studio 2013." I downloaded the code, unblocked it, opened it in VS2013 and ran it.
http://www.codeproject.com/Articles/1060262/First-Angular-App-with-TypeScript-and-Visual-Studi
Expected behavior:
When the application is Cleaned in Visual Studio 2013, and then rebuilt, it should regenerate javascript from typescript and then run if there are no errors. The problem is that there are errors that were probably not there in a prior version of TypeScript.
Actual behavior:
The first time the application builds, it gets me to upgrade TypeScript to 1.8.5. The first time it runs, the application works successfully, I believe because the custom tool does not need to run as there have been no changes to the typescript file.
Changing the typescript file will cause typescript to return "Build: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning."
This is in spite of having the TypeScriptExperimentalDecorators option set to true in the csproj file.
But there is no need to even change the typescript file. Simply cleaning the code appears to cause the failure.
The (poor) workaround is to tick the box to allow the code to be generated even if there's an error. Obviously this is bad especially if there are real errors needing to be corrected.
Based on the number of demonstration apps out there I believe this option was working at some stage but is not working presently.

I'm having a similar problem too.
Visual Studio 2015 Version 14.0.25123.00 Update 2
Typescript <IP_ADDRESS> as reported in Help About
I currently have experimentalDecorators set to true in tsconfig.json but Visual Studio is ignoring the tsconfig.json. Happened after I updated to Update 2 and installed the latest version of Typescript.

@tonywr71 this sample is working fine for me in VS 2013, with TS 1.8.5 installed. it fails at run time in IE because of Map implementation, but seems to work fine on Chrome and Edge.

@jmojiwat i can not reproduce this issue either. can you share a project, or steps to get to the state you are observing.

Did you clean the build? It worked fine until I cleaned the build. It was only the regeneration that caught the problem. Anyhow, I have uploaded a zip of the app that I have just tested and it is failing.
FirstAngular2App.zip
Let me know if you still can't reproduce it and I'll see if I can accommodate you further.

Ok, I just went to the source of the problem and it turned out that when I exported the Contact class it built successfully (the Contact class was missing an export keyword.) Maybe this was just disguising one problem with an error for another?

note sure i understand. the Contact class does not need to be exported. you are calling bootstrap on it in the same module. so loading this module should cause Contact to be registered anyways.

Yea, it was just a hunch - I don't know why that changed anything. But that
code I sent was before I made that change, so you should still see the
experimentalDecorators problem.
On Wed, Apr 6, 2016 at 10:06 AM, Mohamed Hegazy<EMAIL_ADDRESS>wrote:

note sure i understand. the Contact class does not need to be exported.
you are calling bootstrap on it in the same module. so loading this
module should cause Contact to be registered anyways.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/TypeScript/issues/7784#issuecomment-206042014

@mhegazy Just to be sure, I've turned off Resharper.
I have some Aurelia code written in Typescript. The Aurelia packages are located in node_modules folder. If I compile the app without tsconfig.json, I don't get any compile errors:
The "main.ts" file looks like this:

The "app.ts" file looks like this:

If I have a tsconfig.json file present, I get compile errors and complaints about not being able to find modules.
This is what my tsconfig.json looks like:
{
    "compileOnSave": true,
    "compilerOptions": {
    "module": "commonjs",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "outDir": "client/app",
    "removeComments": true,
    "sourceMap": true,
    "target": "es5",
    "rootDir": "client/src",
    "moduleResolution": "node"
},
"exclude": [
    "typings/main",
    "typings/main.d.ts"
    ]
}

And the code now looks like this:
main.ts

app.ts

The compile errors I get are:
TS2307 cannot find modules,
TS1219 Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning,
TS1148 Cannot compile modules unless the '--module' flag is provided with a valid module type. Consider setting the 'module' compiler option in a 'tsconfig.json' file
Visual Studio seems to know the existence of the tsconfig.json file, but not parsing the settings in it.
Thanks for looking into this Mohamed Hegazy.

sorry for the delay. if you do not have a tsconfig.json it is using the settings in your project file. if you add a tsconfig.json, it is used instead. so we need to look at the difference between configurations between the two. so can you remove the tsconfig.json, build and share the build log.

@mhegazy sorry for not responding sooner. i think i managed to sort out my problem. the error message threw me off too as the source of the problem was not what the error message described.
the tsc compiler doesn't like it if there are duplicate d.ts definitions (even if they are excluded from the  project).
just using exclude in tsconfig.json didn't help (because of the way the d.ts files were structured) so i had to resort to explicitly stating every typescript file that needs to be compiled.
also, always check that Build Action for tsconfig.json is set to Content when typescript files that used to compile, stops compiling. otherwise you will be left wondering why tsc isn't obeying tsconfig.json when building within Visual Studio, but works fine in the command line. (This one got me on a wild goose chase adventure).
thanks just the same for looking into this. cheers!

Looks like the issue has been addressed then. @tonywr71 let us know if you are still running into issues and will reopen the issue.

Just re-install the Typescript it will get fixed.


bugfix: 云区域相关接口报错修复 (fixed #499)

Codecov Report

Merging #500 (e290d32) into V2.2.1-rc (561387e) will decrease coverage by 0.01%.
The diff coverage is 44.00%.

@@              Coverage Diff              @@
##           V2.2.1-rc     #500      +/-   ##
=============================================
- Coverage      70.64%   70.62%   -0.02%
=============================================
  Files            286      286
  Lines          20556    20573      +17
=============================================
+ Hits           14522    14530       +8
- Misses          6034     6043       +9

Impacted Files
Coverage Δ

apps/node_man/handlers/validator.py
100.00% <ø> (+0.78%)
:arrow_up:

apps/node_man/views/cloud.py
47.61% <0.00%> (-5.02%)
:arrow_down:

apps/node_man/handlers/permission.py
50.93% <10.00%> (-1.47%)
:arrow_down:

apps/node_man/handlers/cloud.py
92.72% <100.00%> (-0.07%)
:arrow_down:

apps/node_man/serializers/job.py
57.35% <100.00%> (+0.63%)
:arrow_up:

apps/node_man/constants.py
98.20% <0.00%> (-0.33%)
:arrow_down:

apps/backend/components/collections/job.py
90.43% <0.00%> (ø)

apps/backend/components/collections/plugin.py
81.87% <0.00%> (ø)

apps/node_man/periodic_tasks/update_proxy_file.py
91.58% <0.00%> (ø)

apps/backend/api/job.py
81.81% <0.00%> (+0.23%)
:arrow_up:

... and 2 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 561387e...e290d32. Read the comment docs.


Crashes Sketch

Since a while now hitting Apple Shift X crashes Sketch, every-time. I'm on the latest Sketch, and have enjoyed using your plugin on a project I'm working on for a year now. I can't share the file, but can share the crash report if that helps. I can't find any other plugins that shares the same shortcut in my config.

can you try closing sketch and re-opening it and then test populating a simple object in a simple file?

@rgbk habe not been able to reproduce. if it still occurs to you, please reopen this issue.


Foreman does not terminate child processes

This is probably some kind of duplicate of #94, but I tried looking around for this and I could not find anything. The problem happened with foreman cloned and installed just now, with Ruby 2.3.0.
My Procfile is this:
# Foreman proc file
socatM0: socat -v -x PTY,link=/tmp/ttyM0,raw,echo=0 PTY,link=/tmp/ttyMXUSB0,raw,echo=0,nonblock >/dev/null 2>&1
socatM1: socat -v -x PTY,link=/tmp/ttyM1,raw,echo=0 PTY,link=/tmp/ttyMXUSB1,raw,echo=0,nonblock >/dev/null 2>&1
cus:  src/cus/Debug/cus     -c "config/obcu/config_cus.ini"  2>/dev/null
tcms: src/tcms/Debug/tcms   -c "config/obcu/config_tcms.ini" 2>/dev/null
tag1: src/tag/Debug/tag     -c "config/obcu/config_tag1.ini" 2>/dev/null
tag2: src/tag/Debug/tag     -c "config/obcu/config_tag2.ini" 2>/dev/null
avl:  src/avl/Debug/avl     -c "config/obcu/config_avl.ini"  2>/dev/null
cab:  src/cab/Debug/cab     -c "config/obcu/config_cab.ini"  2>/dev/null
pis:  src/pis/Debug/pis     -c "config/obcu/config_pis.ini"  2>/dev/null
dia:  src/dia/Debug/dia     -c "config/obcu/config_dia.ini"  2>/dev/null
i18n: src/i18n/Debug/i18n   -c "config/obcu/config_i18n.ini" 2>/dev/null
hmi:  src/hmi/Debug/hmi     -c "config/dci1/config_hmi.ini"  2>/dev/null

After sending Ctrl-C to foreman, it prints that all processes have been terminated:
16:18:24 socatM0.1 | terminated by SIGTERM
16:18:24 socatM1.1 | terminated by SIGTERM
16:18:24 cus.1     | terminated by SIGTERM
16:18:24 tcms.1    | terminated by SIGTERM
16:18:24 tag1.1    | terminated by SIGTERM
16:18:24 tag2.1    | terminated by SIGTERM
16:18:24 avl.1     | terminated by SIGTERM
16:18:24 cab.1     | terminated by SIGTERM
16:18:24 pis.1     | terminated by SIGTERM
16:18:24 dia.1     | terminated by SIGTERM
16:18:25 i18n.1    | terminated by SIGTERM

But they remain in processes..

With the following edited Procfile the problem does not seem to happen, but I have no idea why, aside from the fact that we tried to eliminate as many characters referenced in #94 as possible:
# Foreman proc file
socatM0: socat -v -x PTY,link=/tmp/ttyM0,raw,echo=0 PTY,link=/tmp/ttyMXUSB0,raw,echo=0,nonblock
socatM1: socat -v -x PTY,link=/tmp/ttyM1,raw,echo=0 PTY,link=/tmp/ttyMXUSB1,raw,echo=0,nonblock
cus:  src/cus/Debug/cus     -c config/obcu/config_cus.ini
tcms: src/tcms/Debug/tcms   -c config/obcu/config_tcms.ini
tag1: src/tag/Debug/tag     -c config/obcu/config_tag1.ini
tag2: src/tag/Debug/tag     -c config/obcu/config_tag2.ini
avl:  src/avl/Debug/avl     -c config/obcu/config_avl.ini
cab:  src/cab/Debug/cab     -c config/obcu/config_cab.ini
pis:  src/pis/Debug/pis     -c config/obcu/config_pis.ini
dia:  src/dia/Debug/dia     -c config/obcu/config_dia.ini
i18n: src/i18n/Debug/i18n   -c config/obcu/config_i18n.ini
hmi:  src/hmi/Debug/hmi     -c config/dci1/config_hmi.ini

Would it be possible to put together a small Procfile that demonstrates the problem?

I'm trying to make it smaller, although I'm going randomly as I have no idea what the problem might be. One thing I have noticed: if foreman kills processes and prints this:
10:44:11 socatM0.1 | terminated by SIGINT
10:44:11 socatM1.1 | terminated by SIGINT
10:44:12 cus.1     | terminated by SIGINT
10:44:12 tcms.1    | terminated by SIGINT
10:44:12 tag1.1    | terminated by SIGINT
10:44:12 tag2.1    | terminated by SIGINT
10:44:12 avl.1     | terminated by SIGINT
10:44:12 cab.1     | terminated by SIGINT
10:44:12 pis.1     | terminated by SIGINT
10:44:12 dia.1     | terminated by SIGINT
10:44:12 i18n.1    | terminated by SIGINT

Then it means that it really killed the processes. When it prints that it terminates them by SIGTERM then it fails. I'll keep doing experiments trying to make a Procfile which reproduces the problem in the meantime, but maybe this can be a hint to something?

By using watch, I have noticed that in those cases the process that foreman actually starts is this:
svalorz+ 31193  0.0  0.0   4508   756 pts/2    S+   11:03   0:00 sh -c src/cus/Debug/cus     -c "config/obcu/config_cus.ini"  2>/dev/null

So what happens is that it kills sh but not the underlying process, which remains up (and with a different PID)
svalorz+ 31195  0.0  0.1<PHONE_NUMBER>8 pts/2    Sl+  11:03   0:00 src/cus/Debug/cus -c config/obcu/config_cus.ini

I'm trying to reproduce it with smaller programs so that you can reproduce it but I can't seem to. However I have reduced the procfile, this happens with:
# Foreman proc file
cus:  src/cus/Debug/cus     -c "config/obcu/config_cus.ini"  2>/dev/null

It seems that with SIGINT the underlying sh is able to manage killing the child process, while with SIGTERM it does not happen.

Reproduced. Make two programs:
// broken.cpp
int main() {
    return 255;
}

// loop.cpp
int main() {
    while (true) {}
    return 0;
}

Compile them.
g++ -o broken broken.cpp
g++ -o loop loop.cpp

Make Procfile:
# Foreman proc file
test1:  ./loop "1000"
test2:  ./broken "1000"

Launch foreman:
$ foreman start
11:14:20 test1.1 | started with pid 9186
11:14:20 test2.1 | started with pid 9187
11:14:20 test2.1 | exited with code 255
11:14:20 system  | sending SIGTERM to all processes
11:14:20 test1.1 | terminated by SIGTERM

Process remains:
$ ps aux | grep loop
svalorz+  9188  100  0.0   4224   724 pts/12   R    11:14   0:32 ./loop 1000
svalorz+  9644  0.0  0.0  14232   964 pts/12   S+   11:14   0:00 grep --color=auto loop

(Note that the arguments are not needed, without them it works fine, but I guess you invoke "sh" only when there are special characters?)

So now I did a new search and I realized that there are multiple closed issues ( #365, #428, #357 and others..) about this exact problem, and that in theory foreman is supposed to forward SIGTERM to child processes. No idea why it is not doing that on my system though..

Same (?) thing here, when I exit foreman with Ctrl+C, all child processes get killed off nicely, when foreman exits because one of the child apps exploded, then it writes it stopped the children, but it doesn't.
I'm using foreman 0.82.0 with ruby 2.2.4p230

I believe this should not be happening in the latest foreman. Please comment here if you're still seeing this.


Some functions have no description

the parse in slot is bug, the encryptbook what happens is that I haven't documented it since I have to explain how to use it well, now when I try to document it and I add a page on the wiki about how to use it

I think copyItemName doesn't have a personal description

do you think i should put:
copyItemNameJson:
Copy the JSON of the name of the item that you have the cursor over in an inventory
Example: {"text":"Hello World","color":"red"}

copyItemName:
Copy the text of the name of the item that you have the cursor over in an inventory
Example: Hello world


History entries not showing up in chrome://history

Describe the bug
The browser saves my history (as I want it to), and I can tell by trying to clear it, as shown in the screenshot below. When I go to chrome://history I am met with a blank page that says "Your browsing history appears here". Sites I have visited have purple links and everything but it won't let me view my history for some reason.
To Reproduce
Steps to reproduce the behavior:

Go to 'chrome://history' and notice that there are no history entries.
Click on 'Clear browsing data'
Under 'Browsing history' it says I have approxiamately 3.8k history entries in total. Changing the time range updates the amount of entries, as expected.

Expected behavior
I would expect the history entries to show up in chrome://history.
Screenshots

Not sure how to prove it but these are taken pretty much seconds apart, and no, I never cleared this history.
Environment (please complete the following information):

OS/Platform and version: Pop!_OS 21.04
ungoogled-chromium version: 91.0.4472.164 (Official Build, ungoogled-chromium) (64-bit)

How did you install ungoogled-chromium and from where?

How did you install ungoogled-chromium and from where?

I downloaded the "Linux AppImage 64-bit" from https://ungoogled-software.github.io/ungoogled-chromium-binaries/

Try "Portable Linux 64-bit". This could be AppImage issue.

I ran into this issue too on 95.0.4638.69-1 (Windows x64) right after a clean installation on a machine that never had Chromium installed on it. Setting Startup Options to "Start from where you left off" also causes "Something went wrong when opening your profile" error message that was my initial concern. Makes sense, if it can't read history databse.
I used my SQL Server tools to peek inside the History database and it was almost empty. It contained a couple of URLs that seem to be some default values for my region (?, I never visited them after Chromium installation), tables 'visits' and 'keyword_search_terms' were blank. So I deleted the database file, after this chrome://history came back to life.
I'm not a Chromium developer, but some differences between 'corrupted' and 'regenerated' versions of the history database caught my attention, namely the number of tables and the version value in 'meta' table (see screenshots).

I can post full database files if needed.

TL;DR: I removed History database file from my Chromium user profile (along with its journal file, but in hindsight I don't think it's necessary) and it fixed the issue for me. To preseve your data you'll probably have to edit the database somehow.

P.S. Does an empty history database have to contain some default URLs? Why are they in Russian (a part of Yandex ecosystem)? Does it somehow detect my location during installation?

TL;DR: I removed History database file from my Chromium user profile (along with its journal file, but in hindsight I don't think it's necessary) and it fixed the issue for me.

So that this issue didn't reoccur after cleaning the profile?

@PF4Public so far I'm good.
I'm probably going to install chromium on one more Windows machine tomorrow, so I'll probably have a chance to explore this issue some more.

@kutukvpavel Let us know if you find something interesting.

@PF4Public unfortunately, I was unable to reproduce this issue on the Win10 machine, got frustrated by configuring the same browser settings again and again in different order and eventually gave up on this. I have one other Win7 machine left, I hope I'll try it on weekend.
There is are some differences between the machine I used when I encountered the issue and the ones I used after that. First, the first machine had Google Chrome installed and the others have MS Edge (the chromium-based one) installed. Though I can't imagine how this fact could've influenced Chromium, since it doesn't feature data import from Chrome/Edge (AFAIK). Second, the first machine has regional settings all set to Russia, and the second one has mixed regional settings (AFAIR the UI langugage is changed to English).
My guess is: this was either some sort of a weird edge case that arises when you set up the brower in a certain order after installation, or something about region-dependent defaults.

@kutukvpavel Thank you for your efforts. I'll keep this issue open for a while then.


chore: Upgrade CI workflows to use non-deprecated runtimes

Description

The Release and Lock workflow are using an old version and hence a deprecated runtime (Node.js 12). Bumping these workflows will resolve the deprecation warning in the affected workflows.
I've not addressed the warnings on the Tests workflow as Github still hasn't released updated docs on how to reference matrix after set-output is gone. My guess is that this warning is invalid for these references to matrix.x. If anything changes I'll add a PR on that one as well.
Motivation and Context

Make sure that CI workflows uses non-deprecated runtimes.
Breaking Changes

None.

This PR is included in version 4.9.0 :tada:


docs:Add Spike Templates

Added the Spike Plan template and Spike Outcome Template Daniel Maddern
Description
Added 2 document templates to introduce Spikes in to the Thoth tech work flow.
Type of change

[X] Documentation (update or new)

How Has This Been Tested?
Prettier and Vale checks.
Testing Checklist:

[X] Tested in latest Chrome

Checklist:

[X] I have performed a self-review of my own code
[X] I have made corresponding changes to the documentation

Ok this is now ready to merge in.


Add Read transform and initial HealthcareClient in Go SDK

This is the first of many tickets to bring FhirIO from Java into the Go SDK.
It consists of:

Adding the Read transform in Go SDK
Adding a basic implementation of the HttpHealthcareClient in Go, to be able to authenticate and make the requests needed for the transform above.

Buganizer links:

b/233887489.

b/204355275.

Imported from Jira BEAM-14513. Original Jira may contain additional context.
Reported by: lnogueir.

Unable to assign user @lnogueir. If able, self-assign, otherwise tag @damccorm so that he can assign you. Because of GitHub's spam prevention system, your activity is required to enable assignment in this repo.

Unable to self-assign, but this issue has been resolved by #17748