api: named filter config / filter config discovery service

I would like the ability to have individual filter configurations be named and fetchable from a discrete management server. This would allow federation of filter configuration from multiple sources, for example fault testing. Thought needs to be put into how this plays with FCDS for listener filters, draining, whether filters can swap config atomically via a new optional interface, etc.
If we do this right we should not need the TapDS IMO.
cc @envoyproxy/api-shepherds @htuch @yuval-k

individual configurations is the filter chain, correct?

@mattklein123 do you think this is needed for 1.12.0 or can we do this as a v3 add-on once shipped?

@mattklein123 do you think this is needed for 1.12.0 or can we do this as a v3 add-on once shipped?

We can do it as an add on, but can we do it without any structural changes? I suppose we probably can by just having an optional config source on a filter config? I'm mostly just hoping to avoid deprecation. We might want to look at it briefly and at least put the existing static config in a oneof?

Sure, I think this aspect of the issue is manageable in the v3 release cycle.

adding another use case that I came across
Certain filters like RBAC etc. have the access control rules [something that changes dynamically] embedded inside the filter as static configuration. When access control rules change, we end up sending an update to the listeners with the updated filter config. This causes all existing connections to drain. A more efficient thing to do would be to reload the rbac filter config alone, and force the rbac filter instances to run some event handler [e.g., onConfigUpdate], wherein they can reevaluate existing connections to check if they still pass the rbac rules.

@rshriram do you really need an event? I think this is possible but can't RBAC just run on new connections? If you want an event can we track as a separate issue?

So, think about HTTP connections.. in this case, new rbac would have to become effective on new requests on the same connection right? Otherwise, people will end up forcing listener drains for the newer rules to take effect. I suggested the event thing as just one idea but as long as there is an ability to apply the newer config on existing connections, I am good.
This would apply to faults as well wont it? like you could pick one h2 stream, introduce some faults and then remove those faults, to see how the client withstands these intermittent failures. Wont this be helpful in mobile use cases?

This would apply to faults as well wont it? like you could pick one h2 stream, introduce some faults and then remove those faults, to see how the client withstands these intermittent failures. Wont this be helpful in mobile use cases?

We explicitly want this for fault testing. :)
Basically, at the network level, any new connection will get the new config. At the HTTP level, any new stream will get the new configuration. I think this is sufficient?

It's fairly easy for the new connection to get the new config.
The goal of new http stream get new configuration can be achieve by above if we drain listener/filter. But it's not smooth to achieve it without using new connection. I will start to think about it when the first step is done.

The goal of new http stream get new configuration can be achieve by above if we drain listener/filter. But it's not smooth to achieve it without using new connection. I will start to think about it when the first step is done.

I think this is actually not that hard and we can do this without any draining. Essentially we just need to have a layer of indirection between the filter chain and the actual filter config, such that the filter config itself can be snapped by the connection when it is created. I'm very happy to work with whoever wants to implement this on the design. Note also that we need this at Lyft so if no one gets to it first @wgallagher is likely to implement.

Essentially we just need to have a layer of indirection between the filter chain and the actual filter config
Are you saying the filter chain from LDS doesn't mutate? Just do some extra calculation when applying to newly created http stream? This seems easier. We already support similar calculation when applying network filter at ActiveTcpListener::newConnection
What is the missing part?
Should the similar delayed calculation apply to http_conn_manager?
Support async applier by giving it a provider and provider is supposed to fetch the latest change?

Are you saying the filter chain from LDS doesn't mutate? Just do some extra calculation when applying to newly created http stream?

Correct that's what I'm thinking.

What is the missing part? Should the similar delayed calculation apply to http_conn_manager? Support async applier by giving it a provider and provider is supposed to fetch the latest change?

I haven't thought it through fully (we will need to iterate on a design) but I think we move the the filter configuration into a oneof that either is defined inline statically or comes from a config source (cc @htuch because we want to move the static filter config into a oneof for v3 to future proof it). Once we have a config source, I think we can have the owner of the filter chain starting fetching for dynamic updates with warming, etc. and then when a new connection (for L4) or a new stream (for L7) is created, we can snap the correct config for the filter.

Yep, moving to a ConfigSource is aligned with what we want in UDPA. Let's promote to a oneof for v3.

@PiotrSikora @jplevyak I am wondering if we can use the filter config discovery service for the WASM. WASM can fetch the code from some management server instead of using inline code.

Envoy position is that config is trusted and user supplied. Shipping code through config server may compromise the security of the data plane. There is also a high-risk of head-of-line blocking for large (>10MB Wasm modules) in ADS.

@kyessenov I think we don't want to be too prescriptive here; folks can use some of these features with caveats around not pushing large updates inline. It's no different shipping 10MB+ WASM or 10k+ filter chains, each with a 1KB certificate inline.

If we do end-up using this for Wasm, it would be great to be able to add filters, not just update existing filter configs. Maybe using some sort of stubs if Wasm filter is not yet needed (e.g. empty filter config should be allowed).

Just copying thoughts from the linked issue:

Can we please make filter config payload be a list of filters? It's more flexible, doesn't restrict to a single filter type, and allows empty lists.
Consider changing how filters are ordered. Maybe it's better to have a weighted map of filters that are sorted before application? That way we can insert the filter config at any place.

Why a list when the set of resources return by xDS is already a list? I worry that a list of lists is a bit confusing to reconcile.

List is used to 1) enforce ordering of filters in a "patch", 2) allow flexible number of filters to be returned. Think of Wasm filters. We can either add 10 dynamic filter configs with some unset, or have one filter config group with 0..10 Wasm filters in it.

I think this is a conflation of concerns. We have one concern that is managing which filters are in the filter chain and their relative order, and another that is how individual filters are configured. Ideally we can provide config independently for each of these, and potentially federate the responsibilities to distinct parties.
I would like to see a filter config discover service that just supplies config for a named filter. The existing Filter Chain Discovery Service is providing the list of filters and relative order. If that needs to be further decomposed, I think a distinct design proposal is needed.

@htuch If we can enhance the filter chain discovery service to:

support HTTP filter chains;
allow composition from multiple control planes, e.g. multiple filter chains stitched together in one listener,

Then that would work as well.

FTR from the Lyft side the only thing we care about in this issue is being able to fetch an individual filter config from a federated management server. We will need this in Q1. cc @gkleiman @wgallagher

@lambdai any thoughts on https://github.com/envoyproxy/envoy/issues/7867#issuecomment-562215211?

@htuch i am thinking of wasm filters and the fact that there will be multiple. The only use of fconfigDS is that case is that if the wasm filter config changes we don’t end up cleaning all the v8 state and draining the listener.
However wouldn’t the same effect be achieved in fChainDS by diffing the new config against the old and realizing that only filter.reconfigure() needs to be called.
Every decomposion / normalization is additional complexity. If it is possible to provide config inline the first time and then use fConfigDS for updates that would be nice.

Every decomposion / normalization is additional complexity. If it is possible to provide config inline the first time and then use fConfigDS for updates that would be nice.

+1. I really would prefer that we don't let this issue get out of control. IMO the only thing this issue should track is:

Allowing a single filter's config to be provided inline or via a config source.
If provided via a config source, allow for snapping/reloading filter config for new uses of the filter (connections/streams).

Yes, this is basically what I was suggesting above, treat ordering/multi-filter stuff distinct from the individual filter config discovery service. I think it's definitely the right thing to do to implement the latter first.

@lambdai should we push this to 1.14.0? I.e. next quarter?

We can push this to 1.14.0 but we need to upgrade the config field to a oneof which includes the existing static config so we can easily add this later.

If provided via a config source, allow for snapping/reloading filter config for new uses of the filter (connections/streams).

Agree. I think it's the least requirement.

Allowing a single filter's config to be provided inline or via a config source.

This is not a least requirement in a DS but it's adding very small complexity.
I am targeting to push in 1.14.0

In term of HTTP filter chain, from control plane it might be trivial publishing mechanism similar to network filter chain, but at envoy side I don't have a full picture on the stitching, more importantly how to destruct and drain.

In term of HTTP filter chain, from control plane it might be trivial publishing mechanism similar to network filter chain, but at envoy side I don't have a full picture on the stitching, more importantly how to destruct and drain.

I will help with this. We need this at Lyft so I'm motivated to get this landed.

If FCDS sends back bad filter config and the filter cannot be loaded, does the listener stay in the warming state? It seems that there needs to be communication between the discrete management server (DMS)  and the main management server. The DMS needs to process the NACK and notify the main server.

If FCDS sends back bad filter config and the filter cannot be loaded, does the listener stay in the warming state? It seems that there needs to be communication between the discrete management server (DMS) and the main management server. The DMS needs to process the NACK and notify the main server.

Great call-out @mandarjog. I hadn't thought about this case. I wonder if in the case of a dynamically fetched configuration we need to provide a static fallback config so as to not block startup? Or potentially have an option where startup of the listener can continue if there is a fallback config, or it's a hard failure and the listener will be removed if the config cannot be fetched? WDYT?

It's similar to the issue with failing to fetch SDS/RDS in a warming listener. Specifically, for SDS it's a separate server that cannot be fully consistent with the main management server. There is no way for Envoy to indicate that an accepted listener failed to warm.

There is no way for Envoy to indicate that an accepted listener failed to warm.

Correct. This has come up several times. I think this is worth fixing, but it's not trivial. IMO a "default" configuration is actually something that many operators would want anyway in this case, so it might be an OK stop gap for many deployments. For example we would almost certainly use this at Lyft to not block startup for non-critical filters.

I wonder if it also makes sense to allow removal of filters by sending an empty config. This sounds a bit dangerous to me, but could also be used as a fallback. The default configuration vs no configuration probably depends on the intent of the filter (e.g. for authz, default should be deny all, for telemetry, just disable it).

Yeah, I think the minimum here is an option to fail-open vs. fail-closed. I think default config also makes sense. For removing filters, I think it would be cleaner to just have a disabled option. I would much prefer to not have whatever API we build here start to overlap with FCDS in terms of filter topology.

For removing filters, I think it would be cleaner to just have a disabled option. I would much prefer to not have whatever API we build here start to overlap with FCDS in terms of filter topology.

+1

+1 for fail-open and fail-closed, we have been discussing this in the WASM context. For example if a telemetry WASM filter fails to load you would still want to declare success and move on (and increment a metric for bad configs).
Using a URL fetcher to load WASM code has the same issue. The listener will go in "warming" state, with no way to notify the control plane.
So the ask here specifically is to be able send back a NACK after a listener enters warming state, or after config is accepted from FCDS. Is this possible ?

So the ask here specifically is to be able send back a NACK after a listener enters warming state, or after config is accepted from FCDS. Is this possible ?

