Missing an Exit Event to trigger when a container/service exits

It looks like there is no "Exit" event that triggers when a container exits.   I do see a "Stop" and a "Kill" event, but those only trigger if the stop or kill action is taken on the container, not when the container exited by itself.  Am I missing something somewhere?
Thanks!

@dansteen yes, the events libcompose emits are related to libcompose objects (around services and projects). If you want container event, you need to subscribe to docker events. There is now the method project.Event that allow to do that on container for the current project (and the specified services if any).
But we might want to include some more events, maybe. /cc @joshwget

If it'd be useful for someone I think adding more events would be fine. We don't have to necessarily use them in the events CLI command if we add events that Docker Compose doesn't show.

My goal is to have a more "controlled" run of docker-compose, where each stage will wait for dependencies to be ready prior to moving on, and will also detect exits with "bad" exit codes.  This would allow easier incorporation into continuous integration tools (like jenkins).

@dansteen I'd definitely be interested in chatting about this more. We use libcompose as part of our init system in RancherOS, so these types of features would be very useful for us (some of which we've already implemented). Note: I don't what or if any of this should end up in libcompose since we're striving to have compatibility with Docker Compose.

@joshwget Sure!   We only want to start a dependent application after all of the applications it requires have started and/or run successfully.   Some applications will be services that need to run continuously, and some will be one-off commands that do some configuration or take some action or whatever and then exit.   So, as I see it, we need to check for the following things:

Exit code (that it matches what we expect, or that it exits at all )
Log file content (either a success message, or an error message)
A timeout is exceeded.

In any of the above cases, if a process exits when it was supposed to keep running, or if it exits with the wrong exit value, or if a log file contains a message that indicates a failure, or if things take too long, we would discontinue the run, and exit the "controlled-compose" application with a failure code.  Otherwise, if specified, the application would wait for a specific message to show up in the logs for an application prior to continuing, and only continue starting up dependent applications when that message shows up.  That way we can be sure the prerequisite application is ready to accept requests prior to starting up the application that requires it.
To accomplish the above, I would want to add a few additional configuration stanzas to the existing compose-file set.  Something like:
service:
  <name>:
      ...
      exit: <code>
      logmonitor:
          - file: <filename>
            regex:  <regex to search for>
            state:  success | failure
      timeout: <value>
      ...

These stanzas could then be processed and pulled out (using the PreProcess function) prior to passing the config on to libcompose.  If they were missing for a specific application, then things would continue to work as they do now for that application.
I think this would really add a lot of value.   I can certainly see how you would not want to include this in libcompose - but that's the joy of it being a library, it can be extended!
That's the basic idea, but I had a few other things I would want to support that aren't really directly related to this:

I love docker and docker-compose, but I have some dissatisfaction with how docker-compose handles dependent configuration.   Basically, as things stand, in a case where you have two applications with a docker-compose file for each,  and one of application requires the other, you need to include both files on the command line at the time that you run docker-compose.   This isn't particularly self-documenting as you will then need to document how you need to run docker-compose to successfully spin up the second application.  It would be great if there was a "requires" config stanza where you would put in a path to a docker-compose file that is required for this particular application to run.  That compose file would then be automatically read in when you run the compose application.
docker-compose does, to my mind, some strange things with relative paths and current working directories, where it uses the path to the first config file as the "current working directory" for all functionality.   It will then create directories for exported volumes in the directory that the first config file on the command line lives in.  To me, it should always treat the working directory as the directory from which the compose application was run regardless of where the config files are located.   Ironically, the one exception to this would be the "requires" stanza mentioned above, which would treat all relative paths as being relative to the location of the config that mentions it rather than the directory that the "compose" application is run from.

I've already written a script that does both of the above, but I would want to roll that into this code as well, since it seems like functionality that people might like.   It's not really related to controlling the composition per se, but I figured I would talk about it  :-) .