This is not possible today and will require a bunch of thinking to figure out the right way to do it, but it's certainly possible and something we should do. In the near term, the hacky way of dealing with this is to just delete the listener with a stat, and then have it re-added in the next go around. Though, this won't work with incremental.

Ok, since ETA on async NACK is unclear I think it is better to use “local file” load when using WASM so that bad wasm module or “module not found” can be rejected synchronously with a NACK.  Wdyt @mattklein123 ?
I think this is generally true for any other interaction of this type.

Wdyt @mattklein123 ? I think this is generally true for any other interaction of this type.

I think it really depends on the deployment. IMO fail open with a default config will work in many cases, especially since with eventually consistency the config should eventually get loaded later when things are fixed.

I'm moving this out to 1.14.0, but we still need to move the static filter config into a oneof for v3. cc @lizan @htuch to track the automation around this.

@mattklein123 looking at filter config, today, we have:
  // Filter specific configuration which depends on the filter being
  // instantiated. See the supported filters for further documentation.
  oneof config_type {
    google.protobuf.Struct config = 2 [deprecated = true];

    google.protobuf.Any typed_config = 4;
  }

Do we need a new oneof, or could the dynamic ConfigSource just live under config_type?

Do we need a new oneof, or could the dynamic ConfigSource just live under config_type?

Oops yeah sorry I forget we already have a oneof here from the config -> typed_config conversion. Yeah this oneof should be fine. Sorry for the runaround.


Bug: Changing Title and then Pressing Enter Triggers Delete Club Confirmation

Changing the title and then clicking away still changes the title but does not trigger cancel popup. So it's specifically when pressing enter from that box. Nothing to do with changing a title.

What browser are you on? Its not the case for me


choose language error

Not working suddenly from yesterday
Error:
File "/content/app.py", line 1379, in main
delete_old=True,
File "/content/app.py", line 264, in translate
wrap_limit,
File "/content/app.py", line 132, in translate
self.choose_languages(lang_from, lang_to)
File "/content/app.py", line 127, in choose_languages
f"//button[@dl-test='translator-lang-option-{lang_to['lang'].lower()}-{lang_to['lang'].upper()}'] | //button[text()='{lang_to['description']}']",
File "/content/app.py", line 50, in init
WebDriverWait(driver, 60).until(lambda driver: find_element(*locator))
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/support/wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
#0 0x564493741553
#1 0x56449342c183
#2 0x564493462619
#3 0x564493462831
#4 0x564493497087
#5 0x56449348001d
#6 0x564493494d6c
#7 0x564493480363
#8 0x56449345647c
#9 0x564493457945
#10 0x5644937b19d0
#11 0x564493776a38
#12 0x56449377675c
#13 0x564493776fc2
#14 0x5644937af71b
#15 0x564493777221
#16 0x56449375a5b3
#17 0x564493780988
#18 0x564493780b1a
#19 0x564493799a41
#20 0x7fb6e043c6db

Fixed in commit 2356aa7664c229ab468bab477ac6f8c82078b16b. And published in last release (0.9.1) also in pypi, so feel free to upgrade the package and tell if any issue persist.


C Interface

Not really an issue, would be nice to have C interface for SPIRV-Cross so we can call from external, for example C#.
Maybe I can send PR tho.

A C-interface would be useful, but I'd prefer if this was contributed by someone else (e.g. you).
@rossy made something like this, not sure how complete it is.

I have something WIP here (https://github.com/amerkoleci/SPIRVCrossSharp), will do PR

Yeah, I made a (very limited) C interface for SPIRV-Cross so I could use it in mpv: https://github.com/rossy/crossc
The API is documented here: https://github.com/rossy/crossc/blob/master/crossc.h
Currently it can only compile to HLSL and it only has interfaces for the options I needed in mpv (shader_model, flip_vert_y,) though it also has features that I think are important for a cross-platform C library, like shared library support (with SONAMEs,) and I tried to build it in a way that encourages ABI stability by using accessor functions to set properties, rather than setting them in public structures.
I was meaning to propose it to upstream and hopefully get it (or something like it) integrated as the official C interface for SPIRV-Cross, but I guess I got lazy, since I haven't done that yet.

I do something similar in order to generate internal Rust bindings to map them to a Rust API. The biggest issues I had were handling exception messages and classes.
Maybe this wrapper has some useful ideas, although it tends to be slightly conservative and copies most return values from SPIRV-Cross (I don't try to assume the lifetime of return values):
https://github.com/grovesNL/spirv_cross/blob/master/spirv_cross/src/wrapper.hpp
https://github.com/grovesNL/spirv_cross/blob/master/spirv_cross/src/wrapper.cpp

It sounds like many people have looked into similar things, so we should make sure the C wrapper is comprehensive enough to cover the cases for everyone who has been involved in this.
As for exceptions, a C wrapper can easily catch all exception and translate that. Generally, exceptions in SPIRV-Cross are "fatal" exceptions. Usually, exceptions can be directly translated to an abort().
The most important things for me is:

It's ABI stable. The C++ structs are not ABI stable.
It can be shipped as a dynamic library, meaning we should be very careful which types we expose.

and you should be careful of allocations, making sure that each side of the api boundary will free what was allocated by them and not the other.

Ye, that's another consideration. Where allocations and frees happen.

@HansKristian-ARM Those requirements sound good to me. Also thanks for keeping mpv's use case in mind.

As for exceptions, a C wrapper can easily catch all exception and translate that. Generally, exceptions in SPIRV-Cross are "fatal" exceptions. Usually, exceptions can be directly translated to an abort().

Hopefully the abort() won't be done by the C wrapper itself. A fatal exception in SPIRV-Cross might not be fatal for the calling application. For example, mpv lets the user interactively enable and disable shaders, so if a shader can't be translated, the user can just disable it again. Also, mpv logs the full shader source on error to help with debugging, which it wouldn't be able to do if the process aborted immediately.
Currently, mpv calls crossc_strerror in crossc to get the exception message (e.what()) thrown by SPIRV-Cross, which is also helpful for debugging.

Yes, the wrapper shouldn't actually call abort(), just meant that the errors tend to be fatal in nature, so translating the exception handlers into some generic error code + error string is fine.

I'm mentally marking this is as the biggest ticket feature I will try to get done.

The error code + error string would be great to avoid e.what(). I have a build of my SPIRV-Cross C wrapper that I compiled to WebAssembly with Emscripten, but exceptions aren't supported in that environment, so I use -fno-exceptions and -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=1 at the moment.

Hm. I had not seen this issue before.
For embedding in Chromium, my team wanted a path into SPIRV-Cross which (1) always runs SPIR-V validatio first and (2) never uses exceptions (aborts instead).   We ended up writing a library to do this, as a component in Shaderc, and are now making "libshaderc_spvc".
And in Shaderc we always make a C API as the baseline thing, so we have https://github.com/google/shaderc/blob/master/libshaderc_spvc/include/shaderc/spvc.h
It might not be complete, but we intend to keep it stable.
Then we build a headers-only C++ wrapper around that.
Note: your uses might want to deliberately bypass SPIR-V validation, so you might not want to use codepath.

(whoops.  Accidentally closed the issue!)
Also, thanks to @HansKristian-Work for adding the abort-instead-of-exceptions mode and making an interface we could use to bypass the exception-heavy initial binary parsing.

@dneto0 I see. From what I can tell, that interface is more tailored to the needs of simple cases of cross compilation. I guess the main user of this interface right now is WebGPU?
On top of that, I intend to add the full reflection support, querying type information and all other options and helper functions for special use cases. I don't think this interface is going to supplant whatever is in shaderc though. I don't intent on exposing the ParsedIR integration interface to C for example.

One thing that might be possible to add is a wrapper to export a C++ generated ParsedIR to a C version of that. That might enable shaderc to reuse the C wrapper for the advanced use cases.


Expose esbuild loader option

Hi,
Thanks for the great library. I'm in the process of migrating entirely away from babel (if i can do it!) and I'd like to use this as my transpiling runtime.
However, I have some feature differences between the development mode (using tsx) and in production (using transpiled files).
Esbuild supports a loader syntax:
  --loader:X=L          Use loader L to load file extension X, where L is
                        one of: js | jsx | ts | tsx | css | json | text |
                        base64 | file | dataurl | binary

However tsx does not, so when i have a file that requires something I will treat as a string such as const template = require('./email-template.tpl'), tsx errors out.
I believe I am using both tools correctly, but happy to provide more information on the usage.

The loader option as a record is only supported in build mode. However as I know tsx is working using the transform mode of esbuild. We may have to simulate that manually.

Yep. tsx just spins up Node.js with this loader to teach it how to handle TypeScript files.
The run-time is still Node, so you should simply add another loader to teach Node.js how to handle .tpl files and pass it in.
If Node.js allows multiple loaders, you can do this:
tsx --loader ./tpl-loader.js ./file.ts

If not, feel free to open a feature request for it.


Iterator send empty link in HTTPS module, when the next page does not exist

Iterator sends empty next page to the HTTP module when the next page does not exist and we get an error that the link does not exist and the HTTPS model cannot handle the request.

Result contains 2 pages, The script gets stuck when the iterator keeps sending an empty value to the HTTP module instead of checking if it exists or not (and sending the results to Done).

Iterator parameters

2nd page (Iterated)

Parameters
Iterator Module - Reference Start: https://xxx/api/v4/events?filter[created_at][from]=1666795337&filter[created_at][to]=1666795338&limit=100
Iterator Module - Reference Next (Taken from a HTTP module): {{$node["HTTP Request"].json["_links"]["next"]["href"]}}
HTTP REQUEST MODULE - {{$node["Iterator"].context["currentReference"]}}
What should I do so that it collects all the values and sends them to Done, as is done in the example:
https://community.n8n.io/t/new-community-node-iterator/17741
Thanks for the help, I think we can get a very powerful tool by fine-tuning the module, I have 200,000 records and they are processed 100 at a time, such a method would make the task a lot easier.

Hi there,
There is an option you can add to tell it when to stop. Which you can let check to see if there is a next page. Not at a pc at the moment, so cannot give you an example right now.
Please check the options and let me know if you were able to fix it.

Is There Another Page option - Made it active, started it up. No success

You need to create an expression to handle that.

How to do that?

I checked the code for ya.
There is a bug. And it cannot be used properly.
You can do 2 things.
have a set node before the iterator setting the value to true with an expression.
and then have it check the next page in the loop to set it true or false.
another thing you can do is use the Expected item count option.

Thank you very much, i understand what to do

IF module between iterator  and Http moule works as expected

Does seem to work though, guess I saw something wrong in the code. Didn't have my coffee yet.

@lightcomc I've updated the package to version 1.2
Did some fixes and added some small features.
should now work easily for you, as it does not check the option "Is there another page" in the first iteration anymore. So you can easily set that to the next field to see if it exists.

https://xxx/api/v4/events?filter[created_at][from]=1666795339&filter[created_at][to]=1666795340&limit=100
Iterate branch reference start not sending any info to next module afer update, strange. and not send if options "here is another page" of "combine" is checked.

Maybe i do something wrong

You have to be more clear about what you are doing.

the max iterations is causing an issue here. setting it to 9999999 would solve it.

Yes, I haven't set a maximum number of iterations, perhaps this will help.
I went back to the old method with IF and it works fine too, solves my problem.
There's a lot of amount there. N8N is super tool, much more flexible in some aspects of the make service, but harder to master.

Updated to v0.1.2
There is no such option - max iterations

Then you didnt update or didnt reboot the server. I am using it myself so I know it is there 😅

hard reboot heal all questions, wow it works!

I checked new version.
If there are a certain number of iterations, the script works perfectly - it works and makes combine elements and it is really easy to work with this information.
My situation is a bit strange.
A query for 10 iterations may yield 0 pages - this is sent straight to the end of the script. and up to 15 pages (some iterations yield up to 2 pages)

I have the "old IF" check for no page, but it outputs values from only  the last iteration.
It would be ideal to check if there is a page (2 and... page) in incoming data from HTTPS module. If in "Reference Next" is no page - make combine and send all values to Done

I checked my case, found a solution to limit the number of iterations issued to one.
One second gives out 1 to 2 pages (1 iteration). So if there is a second page it is sent to done, if there is only one page it goes via IF empty and works the same as done.
I would of course like to be able to output more data to the handler, but this is enough to be successful. But it will work autonomously.

Sorry it is a lot to take in, have no idea what you are talking about. :-)

problem in incoming data from HTTPS module.
"Reference Next" no check empty page value. iterate, when next page is empty.

 Does seem to work though, guess I saw something wrong in the code. Didn't have my coffee yet.

Oh i forgot about this one. Checking...

That is probably because n8n doesn't accept invalid expressions anymore.
So you will have to fix that. ;-)

also you are responding to a closed issue which isn't the best ;-)

also you are responding to a closed issue which isn't the best ;-)
Thank you very much for this product


Unlocking and Locking your wallet.

Hey guys, a little feedback:
You need to make locking and unlocking the wallet easier.  Its a bit convoluted.  I am not sure when I have locked, and unlocked my wallet really.  So something like this: once you open the Magi coin wallet app (On a mac for example) you should put in your passphrase, and then after a certain amount of time, it locks again.
You click on a button to unlock it, and then re-enter passphrase, and BAM! you have access to your wallet again.  Having a nice GUI button with a lock (and when you click on it, it unlocks once passphrase is entered correctly) to control the locking of the wallet would be a nice feature for users.  I am a developer too, but I also know that keeping things intuitive is always the best way to go.
Thanks for your time.

I forgot to mention, this is on a Mac.  Its not very intuitive.

I believe this feature would be good to have. Are you referring the lock / unlock features to staking or coin transfer? I believe the latter, just to make sure.

Ya, but lets make it more general - kinda like touch ID when opening Venmo - make so that the app wont fully open without your passphrase.  Truly securing your Magi wallet.  Then, after a certain amount of time of you being idle, it locks again.  So say, maybe the first window is visible (I am thinking the overview section) but the rest is locked until the correct passphrase is entered.


[DO NOT MERGE] Test PR build

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/11187/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/11194/
Test PASSed.


Linux container on windows server 2019

I was wondering if there is a book or more materials where someone could get more information about running linux containers on windows server 2019. Couldn't get more info by reading this book. Thanks in advance for any feedback.

Not recommended - there are a couple of options but they're not well supported. A mixed cluster (Swarm or Kubernetes) with some Linux and some Windows nodes is better if you have a mixed estate.
I cover this in an episode of my container show on YouTube: https://eltons.show/episodes/ecs-w4/ecs-w4/

@sixeyed thanks for the feedback. Is there a way someone can contact you for training or consultation?


New Steam Big Picture - steamloopback.host

New Steam Big Picture
Steam is updating its Big Picture UI, this new design is entirely html & css and based on the UI the steam deck uses.
This update is no longer only in beta, but does need a launch arg to enable it.

Updated Big Picture is now available for testing. You can read more about it in this blog post. Modify your Steam client shortcut and add -gamepadui on the command-line to automatically start Steam in the new Big Picture Mode. Alternatively, pass -newbigpicture to start in Desktop mode and have access to the new Big Picture Mode at any time.

Investigation
We finally have a steamloopback.host, and so can enable our approach to skinning. This host is in Steam/steamui, the same directory the library currently uses.
It also looks like the new UI shares most of the code the existing friends/chat use.
Desktop Friends/Chat
<link href="https://community.akamai.steamstatic.com/public/shared/css/shared_global.css?v=ovy6qNJipq47&l=english" rel="stylesheet" type="text/css">
<link href="https://community.akamai.steamstatic.com/public/css/webui/friends.css?v=mHhi5-MxW4Rq&l=english" rel="stylesheet" type="text/css">

Desktop Library
<link href="/css/library.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/css\156.css">
<link rel="stylesheet" type="text/css" href="/css\1010.css">

Big Picture - one set of imports
<link href="https://community.akamai.steamstatic.com/public/shared/css/shared_global.css?v=ovy6qNJipq47&l=english" rel="stylesheet" type="text/css">
<link href="https://community.akamai.steamstatic.com/public/css/webui/friends.css?v=mHhi5-MxW4Rq&l=english" rel="stylesheet" type="text/css">
<link href="/css/library.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/css\156.css">
<link rel="stylesheet" type="text/css" href="/css\1010.css">
<link rel="stylesheet" type="text/css" href="/css\5742.css">

So Big Picture uses the same CSS files, plus one additional file. Presumably 5742.css contains the styles applied to the new big picture mode specific UI.

An existing Library skin works to some degree (when looking at a specific games page).
However, a friends/chat skin does not. This is primarily due to the files for the friends list needing to be in the Steam/steamui directory when theming Big Picture mode.
If the files are located in that directory they will be applied and work.

Thanks for looking into this. In the next release I'll at least have SFP automatically create a steamui/friends.css so that the list doesn't break when SFP is applied. Maybe I'll even just symlink them together, though I'm not sure if that is the best approach.

@LaserFlash Super late to this but some of the dependencies on SFP have been updated so I've been going through and working on the next update for it. Are you saying that if the friends.custom.css is put in steamui/ that it should just work for the big picture friends list currently? Because I just tested this on my end and it doesn't seem to be working hm
On the flip side though the friends and chat aren't broken at least like they used to be in the old big picture mode, they just have the default skin for me.


Can we have a v0.2.2 release including the new _uncacheable function - so we can monkey patch for non-GET caching?

Good library, thank you - I have built some of this functionality by hand before but it's nice to see a good library instead.
Unfortunately, I can't make use of this library yet - as per several comments, I need to cache POST requests.*
As far as I can see from issues, allowing non-GET caching is planned**. It does at least look like the code has been refactored to allow monkey patching now*** but:

there isn't a versioned release containing this refactor yet - so I would have to install the dev branch from github directly to use it - which I don't love for my dependencies.
it would be even nicer if I could allow post caching directly by configuration.

Is there a plan to create a release soon? Is there a plan to allow non-GET via configuration?
Many thanks,
Will
* I have a machine learning use case where it is necessary to POST data, but the response for a given payload does not change.
** https://github.com/long2ice/fastapi-cache/issues/75 : long2ice on Jan 21: "OK, just do it".
*** https://github.com/long2ice/fastapi-cache/blob/main/fastapi_cache/decorator.py#L82 Looks like you can override fastapi_cache.decorator._uncacheable

I'd appreciate seeing https://github.com/long2ice/fastapi-cache/issues/273 in a sub 1.0.0 release too.

Also https://github.com/long2ice/fastapi-cache/issues/281

+1, it would be really nice to have a minor release to have at least the _unreachable function.


OPENAPI Refactor

Whats Changed

moved openapi related action to openapi package

Codecov Report

Merging #103 (e754bbd) into main (baf1292) will increase coverage by 0.00%.
The diff coverage is 92.24%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #103   +/-   ##
=======================================
  Coverage   97.68%   97.69%
=======================================
  Files         234      238    +4
  Lines        6709     6731   +22
=======================================
+ Hits         6554     6576   +22
  Misses        155      155

Impacted Files
Coverage Δ

ellar/common/__init__.py
100.00% <ø> (ø)

ellar/common/constants.py
100.00% <ø> (ø)

ellar/common/decorators/controller.py
100.00% <ø> (+1.42%)
:arrow_up:

ellar/common/models/guard.py
100.00% <ø> (ø)

ellar/core/guards/__init__.py
100.00% <ø> (ø)

ellar/core/guards/apikey.py
100.00% <ø> (ø)

ellar/core/guards/consumer.py
100.00% <ø> (ø)

ellar/core/routing/factory.py
100.00% <ø> (ø)

ellar/common/decorators/allow_any.py
83.33% <83.33%> (ø)

ellar/openapi/builder.py
94.85% <89.85%> (-5.15%)
:arrow_down:

... and 12 more


movement-controls broken with aframe 1.2.0

Hi
movement-controls broken with aframe 1.2.0
 <a-entity id="player" movement-controls="constrainToNavMesh: true; controls: keyboard" position="0 0 60" rotation="0 0 0">
worked with aframe 1.1.0
Thanks

The big breaking change with threejs this month was the depreciation of Geometry, and the requirement that we use BufferGeometry instead. I found only one instance of THREE.Geometry in Aframe Extras and I merged a PR to fix it to THREE.BufferGeometry. This affected navmesh specifically. Try your code again and let me know if this fixed it or not.

Hi @n5ro , I was wondering how do we test whether it works with the latest code changes or not? I tried to use<EMAIL_ADDRESS>as the src, but it still had THREE.Geometry. Is it possible to elaborate on how to use the latest changes to test it?
Thanks!

Edit: It also seems that the PR won't fix it, because https://github.com/n5ro/aframe-extras/blob/afcebe83edfe9bcbda0dcf055ff399f34d8f2a5f/src/pathfinding/system.js#L20 this function still expects a three.geometry object as a parameter?

Still having issues with Navmesh because of this. Results in "THREE.Geometry is not a constructor" error.
https://github.com/n5ro/aframe-extras/blob/afcebe83edfe9bcbda0dcf055ff399f34d8f2a5f/dist/aframe-extras.js#L11127