As a note, I've got initial code that covers all of the above points here: https://github.com/dansteen/controlled-compose
There is still a lot more to do, but it seems to work fairly well.   As a note, it does not look like the names of the services are picked up and added to the network "aliases" list (per the first paragraph here: https://docs.docker.com/compose/networking/).  Is there something special I need to do to configure that, or is it not just not yet implemented?

https://github.com/docker/libcompose/pull/294 :angel:

Cool!  I'm going to close this issue since you guys added a way to get those events.  Thanks!


✨Custom API support

Hi @scottdurow,
Happy Xmas and almost Happy New Year 🎉
It would be great if spkl (Task Runner) could be extended to support the new Custom API.
In a similar way that today you can deploy plugins and custom workflow assemblies, you could deploy a plugin and associate it to a Custom API record.
Thanks
Ramon

Hi @ramontebar - Happy New Year to you too!
Do you think the plugin type metadata should define the whole API entity (with parameters etc) - when custom apis are created they need to be associated with a solution so I'm wondering if it would be that helpful - what is your specific use case? Is it just being able to register a plugin type without any steps so that it can be referenced by a custom api definition?
Thanks!

Thanks @scottdurow for the quick reply.
These are some ideas I am thinking of. I'll try to list them from the basic to the most "nice-to-have" one:

Register a plugin type without any step. You can do this today using the CrmPluginRegistration constructor for custom work activities. It works the first type, but if you try to update it after the initial registration, it fails once the plugin type has been associated with a Custom API record. So you need to disassociate it, update the plugin and associate it again. Hopefully, this is just a Microsoft bug. So I guess this basic support is pretty much there.
Associate plugin type with Custom API record. spkl would try to find any Custom API records mentioned in the CrmPluginRegistration decorator and associate the plugin type automatically.
Create Custom API records programmatically. If a Custom API mentioned in the CrmPluginRegistration decorator is not found (as it doesn't exist in the environment), it would be created and associated with the current plugin type. The decorator could also define the input and output parameters that would create the corresponding Custom API Request Parameters and Response Properties respectively
Earlybound generator to consider Custom API records. This scenario is kind of the opposite of the previous one (3). In this case, the Custom API record has already been created (e.g. using the UI). Similar to how actions are generated, spkl would generate plugin classes with input and output parameters based on the corresponding Custom API Request Parameters and Response Properties respectively.

Please let me know if these don't make sense. I also don't want to over complicate it, especially considering how Jim has describes the ability to create Custom API in the solution customisations file. I guess another way is just making sure the customisations are unpacked with the source code and developers can update the XML in the customisations file.

Hi @ramontebar  - all really good points.

This is the priority I think, since as you say it will fail at the moment. CustomApis register on a 'For Internal Use Only' stage but still look like a plugin step. spkl tries to remove it - which fails - a check is just needed so these internal use only registrations are kept.

Definitely think this is a good one. So perhaps a registration of:
[CrmPluginRegistration("spkl_CustomApiTest")]
spkl would then try and register the plugin against the custom API with a unique name of that given. If no custom API is found, then an error would be thrown.

I am in two minds about this. Really, custom APIs are no different to Custom Actions - and the definitions of those are setup in the solution manager. Whilst we could create metadata on the plugin class to define the custom api registration - I don't know if it will be used all that much?

Definitely like this one - it starts to move into the territory of a 'Plugin Base Class' type implementation. We could also take a different tac if we went with 3 above - in that the reverse would be true - you declaratively create a class with inputs/outputs - add metadata, and the custom api would be created in accordance with you code - instead of your code being created from the api defintion.  This would be similar to how Azure Functions work.

Hi @ramontebar  - all really good points.

This is the priority I think, since as you say it will fail at the moment. CustomApis register on a 'For Internal Use Only' stage but still look like a plugin step. spkl tries to remove it - which fails - a check is just needed so these internal use only registrations are kept.

Definitely think this is a good one. So perhaps a registration of:
[CrmPluginRegistration("spkl_CustomApiTest")]
spkl would then try and register the plugin against the custom API with a unique name of that given. If no custom API is found, then an error would be thrown.

I am in two minds about this. Really, custom APIs are no different to Custom Actions - and the definitions of those are setup in the solution manager. Whilst we could create metadata on the plugin class to define the custom api registration - I don't know if it will be used all that much?

Definitely like this one - it starts to move into the territory of a 'Plugin Base Class' type implementation. We could also take a different tac if we went with 3 above - in that the reverse would be true - you declaratively create a class with inputs/outputs - add metadata, and the custom api would be created in accordance with you code - instead of your code being created from the api defintion.  This would be similar to how Azure Functions work.

@ramontebar if you get a moment maybe you could try out https://github.com/scottdurow/SparkleXrm/pull/404

@ramontebar if you get a moment maybe you could try out https://github.com/scottdurow/SparkleXrm/pull/404

Hi Scott! Great work, thanks for reviewing my feedback and introducing this first change so quickly.
I have run some tests and it looks good 🙌
I have posted this article to give you an idea of what I have tested:
https://ramontebar.net/2021/01/20/deploy-custom-api-using-spkl/
I was not sure how you were expecting me to try it, but basically, I got the code from this commit #404, compile it, take the release assemblies and put it into my own project overwriting the Nuget package references 😺

Hi Scott! Great work, thanks for reviewing my feedback and introducing this first change so quickly.
I have run some tests and it looks good 🙌
I have posted this article to give you an idea of what I have tested:
https://ramontebar.net/2021/01/20/deploy-custom-api-using-spkl/
I was not sure how you were expecting me to try it, but basically, I got the code from this commit #404, compile it, take the release assemblies and put it into my own project overwriting the Nuget package references 😺

Perfect @ramontebar  - thank you!
This will be merged into the next beta in the next week.
What do you think about the CustomApi definition part? David Rivard's XrmToolBox is good for managing the api definition until we get a better experience in the solution designer. If we could define the api in the plugin it would allow us to define the behaviour and the schema all in one place - but is it really of benefit? Having a class to make it easier to access inputs/outputs could be of benefit - and if we have that - then it would make sense to allow generation of the api definition as well?

Perfect @ramontebar  - thank you!
This will be merged into the next beta in the next week.
What do you think about the CustomApi definition part? David Rivard's XrmToolBox is good for managing the api definition until we get a better experience in the solution designer. If we could define the api in the plugin it would allow us to define the behaviour and the schema all in one place - but is it really of benefit? Having a class to make it easier to access inputs/outputs could be of benefit - and if we have that - then it would make sense to allow generation of the api definition as well?

Oh, I hadn't had the chance yet to try David and Jonas tools. I have just done it and they are very handy.
Regarding the Custom API definition, I see what you meant, so the above option 4 would be more useful, I agree. You mentioned a plugin base class. That could be one approach. The other approach would be an independent class representing the action and its parameters, like how actions or entities are generated. I am more inclined to the latter because it would allow people to keep their current plugin base class and it feels like more independent.
What do you think @scottdurow?

Oh, I hadn't had the chance yet to try David and Jonas tools. I have just done it and they are very handy.
Regarding the Custom API definition, I see what you meant, so the above option 4 would be more useful, I agree. You mentioned a plugin base class. That could be one approach. The other approach would be an independent class representing the action and its parameters, like how actions or entities are generated. I am more inclined to the latter because it would allow people to keep their current plugin base class and it feels like more independent.
What do you think @scottdurow?

This is released to NuGet in https://github.com/scottdurow/SparkleXrm/releases/tag/spkl-v1.0.441

This is released to NuGet in https://github.com/scottdurow/SparkleXrm/releases/tag/spkl-v1.0.441

@ramontebar  Yes- I agree - there would just need to be some code somewhere that allowed serialising/deserialising the pipeline input/output parameters. Maybe it could go in the CrmPluginRegistrationAttribute.cs file since that's already in people's projects?

@ramontebar  Yes- I agree - there would just need to be some code somewhere that allowed serialising/deserialising the pipeline input/output parameters. Maybe it could go in the CrmPluginRegistrationAttribute.cs file since that's already in people's projects?

Thanks @scottdurow for publishing the NuGet version!
Good question regarding where to put that code. I guess there are two scenarios here:

a plugin that actually implements the logic for a Custom API
a different plugin or a custom workflow activity (as long as they are alive 🤭) that executes a Custom API using early-bound types.

The second scenario 2. is already covered by CrmSvcUtil.
So it would be great if scenario 1. could reuse the types already generated by CrmSvcUtil. The parameters are the same type, Microsoft.Xrm.Sdk.ParameterCollection. It is a pity that OrganizationRequest doesn't give us a constructor to initialise their properties automatically given a ParameterCollection. I guess that would have actually helped us.
So, where that code should go? CrmPluginRegistrationAttribute.cs would be fine, although this piece of logic doesn't feel like follows the same type of elements you have put it there so far. I guess CrmPluginRegistrationAttribute.cs could then be renamed to something more generic later on if it carries on growing.


AMDGPU OCL 12 adapter pass

This is a port of the corresponding pass from the AMD HSAIL compiler. Pass is invoked by the FE and run before linking with the opencl builtins library. AMD opencl builtins library only contain opencl 2.0 builtins.
Pass creates function body for each opencl 1.2 builtin encountered in the current module. This body wraps around the call to corresponding opencl 2.0 builtin.

Merged this one instead:https://github.com/RadeonOpenCompute/llvm/pull/1 with some changes.


Do you know why I`m getting this error and how to solve? thank you for your attention.

Sorry, we uploaded a wrong test. There should be vlw.v v0, (t1) and so on. Fixed.

working, thank you very much.


When initialising repositories ensure that the user doing the creation is the initializer (#11601)

Backport #11601
Fix #10760
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

ping LG-TM


how to login in binary

i have configured the binary in my server its running well but i got problem in login im not able to login using admin as user and pass as its mentioned in read me table i checked the docker-compose.yaml in code there its mentioned to use "alpha" and "this-unusual-password" these are working on docker but not ui

sometimes I'm facing the problem, that looks like yours. and solution is:

move to directory, where wireguard-ui is placed (cd /path/to/wireguard-ui/)
run ./wireguard-ui

when you in some directory and start wireguard-ui like this:
/path/to/wireguard-ui/wireguard-ui
it creates empty directory db in this place and you can't login in, because no data to work with, but when you move to directory, where wireguard-ui is placed it works correctly


[WIP] Adding multiple pretrained models

Model
Top 1
Top 5

mobilenet0.25
0.5185
0.7608

mobilenet0.5
0.6307
0.8475

mobilenet0.75
0.6738
0.8782

mobilenet1.0
0.7105
0.9006

resnet50_v1
0.7540
0.9266

resnet101_v1
0.7693
0.9334

resnet152_v1
training
training

resnet50_v2
0.7622
0.9297

resnet101_v2
0.7747
0.9375

resnet152_v2
0.7833
0.9409

Minor fixes:

Fix resnetv1 strides, overrides #8414 if @ptrendx don't mind.
Fixes batchnorm scale issue in mobilenet.

Can you also share the hyper parameters how you train these networks?

@chinakook
Checkout the defaults in https://github.com/zhreshold/mxnet/blob/model_zoo/example/gluon/train_imagenet.py
Note that it has vision branch merged already so you can't use master to run the training right now.

@szha ready


App crashes when using a mutableStateLisOf instead of a ListOf

Works fine at first on current month (YearMonth.now()) but scrolling to further months will cause the app to crash.
With the next error code:
java.lang.IllegalStateException: Check failed.
at androidx.compose.ui.focus.FocusInvalidationManager$invalidateNodes$1.invoke(FocusInvalidationManager.kt:187)
at androidx.compose.ui.focus.FocusInvalidationManager$invalidateNodes$1.invoke(FocusInvalidationManager.kt:60)

Hi @David8aO Can you provide a code snippet or sample project that would help reproduce the issue? Not sure how to proceed with informarion provided.

Update
Turns out what was causing the crash was a .then() modifier, which i was using to make clickable only the dates in a initial list.
Deleting the modifier solved the problem.


Back does not go to the previous person's story

Hello, when I am viewing a video/image and I hit back repeatedly, I go back to that person's first video/image.
From there if I continue hitting back, nothing happens, though I'd expect to view the previous person's stories.
Is this intentional? What would be involved in correcting it?

Hi,
Back button on Android devices or on the browser is supposed to close the story modal if "backNative" is true. The only way to navigate through stories is swiping or clicking on the sides of screen.


Migrate several binaries to Cask

https://github.com/caskroom/homebrew-cask/pull/29061
https://github.com/caskroom/homebrew-cask/pull/29062
https://github.com/caskroom/homebrew-cask/pull/29063
https://github.com/caskroom/homebrew-cask/pull/29065

@MikeMcQuaid all the Cask PR's have been merged, thanks.

@MikeMcQuaid could you please let me know where the files that are moved via libexec.install and
prefix.install should be moved to?
Thanks!

@miccal It depends on the files. libexec files probably shouldn't be installed at all and prefix files if they are a .app should go to Applications and otherwise probably not be installed. Feel free to CC me on a Cask WIP PR.
Thanks again for your contribution to Homebrew!  You rock!

Thanks @MikeMcQuaid - the ones remaining seem a bit more complicated than the ones I have already done.

@miccal You can omit chronograph. Open PRs for the rest and CC me on them all and I'll help. I believe in you 👍!

(as there's a Chronograph PR here: https://github.com/Homebrew/homebrew-binary/pull/356)

Thanks @MikeMcQuaid, that is very generous of you, especially with how busy your all are with brew.

@miccal I'd love to see this tap die 😆

I used to install perforce with this little hack in the core-git CI:
https://github.com/git/git/blob/master/.travis.yml#L78-L90
The hack was necssary because Perforce changed the binary constantly and therefore the SHA1 stored in brew wouldn't match. Does cask solve this issue? How would I install perforce with cask?
Is this OK? :
brew tap caskroom/cask
brew cask install perforce

@larsxschneider, only the second line will also work, since it is auto-tapped.
Also, the cask uses :no_check for the checksum, so no need for a hack anymore:
https://github.com/caskroom/homebrew-cask/blob/ae8d73b0385668b3abd69283421d8a0a056ce704/Casks/perforce.rb#L3

@reitermarkus Thanks! I proposed that change to Git-core:
https://github.com/larsxschneider/git/commit/ec7106339d


Fix assertion violation when destructuring pattern contains arrow function

Fixes #6008

@zenparsing this should be fixed by #6003. It is not merged yet - you can take a look at that.

Closing in favor of #6003


versioning

I think it would be better, if we have a different versions of this dataset in order to reference to. Imagine that I've done some work with one version, then something get changed and I can't reproduce my work since then. The versions could be implemented via github releases. It is also make it possible to get a DOI via zenodo.

Good idea, thanks!


Game Crash. ;-;

Describe your problem here.
So I was working on some noice arrow movement. However...

This code apparently breaks the game.
Is it the extensive use of tables or is the tween broken?
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
Nothing changed.

OH OKAY

more broken then on Linux

No clue what you mean but FYI theres no Lua error.
It just crashes...

i Mean Linux build works but when you play it you'll find a lot of problems

Im on Windows x64 tho.

Ok I found the answer...


Console CI/CD backend deployment fails for Python Lambda (Unable to import module)

** Please describe which feature you have a question about? **
Ok, not exactly a cat dying, but I didn't know how to summarize it on the headline, so I decided to go with a clickbait.
To be honest, I don't know if this question fit best here or on amplify-cli, feel free to move it if needed.
I have the following scenario:
2 branches, each branch is linked to an Amplify environment
Branch: dev -> Amplify env: dev
Branch: master -> Amplify env: staging
They are connected via Amplify Console, so every time something is pushed to them, they deploy the environment, backend and frontend.
I have a lambda function, created via Amplify, which uses is a Python function, and uses docxtpl package, which uses MarkupSafe
I have a Pipfile with the following:
[packages]
docxtpl = "*"

Whenever I push the backend via amplify-cli it works fine, and my function works as expected.
However, every time I deploy it via amplify console (which means every time I update the branches), my function breaks, and I start getting the following errors on my logs:

Unable to import module 'index': No module named 'markupsafe'

What I sometimes do is adding this line to my Pipfile:
MarkupSafe = "*"

and pushing locally the backend again
But, tbh, I don't think this is the solution, it is just because it recognizes something has changed in the function and then re-deploy, because when I remove the MarkupSafe works as well
It is happening every time I happen to deploy, it is really annoying having to do it every time
Any clue what I can do to fix once for all? Or at least where to look for better debugging information?
Thanks
** Provide additional details**

@dcfranca We will look into this.  Can you provide your App ID and region?

@hsspain any email I can send this information to?

@hsspain any email I can send this information to?

@dcfranca<EMAIL_ADDRESS>

@dcfranca<EMAIL_ADDRESS>

@hsspain Sent, let me know if you anything else.

@hsspain Sent, let me know if you anything else.

@swaminator  Any update on this issue?
I confirm that the dependencies files has nothing to do with the bug, even if I just change a counter variable and push from amplify cli it works

Anyone?

@swaminator @hsspain @ericclemmons @ericclemmons

Closing due to age - please re-open if still experiencing issues.

I don't understand why this was closed, I'm still waiting for response, and yes, I'm still experiencing this issue

Hi @dcfranca, apologies for closing this. Reopening now to track alongside the issue that you've experienced in the CLI. We can always transfer, if needed.  Also, just readjusting the title a bit to be more representative (😄 ), so that other customers are able to find if they are experiencing the same.

@siegerts Thanks :)

I have the exact same problem, in my staging branch where I push the backend using the cli works completely fine, but in my prod branch's backend( which get's pushed in the console when it see's a new git commit), doesn't work and says Runtime.ImportModuleError: Unable to import module 'index': No module named 'markupsafe'

Thanks @Jordan-Mesches, now I don't feel so alone with this issue :D
It seems to be direct related to the markupsafe dependency for some reason

So has anyone figured out a solution to this problem?

@Jordan-Mesches Unfortunately, it doesn't seem so =/

This is also occurring for us across three lambdas we are trying to add to our Amplify project. None of the three are picked up by Amplify Console when it creates virtual environments and builds the functions.


run_benchmark_import.py script improved to allow importing multiple data files and specify fragment size when table is created

Hey @gshimansky thanks for the PR. I agree adding wildcard and custom fragment size to the import script is needed.
For the wildcard import via python glob; it appears that this breaks the ability to run this script against a remote system, as python is searching for the files on the local filesystem. We currently support running this script against a remote database for the run_benchmark and this import script.
Currently the dependency on glob breaks even single-file import on a remote machine, which would need to be resolved. One path would be to at least check that the machine the queries are running against matches "localhost" or somehow verify those files are available if parameters are passed in to import multiple files, and throw an error if not.
However, after some internal discussion, it came up that the db has no issue importing files using wildcard in the import statement syntax. I believe just passing the filename with wildcard into the import syntax would solve both issues - be able to import a set of files while also being able to run on a remote machine.

You are right, omnisci server apparently supports wildcards inside of COPY statement. Now just star wildcards *, but also curly braces work for me, so it is possible to limit the number of data files using wildcard like trips_xa{b,c,d,e,f,g,h,i,j,k}.csv.gz.
I rebased my pull request to exclude wildcards commit, now it contains only addition for fragment size and flights schema for data available form https://data.mapd.com/flights_2008_7M.tar.gz .

Great, good to hear that option works for wildcards.
Just tested the fragment size changes and they work as-is. Two small items though:

Can you share the logic for checking if fragment_size is None here:
https://github.com/omnisci/omniscidb/blob/7d17aedf0cdb2de33d8c995e4efdd00057bf4b4d/Benchmarks/run_benchmark_import.py#L373
considering the default value of 32000000?

Can you change the --fragment_size flag from underscore to dash (--fragment-size) for the input flag here
https://github.com/omnisci/omniscidb/blob/7d17aedf0cdb2de33d8c995e4efdd00057bf4b4d/Benchmarks/run_benchmark_import.py#L240
to match the others?

You are right, #1 was redundant, #2 fixed.


Make it easy to copy stacktrace content from error console

Godot version:
master / 511742eb68790345abf594b42b6c25b38360c3df
OS/device including version:
Manjaro Linux 17.1.1
Issue description: (This is a feature proposal)
Currently, the error console only provides a menu item to copy the content of an error message but it lacks a similar feature for its stacktrace.
Sometimes it is difficult to search information about the problem online without being able to copy its stacktrace, and some IDEs (i.e. JetBrains Rider) provides a feature that automatically parses stacktrace from the clipboard to display it inside the editor with links to relevant sources which can be very convenient.
So, it'd be better if we can add a menu item or button to copy stacktrace contents to the clipboard.

Seems like "Copy Error" copies whole stack trace now:
E 0:00:09:0998   Condition ' !body->get_space() ' is true. returned: false
  <C Source>     servers/physics_2d/physics_2d_server_sw.cpp:1062 @ body_test_ray_separation()
  <Ślad stosu>   Player.gd:99 @ _physics_process()

Is that enough, or there should be separate buttons to copy specific stuff instead of literally everything?

I think it's good enough as is, most of the time you'll want the whole stack trace, and if not you can edit it after pasting where you wanted this content.


Remaining SS4 upgrade work

Thanks to @gordonbanderson for his work in #48! A couple of things left to tidy up:
Todo:

[ ] Create branches for SS3 releases
[ ] Add branch aliases
[ ] Add some unit tests
[ ] Add Travis, Scrutinizer and Codecov badges to readme
[ ] Add silverstripe-upgrader mapping .upgrade.yml file with class namespace changes
[ ] Ensure module meets SilverStripe supported module standard
[ ] Release

Any chance of updated tag for packagist, at the last one was 2.0.0 which predates my pull request :(  Not a fan of dev-master installs

Hey @gordonbanderson, doesn't look like this module is quite ready to be released as stable, but I've at least added a branch alias you can use instead of dev-master: https://github.com/silverstripe/silverstripe-mathspamprotection/commit/ba0a3f51dc694ccd16182f3b1de4f9a22e6a9882

Cheers :)


micro micro

Racket
https://github.com/zaoqi/zKanren/blob/master/memorize.rkt
;;  zKanren: MicroKanren with Constraints and noto
;;  Copyright (C) 2017  Zaoqi

;;  This program is free software: you can redistribute it and/or modify
;;  it under the terms of the GNU Affero General Public License as published
;;  by the Free Software Foundation, either version 3 of the License, or
;;  (at your option) any later version.

;;  This program is distributed in the hope that it will be useful,
;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;  GNU Affero General Public License for more details.

;;  You should have received a copy of the GNU Affero General Public License
;;  along with this program.

Could you describe your issue in more detail?
Are you suggesting a shorter/faster implementation? This particular implementation won't fit this particular project, since it requires hash tables, which aren't part of standard Scheme pre-R6RS.
Are you confused about about how a faster variant of equal? would improve such an implementation? It would improve the implementation because key-value stores (including hash tables) ultimately have to check equal? sometimes. The problem's worse for a hash table implementation, since the cost of hashing is ultimately the same as the worst case for performing equal?. Since the equality implementation is tied to the hash function, it also tends to create a lower bound for the function's cost. There is a trick to get around this, though: use a memoized variant of cons (hash-consing) to construct a list of arguments which are equal? iff they are eq?. This lets you use an eq? key-value store instead of an equal? key-value store, which makes both hashing and comparison O(1).
For now, I'm closing the issue until I know what you're asking better.


Update HA validation log pattern

synced local file(s) with worgarside/github-config-files.

This PR was created automatically by the repo-file-sync-action workflow run #9733246607

This PR is empty, closing it. :no_good:


add note meteor.com deployment

Add note from https://github.com/CollectionFS/Meteor-CollectionFS/issues/299

Sorry, meant this one: https://github.com/CollectionFS/Meteor-CollectionFS/issues/561

Looks good, super effort! :)


Extend pipeline for newer versions php

This PR updates the pipeline to include PHP >= 8.0 and no longer include PHP <= 7.1. In addition the PR contains the following changes to have green results.

Update to PHPUnit 8.5 to resolve invocations of deprecated/removed method each(), see https://www.php.net/manual/en/function.each.php. Which resulted in:

Add void return types to ::setup() methods
Explicitly include phpspec/prophecy
Replace ::setExpectedException() and @ExpectedException for ::expectException
Replace ::assertInternalType() with assertIs*()  methods
Replace ::getMock() with ::createMock()

Improve test assertions in case of warning or error during test run.
Port #682 to fix deprecations from ObjectIterator
Update icecave/parity to ^3,0 to resolve invocations of deprecated/removed method each()
Correct styles reported by GHA workflow

Has been replaced with #746


'_supportsShadowDom' was not found in '@angular/cdk/platform'

Expected Behavior
Successful compile
Actual Behavior
ERROR in<EMAIL_ADDRESS>465:16-34
"export '_supportsShadowDom' was not found in '@angular/cdk/platform'
Environment

Angular: 8.0.0
CDK/Material: 8.0.0
Browser(s): Chrome - N/A this is a compiling issue
Operating System (e.g. Windows, macOS, Ubuntu): Mac

Here are the dependencies in package.json
"dependencies": {
"@angular/animations": "^8.0.0",
"@angular/cdk": "~8.0.0",
"@angular/common": "^8.0.0",
"@angular/compiler": "^8.0.0",
"@angular/core": "^8.0.0",
"@angular/forms": "^8.0.0",
"@angular/material": "^8.0.0",
"@angular/platform-browser": "^8.0.0",
"@angular/platform-browser-dynamic": "^8.0.0",
"@angular/router": "^8.0.0",
"@fortawesome/angular-fontawesome": "^0.4.0",
"@fortawesome/fontawesome-svg-core": "^1.2.18",
"@gm2/ui-library": "file:libs/ui-library/src",
"@nestjs/common": "^6.3.2",
"@nestjs/core": "^6.3.2",
"@nestjs/jwt": "^6.1.1",
"@nestjs/passport": "^6.1.0",
"@nestjs/platform-express": "^6.2.4",
"@nestjs/swagger": "^3.0.2",
"@ngxs-labs/dispatch-decorator": "^1.3.1",
"@ngxs-labs/emitter": "^1.9.0",
"@ngxs-labs/immer-adapter": "^3.0.5",
"@ngxs-labs/select-snapshot": "^1.1.0",
"@ngxs/devtools-plugin": "^3.5.0",
"@ngxs/router-plugin": "^3.5.0",
"@ngxs/storage-plugin": "^3.5.0",
"@ngxs/store": "^3.5.0",
"@nrwl/angular": "^8.0.1",
"class-transformer": "^0.2.3",
"class-validator": "^0.9.1",
"core-js": "^2.5.4",
"date-fns": "^2.0.0-beta.2",
"hammerjs": "^2.0.8",
"helmet": "^3.18.0",
"immer": "^3.1.3",
"lodash": "^4.17.15",
"ng2-pdf-viewer": "^5.3.3",
"ngx-toastr": "^10.0.4",
"passport": "^0.4.0",
"passport-jwt": "^4.0.0",
"reflect-metadata": "^0.1.12",
"rxjs": "~6.4.0",
"swagger-ui-express": "^4.0.7",
"zone.js": "^0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.800.0",
"@angular/cli": "8.0.0",
"@angular/compiler-cli": "^8.0.0",
"@angular/language-service": "^8.0.0",
"@fortawesome/fontawesome-pro": "^5.8.2",
"@fortawesome/pro-light-svg-icons": "^5.8.2",
"@fortawesome/pro-regular-svg-icons": "^5.8.2",
"@fortawesome/pro-solid-svg-icons": "^5.8.2",
"@nestjs/schematics": "^6.3.0",
"@nestjs/testing": "^6.2.4",
"@nrwl/cypress": "8.0.1",
"@nrwl/jest": "8.0.1",
"@nrwl/nest": "8.0.1",
"@nrwl/node": "8.0.1",
"@nrwl/workspace": "8.0.1",
"@types/jest": "24.0.9",
"@types/jquery": "3.3.6",
"@types/lodash": "^4.14.136",
"@types/node": "~8.9.4",
"codelyzer": "~5.0.1",
"cypress": "3.2.0",
"dotenv": "6.2.0",
"jest": "24.1.0",
"jest-preset-angular": "7.0.0",
"prettier": "1.16.4",
"ts-jest": "24.0.0",
"ts-node": "~7.0.0",
"tslint": "~5.11.0",
"tslint-eslint-rules": "^5.4.0",
"typescript": "~3.4.5"
}
}

Your dependency on @angular/cdk is set to ~8.0.0, whereas @angular/material is set to ^8.0.0. You should make sure that the CDK and Material versions line up.

@crisbeto thanks for replying to this.  I tried your solution and it didn't work.
This is the change I made based on your suggestion.  I'm still getting the same error.  Any other ideas?
"dependencies": {
        "@agm/core": "^1.0.0",
        "@angular/animations": "^8.0.0",
        "@angular/cdk": "^8.0.0",
        "@angular/common": "^8.0.0",
        "@angular/compiler": "^8.0.0",
        "@angular/core": "^8.0.0",
        "@angular/forms": "^8.0.0",
        "@angular/material": "^8.0.0",
        "@angular/platform-browser": "^8.0.0",
        "@angular/platform-browser-dynamic": "^8.0.0",
        "@angular/router": "^8.0.0",
        "@capacitor/android": "^1.2.1",
        "@capacitor/cli": "^1.2.1",
        "@capacitor/core": "^1.2.1",
        "@fortawesome/angular-fontawesome": "^0.4.0",
        "@fortawesome/fontawesome-svg-core": "^1.2.18",
        "@gm2/ui-library": "file:libs/ui-library/src",
        "@ionic-native/core": "^5.15.0",
        "@ionic-native/http": "^5.15.0",
        "@ionic-native/splash-screen": "^5.15.0",
        "@ionic-native/status-bar": "^5.15.0",
        "@ionic/angular": "^4.10.1",
        "@nestjs/common": "^6.3.2",
        "@nestjs/core": "^6.3.2",
        "@nestjs/jwt": "^6.1.1",
        "@nestjs/passport": "^6.1.0",
        "@nestjs/platform-express": "^6.2.4",
        "@nestjs/swagger": "^3.0.2",
        "@ngxs-labs/dispatch-decorator": "^1.3.1",
        "@ngxs-labs/emitter": "^1.9.0",
        "@ngxs-labs/immer-adapter": "^3.0.5",
        "@ngxs-labs/select-snapshot": "^1.1.0",
        "@ngxs/devtools-plugin": "^3.5.0",
        "@ngxs/router-plugin": "^3.5.0",
        "@ngxs/storage-plugin": "^3.5.0",
        "@ngxs/store": "^3.5.0",
        "@nrwl/angular": "^8.0.1",
        "bcrypt": "^3.0.6",
        "class-transformer": "^0.2.3",
        "class-validator": "^0.9.1",
        "core-js": "^2.5.4",
        "date-fns": "^2.0.0-beta.2",
        "hammerjs": "^2.0.8",
        "helmet": "^3.18.0",
        "immer": "^3.1.3",
        "lodash": "^4.17.15",
        "ng2-pdf-viewer": "^5.3.3",
        "ngx-toastr": "^10.0.4",
        "passport": "^0.4.0",
        "passport-jwt": "^4.0.0",
        "reflect-metadata": "^0.1.12",
        "rxjs": "~6.4.0",
        "swagger-ui-express": "^4.0.7",
        "zone.js": "^0.9.1"
    },
    "devDependencies": {
        "@angular-devkit/build-angular": "^0.800.0",
        "@angular/cli": "8.0.0",
        "@angular/compiler-cli": "^8.0.0",
        "@angular/language-service": "^8.0.0",
        "@fortawesome/fontawesome-pro": "^5.8.2",
        "@fortawesome/pro-light-svg-icons": "^5.8.2",
        "@fortawesome/pro-regular-svg-icons": "^5.8.2",
        "@fortawesome/pro-solid-svg-icons": "^5.8.2",
        "@ionic/angular-toolkit": "^2.0.0",
        "@nestjs/schematics": "^6.3.0",
        "@nestjs/testing": "^6.2.4",
        "@nrwl/cypress": "8.0.1",
        "@nrwl/jest": "8.0.1",
        "@nrwl/nest": "8.0.1",
        "@nrwl/node": "8.0.1",
        "@nrwl/workspace": "8.0.1",
        "@types/jest": "24.0.9",
        "@types/jquery": "3.3.6",
        "@types/lodash": "^4.14.136",
        "@types/node": "~8.9.4",
        "add": "^2.0.6",
        "codelyzer": "~5.0.1",
        "cypress": "3.2.0",
        "dotenv": "6.2.0",
        "jest": "24.1.0",
        "jest-preset-angular": "7.0.0",
        "prettier": "1.16.4",
        "ts-jest": "24.0.0",
        "ts-node": "~7.0.0",
        "tslint": "~5.11.0",
        "tslint-eslint-rules": "^5.4.0",
        "typescript": "~3.4.5"
    }

Hi, I've the same problem with universal but during build I'm receiving this error, the versions match, the @crisbeto solution do not work in this case.

I can confirm that there's an issue making the SSR build using angular universal, material and CDK
Angular v8.2.6 with Material v8.2.3 and angular/cdk v8.2.3 thrown this error: https://github.com/angular/components/issues/17209
If it helps someone, downgrading to v8.0.0 was the temporary solution for me. I hope angular team can take a look into this sooner than later..

I had the same issue, this solved my problem.
ng update @angular/cdk

In my case I've installed the latest version of CDK and Material and
doesn't work.
El mié., 23 de oct. de 2019 a la(s) 10:15, Shashank Tiwari (
<EMAIL_ADDRESS>escribió:

I had the same issue, this solved my problem.
ng update @angular/cdk
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/angular/components/issues/17209?email_source=notifications&email_token=AGW6B2VDEJ5BQ4ZNLMZMVV3QQBE5VA5CNFSM4I252CSKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECBLMTA#issuecomment-545437260,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGW6B2XYDTOKOG6PCJYGXP3QQBE5VANCNFSM4I252CSA
.

Hi,
I also had same issue, i was using @angular/cdk 8.0.1, which doesnot had _supportsShadowDom so i install @angular/cdk 8.2.3, it worked for me.
npm i @angular/cdk

updating @angular/cdk got past the build error, but now I am experiencing a runtime compile error:
<EMAIL_ADDRESS>465:16-34
"export '_supportsShadowDom' was not found in '@angular/cdk/platform'

ng update @angular/cli @angular/core @angular/material @angular/cdk
helped to me

ng update @angular/cli @angular/core @angular/material @angular/cdk
helped to me


Add consent request hash function

Could you add an issue, a change log entry and fix the offences ? That would be lovely


Wagtail API & REST framework

Just opening the conversation here...
Would there be any interest in considering implementing the Wagtail API in Django REST framework, with a view to:

Making it more readily customizable by other developers.
Making it faster for other developers to get up to speed on (built and structured within a common framework that many folks will be used to working with)
Making it easier for other devs to add in various authentication/permission policies. (eg using third party auth options for REST framework)
Optionally make use of some of the functionality that REST framework provides. Eg the browsable API and the upcoming admin style browsable API.

What's the general view on this?

I'm in favour of replacing the custom code with REST framework. I had a look at it when I wrote the initial implementation but couldn't think of an easy way to get it to work with multi-table inheritance (which Wagtail uses for its Page model).

I had a look at it when I wrote the initial implementation but couldn't think of an easy way to get it to work with multi-table inheritance at the time

Gotcha. Having dynamic serializers for an endpoint probably wouldn't be terribly awkward, so if you did go for it then I'd err on the side of designing your API how you want it to look, and making REST framework fit in around that.
I'd be happy to have some involvement in this if it is something you wanted to do.

Thanks, @tomchristie, we'd really appreciate your help on this. What's the best way to get started?

I've some thoughts on approaching this incrementally. Will aim to catch up on this next week, ideally with a PR to demonstrate.

There ya go.


How to prevent same recurrent job execution

Hello, I have an ActiveJob that is executed with sidekiq-cron every 10 minutes. But some times the task spend more than 10 minutes (a lot more, sometimes about 1 hour), so i need to prevent that the ActiveJob from being enqueued again.
I was tried get Sidekiq::Workers.new.size and Sidekiq::Queue.new.size, but always returns 0, and at the sidekiq web ui, the tasks enqueued by sidekiq-cron don't appear in any place (but are executed).

I found the solution (may be you need to include into the documentation). When Sidekiq + Cron is working with ActiveJobs you need to add into the config/application.rb:
class Application < Rails::Application
  # ...
  config.active_job.queue_adapter = :sidekiq
end

From https://github.com/mperham/sidekiq/wiki/Active-Job


WIP: Use cached images for new uploads

- Summary

- Test plan

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

Deploy preview ready!
Built with commit 80549462a5f6bee86b5296aa29fdbc91f4134900
https://deploy-preview-925--netlify-cms-www.netlify.com

Deploy preview ready!
Built with commit 80549462a5f6bee86b5296aa29fdbc91f4134900
https://deploy-preview-925--cms-demo.netlify.com


@hug.startup() has no effect in some cases

Based on the example this should work:
session = None
headers = None

@hug.startup()
async def init(api):
    session = aiohttp.ClientSession()
    headers = {'user_agent': 'foo/bar (https://github.com/Evolution0)'}

@hug.cli()
@hug.get()
async def test():
    return session, headers

Using: hug -f filename.py
Output: (None, None)
Adding an if __name__ == '__main__': calling init(hug.API('cli)) then running test does not work either.
Declaring session and headers as global in init and doing the same does work-- however this does not help when using hug -f.
It seems @hug.startup() simply doesn't do anything in some cases, I say "some" because other user have gotten it working for the API but conversely not for the CLI without a workaround: #405
Temporarily I've fallen back to simply making my init function local and awaiting it before every api call.

Support this is now in the develop branch and ready for the next release,
Thanks!
~Timothy


Rename this package?

Today's discussion / whiteboarding was very useful. It surfaced another point of confusion about naming.
We are currently using the term "Pangeo Forge" for two distinct things

The overall project
The pangeo_forge python library

Is this confusing? We have not actually released the package yet, so it's really not too late to rename it. Is pangeo_forge actually pangeo_smithy? Or should we break with them and call it pangeo_recipe.

I think the analogy with conda-forge would be that this package is the equivalent of conda-build, right? conda-smithy sets up all the CI to build the recipe, and in our case the CI is actually the bakery, which is independent from pangeo-forge (?).
But I'm not sure we "build" a dataset as in building software. Maybe yes, pangeo-build would be fine.

Anyone else from @pangeo-forge/dev-team  thoughts on the package renaming? I think renaming this package will help resolve some of the conceptual confusion around the terminology in pangeo forge.

+0.5: I think the current name is indeed confusing, but I'm not sure from the above if we have settled on a new name.

I lean towards something with "recipe" in it, since this package in practice is based entirely around the recipe concept.

At today's meeting today there seemed to be support for pangeo_forge_recipes. I would like to rename this repo but I'm a bit nervous about the ramifications. Are there any tools that can help me find everything that has to be renamed (CI, documentation, setup.py, etc)? Has anyone been through the process of renaming a package before? Pinging @jbusecke and @TomNicholas for help...

@rabernat, per our conversation this morning, I'll start working on PR for renaming to pangeo_forge_recipes today.

Cmd+Shift+F (in VScode that is) would be my approach. I haven't yet had to rename a package that was anywhere close to being 'fully developed', so unfortunately I don't have too much advice to offer...

@jbusecke the repo is small enough that would probably work, though fwiw I am having success with find-and-replace from the command line as follows: find . -type f -print0 | xargs -0 sed -i '' -e 's/pangeo_forge/pangeo_forge_recipes/g', cf. https://superuser.com/questions/428493/how-can-i-do-a-recursive-find-and-replace-from-the-command-line


Display the amount of tasks for today

Display total of tasks

I would like to work on this issue, please

Hi @rodolfonei !
Sure, I think displaying the total of tasks in the top will be good !
Add some formatting please, so it will look good.


Add support for 'empty' module

Allow 'empty' modules to be created. This is useful e.g. when you want to manage property files outside of the application deployment.
for instance see: http://alibassam.com/how-to-read-properties-file-in-websphere-8-5-and-jboss-7/ , section 'JBoss 7'

@jairojunior could you merge this as well? Or are there any concerns?

Sorry. I was reviewing this PR late last night and wasn't able to understand the need for this, but I just saw your link.
Thank you.


feat: add amd support

Hey! I'm not sure if I did this correctly but here's my output from running ./run.sh --model 7b  --with-rocm. It seems that something went wrong with docker not detecting my GPU. Let me know if there's something more specific I should test.
I'm running Fedora 38 with and an AMD RX 7900 XTX as the GPU.

Finally found time to test this PR. Looks like I'm running into DNS resolution issues hitting several of the repos. I ran the same command as @AnttiRae above. I'll attempt to retest later to see if that clears up.

Works here.
Speed depends on the GPU; here my GPU is slower than the CPU.
CPU: AMD Ryzen 7 7700, 16 cores with 64GiB RAM
GPU: AMD Radeon RX 7600, 8GB
Sample request timings with 70b:
llama-gpt-api-rocm-ggml-1  | llama_print_timings:       total time = 225636.50 ms
llama-gpt-api-1            | llama_print_timings:       total time = 160374.53 ms


refactor: bump operator-go to v0.11.1 and update pdb api

build(deps): bump operator-go from v0.10.0 to v0.11.1
feat(pdb): add PodDisruptionBudget

splited multi pr already, ref #129 , #130, #131


Add death anmimation to player when killed.

To add death animation simlar to Mario
https://youtu.be/FhTHXL9vEKU

Outline:
To introduce new state.
currently we have: "playing", "won","lost". Probably would suffice to add state 'dying'
Player:
freeze frame 10
block interaction
player move up then move down quickly ignoring collisions.

https://github.com/karl5252/Toolio/assets/32590103/48cfe33d-b789-41b9-b264-0e093d962920
There is a random bug with death not being counted properly during simultaneous collisions.


matrix.conf not stored in configuration dir

Home Assistant release (hass --version):
# python -m homeassistant --version
0.46.0.dev0

Python release (python3 --version):
Python 3.6.1
Component/platform:
Matrix
Description of problem:
The Matrix (session) configuration is not stored in the --config directory. This means that, when run from a Docker container, on a restart the matrix key changes making it impractical to verify the device and thus enable encryption.
Expected:
The Matrix configuration is stored in /config/matrix.conf or wherever --config is pointing to.
Problem-relevant configuration.yaml entries and steps to reproduce:
The problem stems from https://github.com/home-assistant/home-assistant/blob/dev/homeassistant/components/notify/matrix.py#L23. That SESSION_FILE gets written from wherever the application is started. In a Docker container, that's /usr/src/app instead of the mounted /config volume. It should instead use one of the available helpers to properly store that session information in the configuration directory.
Workaround
For now it's possible to simply pass -v /host/path/to/matrix.conf:/usr/src/app/matrix.conf to Docker to work around the problem.

Argh, I was looking at the behaviour in 0.41 vs. the code in 0.44. It's been fixed.


Error building WinForms application on hosted agent version 2.177.1

Agent Version and Platform
v2.177.1
Image: Windows
Azure hosted agent
Agent name: 'Hosted Agent'
Agent machine name: 'WIN-K81SKPHT5FM'
Current image version: '20201116.1'
Current agent version: '2.177.1'

Azure DevOps Type and Version
https://dev.azure.com/kommuninvest
What's not working?
Since the release of v2.177.1, our WinForms application does not build in Azure DevOps.
The solution builds fine on two developer machines
When trying the exact same source code that was used in the last successful build, it also fails.
The build step:
    - task: VSBuild@1
      displayName: 'Build solution MySolution.sln'
      inputs:
        solution: 'MySolution.sln'
        platform: 'any cpu'
        configuration: 'release'

The compilator error:
"D:\a\1\s\MySolution.sln" (default target) (1) ->
"D:\a\1\s\MyProject.Tests\MyProject.Tests.csproj" (default target) (15) ->
(CoreCompile target) ->
  D:\a\1\s\MyProject.Tests\MyTests.cs(2,7): error CS0246: The type or namespace name 'AAA' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\MyProject.Tests\MyProject.Tests.csproj]
  D:\a\1\s\MyProject.Tests\MyTests.cs(3,7): error CS0246: The type or namespace name 'BBB' could not be found (are you missing a using directive or an assembly reference?) [D:\a\1\s\MyProject.Tests\MyProject.Tests.csproj]

    5198 Warning(s)
    2 Error(s)

Time Elapsed 00:01:39.68
##[error]Process 'msbuild.exe' exited with code '1'.

Agent and Worker's Diagnostic Logs
Rather not in public
Setup that works:
Current agent version: '2.175.2'
Current image version: '20201108.1'

Please tell me if you need more info.

Hi @DonKarlssonSan could you please share your full logs? From the first glance there seems to be an issue with project configuration (some assembly reference is missing).
You can send it to my email -<EMAIL_ADDRESS>It would be also very helpful to have some minimal sample solution to reproduce this issue.

Hi @DonKarlssonSan could you please share your full logs? From the first glance there seems to be an issue with project configuration (some assembly reference is missing).
You can send it to my email -<EMAIL_ADDRESS>It would be also very helpful to have some minimal sample solution to reproduce this issue.

Hi @DonKarlssonSan is this issue still actual for you?

@DonKarlssonSan I suspect that this could be related with project configuration - I can't reproduce it with test win forms project and VSBuild task.
I'm closing this due to inactivity - please feel free to reopen or ask further questions if it's still actual for you.


chore(master): release 1.0.1

:robot: I have created a release beep boop
1.0.1 (2024-01-25)
Miscellaneous Chores

release 1.0.1 (#10) (2b8f0b6)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/abemedia/esbuild-plugin-react-virtualized/releases/tag/v1.0.1 :sunflower:


Proposal: Expose secret hooks for including SwapChainPanel in RenderTargetBitmap

Summary
When using RenderTargetBitmap against a SwapChainPanel, the area of the swap chain comes back black leading to a lot of confusing among consumers of such a control. However this doesn't happen with Bing Maps control, which is also SwapChain based, due to it having access to "special" internal APIs.
I'm proposing exposing the internal hooks that allows a SwapChainPanel to participate in the rendering of a RenderTargetBitmap render pass.
Rationale
When you want to create a screenshot of your current progress for a thumbnail, layout out a UI for printing etc, you need RenderTargetBitmap. However this falls apart once your UI Tree contains SwapChainPanels, which is often used in games, map controls etc where high-performance DX rendering is needed, but also often where you'd be very interested in being able to capture current game progress, or print out the map with some pretty XAML elements around it (or to insert in email/attachment etc).
Currently this limitation is documented here:

Custom Microsoft DirectX content (your own swap chain) inside a SwapChainBackgroundPanel or SwapChainPanel can't be captured using RenderTargetBitmap.
Link

When I was asking the Bing Maps team how they were able to make it work, I was informed they had access to private APIs that external control developers do not.
Since I don't know the extent of what it requires to make this work for Bing Maps, it's hard for me to propose a specific API, but it appears those are sufficient? I'm assuming some sort of event occurs and the swapchain performs a render pass to a software buffer or something.
Functional Requirements
RenderTargetBitmap "just works" when used against any SwapChainPanel once the newly provided hooks has been implemented for control.
Important Notes
While you could render the swap chain panel yourself to a bitmap (since you own rendering to the swap chain), it's not always enough, as you would want to also capture any XAML Elements that might be around or on top of the swapchainpanel.

@dotMorten we've improved RenderTargetBitmap over the last several Windows releases, and it should be able to capture most SwapChainPanel content.
Are you still seeing black areas instead of content on a recent build?
I'll make sure the docs get updated.

@jesbis TBH it's been a very long time, since I tried this, but I keep checking back on the docs. If the docs are not up-to-date, I'll definite try again and if it works, close this issue.

I verified RenderTargetBitmap captures SwapChainPanel content on 17763 and submitted a doc update for the outdated info.

Confirmed this works on 1903. Thank you!


enable code analysis

Enable:

AnalysisModePerformance
AnalysisModeDocumentation
AnalysisModeInteroperability
AnalysisModeReliability

Fix or suppress violations.

coverage: 98.904% (+0.4%) from 98.539% when pulling 75e1a7f95d7ede2a985e84072dfa745ee9d88016 on users/alexpeck/analysis into 1352584d799000cc99d00e9efa45efc7afcb9c06 on main.


Q: why SQL?

This looks quite interesting. I have been recently looking into graph db due to the needs of my current project. I ended up with Dgraph but I struggled to work with its API and their horrendous documentation so I abandoned it altogether and came up with a custom in-memory solution(I only truly needed edges so it worked out).
Anyhow, this project looks like it would be perfect api layer on top of something like dgraph or underlying kvdb(badger, bolt) that abstracts the complexity away from the developer.
RDBMS was really not made for graphs, hence I wonder why SQL as a starting point for this type of project?

Thanks for raising this issue @nonpcnpc.
Actually, this project was developed initially on top of Gremlin, the graph traversal language used by Neo4j, AWS Neptune (and more), and extended to support SQL-based dialects in a later stage.
Right now, you can run ent on both graph-based and RDBMS databases. AFAIK, dgraph still doesn't not support Gremlin, but a storage driver for it can be implemented.
I have a WIP blog post that I plan to share about the switching from graph-based database to MySQL. Main reason were: missing features, sub-graph isolation, developers productivity and better performance.

RDBMS was really not made for graphs...

For developers, it doesn't matter (as long as the performance stays reasonable), because ent gives them the abstraction on top of their storage layer. However, BFS and DFS like traversals won't be supported.
You're welcome to see our examples and let me know what do you think.

Thanks for the info.

and better performance

So the SQL backend can perform at the same level as dedicated graph db(neo4j...), or did you mean something else by that?

Yes. The performance tests we ran on our data-model showed better numbers.
But again, we didn't test dedicate graph database features (like shortest path).
I'll try to remember to update this issue when publishing the blog post.

@a8m How this can be possible ?
https://neo4j.com/news/how-much-faster-is-a-graph-database-really/

Like I mentioned above, the benchmark tests we ran on our data-model between RDS and Neptune showed better result for RDS (some of them had traversals with depth 5).
We didn't benchmark Neo4j and didn't compare all possible queries, but I feel that our data-model and the tests we ran cover the majority of the cases.
BTW, even the most complicated queries we compared (depth=5) were below 3 seconds.

@a8m That's strange can I make some tests with your data too is it something you can share?

can I make some tests with your data too is it something you can share?

Not really, but you are welcome do run your own comparison and share with us the result.
Thanks!

Hey @taliptako - just wanted to update that I went over the example in "Neo4j in Action" (mentioned in the link you've added), and I don't have any doubt that graph databases perform better in these cases.
However, queries like user->friends->...->friends on large datasets don't exist in our platform. When a query with long or complex computation needs to be applied, it usually runs in a different platform.

I wonder if it's healthy to use this (ORM or OGM?) for such a query which needs a lot of join on large dataset? Is it capable to create right Gremlin queries under the hood


Create UpdateManager to alert when new versions are available.

[x] Update Window
[x] Asset Store Flow
[x] Package Manager Flow

Create and store as a resource (make runtime support?) in /Resources/GDX/GDXConfig.asset any shared or persistent settings.

Create and store as a resource (make runtime support?) in /Resources/GDX/GDXConfig.asset any shared or persistent settings.

Updated in 876d6ff55e9989f4cd1feaaf9810093e7f8180cf

Updated in 876d6ff55e9989f4cd1feaaf9810093e7f8180cf

Id like to add a button to the preferences window, that replaces the manual update button when an update is available to update the existing installation.

Id like to add a button to the preferences window, that replaces the manual update button when an update is available to update the existing installation.

Should be done (first pass) 8771c5b230951b68eba2c811eb8f05b49eb46f8f

Should be done (first pass) 8771c5b230951b68eba2c811eb8f05b49eb46f8f


fix extension samples

updates sample notebooks

I think maybe we should leave the outputs in the notebook. It's more useful that way if people are viewing them online.

I think maybe we should leave the outputs in the notebook. It's more useful that way if people are viewing them online.

Done


Neato locale issue in 0.97.0

Home Assistant release with the issue: 0.97.0

Last working Home Assistant release (if known): 0.96.5
Operating environment (Hass.io/Docker/Windows/etc.): Docker

Component/platform: https://www.home-assistant.io/components/neato/

Description of problem:
The neato integration is broken in 0.97.0.
The pybotvac library has to set the locale en_US.utf8 so that the neato api accepts their requests. This locale is not available in the docker image:
root@d5ffd1e9d17b:/usr/src/app# locale -a
C
C.UTF-8
POSIX

As mentioned here the locale has to be available on the system. Is it possible to make en_US.utf8 available in the docker container?
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
neato:
  username: !secret email
  password: !secret neato

Traceback (if applicable):
Error during setup of component neato

Traceback (most recent call last):
  File "/usr/src/app/homeassistant/setup.py", line 172, in _async_setup_component
    component.setup, hass, processed_config  # type: ignore
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/app/homeassistant/components/neato/__init__.py", line 181, in setup
    hass.data[NEATO_LOGIN] = NeatoHub(hass, config[DOMAIN], Account, Neato)
  File "/usr/src/app/homeassistant/components/neato/__init__.py", line 208, in __init__
    self._hass.data[NEATO_ROBOTS] = self.my_neato.robots
  File "/usr/local/lib/python3.7/site-packages/pybotvac/account.py", line 65, in robots
    self.refresh_robots()
  File "/usr/local/lib/python3.7/site-packages/pybotvac/account.py", line 113, in refresh_robots
    endpoint=robot['nucleo_url']))
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 46, in __init__
    if self.service_version not in SUPPORTED_SERVICES:
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 231, in service_version
    return self.available_services['houseCleaning']
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 227, in available_services
    return self.state['availableServices']
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 223, in state
    return self.get_robot_state().json()
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 181, in get_robot_state
    return self._message({'reqId': "1", 'cmd': "getRobotState"})
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 63, in _message
    headers=self._headers)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 317, in prepare
    self.prepare_auth(auth, url)
  File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 548, in prepare_auth
    r = auth(self)
  File "/usr/local/lib/python3.7/site-packages/pybotvac/robot.py", line 245, in __call__
    locale.setlocale(locale.LC_TIME, 'en_US.utf8')
  File "/usr/local/lib/python3.7/locale.py", line 604, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

Additional information:

Can we Install the missing locale

Manual installation of the en_US.UTF-8 locale inside the container fixed the error for me.

How? Doesn’t seem to be working for me

I did

run apt update && apt install locales nano
run nano /etc/locale.gen and uncommented the en_US.UTF-8 UTF8 line
run locale-gen
restart the docker container

Hmm I honestly did not expect Docker to have any issues.....when we did testing on the latest Neato changes we had a few Hass.IO users so I thought that had covered Docker.....I personally do not use Docker so I may not be the best person to get this added to the container

No, docker has no issues. The issue is how we build that docker Image. That basic debian image that is used to build HA ships not the necessary locales. We have to build that locales manually into that container.

Hassio uses different images based on alpine linux, not debian. As mentioned in the latest release notes HA is going to migrate to these images as well. I don't know which locales are shipped with alpine. But we can add any locales during the build process. We only should be aware that the images are growing with every installed package.

@Santobert so it sounds like once 0.98 is released this issue won't exist?

Hopefully, but not sure.

@andrewsayre Can you please add the docker label because this issue can only be solved by editing the docker Image. Furthermore this is important for future docker builds.

As a workaround you can use the following as a Dockerfile:
FROM homeassistant/home-assistant:latest

# Install locale
RUN apt-get update && apt-get install -y locales

# Set the locale
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen

The Docker image built from this file extends the default image with the missing locale. The Neato integration works here as expected. Besides that nothing changes.

Some updates:

I've created a PR for homeassistant, which solves this issue until the release of 0.98.0
I've created a PR for pybotvac, which could solves this issue for all times. I'm not sure, if this PR is completely correct, it needs some testing though.
this issue will automatically be resolved by the release of 0.98.0, that uses different base images


Expose RetryError exceptions.

Closes: #3083

Closing this PR. The GAX PR is not merged yet, but it is far enough along that it will certainly end up being the route we take.


Active connection metrics is provided at namespace level only

Add filter by entity is disabled when ActiveConnections metric is selected.

@wxwr : Thanks for your contribution! The author(s) have been notified to review your proposed change.

The current existing behavior is correct and Active Connections can be applied at the entity level.
#please-close

Why doesn't portal let me to filter on the entity? (see above screenshot) "Add filter" button is greyed out.
Current portal behavior is correct since metric is provided at namespace level only but documentation states that this metric is provided at entity level which does not seem to be correct.

@ShubhaVijayasarathy forgot to tag you on previous response


Modularize the git status to support customization

Modularizes the Git status section! This is discussed in #375.
Until now Spaceship has been wonderfully flexible except in the opinionated Git prompt. This PR breaks the Git prompt section into subsections analogous to the top-level sections in the full prompt, making it easy for users to customize their Git prompt and to build, share, plug in new Git prompt pieces.
Changes:

Reworks git.zsh to run build the Git section from an array of subsections
Moves the Git status options to their own file, so that they can be easily used in other user subsections
Documentation

While you are improving git sections, could you perhaps address this discovery as well and move the options to the git_branch subsection where they belong?

SPACESHIP_GIT_PREFIX and SPACESHIP_GIT_SYMBOL are really branch subsection options.

@salmanulfarzy @maximbaz I've pushed some commits addressing your feedback
@maximbaz I actually think I was wrong about SPACESHIP_GIT_PREFIX and SPACESHIP_GIT_SYMBOL

@maximbaz I actually think I was wrong about SPACESHIP_GIT_PREFIX and SPACESHIP_GIT_SYMBOL

Could you elaborate? Because currently I also think those two belong to the branch section 🙂

@maximbaz it's been long enough that I forgot exactly how it's set up :)
SPACESHIP_GIT_SYMBOL should be in the branch subsection!
In this PR, the Git section has a prefix, and the branch subsection has one too, so SPACESHIP_GIT_PREFIX is good as is. Unless I'm misreading again :)

I thought we could cleanup the sections/git.zsh from all configuration options except SPACESHIP_GIT_SHOW, for example by renaming SPACESHIP_GIT_BRANCH_SYMBOL and moving it into the sections/git_branch.zsh. But if that's not trivial and/or doesn't fit into your changes, better leave out for another PR.

Looking at this again to see where it stands.
I moved the git symbol into the branch file, as requested — thanks for sticking to your guns on that idea @maximbaz, you were right.
I personally still like the idea of a git_status_options.zsh — that way any contributor has the option of pulling in an existing Spaceship default. In fact, it could make sense to encourage using reusing variables from git_status_options.zsh, so that if a user wanted to switch from one git prompt to another they'd see familiar symbols in familiar parts of the prompt. (I didn't go back and read the full inline discussion from earlier, but I bet I'm just repeating myself 😉)


Validation tests

This PR adds a series of tests that should cover every aspect of validating WasmFX instructions and types, except for resume_throw and barrier.
Since the GC proposal has technically not landed yet, I've moved those tests for the interaction with GC types and subtyping into their own file.
This PR also includes a bash script for moving these tests into an appropriate subfolder of a given spec repo.

I'd prefer the second approach: I'd imagine that, say, the binaryen people wouldn't be super happy if we wanted to add a submodule to their project. Also, I'd imagine that whenever we would add our repo here into another project's test file hierarchy, the file and folder structure would never quite match.
Copying the files over into each project feels a bit ad hoc, but my idea was to at least enshrine that process using scripts like export_to_spec.sh in this PR: Inside our repo here, we organize things in a way that makes sense to us, and then the export shell scripts adapts the file names, structure, etc, to whatever the target project expects.


Remove the test.o binary file

Remove the test.o binary file that was added in #77177.
Cc: @dylansturg

@swift-ci Please smoke test

@swift-ci Please test Windows platform


[Bug]: INVALID_GRAPH /  Error Node (BeamSearch_node) has input size 12 not in range [min=5, max=10] when trying to build a non-openai provided Whisper model.

What happened?
When trying to build an ONNX model without multilingual support, using instructions on the whisper example page and supplying a non-openai repo (e.g. aware-ai/whisper-tiny-german) the test_transcription.py fails. Tested using venv.
(olive-env) (base) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ python prepare_whisper_configs.py --model_name aware-ai/whisper-tiny-german --no_audio_decoder
(olive-env) (base) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ python -m olive.workflows.run --config whisper_cpu_int8.json --setup
[2023-08-23 23:43:57,572] [INFO] [run.py:112:dependency_setup] The following packages are required in the local environment: ['onnxruntime']
[2023-08-23 23:43:57,572] [INFO] [run.py:116:dependency_setup] onnxruntime is already installed.
(olive-env) (base) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ python -m olive.workflows.run --config whisper_cpu_int8.json
[2023-08-23 23:44:07,042] [WARNING] [config_utils.py:270:validate_config] Keys {'disable_search'} are not part of OrtTransformersOptimizationConfig. Ignoring them.
[2023-08-23 23:44:07,077] [DEBUG] [engine.py:675:resolve_goals] Resolving goals: {'latency': {'avg': None}}
[2023-08-23 23:44:07,077] [DEBUG] [engine.py:694:resolve_goals] No baseline got as no goal is provided the the goal is threshold
[2023-08-23 23:44:07,078] [DEBUG] [engine.py:475:run_no_search] Step no search with search point {'OnnxConversion': {}, 'OrtTransformersOptimization': {}, 'OnnxDynamicQuantization': {}, 'InsertBeamSearch': {}, 'AppendPrePostProcessingOps': {}} ...
[2023-08-23 23:44:07,078] [INFO] [engine.py:939:_run_pass] Running pass OnnxConversion
[2023-08-23 23:44:07,078] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-23 23:44:07,082] [INFO] [engine.py:939:_run_pass] Running pass OrtTransformersOptimization
[2023-08-23 23:44:07,083] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-23 23:44:07,087] [INFO] [engine.py:939:_run_pass] Running pass OnnxDynamicQuantization
[2023-08-23 23:44:07,087] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-23 23:44:07,091] [INFO] [engine.py:939:_run_pass] Running pass InsertBeamSearch
[2023-08-23 23:44:07,092] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-23 23:44:07,093] [INFO] [engine.py:939:_run_pass] Running pass AppendPrePostProcessingOps
[2023-08-23 23:44:07,094] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-23 23:44:07,095] [DEBUG] [engine.py:1076:_evaluate_model] Evaluating model ...
[2023-08-23 23:44:07,096] [DEBUG] [engine.py:1087:_evaluate_model] Loading evaluation from cache ...
[2023-08-23 23:44:07,096] [DEBUG] [engine.py:917:_run_passes] Signal: {'latency-avg': 1079.78704}
[2023-08-23 23:44:07,096] [DEBUG] [engine.py:499:run_no_search] Engine output_name is provided. Will ignore output_name for final pass
[2023-08-23 23:44:07,227] [INFO] [engine.py:384:run] Package top ranked 1 models as artifacts
[2023-08-23 23:44:07,227] [INFO] [packaging_generator.py:47:_generate_zipfile_output] Packaging Zipfile output artifacts
[2023-08-23 23:44:07,281] [DEBUG] [resource_path.py:147:create_resource_path] Resource path /tmp/tmpq7o_oxgh/CandidateModels/cpu-cpu/BestCandidateModel_1/olive_tmpkcdwbdnu/model.onnx is inferred to be of type file.
[2023-08-23 23:44:07,288] [DEBUG] [utils.py:21:run_subprocess] Running command: python -m pip download onnxruntime-extensions==0.8.0 --no-deps -d /tmp/tmpq7o_oxgh/ONNXRuntimePackages/Python with env: None
[2023-08-23 23:44:08,206] [DEBUG] [utils.py:21:run_subprocess] Running command: python -m pip download onnxruntime==1.15.1 --no-deps -d /tmp/tmpq7o_oxgh/ONNXRuntimePackages/Python with env: None
(olive-env) (base) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ python test_transcription.py --config whisper_cpu_int8.json
> /home/vmitro/projects/olive_stuff/Olive/examples/whisper/test_transcription.py(71)main()
-> for model_json in output_model_json_path.glob(f"**/{config['engine']['output_name']}_cpu-cpu_model.json"):
[2023-08-23 23:45:27,367] [WARNING] [__init__.py:212:_is_valid_ep] Error: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from /home/vmitro/projects/olive_stuff/Olive/examples/whisper/models/conversion-transformers_optimization-onnx_dynamic_quantization-insert_beam_search-prepost/whisper_cpu_int8_cpu-cpu_model.onnx failed:This is an invalid model. In Node, ("BeamSearch_node", BeamSearch, "com.microsoft", -1) : ("log_mel": tensor(float),"max_length": tensor(int32),"min_length": tensor(int32),"num_beams": tensor(int32),"num_return_sequences": tensor(int32),"length_penalty": tensor(float),"repetition_penalty": tensor(float),"","","","","",) -> ("sequences",) , Error Node (BeamSearch_node) has input size 12 not in range [min=5, max=10].Olive will ignore this CPUExecutionProvider.Please make sure the environment with CPUExecutionProvider has the required dependencies.
Traceback (most recent call last):
  File "/home/vmitro/projects/olive_stuff/Olive/examples/whisper/test_transcription.py", line 108, in <module>
    output_text = main()
  File "/home/vmitro/projects/olive_stuff/Olive/examples/whisper/test_transcription.py", line 98, in main
    session = olive_model.prepare_session(None, "cpu")
  File "/home/vmitro/projects/olive_stuff/olive-env/lib/python3.10/site-packages/olive/model/__init__.py", line 346, in prepare_session
    return get_ort_inference_session(self.model_path, inference_settings, self.use_ort_extensions)
  File "/home/vmitro/projects/olive_stuff/olive-env/lib/python3.10/site-packages/olive/common/ort_inference.py", line 64, in get_ort_inference_session
    sess = ort.InferenceSession(
  File "/home/vmitro/projects/olive_stuff/olive-env/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 383, in __init__
    self._create_inference_session(providers, provider_options, disabled_optimizers)
  File "/home/vmitro/projects/olive_stuff/olive-env/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 424, in _create_inference_session
    sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
onnxruntime.capi.onnxruntime_pybind11_state.InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from /home/vmitro/projects/olive_stuff/Olive/examples/whisper/models/conversion-transformers_optimization-onnx_dynamic_quantization-insert_beam_search-prepost/whisper_cpu_int8_cpu-cpu_model.onnx failed:This is an invalid model. In Node, ("BeamSearch_node", BeamSearch, "com.microsoft", -1) : ("log_mel": tensor(float),"max_length": tensor(int32),"min_length": tensor(int32),"num_beams": tensor(int32),"num_return_sequences": tensor(int32),"length_penalty": tensor(float),"repetition_penalty": tensor(float),"","","","","",) -> ("sequences",) , Error Node (BeamSearch_node) has input size 12 not in range [min=5, max=10].

When installing the latest onnxruntime (1.16.0-dev*) through python -m pip install ort-nightly --index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple/ the transcription seems to work (haven't tested with a audio file with spoken German, but the supplied file gets transcribed into a German-looking text).
When loaded into the Android ONNX Runtime (latest ver 1.15.1) I get exactly the same error. When I compare the two repos' config.json files (openai's and the aforementioned), some decoder_* and encoder_* options differ.
Could this be a ONNX Runtime bug? I'm currently building Android runtime from source, will report if I get it to work using my build.
Version?
Olive: 0.3.1
ONNX Runtime: 1.15.1

This is because of the mismatch between the versions of the onnxruntime versions used to build the model and run it. The beam search node has changed between the stable 1.15.1 version and the nightly version.
Hence, this error Error Node (BeamSearch_node) has input size 12 not in range [min=5, max=10].
If you don't need multilingual support (for instance your model is finetuned on german so it always produces german text), please run the workflow again with onnxruntime 1.15.1 installed.
If you need multilingual support, then the workflow must be run with onnxruntime nightly and your the onnxruntime used for inference must also be nightly (or built from source)

Well, interestingly, that seems not to be that case.
After creating a Python 3.8 conda environment, building Olive from source like here and then running a bash script to take the model name from an env variable and run through the steps to compile a CPU/INT8 model, I got the same error.
(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ export MODEL_NAME=aware-ai/whisper-tiny-german
(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ ./maek_model.sh
[2023-08-24 09:53:18,802] [INFO] [run.py:112:dependency_setup] The following packages are required in the local environment: ['onnxruntime']
[2023-08-24 09:53:18,802] [INFO] [run.py:116:dependency_setup] onnxruntime is already installed.
[2023-08-24 09:53:21,758] [WARNING] [config_utils.py:270:validate_config] Keys {'disable_search'} are not part of OrtTransformersOptimizationConfig. Ignoring them.
[2023-08-24 09:53:21,792] [DEBUG] [engine.py:675:resolve_goals] Resolving goals: {'latency': {'avg': None}}
[2023-08-24 09:53:21,793] [DEBUG] [engine.py:694:resolve_goals] No baseline got as no goal is provided the the goal is threshold
[2023-08-24 09:53:21,793] [DEBUG] [engine.py:475:run_no_search] Step no search with search point {'OnnxConversion': {}, 'OrtTransformersOptimization': {}, 'OnnxDynamicQuantization': {}, 'InsertBeamSearch': {}, 'AppendPrePostProcessingOps': {}} ...
[2023-08-24 09:53:21,793] [INFO] [engine.py:939:_run_pass] Running pass OnnxConversion
[2023-08-24 09:53:21,793] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:53:21,797] [INFO] [engine.py:939:_run_pass] Running pass OrtTransformersOptimization
[2023-08-24 09:53:21,798] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:53:21,802] [INFO] [engine.py:939:_run_pass] Running pass OnnxDynamicQuantization
[2023-08-24 09:53:21,803] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:53:21,807] [INFO] [engine.py:939:_run_pass] Running pass InsertBeamSearch
[2023-08-24 09:53:21,807] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:53:21,810] [INFO] [engine.py:939:_run_pass] Running pass AppendPrePostProcessingOps
[2023-08-24 09:53:21,810] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:53:21,812] [DEBUG] [engine.py:1076:_evaluate_model] Evaluating model ...
[2023-08-24 09:53:21,812] [DEBUG] [engine.py:1087:_evaluate_model] Loading evaluation from cache ...
[2023-08-24 09:53:21,813] [DEBUG] [engine.py:917:_run_passes] Signal: {'latency-avg': 1079.78704}
[2023-08-24 09:53:21,813] [DEBUG] [engine.py:499:run_no_search] Engine output_name is provided. Will ignore output_name for final pass
[2023-08-24 09:53:21,897] [INFO] [engine.py:384:run] Package top ranked 1 models as artifacts
[2023-08-24 09:53:21,897] [INFO] [packaging_generator.py:47:_generate_zipfile_output] Packaging Zipfile output artifacts
[2023-08-24 09:53:21,968] [DEBUG] [resource_path.py:147:create_resource_path] Resource path /tmp/tmpfjp241j3/CandidateModels/cpu-cpu/BestCandidateModel_1/olive_tmpq4g6kd86/model.onnx is inferred to be of type file.
[2023-08-24 09:53:21,976] [DEBUG] [utils.py:21:run_subprocess] Running command: python -m pip download onnxruntime-extensions==0.8.0 --no-deps -d /tmp/tmpfjp241j3/ONNXRuntimePackages/Python with env: None
[2023-08-24 09:53:22,788] [DEBUG] [utils.py:21:run_subprocess] Running command: python -m pip download onnxruntime==1.15.1 --no-deps -d /tmp/tmpfjp241j3/ONNXRuntimePackages/Python with env: None
[2023-08-24 09:53:46,103] [WARNING] [__init__.py:212:_is_valid_ep] Error: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from /home/vmitro/projects/olive_stuff/Olive/examples/whisper/models/conversion-transformers_optimization-onnx_dynamic_quantization-insert_beam_search-prepost/whisper_cpu_int8_cpu-cpu_model.onnx failed:This is an invalid model. In Node, ("BeamSearch_node", BeamSearch, "com.microsoft", -1) : ("log_mel": tensor(float),"max_length": tensor(int32),"min_length": tensor(int32),"num_beams": tensor(int32),"num_return_sequences": tensor(int32),"length_penalty": tensor(float),"repetition_penalty": tensor(float),"","","","","",) -> ("sequences",) , Error Node (BeamSearch_node) has input size 12 not in range [min=5, max=10].Olive will ignore this CPUExecutionProvider.Please make sure the environment with CPUExecutionProvider has the required dependencies.
Traceback (most recent call last):
  File "test_transcription.py", line 108, in <module>
    output_text = main()
  File "test_transcription.py", line 98, in main
    session = olive_model.prepare_session(None, "cpu")
  File "/home/vmitro/miniconda3/envs/olive/lib/python3.8/site-packages/olive/model/__init__.py", line 346, in prepare_session
    return get_ort_inference_session(self.model_path, inference_settings, self.use_ort_extensions)
  File "/home/vmitro/miniconda3/envs/olive/lib/python3.8/site-packages/olive/common/ort_inference.py", line 64, in get_ort_inference_session
    sess = ort.InferenceSession(
  File "/home/vmitro/miniconda3/envs/olive/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 383, in __init__
    self._create_inference_session(providers, provider_options, disabled_optimizers)
  File "/home/vmitro/miniconda3/envs/olive/lib/python3.8/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 424, in _create_inference_session
    sess = C.InferenceSession(session_options, self._model_path, True, self._read_config_from_model)
onnxruntime.capi.onnxruntime_pybind11_state.InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : Load model from /home/vmitro/projects/olive_stuff/Olive/examples/whisper/models/conversion-transformers_optimization-onnx_dynamic_quantization-insert_beam_search-prepost/whisper_cpu_int8_cpu-cpu_model.onnx failed:This is an invalid model. In Node, ("BeamSearch_node", BeamSearch, "com.microsoft", -1) : ("log_mel": tensor(float),"max_length": tensor(int32),"min_length": tensor(int32),"num_beams": tensor(int32),"num_return_sequences": tensor(int32),"length_penalty": tensor(float),"repetition_penalty": tensor(float),"","","","","",) -> ("sequences",) , Error Node (BeamSearch_node) has input size 12 not in range [min=5, max=10].

(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ export MODEL_NAME=aware-ai/whisper-base-german
(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ ./maek_model.sh
[2023-08-24 09:55:29,475] [INFO] [run.py:112:dependency_setup] The following packages are required in the local environment: ['onnxruntime']
[2023-08-24 09:55:29,475] [INFO] [run.py:116:dependency_setup] onnxruntime is already installed.
[2023-08-24 09:55:32,336] [WARNING] [config_utils.py:270:validate_config] Keys {'disable_search'} are not part of OrtTransformersOptimizationConfig. Ignoring them.
[2023-08-24 09:55:32,366] [DEBUG] [engine.py:675:resolve_goals] Resolving goals: {'latency': {'avg': None}}
[2023-08-24 09:55:32,366] [DEBUG] [engine.py:694:resolve_goals] No baseline got as no goal is provided the the goal is threshold
[2023-08-24 09:55:32,366] [DEBUG] [engine.py:475:run_no_search] Step no search with search point {'OnnxConversion': {}, 'OrtTransformersOptimization': {}, 'OnnxDynamicQuantization': {}, 'InsertBeamSearch': {}, 'AppendPrePostProcessingOps': {}} ...
[2023-08-24 09:55:32,367] [INFO] [engine.py:939:_run_pass] Running pass OnnxConversion
[2023-08-24 09:55:32,367] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:55:32,371] [INFO] [engine.py:939:_run_pass] Running pass OrtTransformersOptimization
[2023-08-24 09:55:32,372] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:55:32,376] [INFO] [engine.py:939:_run_pass] Running pass OnnxDynamicQuantization
[2023-08-24 09:55:32,376] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:55:32,381] [INFO] [engine.py:939:_run_pass] Running pass InsertBeamSearch
[2023-08-24 09:55:32,381] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:55:32,383] [INFO] [engine.py:939:_run_pass] Running pass AppendPrePostProcessingOps
[2023-08-24 09:55:32,383] [DEBUG] [engine.py:957:_run_pass] Loading model from cache ...
[2023-08-24 09:55:32,385] [DEBUG] [engine.py:1076:_evaluate_model] Evaluating model ...
[2023-08-24 09:55:32,385] [DEBUG] [engine.py:1087:_evaluate_model] Loading evaluation from cache ...
[2023-08-24 09:55:32,385] [DEBUG] [engine.py:917:_run_passes] Signal: {'latency-avg': 1396.85263}
[2023-08-24 09:55:32,386] [DEBUG] [engine.py:499:run_no_search] Engine output_name is provided. Will ignore output_name for final pass
[2023-08-24 09:55:32,511] [INFO] [engine.py:384:run] Package top ranked 1 models as artifacts
[2023-08-24 09:55:32,511] [INFO] [packaging_generator.py:47:_generate_zipfile_output] Packaging Zipfile output artifacts
[2023-08-24 09:55:32,632] [DEBUG] [resource_path.py:147:create_resource_path] Resource path /tmp/tmpk6ssiia2/CandidateModels/cpu-cpu/BestCandidateModel_1/olive_tmpx24pxtyp/model.onnx is inferred to be of type file.
[2023-08-24 09:55:32,640] [DEBUG] [utils.py:21:run_subprocess] Running command: python -m pip download onnxruntime-extensions==0.8.0 --no-deps -d /tmp/tmpk6ssiia2/ONNXRuntimePackages/Python with env: None
[2023-08-24 09:55:33,419] [DEBUG] [utils.py:21:run_subprocess] Running command: python -m pip download onnxruntime==1.15.1 --no-deps -d /tmp/tmpk6ssiia2/ONNXRuntimePackages/Python with env: None
['Gedownes Church ist durch Wimbledd, dieÄquem ist, oberstehende Eis, eventuell in der Arena, Roundham, wird zuvor nicht im Speck gedurch, und für die Arreby ist noch was dünktig gebaut.']

However, as you can see, running the same steps with another model (the base variant) seems to work - the only problem being, it is really heavy and I must put android:largeHeap="true" inside my app's AndroidManifest.xml. On the other side, the base version is noticeably better at recognition.
The onnxruntime's version remained the same between the two invocations.
(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ pip show onnxruntime
Name: onnxruntime
Version: 1.15.1
Summary: ONNX Runtime is a runtime accelerator for Machine Learning models
Home-page: https://onnxruntime.ai
Author: Microsoft Corporation
Author-email<EMAIL_ADDRESS>License: MIT License
Location: /home/vmitro/miniconda3/envs/olive/lib/python3.8/site-packages
Requires: coloredlogs, flatbuffers, numpy, packaging, protobuf, sympy
Required-by:

Here's the listing of the simple bash script used:
(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ cat maek_model.sh

#!/bin/bash

if [ -z "$MODEL_NAME" ]; then
    echo "Run $ export MODEL_NAME=repo/model-name to run automated conversion to CPU with INT8!"
    exit 1
fi

python prepare_whisper_configs.py --model_name $MODEL_NAME --no_audio_decoder && \
python -m olive.workflows.run --config whisper_cpu_int8.json --setup && \
python -m olive.workflows.run --config whisper_cpu_int8.json 2> /dev/null
if [ $? -eq 0 ]; then
    python test_transcription.py --config whisper_cpu_int8.json
else
    echo "Model conversion failed"
fi

I am going to try it (yet) again, this time with pip's olive_ai package. Will report my findings.

Oh that's because it is using a cached run as none of the configs changed. Your original run with the nightly version must have been cached.

Can you run the workflow again after deleting the cache subdir in your working directory?
You can also set "clean_cache": true under engine in the whisper_template.json to do the same.
Can you try again with this change?

That did the trick, thank you very much!
(olive) vmitro@v3629:~/projects/olive_stuff/Olive/examples/whisper$ MODEL_NAME=aware-ai/whisper-tiny-german ./maek_model.sh
[2023-08-24 20:46:15,803] [INFO] [run.py:112:dependency_setup] The following packages are required in the local environment: ['onnxruntime']
[2023-08-24 20:46:15,803] [INFO] [run.py:116:dependency_setup] onnxruntime is already installed.
[2023-08-24 20:46:18,698] [WARNING] [config_utils.py:270:validate_config] Keys {'disable_search'} are not part of OrtTransformersOptimizationConfig. Ignoring them.
[2023-08-24 20:46:18,722] [DEBUG] [engine.py:675:resolve_goals] Resolving goals: {'latency': {'avg': None}}
[2023-08-24 20:46:18,722] [DEBUG] [engine.py:694:resolve_goals] No baseline got as no goal is provided the the goal is threshold
[2023-08-24 20:46:18,723] [DEBUG] [engine.py:475:run_no_search] Step no search with search point {'OnnxConversion': {}, 'OrtTransformersOptimization': {}, 'OnnxDynamicQuantization': {}, 'InsertBeamSearch': {}, 'AppendPrePostProcessingOps': {}} ...
[2023-08-24 20:46:18,723] [INFO] [engine.py:939:_run_pass] Running pass OnnxConversion
[2023-08-24 20:46:18,723] [DEBUG] [engine.py:801:_prepare_non_local_model] Model path is None, local or string name. No need to prepare
[2023-08-24 20:46:24,445] [DEBUG] [__init__.py:570:get_dummy_inputs] Using dummy_inputs_func to get dummy inputs
============= Diagnostic Run torch.onnx.export version 2.0.1+cu117 =============
verbose: False, log level: Level.ERROR
======================= 0 NONE 0 NOTE 0 WARNING 0 ERROR ========================

[2023-08-24 20:46:31,671] [DEBUG] [__init__.py:570:get_dummy_inputs] Using dummy_inputs_func to get dummy inputs
============= Diagnostic Run torch.onnx.export version 2.0.1+cu117 =============
verbose: False, log level: Level.ERROR
======================= 0 NONE 0 NOTE 0 WARNING 0 ERROR ========================

[2023-08-24 20:46:33,604] [INFO] [engine.py:939:_run_pass] Running pass OrtTransformersOptimization
[2023-08-24 20:46:33,605] [DEBUG] [engine.py:801:_prepare_non_local_model] Model path is None, local or string name. No need to prepare
[2023-08-24 20:46:40,699] [INFO] [engine.py:939:_run_pass] Running pass OnnxDynamicQuantization
[2023-08-24 20:46:40,700] [DEBUG] [engine.py:801:_prepare_non_local_model] Model path is None, local or string name. No need to prepare
[2023-08-24 20:46:40,701] [INFO] [quantization.py:340:_run_for_config] Preprocessing model for quantization
[2023-08-24 20:46:50,864] [INFO] [quantization.py:340:_run_for_config] Preprocessing model for quantization
[2023-08-24 20:46:59,281] [INFO] [engine.py:939:_run_pass] Running pass InsertBeamSearch
[2023-08-24 20:46:59,282] [DEBUG] [engine.py:801:_prepare_non_local_model] Model path is None, local or string name. No need to prepare
Removed 40 initializers with duplicated value
Removed 24 initializers with duplicated value
[2023-08-24 20:47:03,356] [DEBUG] [insert_beam_search.py:140:chain_model] Using IR version 8 for chained model
[2023-08-24 20:47:03,817] [INFO] [engine.py:939:_run_pass] Running pass AppendPrePostProcessingOps
[2023-08-24 20:47:03,817] [DEBUG] [engine.py:801:_prepare_non_local_model] Model path is None, local or string name. No need to prepare
============= Diagnostic Run torch.onnx.export version 2.0.1+cu117 =============
verbose: False, log level: Level.ERROR
======================= 0 NONE 0 NOTE 1 WARNING 0 ERROR ========================
1 WARNING were not printed due to the log level.

[2023-08-24 20:47:07,605] [DEBUG] [engine.py:1076:_evaluate_model] Evaluating model ...
[2023-08-24 20:47:07,605] [DEBUG] [engine.py:801:_prepare_non_local_model] Model path is None, local or string name. No need to prepare
[2023-08-24 20:47:07,642] [DEBUG] [olive_evaluator.py:194:generate_metric_user_config_with_model_io] Model input shapes are not static. Cannot use inferred input shapes for creating dummy data. This will cause an error when creating dummy data for tuning.
[2023-08-24 20:47:07,643] [DEBUG] [resource_path.py:147:create_resource_path] Resource path /home/vmitro/projects/olive_stuff/Olive/examples/whisper/data is inferred to be of type folder.
[2023-08-24 20:47:29,114] [DEBUG] [engine.py:917:_run_passes] Signal: {'latency-avg': 662.4}
[2023-08-24 20:47:29,114] [DEBUG] [engine.py:499:run_no_search] Engine output_name is provided.

It even sounds reads more German :D
Sooo... because hot-swapping onnxruntime versions is not really the workflow that one would usually employ, I should just close the issue as completed. You could maybe add your tip about deleting cache or enabling the clean_cache to the readme, in case anyone gets stuck like I did?

Yes, I will! I am planning to add a note about the versions mismatch and cleaning the cache to the readme.
Someone else also had an issue with the ort versions mismatch. I suspect the cache thing will come up too.
Thanks for reporting them!

No problem, thank you for your timely responses!


Fix miss touched section in Pie Chart

solves #1505
This PR uses the Path.contains instead of complex calculations.

Please fix the test CI issues

Is there anything left to do on this? I am experiencing the same issue and it would be awesome if this fix could be merged

It's ready! Thanks