Yes I know about the issue with navmesh. I have been working on it, asking
questions, researching the problem, I have some ideas about what I need to
do to fix it.
Someone created a basic navmesh demo and I am using it to test a possible
fix
here is what I am working on now https://glitch.com/edit/#!/navmesh1
and here is an older version of it https://glitch.com/edit/#!/navmesh
Please feel free to remix these and use them to test possible solutions.
--
Sincerely,
Micah Blumberg
3+ years webxr code experience, 5+ years virtual reality & technology
journalist, he/him
Silicon Valley Global News (Science & Technology Journalism)
and VRMA.io Virtual Reality Magazine (WebXR based news),
http://svgn.io
Github
github.com/n5ro
github.com/micah1
http://github.com/n5ro
The Aframe WebXR Online Hacknight & San Francisco Virtual Reality
https://www.meetup.com/virtualreality/events
Auto-bio: http://vrma.io
Twitter: https://twitter.com/worksalt
instagram: https://www.instagram.com/micahsun/
linkedin: https://www.linkedin.com/in/worksalt/
On Sat, Apr 10, 2021 at 2:51 PM Ross Bishop @.***>
wrote:

Still having issues with Navmesh because of this. Results in
"THREE.Geometry is not a constructor" error.
https://github.com/n5ro/aframe-extras/blob/afcebe83edfe9bcbda0dcf055ff399f34d8f2a5f/dist/aframe-extras.js#L11127
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/n5ro/aframe-extras/issues/349#issuecomment-817207033,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALABUCKL2VOYEB2X4LMRG6TTIDB53ANCNFSM4XIY76WQ
.

I'm still working on a fix to navmesh https://glitch.com/edit/#!/navmesh1
https://glitch.com/edit/#!/navmesh
https://glitch.com/edit/#!/navmesh2
Feel free to read the commented code in each index file for details. I am trying to replace Three.Geometry which has been deleted from threejs with BufferGeometry. I could use some help testing this and withing this code, please remix the links and try to get it working also. In the meantime use Aframe 1.1.0 with A-Frame Extras until we get this fixed.

Okay, I've got what I believe to be a fix for this.
See https://github.com/n5ro/aframe-extras/pull/358

It might be worth bumping to three-pathfinding v0.14.1, it has some fixes for the Geometry/BufferGeometry situation that were not in v0.14.0. See https://github.com/donmccurdy/three-pathfinding/pull/77.

I updated three-pathfinding to 1.1.0 in #388


Filter chart by time range

Ari suggested it would be helpful if you could select a time range rather than be stuck on the 12 month view.

We should add a daterange picker just like the one in the data dashboard


opt Add config arrow_flight_result_sink_buffer_size_rows

support modifying arrow flight result sink buffer rows size with parameters, default 4096 * 8.
we want to return a larger batch at a time, when large amounts of data.

run buildall

run buildall

run buildall


envoy: Add renovate configuration for cilium-proxy image

The existing update-envoy-image Make target is re-purposed to take the values from install/kubernetes/Makefile.values as source of truth.

/test

/test

/test

We will need to backport the file images/scripts/update-cilium-envoy-image.sh to the stable branches.

Thanks, I will do the needful.

We will need to backport the file images/scripts/update-cilium-envoy-image.sh to the stable branches.

Thanks, I will do the needful.

It seems like we don't need the post upgrade task, hence no backport is required.
https://github.com/cilium/cilium/pull/33424#discussion_r1667234287

/test


sops-install-secrets: allow using tmpfs instead of ramfs

Deploying sops-nix to an OpenVZ host running kernel 4.19.0 fails due to lack of support for ramfs, would be nice to allow using tmpfs instead of ramfs by specifying it in the manifest.
Or perhaps, a dontcare flag for sops-install-secrets in which it doesn't check and mount the secrets mount point.
https://github.com/Mic92/sops-nix/blob/912f9ff41fd9353dec1f783170793699789fe9aa/pkgs/sops-install-secrets/main.go#L322
Waiver: I do understand the security implications with tmpfs as you risk getting the contents swapped to disk.
I'm writing the patch myself as I have no way around this one but still want to keep using sops-nix for secret management, would just like to know if there is interest in upstream accepting a patch.

I would accept a patch that add an option with a proper description about the security implication.

should be fixed by #355


SDK Automation should report error when the config output path is incorrect.

Sometimes, we will get service readme.typescirpt.md configed like this https://github.com/Azure/azure-rest-api-specs/pull/19729/files  And in fact this RP's SDK can not be generated correctly if we don't add the title configuration. Such kind of SDK generation failure can not be detected if we don't set the SDK output path correctly. we should report errors in the SDK automation pipeline when this output path is incorrect.

close it as finished.


EACCES: permission denied: ~/.local/share/nvim/org-roam.nvim/db at installation

Hi !
First of all I wanted to thank you for this great piece of software.
For my usage it already does everything I need and its really cool to find
hidden gems like that !
Describe the bug
After  the installation, I had this error message in vim :
EACCES: permission denied: ~/.local/share/nvim/org-roam.nvim/db

While doing some investigation, I saw that the folder created for the local db doesn't have execution permission for my user:
➜  ls -al ~/.local/share/nvim | grep org
drw-r--r--  2 me me 4096 Apr 30 19:26 org-roam.nvim

chmod u+x ~/.local/share/nvim/org-roam.nvim  solved the problem in my case.
To Reproduce

Delete ~/.local/share/nvim/org-roam.nvim folder and his content
Open nvim with the plugin installed

Expected behavior
The error message should not be present, and nvim should be able to access db file in org-roam.nvim folder.
Environment

OS: Linux (6.8.7-arch1-2)
commit : 8f3c541

Additional context
I must also note that when trying to install the plugin on a Mac M1 on Sonoma (Mac OS 14.4) I had this problem plus another one.
The org-roam.nvim folder  also had an extended attribute com.provenance.apple in addition to not have the execution flag.
I solved  the problem using this conversation : apple.stackexchange
Thanks again !

Hey, thanks for the bug report! Seems similar to the challenges tied to #30 for @KortanZ on Windows.

While doing some investigation, I saw that the folder created for the local db doesn't have execution permission for my user:

I'm surprised, why does the file or folder need execution permissions? The folder is only leveraged for reading and writing to the db file, which is a cache used by the plugin.

I must also note that when trying to install the plugin on a Mac M1 on Sonoma (Mac OS 14.4) I had this problem plus another one.
The org-roam.nvim folder also had an extended attribute com.provenance.apple in addition to not have the execution flag.
I solved the problem using this conversation : apple.stackexchange

This is also puzzling to me. I've used an M1 Mac Mini, M1 Macbook Air, and M1 Macbook Pro (Mac OS 14.4.1) and not hit this issue.
What version of neovim are you using? The provenance attribute isn't on any of your existing folders when the org-roam.nvim folder gets created, right?

I'm surprised, why does the file or folder need execution permissions?

It's kinda weird indeed. From my understanding x permission for directories means that one can list/search the directory.
The chmod man page state that:

The letters rwxXst select file mode bits for the affected users: read (r), write (w), execute (or search for directories) (x) ...

But it's not clear if its mandatory to access files within the directory though, after a quick test, I guess it is. Or at least, it's easier.

What version of neovim are you using? The provenance attribute isn't on any of your existing folders when the org-roam.nvim folder gets created, right?

So I just tested on the mac, and it seem that the com.provenance.apple is here again, but it doesn't cause any problem.
I tried to reproduce the problem (by deleting the folder and opening nvim again),
and I can actually add the u+x without touching to the extended attribute.
In the same folder, the telescope_history file has this flag without causing any issue.
Sorry for my misunderstanding for this
I'm on NeoVim 0.9.5 on both machines

Cool, thanks for testing further! I'll update the default permissions we use for folder creation to include the execute permissions, and let you know here when it's rolled out. Sometime today.

@SamuelLorrain I just pushed https://github.com/chipsenkbeil/org-roam.nvim/commit/7129a9d5cbe514c6b7fbd041fe801e2fb9a67c91 to see if the issue was on the directory permissions (set to 0o644 instead of 0o755) and not the file itself. I'm still not hitting these issues, and removed the org-roam.nvim directory and let the plugin recreate it.
Would you mind testing to see if it was the folder permissions that were the issue and not the file itself?

Ok I just tested to reproduce with the last commit and it's working now.
I no longer have the EACCES error even after deleting the org-roam.nvim folder, so it seem that it was the folder permission indeed.
Thanks !

Great! Closing out the issue 😄


Can add method Transation.serialize() without signers ?

When I want to serialize a transaction, I must first add a Signer.
Is it possible to add a serialization method that does not require adding an Account, but only requires a public key?

yes , I can use this dylib , thank you so much!


Some more fixes to 1.7 migrations

There were still some binary string lurking in initial migration, also some changes in models that needed a new migration.

Coverage remained the same at 96.28% when pulling 8fc7466b1937002452009e25cfca9eac0687e8f2 on skirsdeda:develop into 7900d2102ed89cfb23eee6016ae09dd069ab36db on nephila:develop.

Coverage remained the same at 96.28% when pulling 8fc7466b1937002452009e25cfca9eac0687e8f2 on skirsdeda:develop into 7900d2102ed89cfb23eee6016ae09dd069ab36db on nephila:develop.

I'm trying to get a grasp on those failures.
It's definitely not a djangocms-blog bug, and not a bug in this PR

@skirsdeda failures due to a bug in django-cms (divio/django-cms#3892). It should be released soon in 3.0.11, after that I'll be able to merge this

@skirsdeda please reabase on latest develop which uses a version of django CMS which hopefully fixes the failure.
This is really just a problem during testing, as the bug does not affects project during normal execution

Coverage remained the same at 96.28% when pulling 7687d293e2485e00553825555ad999c2646951ee on skirsdeda:develop into 03073e45e4936944cbdf4b928434d6b6d2a02b06 on nephila:develop.

\o/

Awesome @skirsdeda thanks!


Describe the bug
Clicking on the overdue reminder in the reminders tab does not open the note containing the reminder

Instead it creates a notification of the overdue reminder.

Expected Behavior
The plugin causes the note containing the reminder to open in the editor when you click on a note that isn't overdue. This should happen when you click on an overdue note as well
Steps to reproduce

Create a new reminder with a date before the current date.
Click on that note in the reminder panel and note that it does not open the note
Update the date of the reminder to be one later than the current date, and it behaves normally

Operating system
Windows

+1


N-API version

When installing on windows everything is fine, but on mac I get this:
Cannot find module<EMAIL_ADDRESS>And I have napi-v6-darwin-x64 in binding folder
In console I get this as well: node-pre-gyp info This Node instance does not support builds for N-API version 6
I even lowered node from 14.x to 12.18.4
Also Ive tried building from source and issue persists
Any advice?

same issue

+1

Same problem on Electron 11 here. Any fix for this yet?

Same problem on Electron 11 here. Any fix for this yet?

Working to get a fix out in the next week or so.

Working to get a fix out in the next week or so.

Actually I upgraded my Node from 12.13 to 12.20 and this error is gone, but now the build fails like in #63

Actually I upgraded my Node from 12.13 to 12.20 and this error is gone, but now the build fails like in #63

The general solution is:

Make sure the correct N-API version of the bindings is installed.
Don't rebuild with electron-forge or electron-rebuild.

For Electron 11+, use Node v10.20.0+ / v12.17.0+ / v14.0.0.
For Electron 10 and earlier, use an earlier Node version.
Note: Just changing the node version is not sufficient - you may need to remove node_modules and install again.
For more details see the new notes: https://github.com/journeyapps/node-sqlcipher/blob/3870217c1245dd4253e2bac2ea8d1d12a8c4a2b6/README.md#usage-with-electron-forge--electron-rebuild.

The general solution is:

Make sure the correct N-API version of the bindings is installed.
Don't rebuild with electron-forge or electron-rebuild.

For Electron 11+, use Node v10.20.0+ / v12.17.0+ / v14.0.0.
For Electron 10 and earlier, use an earlier Node version.
Note: Just changing the node version is not sufficient - you may need to remove node_modules and install again.
For more details see the new notes: https://github.com/journeyapps/node-sqlcipher/blob/3870217c1245dd4253e2bac2ea8d1d12a8c4a2b6/README.md#usage-with-electron-forge--electron-rebuild.


DOF Blur with TAA causes ghosting on nearby objects, worse with 4.3 master.

Tested versions
4.3 dev [8ff821670561466a5ff72044ad574dcb955b66c2]
System information
Windows 11 - Vulkan - Nvidia RTX 4070 - intel i5 13600KF
Issue description
For some reason the bluring causes ghosting, at highest quality settings it's the worst. The objects in question are near the camera and the far distance is set to over 20 units but the DOF distance itself doesn't matter.
I set up settings up such as glow and autoexposure to make it better visible, it happens without it too but depending on the background color it might be difficult to see, TAA makes it flash a lot constantly which makes it even worse - change values in camera attributes in exposure, particularly scale and speed and some other to make it flash like crazy to see if you have torubles).
Some regression perhaps?
This was already happening in 4.2.1 but it got worse in 4.3, both occurences are annoying.
(Screenshots are scaled up to show where the issue is clearly - around cpasule and the other shapes - my project itself is at full hd so it's not a low res issue, it's also just as visible at larger res as it is in these screens)
4.2.1:

4.3 master images:

(second image is from the MRP, the other are from my project)
Ghosting in video (I zoomed in a bit to make it easier to see around the capsuleand the red mesh but it's just as visible from distance too I only wanted to isolate this part of the video to make it clear what I'm talking about.):
https://youtu.be/SrBSVaI9QxE
It flashes with TAA enabled a lot in 4.3 (not sure if this is expected or if it's a bug and should be here or in a separate report?):
https://youtu.be/XUSraUwzzmc
Lower quality blur settings help (I assume it's still happening but on a such a smaller scale it's not easily visible in my test cases?)
One last note, the ghosting happens even before the far objects start getting blurred, I'd expect it to work the other way around that the closer the blur distance gets to the capsule the more likely the issue would happen but nah first the ghosting and then eventually the distance objects get blurred as I increase the blur distance.
Steps to reproduce

Open the MRP and check the camera preview.
Play with camera attributes - blur distance, auto exposure settings.
Enable/disable TAA.

Minimal reproduction project (MRP)
BlurTest.zip

Can you reproduce this with Scaling 3D > Mode set to FSR2?

Yes, I originally had fsr2 enabled but that's either the worst option or more or less as bad flickering as TAA.

@Calinou I know you renamed it to make it clear but the ghosting happens without TAA as well as with. TAA makes it flicker and in general worse (fsr too). That's why I wasn't sure if I should have mentioned it as a separate report or not.
So for clarity to anyone, ghosting happens independently of TAA/FSR.


Upgrade quic-go to v0.25.0

What does this PR do?
Upgrade quic-go to v0.25.0.
Motivation
First release to support upcoming go 1.18.
https://github.com/lucas-clemente/quic-go/compare/v0.23.0...v0.25.0
More

[ ] Added/updated tests
[ ] Added/updated documentation

Additional Notes

Hello, Can you fill in the description of the PR as intended by the template?
Can you add a link to the comparison between the previous and the new version of quic-go.

Done.


Blacklist gh-pages from screener

Screener shouldn't build all branches,
This can be avoided by using CircleCI environment variables and using different configs on either case.
var config = {
  // regular screener options here
}

if (process.env.CIRCLE_BRANCH === 'do-not-test-this-branch') {
  config = false
}

module.exports = config

This is not an issue since screener.config.js is not on the gh-pages branch so it already doesn't run


Support for Sort passing in REST requests

Currently no way to pass sort parameter to cursor.

Added possible solution as PR: #48


Investigate i18n translation options

https://github.com/flix-tech/stencil-i18n
https://link.medium.com/YoGFFrNUF4

General localization

https://airbnb.io/polyglot.js/
https://www.i18next.com/

investigated
but needs more formalization


Turn usage into a grid, because grids are cool

Reason: grids are cool.
Problem with the old way: it's not a grid, and grids are cool.
But really, this automatically adds spaces, meaning if new longer commands are added then all other lines don't need to be re-formatted manually(this would get especially tedious the more commands added).

Could you give an example of what this would output?

I have a few problems with this:

Kind of minor, but there is an added runtime cost when it has to calculate padding each time the help message is shown
I think you may have overcomplicated things. Remember that Gleam is a functional programming language: there shouldn't be any mutability going on.
Since you are only using gleam_javascript for mutability, it isn't needed.

Overall, I think this is a good idea, but the implementation would have to change before it is merged.

Sure.


Macvendor

Reopened from: https://github.com/home-assistant/home-assistant/pull/4401
Now uses asynchronous http calls to macvendors.com to lookup vendor string for mac on known devices.

Can we move isort to a separate PR?

@lwis sure will do

Doesn't this change make HA dependent on a working internet connection?

Had to modify the ddwrt tests suite as it was not adapted for asyncio.
I have tested it, but no http api calls are actually being made during the test suite. Btu if you want I can add a some code to make sure calls get mocked anyways, something like:
    def run(self, result=None):
        with mock_aiohttp_client() as aioclient_mock:
            aioclient_mock.get('http://api.macvendors.com/.*', text='')

            super().run(result)

@Landrash it fallback gracefully, so in case of no internet connection there is no harm.

isort stuff is now also separated: https://github.com/home-assistant/home-assistant/pull/4481

Suggestion for a fallback if lookup via macvendors.com fails (using the netaddr  module, which works offline):
import netaddr
netaddr.EUI("00:00:00:00:00:00").oui.registration().org

I'm not aware of the quality of the results the module returns. The bundled vendor-database roughly is about a year old.

@danielperna84 using netaddr was my first implementation. But @balloob preferred the API. https://github.com/home-assistant/home-assistant/pull/4401

Oh, ok. Then forget what I've said. :)

I added changes to fix the ddwrt test suite because the device tracker component setup now has true asynchronous behavior which was unexpected by that test suite.
Also updated the error handling logic to write of any error/failure as unknown result. Since the vendor value only gets written to the known_devices file on the first try. So retrying doesn't make sense.

Rebased to latests dev and adapted to new websessions pattern.

Ok to merge when merge conflicts resolved 🐬

Cool!


Update Inpost.php

Removed this:
$this->checkoutSession->getQuote()
Because based on this it will create infinite loops:
https://magento.stackexchange.com/questions/340048/how-to-properly-get-current-quote-in-carrier-collect-rates-function

@thespacersm Thanks for your submission.
I'm here to review your changes.
I expect this to be done in 24 hours period.
Thanks

@thespacersm after reviewing and testing your changes have been merged.
Thanks for the collaboration!


A way to specify compile options

It would be nice to have a way to specify the options for:
Handlebars.compile(template, options)
Begin able to set options like noEscape, strict, preventIndent, ignoreStandalone, etc.,  would be pretty useful.

Released as v3.0.0.
hb({ compileOptions: { ... } });


Can I do the MDC card variant of horizontal image and text with mdc_web?

Hi I'm trying the horizontal variant of the mdc card, demoed in https://material-components.github.io/material-components-web-catalog/#/component/card?type=uiControl
Is it possible with mdc_web?

To get the media in the card to be horizontal, I think I need
.mdc-card__media {
  @include mdc-feature-targets($feat-structure) {
    position: relative; // Child element `__media-content` has `position: absolute`
    box-sizing: border-box;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }
}

If I only use
.card_media {
  background-image: url($mdc-card-image);
  position: relative; // Child element `__media-content` has `position: absolute`
  box-sizing: border-box;
  background-repeat: no-repeat;
  background-position: left;
  background-size: cover;
}

on the code that already works, that doesn't change the media position from north to west of the card.


Add Cdiscount, More than 2 million downloads

Hello,
I'm the technical leader to Cdiscount application in native react .
This application is already used by several million users .
Regards,

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

Thanks for sending this pull request. According to the guidelines in that file, "infoLink" must be one of:
1/ An English-language news article discussing the app, built either by a funded startup or for a public company
2/ An English-language technical post on a funded startup or public company blog discussing React Native
I am going to close this, but if you have one of those two things, feel free to reopen with a new link.


Creating a new Pane in a custom terminal with makes the previous one unresponsive

Windows Terminal version (or Windows build number)
Microsoft Windows [Version 10.0.19043.1237]
Other Software
https://www.msys2.org/
Steps to reproduce

Install latest msys2 from https://www.msys2.org/
Add the msys2 terminal to windows terminal list

      {
        "commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64",
        "guid": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}",
        "name": "msys2",
        "startingDirectory": "%USERPROFILE%"
      }

Open the msys2 terminal and install zsh pacman -S zsh (zsh is required since with bash this bug doesn't appear)
Update the commandline argument to open the zsh console by default

"commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 -c /usr/bin/zsh",

Restart the windows terminal
Create a new pane
Try to write something on the orginal pane, here you will see the console becomes unresponsive for the first pane, though the new one works fine.

Expected Behavior
I think this is a bug in windows terminal because if I open a new tab the msys2 terminal works fine so, so creating a new pane is affecting to previous panes inside the same tab. I will expect panes are completely independent process from each other.
Actual Behavior
When using the msys2 console with zsh in the windows terminal, and then creating a new pane, it will make the previous pane to become unresponsive

I found that starting zsh like this solves the issue
"commandline": "cmd.exe /c \"set MSYSTEM=MINGW64 && set MSYS=winsymlinks:nativestrict && set MSYS2_PATH_TYPE=inherit && C:/msys64/usr/bin/zsh.exe --login -i\"",

I'm not sure if I should close this issue though, this seems like a Windows Terminal bug right?

Hi @dortamiguel. It's been a while. Are you still experiencing this issue?


How does this differ from other JS AR libs?

Hey! Would be great to know how this library differs from  some of the other CV/AR libs out there. Also is this just a wrapper/abstraction around ARToolkit/Three or is there something other magic going on underneath the hood ?
Keep up the good work!

it is mainly the performance i think.
But please dont trust me, do you own comparison, and use the AR solution that fit your need.


feat: autocomplete

Started working on autocomplete and switching away from autosearch, still a few things left to do:
[] update terraform to support new key endpoint
[] when a user clicks an option in the autocomplete dropdown, search for that option (right now it requires you to press enter).

fixes #5


function call leads to "Binder Error" when viewing "output.arrow" pane

What happened?
Using Playground with 0.8.1, I tried to use my dollars function to format the value of a column of the Chinook database.
PRQL compiles the query as expected, but the result of the query (shown in the output.arrow pane) has an error. Two comments:

This is obviously not the desired outcome.

It was hard to understand what was going on: was it an error in PRQL? Or in the generated SQL query itself? A "Binder Error" might be better displayed that the SQL database gave the error as a result of the query, not the PRQL input...

What other troubleshooting information could I provide? Thanks!
PRQL input
# dollars displays a numeric value as dollars with commas
func dollars d -> s'printf("$%,d",{d})'

from invoices
select [
  nice= dollars(total)
]

SQL output
# This is the output in the `output.arrow` pane:

Error: Binder Error: Referenced column "$%,d" not found in FROM clause!
Candidate bindings: "invoices.total"
LINE 2:   printf("$%,d", total) AS nice
                 ^

Expected SQL output
# As Expected...

SELECT
  printf("$%,d", total) AS nice
FROM
  invoices

-- Generated by PRQL compiler version:0.8.1 (https://prql-lang.org)

MVCE confirmation

[X] Minimal example
[X] New issue

Anything else?
No response

It looks like a problem with the printf function call from the s-string. In SQL, " are used to escape column names, so this expression:
printf("$%,d", total) AS nice

... is interpreted similarly as this one:
printf(my_column_1, my_column_2) AS nice

Solution is to use single quotes in the s-string, which also requires you to use double strings for the s-string.
- func dollars d -> s'printf("$%,d",{d})'
+ func dollars d -> s"printf('$%,d',{d})"

The feedback for us here is that:

we need better string formatting support in PRQL, so people don't have to mess with s-strings and SQL semantics here,

select [
nice= dollars(total)
]
... is valid PRQL, even though I would write that as:
```elm
select [
  nice= (dollars total)
]

Nothing bad here, just interesting that we can also use the standard function call syntax (in this case).

Good to know about the difference between " and ' in S-strings.
Has the Book re: Strings been updated to document this? Thanks again.

It has not been. I'm not sure how do document this. What would you write in the docs?
I'm worried that this is too broad, because it is not behavior of s-strings, but behavior of SQL quotes. Then we'd have to document the whole SQL.

Hmmm... I can see that this adds yet another reason to minimize the need for s-strings... Let me see if I understand the situation:

Normal strings are wrapped between pairs of " or ' or """ or """" etc...
If a string includes one of those characters, simply wrap with another delimiter, e.g. ' ... " ....' or even """ ... " ... """
F-strings and S-strings are no different, using any legal combination of delimiters, EXCEPT...
In an S-string, the SQL manager treats double-quotes (") as denoting a column-name. To avoid that, use single-quotes (') around that string, and adjust the beginning and ending delimiters as needed.

(Is that last bit correct? If so, "all we need to do" is update the S-string section of the Book.)

Yes, that is all correct.

yet another reason to minimize the need for s-strings

Yup, that should be take away of this issue.


Issues with TPM

I am trying to setup PARSEC with a TPM module 0 on the Raspberry Pi 4.
I can get infos from the TPM with eltt2 software but when I try to use the TPM module with PARSEC, I get the following error in the log:
mars 31 13:55:09 localhost parsec[2058]: [ERROR tss_esapi::context] Error while testing parameters: value is out of range or is not correct for the context (associated with parameter number 1).

parsec-tool psa-generate-key -k "testTPM" -p 3 also fails with:
[INFO] Generating key...
[ERR] Executing subcommand failed.

Caused by:
    generic input/output error

And from the parsec log:
mars 31 14:52:31 localhost parsec[2058]: [ERROR parsec_service::front::front_end] Failed to send response;

Also, parsec-tool  list-keys returns:
[INFO] Available keys:
* 'testTPM' (MbedCrypto, 2048 bit RsaKeyPair)

which is weird as it claims it is from MbedCrypto, and previous command for TPM failed.
My current config is:
[core_settings]

[listener]
listener_type = "DomainSocket"
timeout = 200 # in milliseconds

[authenticator]
auth_type = "UnixPeerCredentials"

[[key_manager]]
name = "on-disk-manager"
manager_type = "OnDisk"

[[provider]]
provider_type = "MbedCrypto"
key_info_manager = "on-disk-manager"

[[provider]]
provider_type = "Tpm"
key_info_manager = "on-disk-manager"
tcti = "device:/dev/tpmrm0"
owner_hierarchy_auth = ""

Hi 👋🏻
I'll start from the top:
That tss_esapi::context error doesn't necessarily mean something wrong has happened - before we start our "main" TSS context we check whether we can use AES256 for session encryption. If it's not supported by the TPM, that error message you posted is logged and we fall back to AES128. I'll look at disabling logging for those calls, there's been a bit of confusion before because of them :) From the rest of the message I gather that the service did start correctly, it's just that one error log at the beginning.
We have seen that generic input/output error before, it was caused by timeouts - based on the command names, it looks like you're using version 0.1.0 of the tool. We increased the timeout in version 0.2.0 (and added a CLI option for it - -t <number of seconds>), using that or 0.3.0 is recommended.
As for the key being shown as belonging to the Mbed Crypto provider, that was a bug that we fixed in the (recently released) version 0.7.0 of the service! It's also recommended to switch to the new service version, but the bug is only "cosmetic" - the key is actually created in the correct provider by the tool - so switching over isn't crucial.
Let us know if this fixes your issues or if you hit new ones!

Updating to parsec-tool 0.3.0 fixes the issues, thanks a lot!
The only remaining error is the tss_esapi::context one, even with 0.7.2.

I'll try to have a "fix" for that one later today, though in truth it's not really an error, more like a misleading log message.

To be more precise, the error message is now:
parsec[8047]: [ERROR tss_esapi::context::tpm_commands::capability_commands] Error while testing parameters: value is out of range or is not correct for the context (associated with parameter number 1)

@ionut-arm since #381 imported the latest main of tss-esapi that should be fixed, right?

I'd hope so!

Ok closing for now then, but feel free to shout if it's still the same!


Display loading & error states when visualizing sketches

Regardless of rendering via MVT or GeoJSON, there should be a loading indicator when turning on a sketch and it isn't appearing yet on the map. Same for errors. Right now there is just zero feedback which will sometimes be a problem.

Done in c0c998c


Dependency api-ms-win-core-wow64-l1-1-0.dll not found

With a build of master downloaded from AppVeyor:

The DLL exists on my system, albeit on a different path:

Ok I've "fixed" this issue : for some reason, when an apiset entry is present in the apiset map but points to an empty target (such as api-ms-win-core-wow64), the loader falls back to kernelbase.dll.
I don't really understand where this  kernelbase.dll appears in the loading sequence, but hardcoding it seem to do the trick :

Fuck, api-ms-win-core-winrt-string-l1-1-0.dll falls back to combase.dll. not kernelbase.dll ...

Ok, there was two bugs :

apiset lookup disregard the "build' number part, e.g. api-ms-win-core-winrt-string-l1-1-0.dll will be search as api-ms-win-core-winrt-string-l1-1m and will match with api-ms-win-core-winrt-string-l1-1-1 which points to combase.dll
String.Compare is "localized" (WTF ?) and don't do a proper ASCII string comparison

By the way, this is fixed now

Thanks for the fixes!

Hello!
I'm having the same problem too with a C++ and fortran mixed .EXE software. In Dependencies it says api-ms-win-core-wow64-l1-1-0.dll cannot be found. Could you tell me how did you fix this Problem by hardcoding it? i.e. how to link it to kernelbase.dll? Thanks.
Kind Regards,
Dan

Ok, there was two bugs :
1. apiset lookup disregard the "build' number part, e.g. `api-ms-win-core-winrt-string-l1-1-0.dll` will be search as `api-ms-win-core-winrt-string-l1-1`m and will match with `api-ms-win-core-winrt-string-l1-1-1` which points to `combase.dll`

2. `String.Compare` is "localized" (WTF ?) and don't do a proper ASCII string comparison

By the way, this is fixed now

@dandan19830409 : apiset redirection is done by the compiler. My guess is you're using a fairly recent visual studio (vs 2015/2017/2019) but you're trying to run the exe on Windows 7 which have an older apiset. Am I right ?

Windows
Hi,
Thanks for the fast reply.
Yes. I'm using VS2015 to produce an EXE file on windows 10. It can not be executed due to missing DLLs. But before this, the file produced by VS2015 on windows 7 was okay. The source codes are of course the same.

Kind regards,
Dan

The easiest solution to ensure your binary can run on all supported platform is to compile it with "/MT"
One little example :
"/MT"
PS O:\Dependencies\Dependencies> .\bin\Debugx64\Dependencies.exe -imports "C:\Users\lucas\source\repos\TestWow64Apisets\x64\Release\TestWow64Apisets.exe"                                                                                [-] Import listing for file : C:\Users\lucas\source\repos\TestWow64Apisets\x64\Release\TestWow64Apisets.exe
Import from module KERNEL32.dll :
         Function GetCurrentProcess
         Function IsWow64Process
         Function RtlCaptureContext
         Function RtlLookupFunctionEntry
         Function RtlVirtualUnwind
         Function UnhandledExceptionFilter
         Function SetUnhandledExceptionFilter
         Function TerminateProcess
         Function IsProcessorFeaturePresent
         Function QueryPerformanceCounter
         Function GetCurrentProcessId
         Function GetCurrentThreadId
         Function GetSystemTimeAsFileTime
         Function InitializeSListHead
         Function IsDebuggerPresent
         Function GetStartupInfoW
         Function GetModuleHandleW
         Function RtlUnwindEx
         Function GetLastError
         Function SetLastError
         Function EnterCriticalSection
         Function LeaveCriticalSection
         Function DeleteCriticalSection
         Function InitializeCriticalSectionAndSpinCount
         Function TlsAlloc
         Function TlsGetValue
         Function TlsSetValue
         Function TlsFree
         Function FreeLibrary
         Function GetProcAddress
         Function LoadLibraryExW
         Function GetStdHandle
         Function WriteFile
         Function GetModuleFileNameA
         Function MultiByteToWideChar
         Function WideCharToMultiByte
         Function ExitProcess
         Function GetModuleHandleExW
         Function GetCommandLineA
         Function GetCommandLineW
         Function GetACP
         Function HeapFree
         Function HeapAlloc
         Function CompareStringW
         Function LCMapStringW
         Function GetFileType
         Function CloseHandle
         Function FindClose
         Function FindFirstFileExA
         Function FindNextFileA
         Function IsValidCodePage
         Function GetOEMCP
         Function GetCPInfo
         Function GetEnvironmentStringsW
         Function FreeEnvironmentStringsW
         Function SetEnvironmentVariableA
         Function SetStdHandle
         Function GetStringTypeW
         Function GetProcessHeap
         Function FlushFileBuffers
         Function GetConsoleCP
         Function GetConsoleMode
         Function HeapSize
         Function HeapReAlloc
         Function SetFilePointerEx
         Function WriteConsoleW
         Function CreateFileW
         Function RaiseException
[-] Import listing done

"/MD"
[-] Import listing for file : C:\Users\lucas\source\repos\TestWow64Apisets\x64\Release\TestWow64Apisets.exe
Import from module KERNEL32.dll :
         Function GetCurrentProcess
         Function IsWow64Process
         Function IsDebuggerPresent
         Function InitializeSListHead
         Function GetSystemTimeAsFileTime
         Function GetCurrentThreadId
         Function GetCurrentProcessId
         Function QueryPerformanceCounter
         Function IsProcessorFeaturePresent
         Function TerminateProcess
         Function SetUnhandledExceptionFilter
         Function UnhandledExceptionFilter
         Function RtlVirtualUnwind
         Function RtlLookupFunctionEntry
         Function RtlCaptureContext
         Function GetModuleHandleW
Import from module VCRUNTIME140.dll :
         Function __C_specific_handler
         Function memset
Import from module api-ms-win-crt-stdio-l1-1-0.dll :
         Function __stdio_common_vfprintf
         Function _set_fmode
         Function __p__commode
         Function __acrt_iob_func
Import from module api-ms-win-crt-runtime-l1-1-0.dll :
         Function _initialize_onexit_table
         Function _register_onexit_function
         Function exit
         Function _crt_atexit
         Function __p___argv
         Function terminate
         Function __p___argc
         Function _register_thread_local_exe_atexit_callback
         Function _c_exit
         Function _initterm_e
         Function _initterm
         Function _get_initial_narrow_environment
         Function _initialize_narrow_environment
         Function _configure_narrow_argv
         Function _cexit
         Function _set_app_type
         Function _seh_filter_exe
         Function _exit
Import from module api-ms-win-crt-math-l1-1-0.dll :
         Function __setusermatherr
Import from module api-ms-win-crt-locale-l1-1-0.dll :
         Function _configthreadlocale
Import from module api-ms-win-crt-heap-l1-1-0.dll :
         Function _set_new_mode
[-] Import listing done

You can notice there is no dependency to apisets dll when compiling with `"/MT"

@lucasg It would be great if you published a release that includes this fix. Thanks!

Switched to a new laptop and noticed this problem after I downloaded the latest version of dependencies (1.10).
My old laptop still had 1.5 installed, with that version it works fine.

Bump! I also would be happy if there was a fix available.


how does a person know if something is already installed

I suggest to add after this sentence
"We'll also install cython and jupyter notebooks this way if they are not already installed. "
an explanation how to check if it is installed or not, e.g.
"You can run conda list command in codeastro base to check if you already have jupyter or cython."
References: https://docs.anaconda.com/anaconda/install/verify-install/

Thanks for the suggestion. Added!


fix(v2): fix streaming tests

this PR fixes the streaming tests + some refactoring

@igalklebanov @Varixo please write a comment when this PR is ready to be merged, thanks!

@igalklebanov @Varixo please write a comment when this PR is ready to be merged, thanks!

For me it is ready

@igalklebanov @Varixo please write a comment when this PR is ready to be merged, thanks!

Yalla let's go! 🚀


Use customized group nouns in EVO

Use group type_descriptor to display instead of Group on the group about page. For now might want to be called "farm, ranch, temple, coven, organization, conspiracy" etc etc.
Use moderator_descriptor field instead of the word Moderator(s) in the UI.
We need to figure out where the nouns need to be displayed and add conditional logic that deals with any pluralization needed. Or we may have separate plural fields in the database. Look for libraries that do this for us?

@brodeur need designs for the Group Settings part of this

Do we keep using the word moderator in situations like the Send Announcement modal which says Only Moderators can use this feature? We might have to because you could have selected to share to multiple groups and they might use different words.


Adds comments field to purchase index view

Resolves #4120
Description

Shows comments in purchases index page
Added relevant system spec

Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Adds a request spec for this change.

Screenshots

Thanks!


Adds benchmarks from lib sodium

This adds benchmarks from lib sodium, but the results are hard to interpret. We may need to recompile them using zig so that we can export a function instead of using WASI to do it. Right now, we can't really see performance of functions because other runtimes aren't designed to re-instantiate like ours.
Wasmer (old as wasmer-go isn't released this year)
BenchmarkShorthash
BenchmarkShorthash/Compile
BenchmarkShorthash/Compile-16         	  511204	      2119 ns/op	      11 B/op	       1 allocs/op
BenchmarkShorthash/Instantiate
BenchmarkShorthash/Instantiate-16     	      37	  29909106 ns/op	   66361 B/op	     475 allocs/op

Wasmtime (latest)
BenchmarkShorthash
BenchmarkShorthash/Compile
BenchmarkShorthash/Compile-16         	  179979	      6485 ns/op	       8 B/op	       1 allocs/op
BenchmarkShorthash/Instantiate
BenchmarkShorthash/Instantiate-16     	      43	  25012476 ns/op	     607 B/op	      46 allocs/op

Wazero (compiler)
BenchmarkShorthash
BenchmarkShorthash/Compile
BenchmarkShorthash/Compile-16         	      67	  16912063 ns/op	 7589444 B/op	  101568 allocs/op
BenchmarkShorthash/Instantiate
BenchmarkShorthash/Instantiate-16     	     564	   2061773 ns/op	 1422694 B/op	    3910 allocs/op

@jedisct1 wondering if you can export the loop function (between the calls to time) so that we can measure it precisely? then, I could use the wasm like normal. Right now, it is hard for us to benchmark against other runtimes as certain objects don't close.
For example, export "bench" which calls the stuff in a loop, and doesn't call time around it. Ack this isn't precisely what you need for your benches, but it would be handy for us especially as we can re-use the result and not accidentally build it differently.

Yes, I can absolutely do that if it helps!

I think you can use NewModule API as a counterpart for our CompileModule API https://gist.github.com/kyleconroy/a50054984159918d78aa7c0448e56db5#file-main-go-L26-L30

also, there's such one in wasmer as well (though the doc on the function is confusing) https://github.com/wasmerio/wasmer-go/blob/master/examples/example_memory_test.go#L52-L53

@jedisct1

Yes, I can absolutely do that if it helps!

yep it will help for sure, as then we can call the export and use go's benchmark system to run the .. well wasm benchmark ;) .. in isolation.

@mathetake thanks for the hint. Until we have non-wasi the only engine we can compare vs is wasmtime as that's the only one that can safely re-instantiate. I removed the others to focus.
# wazero compiler
BenchmarkShorthash/Instantiate-16     	     544	   2131448 ns/op	 1422624 B/op	    3909 allocs/op

# wasmtime
BenchmarkShorthash/Instantiate-16      	    1994	    573844 ns/op	     552 B/op	      41 allocs/op

I'll switch this once an export variant becomes available, but at least for now we can see for example perf difference amd64 arm64 for our single pass vs wasmtime latest default.

@mathetake thanks for the hint. Until we have non-wasi the only engine we can compare vs is wasmtime as that's the only one that can safely re-instantiate. I removed the others to focus.
# wazero compiler
BenchmarkShorthash/Instantiate-16     	     544	   2131448 ns/op	 1422624 B/op	    3909 allocs/op

# wasmtime
BenchmarkShorthash/Instantiate-16      	    1994	    573844 ns/op	     552 B/op	      41 allocs/op

I'll switch this once an export variant becomes available, but at least for now we can see for example perf difference amd64 arm64 for our single pass vs wasmtime latest default.

cool, though Instantiate contains the data-initialization time so not entirely execution time, but anyway good starting point!


Jaxrs server evolution

Modification inside the Jax-rs framework

enable the conditional update and delete
creation of a bundle provider, and support of the @Transaction
bug fix on the exceptions handling as some exceptions throw outside bean context were not intercept.
add the possibility to have the stacktrace in the jaxrsException

Coverage remained the same at 84.506% when pulling 6e1b848ea66f98c92189abcd3baca8d206fd6ddd on SRiviere:jaxrs-sever-evolution into 54d0fa0faae57def5f672427b94721060ea237a0 on jamesagnew:master.

This looks excellent, thanks for the contribution. Merging it now!


Advanced Parameters on Actions are Wiped After Successful Save

Describe the Bug with repro steps
When I go into my logic apps for creating JIRA and click "advanced parameters" and add a description then click "save", if I close out the logic app and re-open it and select the create jira action the advanced parameters are wiped and so is the description. This is resulting in JIRAs getting logged with no information.
What type of Logic App Is this happening in?
Consumption (Portal)
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON
No response
Screenshots or Videos
No response
Browser
Tested on both Chrome and Edge.
Additional context
No response

Hi @jprescott1994, thanks for reporting your issue.
I tried to reproduce the behavior you're describing but I'm unable to do so.
You're saying that the jira action parameters are not saving, are parameters on other operations saving?  And are any other kinds of edits saving? (ie. renaming operations, creating / moving operations)  Feel free to do it in another workflow if you're worried about altering anything in production.
From what you're describing, to me it just sounds like the workflow isn't actually saving for whatever reason, and is showing that it saved anyways.  Could you provide us with a console + network trace of you saving and reloading your workflow?  It will help tell us exactly what data is being saved and loaded.
You can find info on how to collect those logs from our docs here, and you can email them directly to me at<EMAIL_ADDRESS>

Fantastic, thanks!
From: Riley Evans @.>
Sent: Wednesday, July 31, 2024 1:35 PM
To: Azure/LogicAppsUX @.>
Cc: Jonah Prescott @.>; Mention @.>
Subject: [EXTERNAL] Re: [Azure/LogicAppsUX] Advanced Parameters on Actions are Wiped After Successful Save (Issue #5129)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Closed #5129https://github.com/Azure/LogicAppsUX/issues/5129 as completed via #5240https://github.com/Azure/LogicAppsUX/pull/5240.

Reply to this email directly, view it on GitHubhttps://github.com/Azure/LogicAppsUX/issues/5129#event-13714344355, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJ4VHK7IDXFJM2OBMXJHBBDZPEU43AVCNFSM6AAAAABK6YJEZKVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTG4YTIMZUGQZTKNI.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Hey Riley, has this been deployed to production? I just tested yesterday and still encountering this issue with advanced parameters being wiped in the new designer.
From: Riley Evans @.>
Sent: Wednesday, July 31, 2024 1:35 PM
To: Azure/LogicAppsUX @.>
Cc: Jonah Prescott @.>; Mention @.>
Subject: [EXTERNAL] Re: [Azure/LogicAppsUX] Advanced Parameters on Actions are Wiped After Successful Save (Issue #5129)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Closed #5129https://github.com/Azure/LogicAppsUX/issues/5129 as completed via #5240https://github.com/Azure/LogicAppsUX/pull/5240.

Reply to this email directly, view it on GitHubhttps://github.com/Azure/LogicAppsUX/issues/5129#event-13714344355, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJ4VHK7IDXFJM2OBMXJHBBDZPEU43AVCNFSM6AAAAABK6YJEZKVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTG4YTIMZUGQZTKNI.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Hi Jonah, the fix for this is included in our upcoming release.  We will be releasing over August 19th - 23rd depending on your region.  Sorry for the delay!

Awesome thank you!
Sent from my T-Mobile 4G LTE Device
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Riley Evans @.>
Sent: Tuesday, August 6, 2024 12:17:44 PM
To: Azure/LogicAppsUX @.>
Cc: Jonah Prescott @.>; Mention @.>
Subject: [EXTERNAL] Re: [Azure/LogicAppsUX] Advanced Parameters on Actions are Wiped After Successful Save (Issue #5129)
You don't often get email from @.*** Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Hi Jonah, the fix for this is included in our upcoming release. We will be releasing over August 19th - 23rd depending on your region. Sorry for the delay!
—
Reply to this email directly, view it on GitHubhttps://github.com/Azure/LogicAppsUX/issues/5129#issuecomment-2271771228, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJ4VHK53JZOS4M5CVUHZHGDZQEALRAVCNFSM6AAAAABK6YJEZKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZRG43TCMRSHA.
You are receiving this because you were mentioned.Message ID: @.***>


Allow bool input for loggers

MLFlowLogger takes in a log_system_metrics=<bool> parameter that we'd like to support.

see: logger-change-Mv4zez
also shows E2E that changes to composer work with hiding system metrics via log_system_metrics=False and ignore_metrics=['memory/*', 'throughput/*'] https://dbc-04ac0685-8857.staging.cloud.databricks.com/ml/experiments/565784758740344/runs/ccf7ee9bbbad44879ba20723aedf7c2a/model-metrics?o=3360802220363900


WIP: precision properties for climate components

This lets components declare their precision for temperatures. If
nothing is declared, we assume 0.1 C and whole integer precision in
F. Currently this supports only WHOLE, HALVES, and TENTHS for
precision, but adding other precision levels is pretty straight
forward.
This also uses proliphix as an example of changing the precision for a
platform.
Closes bug #4350

@lwis each entity component (climate included) has tests via the demo platform.

One comment, for the rest it looks good

Hello,
I have this issue not only for temperature, but also for:

Windspeed (in Kph)
Networkspeed (in kbps and in Mbit/s)
pingtest (in ms)
Memory (in Mb)
Space used (in %)

@ArnoutVerbeken that's unrelated to this PR. Please stay on topic. Your issue has been fixed in dev already.

Thanks, looks good! 🐬


Proposal: support customized labels for storage like secret, configmap

This proposal is inspired by issue #7007。There are probably some cases that users what to  customize the labels of secret/configmap for convenient application management。
For one release the storage labels are set from the installation, and the labels will be retrieved where upgrading or rollback to keep labels consistency. Therefore, adding --set-label( -l in short) flag to install command。

Closing as a duplicate of #7007. Please keep the discussion in one ticket. That way we don't have to track the discussion over several tickets. Thanks.


Are there any plans to release 1.0.0?

Currently I'm using v0.7.0 for a hybrid (Cordova) mobile app on Android + iOS.
When animating > ~50 circles (smileys and badges falling from top to bottom) we experience very low frame-rates on iPhone 5 (~3fps) and what's worse the whole app is behaving weird, e.g. registering clicks which are fired twice to different buttons.
So my question: is it worth to try 1.0.0-rc branch, because I've read in another thread that web-worker will be supported. Do you have plans to release 1.0.0?
Unfortunately I could only contribute by live-testing a new version in the app.

I've tested 1.0.0-rc1 branch, but there is no significant improvement in performance. Will try another engine, maybe matter.js or box2d. At least it seems 1.0.0-rc1 is compatible with 0.7.0 :-)


Copying a single file with no destination path, will not throw exceptions

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched issues to ensure it has not already been reported

Cake runner
Cake runner for .NET Core
Cake version
release 2.0.0-rc0002
Operating system
Windows
Operating system architecture
64-Bit
CI Server
No response
What are you seeing?
When you don't create the destination folder and you pass destination path that does not exist, it will not throw an exception.
I created a test in FileCopierTests.cs:
`
     [Fact]
     public void Should_Throw_If_TargetDirectory_Does_Not_Exists_In_Copy_File()
     {

      const string filePath = "./src/a/a.txt";
      const string dstPath = "./dst";

      // Given
      var fixture = new FileCopierFixture();
      fixture.EnsureFileExists(filePath);

      // When
      var result = Record.Exception(() => FileCopier.CopyFile(fixture.Context, filePath, dstPath));

      AssertEx.IsExceptionWithMessage<DirectoryNotFoundException>(result, $"The directory '{dstPath}' does not exist.");
     }

`
When I run it, the test will fail, because the exception will not throw.
I believe that the function targetFilePath.GetDirectory().MakeAbsolute(context.Environment); is assigning the destination path to the root folder. So that is why it not throwing any exception.
What is expected?
The function CopyFile will throw an exception, when destination folder is not created.
Steps to Reproduce

create a new dummy file for example : "./src/a/a.txt";`
copy file with function FileCopier.CopyFile(fixture.Context, filePath, dstPath));
where dstPath is a path to a folder that does not exist and filePath is a path to your dummy file.

Output log
Message:
    Assert.IsType() Failure
    Expected: System.IO.DirectoryNotFoundException
    Actual:   (null)

FileCopier CopyFile has the following signature
CopyFile(ICakeContext context, FilePath filePath, FilePath targetFilePath)
https://github.com/cake-build/cake/blob/926398d84d3aa9708aa26fc0532e070f904be152/src/Cake.Common/IO/FileCopier.cs#L35
So it's from one file path to another, in that case ./dst should be a valid relative path.
FileCopier CopyFileToDirectory has a signature of CopyFileToDirectory(ICakeContext context, FilePath filePath, DirectoryPath targetDirectoryPath)
https://github.com/cake-build/cake/blob/926398d84d3aa9708aa26fc0532e070f904be152/src/Cake.Common/IO/FileCopier.cs#L18

Hi @devlead,
I recreated and tested the bug report above, and as suggested in your response, I believe it's working as documented.
When making the following call:
CopyFile("./src/a/a.txt", "./dst");
It completes successfully and with no exception thrown.
That's because a file called 'dst' is created (no extension), at the same level of the cake build script being run, and with the contents of 'a.txt'  As far as the method is concerned, the file is actually copied.
Executing the same but with the CopyFileToDirectory method, ie:
CopyFileToDirectory ("./src/a/a.txt", "./dst");
Throws Error: The directory '[snip]/dst' does not exist. exception
So I see no reason why this issue shouldn't be closed (or similar).

@FrankRay78 excellent thanks.


io::Result vs crossterm::Result

Look at the following example (examples/terminal.rs):
pub fn set_terminal_size() -> io::Result<()> {
    let terminal = terminal();
    terminal.set_size(10, 10)
}

I consider it a bit problematic for the crate user. terminal.set_size(10, 10) returns crossterm::Result:
/// The `crossterm` result type.
pub type Result<T> = std::result::Result<T, ErrorKind>;

/// Wrapper for all errors that can occur in `crossterm`.
#[derive(Debug)]
pub enum ErrorKind {
    IoError(io::Error),
    FmtError(fmt::Error),
    ResizingTerminalFailure(String),

    #[doc(hidden)]
    __Nonexhaustive,
}

As a user, I expect that it can return ErrorKind::ResizingTerminalFailure, ErrorKind::FmtError, etc. But the set_terminal_size() fn returns io::Result.
First question is why do we return io::Result here? It can be a bit unclear to the crate user.
Another problematic area is the crossterm::Result -> io::Result conversion:
impl From<ErrorKind> for io::Error {
    fn from(e: ErrorKind) -> io::Error {
        match e {
            ErrorKind::IoError(io) => return io,
            _ => io::Error::new(io::ErrorKind::Other, "can not convert error to IO error"),
        }
    }
}

In other words, if it's not an ErrorKind::IoError, the real error is discarded and replaced with a bit unhelpful error message: can not convert error to IO error.
Questions

Why do we use io::Result in examples when we have crossterm::Result & crossterm::ErrorKind?
Shouldn't we just use crossterm::Result in all examples?
What is the reason for crossterm::Result -> io::Result conversion?

I don't know the reasoning behind this, but I think that:

All examples should use crossterm::Result
crossterm::Result -> io::Result conversion should be removed

It seems a bit inconsistent to me. But as I said, I don't know the reasoning and I may be completely wrong.

So error management is not completed yet, when crossterm was developed I was very new to rust, so I used, of course, unwrap everywhere, as I learned more, I later introduced an error type. I removed a lot of unwraps and panics and made some changes to the API to accept crossterm::Result.
The only reason that conversion is there is because of here and here here
So yes, I would prefer to have everything to be changed to crossterm::Result instead of io::Result. Then we can remove that conversion from ErrorKind to io::Result.  Also, I am not sure why I introduced that in the examples that are probably done a few months - year ago, but that can and should be changed to crossterm::Result.
My original plan was to make a lot more errors to similar to ResizingTerminalFailure, but haven't got that far. Why I haven't finished with those, has to do with the reason that all ANSI codes are returning IoError and all WinAPI calls as well. It is a lot of work, to map all IO errors to our own ErrorKind.

Thanks for the explanation. I have a free day tomorrow, so I'll spend it on this issue.