Add windows support

This is still WIP, 99% is done, only errors unknown to me are idea IT test.
Just want to share it in case some one has some comment.
Other than that, still missing the Windows CI. About that, I am considering removing the bash script and rewriting it in kotlin so it can be executed from gradle in a specific task, wdyt? maybe in another PR?

If someone runs test_suite it in Windows (I found gitbash is nicer that cygwin), you will find some false positives due to difference in treatment of line breaks. But locking closer you see the result is correct.
The only real failures are in custom_interpreters and misc. The first I suspect due not being a real bash, the second still need to check.
........X..........
test #9 "source /c/Users/asalgadr/github/kscript/test/resources/cmd_subst_test.sh" failed:
        expected "command substitution works as well"
        got nothing
1 of 19 script_input_modes tests failed in 96.757s.
..
all 2 environment_tests tests passed in 6.324s.
X.....
test #1 "( resolve_deps log4j:log4j:1.2.14 ) 2>&1 >/dev/null" failed:
        expected "/c/Users/asalgadr/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar"
        got "C:\Users\asalgadr\.m2\repository\log4j\log4j\1.2.14\log4j-1.2.14.jar"
1 of 6 dependency_lookup tests failed in 9.372s.
......
all 6 annotation_config tests passed in 30.707s.
XX...
test #1 "echo "foo${NL}bar" | kscript -t "stdin.print()"" failed:
        expected "foo
bar"
        got "foo\nbar"
test #2 "echo "foo${NL}bar" | kscript -t "lines.print()"" failed:
        expected "foo
bar"
        got "foo\nbar"
2 of 5 support_api tests failed in 21.754s.
.......XX..
test #8 "rm -f ./package_example && kscript --package test/resources/package_example.kts &>/dev/null && ./package_example 1" failed:
        expected "package_me_args_1_mem_4772593664"
        got nothing
test #9 "rm -f kscriptlet* && cmd=$(kscript --package "println(args.size)" 2>&1 | tail -n1 | cut -f 5 -d " ")  && $cmd three arg uments" failed:
        expected "3"
        got nothing
2 of 11 custom_interpreters tests failed in 61.981s.
........XX
test #9 "tmpDir=$(kscript_nocall --idea test/resources/includes/include_variations.kts | cut -f2 -d" " | xargs echo); cd $tmpDir && gradle build" failed:
        program terminated with code 1 instead of 0
test #10 "tmpDir=$(kscript_nocall --idea test/resources/includes/diamond.kts | cut -f2 -d" " | xargs echo); cd $tmpDir && gradle build" failed:
        program terminated with code 1 instead of 0
2 of 10 misc tests failed in 32.797s.

Thanks @abelsromero for putting together this nice set of enhancments.
What about WSL support, since kscript would run under linux in a bash-environment, I wonder if the changes in this PR are compatible with it?

I am considering removing the bash script and rewriting it in kotlin so it can be executed from gradle

Clearly CI support for windows would be nice. However, since the majority of users is using bash (since 'kscripts'`s original intent was to be a bash interpreter for kotlin, I actually also consider the test-suite as a a usage set of examples/part of the documentation.

custom_interpreters

Since defined interpreters in the shebang line is really a bash-feature, I'm not sure how this is compatible with the windows shell in general.
Let me know if you need any help.

What about WSL support, since kscript would run under linux in a bash-environment, I wonder if the changes in this PR are compatible with it?

Good point! I just checked and found 2 issues that doesn't happen on a Linux.

Units complain if .kscript dir does not exists, that should be easy to fix.
and some it

.......XX..
test #8 "rm -f ./package_example && kscript --package test/resources/package_example.kts &>/dev/null && ./package_example 1" failed:
        expected "package_me_args_1_mem_4772593664"
        got nothing
test #9 "rm -f kscriptlet* && cmd=$(kscript --package "println(args.size)" 2>&1 | tail -n1 | cut -f 5 -d " ")  && $cmd three arg uments" failed:
        expected "3"
        got nothing
2 of 11 custom_interpreters tests failed in 140.196s.
........XX
test #9 "tmpDir=$(kscript_nocall --idea test/resources/includes/include_variations.kts | cut -f2 -d" " | xargs echo); cd $tmpDir && gradle build" failed:
        program terminated with code 1 instead of 0
test #10 "tmpDir=$(kscript_nocall --idea test/resources/includes/diamond.kts | cut -f2 -d" " | xargs echo); cd $tmpDir && gradle build" failed:
        program terminated with code 1 instead of 0
2 of 10 misc tests failed in 38.011s.

I would have guessed that at least custom interpreters should run smoothly under WSL. Luckily they at least fail with 1 so it should be rather easy to debug.

I got everything working but this, which also fails on a Manjaro VM, but not in Travis. I am really confused.
........X..........
test #9 "source /c/Users/asalgadr/github/kscript/test/resources/cmd_subst_test.sh" failed:
        expected "command substitution works as well"
        got nothing

However, as reported in the other issue, I found that the last update of gradle breaks packaging 😭
@holgerbrandl what do you think should be next steps? fix the gradle issue or merge this?

btw, I changed the travis script to install gradle 4.10.2

You mentioned that the PR is almost ready. Could you let me know when it's complete from your end so that I could start testing it?

I won't merge this PR because kscript seems to work fine now under gitbash after minor modifications to its launcher and because of the new aether based dependency resolver.
Thank you for your understanding and support.


OpenVPN support

Hi,
I'm trying to get OpenVPN running on the Docker image and I'm encountering an error I cannot seem to be able to resolve - modules seem to be missing from it, particularly TUN which is required by it.
I'm getting the error "Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)" and trying to solve this by using the command "modprobe tun" returns:
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.127-mainline-rev1/modules.dep.bin'
modprobe: FATAL: Module tun not found in directory /lib/modules/4.4.127-mainline-rev1

What can we do to overcome this?
Thank you.

This issue should not report in here, so I close it.
It's a bad idea to do kernel command in docker container. You have to insmod/modprobe in host and also add --privileged in your docker run cmd. Google with keywords of VPN and docker container will give more answers.


add min_depth to toc() helper

Check List
Please read and check followings before submitting a PR.

[ ] I want to publish my theme on Hexo official website.

[ ] I have read the theme publishing doc.
[ ] name is unique.
[ ] link URL is correct.
[ ] preview URL is correct.
[ ] preview URL web site is rendered correctly.
[ ] Add a screenshot to source/themes/screenshots.
[ ] Screenshot filename is same as value of name.
[ ] Screenshot size is 800 * 500.
[ ] Screenshot file format is png.

[ ] I want to publish my plugin on Hexo official website.

[ ] I have read the plugin publishing doc.
[ ] name is unique.
[ ] link URL is correct.

[x] Others (Update, fix, translation, etc...)

Description
Documentation for https://github.com/hexojs/hexo/pull/3929 (PR) that fix https://github.com/hexojs/hexo/issues/3288 (issue)

Has been merged in #1260


⚠ Bofrost.de has degraded performance

In 0a8da27, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 968 ms

Resolved: Bofrost.de performance has improved in cd16691 after 9 minutes.


Adds layout tokens

Description
These are the layout tokens for the new 'less is more' token system.

:tada: This PR is included in version 1.0.0-beta.1 :tada:
The release is available on:

GitHub release
npm package (@beta dist-tag)

Your semantic-release bot :package::rocket:


chore: change substratools image to python slim

/e2e --tests doc

End to end tests: :hourglass_flowing_sand: STARTING


Rename /verifications to /verify-location in location-verification

Problem description
Currently, the naming of endpoints is not consistent among the APIs in progress:

location-verification, v0.2: POST /verifications { device, area } -> Uses plural
location, v0.1: POST /retrieve-location { device } -> Uses verb for actions

Expected behavior
Decide on a common approach. Originally, location-verification used /verify-location but it was changed due to alignment with Commonalities guidelines, which at that time requested paths to be names, but recently a new decision was taken to favor verbs

When the POST method is used, the resource in the path must be a verb (e.g. retrieve-location and not location) to differentiate from an actual resource creation.

Proposal is to revert pàth to the previous name: /verify-location
Alternative solution
n/a
Additional context
n/a

Is it possible to simply name them "verify" and "retrieve" ? The basepath gives us the context it is about device location.

Yes, I guess that in the context of location, the verb would be enough. Whatever decision it has to be applied to both APIs.

Agreed during meeting to change name to /verify


Summary statistics page does not load in Chrome for several users

Note, this was working for me until I updated Chrome to the latest version (Version 104.0.5112.79), now it does not work.

I also noticed the documentation pages were slow to load in Chrome, but this seems to be now resolved

This is due to inefficient pagination. We can change the pagination to work from the back end, but this will stop the search functionality working correctly.
Important functionality for the published studies table search (in order of priority) is:

Sort by Publication date - this allows the user to find the most recently added sumstats. Alternatively the table could be loaded pre-sorted by publication date.
Filter by First author - the main search bar does not do this efficiently
Filter by trait and reported trait - this would be better done in the main search bar which is ontology driven. However users are hampered by the page loading for traits with many associations or child terms, if all they want is the sumstats.
Filter by PMID, GCST - these can be easily done in the main search bar, but this table allows users to get to the sumstats in fewer clicks.

Important functionality for the unpublished studies table search is:

Sort by Date Submitted
Filter by First author
Filter by Reported trait
Filter by Study accession (lower priority)

Search functionality is more important for unpublished than published, as unpublished study metadata is not indexed in the main search.

@ljwh2  This is solved now with the immediate solution proposed, someone can help confirm in snoopy
http://gwas-snoopy.ebi.ac.uk:9780/gwas/downloads/summary-statistics

Tested in Snoopy, published studies table had still not loaded after 5 mins. Prod version in Firefox loads in <30s.

This now works for me, but we need to make sure the table is pre-sorted by publication date so the most recent studies are displayed


Enhancing the Readme.MD file by adding valuable stuff

I would like to add the tech stacks used in the readme.md file and would like to add project admins and contributors list in the readme file to make it more attractive.
Please assign this issue to me.

I  would like to work on this issue . Please assign to me

Please mark the label on this issue .
I want to work on it behalf of GSSOC'21

@Nishayadav-bit , techstack is already added


getAddresses is send replying only Used Ips

I am doing a huge mapping of our networks, I need all the Ips of my some vlan in my script.
But I need to do a list with used / unused Ips.
The example  in the example folder does not work.

python-phpipam is only a lightweight wrapper for the phpIPAM API. This is how phpIPAM works internally, afaik. It only stores used adresses. If you want to create a list of unused addresses, you would have to do that yourself.
This may help: https://stackoverflow.com/a/53648372

What I will do is to set the list of ip and test them with 👍🏼


Fix DEVENGAGE-1867

Make operator and value attributes optional on the CampaignRule parameters block, since it shouldn't be set for Campaign Rule Actions
For more info, see https://inindca.atlassian.net/browse/DEVENGAGE-1867

Be sure to run go generate so these changes are reflected in the docs

Thanks @charliecon . Done!


python3.pkgs.osmpythontools: 0.3.0 -> 0.3.2

Motivation for this change
Upstream release 0.3.2 (PyPI, Git tag)
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)

(there are no executable files, as this is a library)

21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 137337 run on x86_64-linux 1

2 packages built:

python38Packages.osmpythontools
python39Packages.osmpythontools

Result of nixpkgs-review pr 137337 at a7753f4f run on aarch64-linux 1

2 packages built successfully:

python38Packages.osmpythontools
python39Packages.osmpythontools


The output images have pink/red hue over it

I have been able to train the GAN and evaluate for a set of input and trimap pair. But all the images I get as output have a pink/red hue all over it. Am I doing something wrong over here?

How long it did you take to train the modal?


CTP14 error with finsql clickonce

When I am trying to install the dev environment through clickonce from the CTP14 docker build, I am getting the following error:
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\Users\pzentner\Downloads\Finsql.application resulted in exception. Following failure messages were detected:
+ Deployment and application do not have matching security zones.

Please, have you tried access from Internet Explorer? If not, please, try it using IE.

Ok, need to update or rephrase it: This error message above comes on Chrome. On IE or Edge, it works. Is this by design? :)

Yeah, it works like this :)


add check-links to this repo #300

feat #300

Added a new GitHub Actions workflow for checking markdown links
Configured check_links_config.json to include patterns for ignoring certain links (e.g., localhost, example.com)
Ensured the workflow is triggered on push and pull requests
Tested the configuration locally and via GitHub Actions to verify correct link checking using README.md as a case study and all links were checked

On it @tylerbenson


Add info about Camel IDE plugins to the documentation

We list Quarkus specific plugins on https://camel.apache.org/camel-quarkus/latest/user-guide/first-steps.html#_ide_plugins but we do not mention any Camel specific ones.
Here is the AsciiDoc source of the page https://github.com/apache/camel-quarkus/blob/main/docs/modules/ROOT/pages/user-guide/first-steps.adoc

For Camel URL support:

VS Code Language support for Camel which is part of the Camel extension pack
Eclipse Desktop Language Support for Camel which is part of Jboss Tools and CodeReady Studio
Apache Camel IDEA plugin /!\ not always maintained
all IDEs that can configure a Language Server by using the Camel Language Server /!\ requires manual configuration by users

possible to use Eclipse Che/CodeReady Containers but will surely require to configure a bit a devfile (and have a lot of memory available)

Is there any web page about using Che/CodeReady with Camel that we could refer to in our docs? The above sentence is not specific enough to be really usable for the docs.

possible to use Eclipse Che/CodeReady Containers but will surely require to configure a bit a devfile (and have a lot of memory available)

Is there any web page about using Che/CodeReady with Camel that we could refer to in our docs? The above sentence is not specific enough to be really usable for the docs.

There's none related to both Camel and Quarkus. Some work would need to be done also to test having both Quarkus and Camel to ensure that it is working.
For Camel only, there is this old article https://developers.redhat.com/blog/2019/05/21/apache-camel-development-on-eclipse-che-7/
For Quarkus only, there is this old article https://developers.redhat.com/blog/2019/08/19/get-started-with-eclipse-che-7-and-quarkus-an-overview/

OK, thank, let's leave it out of the docs for now then.


Update UnitsDB tables

These are introducing a lot more content, and explicit mappings to dimensions and quantities.

Introduce check that the ids of units are all unique


Replace non-functional example with a working one (rebased onto dev_5_2)

This is the same as gh-1492 but rebased onto dev_5_2.

Just fixing an example in http://www.openmicroscopy.org/site/support/omero5.2/developers/testing.html#individual-test-class-methods. The status at present is that this example does not execute any tests because there are none of the specified name. This PR is replacing the example with more present test, which executes fine with a reasonable output.
Staged at http://www.openmicroscopy.org/site/support/omero5.2-staging/developers/testing.html#individual-test-class-methods
cc @ximenesuk @mtbc

--rebased-from #1492

Good to merge.


Fix Error.stackTraceLimit assignment on Firefox

See https://github.com/Agoric/agoric-sdk/pull/2017

Reproduced using #590


v2rayn: Fix hash

Fix #2548.
It looks like that the developer of v2rayn has modified the files without updating the version number.

https://github.com/lukesampson/scoop-extras/pull/2540

Duplicate to #2540. Closing PR.


Make the 'Reset filters' icon less similar to the 'Refresh data' icon

Currently, the icons for resetting filters in the Filter panel and for refreshing the data in the analysis look very similar. It would be great to replace the icon 'Reset filters' with a different but convenient icon, i.e.:
https://fontawesome.com/icons/arrow-rotate-left?s=regular&f=classic

Fixed in v1.10.0


[Question] does the controller continually perform a refresh-then-update on the stacks it manages?

This is controlled via the parameters you pass to the stack CR: https://github.com/pulumi/pulumi-kubernetes-operator/blob/master/deploy/crds/pulumi.com_stacks.yaml#L74

Thank you @leezen for your response. I understand that setting the refresh config value to true will result in the stack being refreshed before it's updated. My question is whether the stack is continually updated by the controller and thus maintaining the desired state, regardless of (undesired) changes to the stack's resources by an external party. Thanks again!

@gunniwho no - the operator is currently implemented to drive the desired state of a "stack" CR. It will trigger if the stack CR's state is updated and continue to drive it till success. Once the desired state is reached, the next trigger would really only be when the stack CR state changes or is deleted.

Thanks @viveklak. Am I correct to assume then that if I were to provide a mechanism to continually "touch" the stack CR (say every minute for example) together with using the refresh option, that would make the controller continually maintain the desired state of the stack's resources, including reverting undesired changes by an external party?

@gunniwho in theory yes but we haven't put the controller through that use case. Would be curious to hear about your experience if you did go down that path.
I'd recommend trying at a cadence of 5-ish minutes to begin with since the applies are somewhat heavyweight right now.
Also you will have to actually change the spec of the CR due to the predicates in use: https://github.com/pulumi/pulumi-kubernetes-operator/blob/master/pkg/controller/stack/stack_controller.go#L89. Alternatively you could try adding predicate.AnnotationChangedPredicate{} to the predicate Or statement at the line above to allow you to touch an annotation to tickle the controller instead.

Thanks for the info @viveklak! I will post if and when I give this a shot.

Am I correct to assume then that if I were to provide a mechanism to continually "touch" the stack CR (say every minute for example) together with using the refresh option, that would make the controller continually maintain the desired state of the stack's resources

Or what about putting an additional key to the CRD as refreshTimeout *time.Duration and using the RequeAfter (along with Requeue to true) struct field to the reconcile request object, so the Operator can refresh the desired state?
I think it's a more neat implementation rather than touching a resource.


Code not finished yet, plz stay tuned. Will close this issue until mostly done

When can you finish it? I'm very interested in it. Thank you

I'm interested in this work, too. Thank you

Thank you very much for your attention. We have released a faithful implementation here: https://github.com/vztu/maxim-pytorch/tree/main/maxim_pytorch.


⚠ Bofrost.at has degraded performance

In dd53ef3, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1896 ms

Resolved: Bofrost.at performance has improved in 2283c86 after 304 days, 20 hours, 5 minutes.


fix(dataset): improve glossary term load performance for datasets

Improves the performance of loading datasets by reducing the amount of information being fetched from the graph database. Data was being fetched that wasn't used and resulted in potentially hundreds of calls to the graph database. This issue is explained more in issue #6395.
The heavy use of fragments in the affected portion of the graphql query means that the problematic code (in the glossaryNode fragment) cannot be changed directly as this additional information is needed by other queries which use this fragment, namely getGlossaryNode(). Additionally, the glossaryNode fragment is four levels of abstraction away from the primary fragment of the getDataset() query (nonSiblingDatasetFields -> glossaryTerms -> glossaryTerm -> parentNodesFields -> glossaryNode). Instead of creating four new fragments for one change at the fourth layer, I combined them into a single new fragment which can then be inserted as a whole into the getDataset() query. If this is not preferred or if the fragment could be better named as something else, then I can make those changes.
Checklist

[X] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[X] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

Hey we are reviewing this. Will get back shortly.


Fix InstructionsRetired Reports (Missing Data)

The instructions retired data was being thrown away because there were only 2 values across all iterations.  Our outlier analysis threw them out.
This change ensures that we don't throw away more than 5% of data - if we feel we need to then we don't throw any away.
@dsgouda, PTAL

If you are planning to publish a new package version you might want to update https://github.com/Microsoft/xunit-performance/blob/master/NightlyBuild.cmd#L22 and https://github.com/Microsoft/xunit-performance/blob/master/NightlyBuild.cmd#L23

I'm assuming the changes have been tested
LGTM :+1:

@dsgouda, good point, I've updated NightlyBuild.cmd.  We can publish a new package version, but we don't need to modify CoreCLR or CoreFX, because they don't depend on the change (e.g. they haven't hit this bug).


Add is_public_read function

Created the function is_public_read that takes a member node and pid (or vector of pids), checks for public read access, and then returns TRUE or FALSE. This function should work even if a user's token isn't set. I also fixed a couple of error messages with typos that I came across in access.R.

@robyngit I almost forgot.  Please add yourself as a contributor in the description file: https://github.com/NCEAS/arcticdatautils/blob/master/DESCRIPTION


Add a generic icon component

It would be useful to create a generic icon component with an icon prop, so we could directly set the icon without duplicating the control, like with bootstrap-vue:
Instead of
<b-chevron-up v-if="expanded" />
<b-chevron-down v-if="!expanded" />

We could write
<b-icon :icon="expanded ? 'b-chevron-up' : 'b-chevron-down'" />

Also need this. Not sure however how it will be handled by tree shaking.
I use this lib mainly for bundle size optimization, because it will bundle only icons I use.

Ok, actually I found you can achieve this by doing:
import { BIconChevronUp, BIconChevronDown } from 'bootstrap-icons-vue';

<component :is="expanded ? BIconChevronUp : BIconChevronDown" />


Add search capabilities, maybe when the repos are public

https://docusaurus.io/docs/search#using-algolia-docsearch

duplicates https://github.com/winglang/wing/issues/1066


Get center info for Relation

Issue type

Feature

Summary

Get center info for relation.

Coverage increased (+0.1%) to 93.909% when pulling 38b6a8050a9a092bfc65c0fbea6989a1d074662b on relation_center into a90f49a2587cc4e3db02475d25c693d743dcfc4c on master.


n + 1 issue

Hello,
First of all great work on the fantastic plugin, thank you!
I wanted to check with you guys regarding n+1 issue & DataLoader mechanism.
I opened a repo https://github.com/omerman/prisma-type-graphql-n1 that has typegraphql & prisma installed.
All you need to do is modify your .env to match a postgres db, and hit yarn dev.
When adding multiple Posts & Comments (two Posts and a single Comment per Post will be enough) and running this basic query ->
  posts {
    id
    comments {
      id
      info
    }
  }

You'll quickly notice that the number of queries logged grow for each Post added. I believe this should not happen..
I think it would be best if the typegraphql generated crud methods leverage prisma2 mechanism of the implemented DataLoader.
Looking forward for your response

Prisma has a built-in dataloader so there's no need for resolving the relations using custom, manual dataloader.

To not leave this issue without comments, I've also run a simple query on my experimental project (/experiments on repo):
query {
  clients {
    firstName
    clientPosts {
      title
    }
  }
}

And here are the sql logs:
prisma:query SELECT "public"."User"."id", "public"."User"."email", "public"."User"."name", "public"."User"."age", "public"."User"."balance", "public"."User"."amount", "public"."User"."role" FROM "public"."User" WHERE 1=1 OFFSET $1
prisma:query SELECT "public"."User"."id" FROM "public"."User" WHERE "public"."User"."id" IN ($1,$2,$3) OFFSET $4
prisma:query SELECT "public"."post"."uuid", "public"."post"."createdAt", "public"."post"."updatedAt", "public"."post"."published", "public"."post"."title", "public"."post"."subtitle", "public"."post"."content", "public"."post"."authorId", "public"."post"."editorId", "public"."post"."kind", "public"."post"."metadata" FROM "public"."post" WHERE "public"."post"."authorId" IN ($1,$2,$3) OFFSET $4

So as you can see, the relation is fetched without N+1 issue, it's batching the calls and making single query FROM "public"."post" WHERE "public"."post"."authorId" IN ($1,$2,$3).
So please try to investigate what is different in your project/repo that makes dataloader not working 😉

@MichalLytek thank you for your response!
I found out that version 2.15+ of prisma has the issue I described with batching. When downgraded to 2.14 the batching worked as expected. So its all good :) I guess Prisma guys fixed it by now(I saw an open issue at the time)


Why don't you sample Alphas and Betas using Gumbel-Softmax?

In your model_search.py code you simply use F.softmax(...) on alphas and betas to learn the super-cell and down-sampling connections (line 275):
        alphas0 = F.softmax(getattr(self, self._arch_names[self.arch_idx]["alphas"][0]), dim=-1)
        alphas1 = F.softmax(getattr(self, self._arch_names[self.arch_idx]["alphas"][1]), dim=-1)
        alphas2 = F.softmax(getattr(self, self._arch_names[self.arch_idx]["alphas"][2]), dim=-1)
        alphas = [alphas0, alphas1, alphas2]
        betas1 = F.softmax(getattr(self, self._arch_names[self.arch_idx]["betas"][0]), dim=-1)
        betas2 = F.softmax(getattr(self, self._arch_names[self.arch_idx]["betas"][1]), dim=-1)
        betas = [None, betas1, betas2]`

I was wondering why you didn't use hard Gumbel-Softmax sampling here (like you did with the ratios)?
I think that using plain softmax is actually very dangerous as the optimizer learns to output optimal weighted combinations of feature-maps from all available operations.
Furthermore, I observed in a small Experiment using only 2 Operations (Conv and Skip) that using plaing softmax didn't converge at all but Gumbel-Softmax-Sampling leads to good alphas.
What do you think? Did I miss something?

Hi @maaft! Thank you for your interest in our work!
As an example, you may want to take a look at Figure 2 in https://openreview.net/forum?id=SJx9ngStPH. It seems the Gumbel softmax ("GDAS") may lead to worse one-shot validation error, while at the same time achieve similar test regret (i.e., the accuracy of derived subnetworks).
For now, it is hard for me to say if using Gumbel softmax is always a good idea. However, I would guess stabilizing feature maps in the supernet should lead to a stable search process, which could be vital for dense prediction tasks like segmentation. Gumbel softmax may include larger dynamics during the search.

Thank you for your answer!
To clarify, alphas and betas are learned using softmax during training and the network for evaluation is just picked using argmax, correct?
I.e.:
def train(...):
   alphas = F.softmax(self.alphas, dim=-1)
   ...

def eval(...):
    idx = self.alphas.argmax(dim=-1, keepdim=True)
    alphas = torch.zeros_like(alphas)
    alphas.scatter_(1, idx, 1)

Do you mean by "stabilizing feature maps" adding a loss that forces each cell to produce a similar output to other cells of the same supercell?

Yes -- the operator with the largest alpha value is selected for train-from-scratch.
By "stabilizing feature maps" I mean reducing the variations of feature maps during the search. A large variation could come from different feature maps produced by different operators sampled by the one-hot Gumble softmax. Instead, the feature map will be less variant if it is the weighted sum of all operators' outputs.

Thanks!
Does this also apply to betas? If yes, how can the searched architecture have two ingoing connections from previous cells? (E.g. Cell 7 from downsampling-level 16)

Or do you use some kind of thresholds to determine if a connection is disabled or not? And if yes, what is the threshold you are using?

At index #7 there are actually two cells. See the last paragraph in our section 3.4 (page 6 bottom):
"It is worth noting that, the multi-resolution branches will share both cell weights and feature maps if their cells are of the same operator type, spatial resolution, and expansion ratio. This design contributes to a faster network. Once cells in branches diverge, the sharing between the branches will be stopped and they become individual branches."
This means starting from index #5, two branches will never share anything. They have their separate convolutional layers.
For your Gumbel Softmax question: I never tried to sample per-image Gumbel noise. If you did not apply temperature annealing in the Gumbel Softmax, then maybe you could try: 1) use smaller architecture learning rate; 2) use larger temperature for Gumbel Softmax.

I've read that passage but I don't really understand it as your code is suggesting something else:
In model_search.py you initialize your Network_Multi_Path with all cells of all branches and I don't see shared parameters anywhere. Could you please clarify where the sharing takes place?
Thank you for being so patient and answering my questions! :)

We implement this in our derived architectures.

At each layer, we say two branches are "connected" (i.e. they share both cell weight and feature maps) only if: 1) they output the same scale, 2) they choose the same operator, 3) they choose the same width: https://github.com/TAMU-VITA/FasterSeg/blob/master/train/model_seg.py#L257
We merge connected branches into a group: https://github.com/TAMU-VITA/FasterSeg/blob/master/train/model_seg.py#L261
Branches belong the same group will share the same cell, otherwise they will not share either cells or feature maps.

Okay, so the sharing is only done after the model search is finished.
Another thing I noticed is that in your paper you use the betas on the input of each cell:

But in your implementation you use the betas on the cell's outputs:
https://github.com/TAMU-VITA/FasterSeg/blob/bb52a004ff83f64d3dd8989104234fdb862d1cc5/search/model_search.py#L330
I guess that both approaches are somehow equivalent in the end but I was wondering why you decided to do the weighting on the output of the cell?
Afaik, input weighting as per eq. (1) would spare us one forward pass per cell and therefore highly needed memory.

Sorry to bother you again, but could you kindly answer my last question?
If we really are able to multiply betas on the cell's input we would spare lots of memory and could use larger batch-sizes.

Also, to come back to my original question:
If you train a softmax-weighted sum of all all feature-maps for each super-cell, how do you decide that the architecture sampled from epoch N+1 is actually better than the architecture from epoch N ?
The problem that I have observed is, that even while the architecture might have gotten better, the argmax-derived model is performing worse (i.e. lower IoU) and I think that this mainly comes from softmax-training.

Sorry to bother you again, but could you kindly answer my last question?
If we really are able to multiply betas on the cell's input we would spare lots of memory and could use larger batch-sizes.

I think current Eq. 1 is actually doing input weighting, as the weighted output will be the input into the next cell.
Without using Gumbel Softmax, I doubt we could save memory here, since both two outputs need to be calculated in the computation graph.

Also, to come back to my original question:
If you train a softmax-weighted sum of all all feature-maps for each super-cell, how do you decide that the architecture sampled from epoch N+1 is actually better than the architecture from epoch N ?
The problem that I have observed is, that even while the architecture might have gotten better, the argmax-derived model is performing worse (i.e. lower IoU) and I think that this mainly comes from softmax-training.
Here you see the validation DiceScore of the argmax-derived model. Red is with hard-gumbel-softmax sampling, blue is with plain-softmax training:

For this question, this paper may be helpful to you.
In their Figure 2, solid lines are the performance of derived subnetworks, and dashed lines are the performance of the supernet. We can see that the solid line (test error) is not always getting lower along the search process. I think this is one important challenge in NAS community to be solved, especially for weight-sharing NAS methods.

I think current Eq. 1 is actually doing input weighting, as the weighted output will be the input into the next cell.

Yes, this is what I wrote and understand. But in your code you do output weighting and I don't understand why?
See:
https://github.com/TAMU-VITA/FasterSeg/blob/bb52a004ff83f64d3dd8989104234fdb862d1cc5/search/model_search.py#L331

I mean output reweighting at cell_i is actually doing input reweight for cell_i+1.

Okay, I will continue to use input-weighting then as I spare one forward pass through my cell (faster search time, lower memory consumption).


Change BitDropDown icon issue.

I want to change the icon in  BitDropDown

to be able to implement

but as the content of i is set in the razor I can't change it easily :|

Thanks for contacting us. We're investigating this issue.
We'll let you know if it's possible to work on this issue or not.

The issue is accepted and planned. Resolving it will start ASAP.

Resolving this issue has started. It will be announced when this issue is resolved.

This issue has been resolved and it will be available in the next pre-release version. It will be announced when the pre-release becomes ready.

Thank you for the changes :)


MVVM sample project in NuGet Gallery crash with V2

I'm implementing the WinUI3 Localizer in my MVVM project duplicating the sample project available  with the NuGet package. Unfortunately, SettingsViewModel.cs throws and exception when its constructor reaches the last statement because _localizationService.GetCurrentLanguage() returns an empty string;
    public SettingsViewModel(IThemeSelectorService themeSelectorService, ILocalizationService localizationService)
    {
        _themeSelectorService = themeSelectorService;
        _elementTheme = _themeSelectorService.Theme;
        _versionDescription = GetVersionDescription();

        SwitchThemeCommand = new RelayCommand<ElementTheme>(
            async (param) =>
            {
                if (ElementTheme != param)
                {
                    ElementTheme = param;
                    await _themeSelectorService.SetThemeAsync(param);
                }
            });

        _localizationService = localizationService;
        AvailableLanguages = _localizationService.GetAvailableLanguages()
            .Select(x => new LanguageItem(Language: x, UidKey: $"{"Settings_Language"}_{x}"))
            .ToList();

       // next line throws an exception because  _localizationService.GetCurrentLanguage() returns an empty string "";
        _selectedLanguage = AvailableLanguages.First(x => x.Language == _localizationService.GetCurrentLanguage());
    }

the second problem I encountered is that the It fails to return the default language in a machine where the app runs for a first time (ie no "AppLocalizationLanguage" setting yet). This was solved by preventing that to changing the initalization logic in LocalizationService.cs from this:
    public async Task InitializeAsync()
    {
        await InitializeLocalizer();
        if (await LoadLanguageFromSettingsAsync() is string language)
        {
            await Localizer.SetLanguage(language);
        }
    }

To this:
    public async Task InitializeAsync()
    {
        await InitializeLocalizer();
        if (await LoadLanguageFromSettingsAsync() is string language)
        {
            await Localizer.SetLanguage(language);
        }
        else
        {
            SetLanguageAsync("us-en");
        }
    }

Edit:
Whit this change I hopped to be able to get back the localized strings with the default language, but I did not, and _localizationService.GetCurrentLanguage() still returns an empty string.
Maybe I missed to copy a piece of code somewhere?
Implementing the WinUI3Localizer is a great addition to the UX but it is not trivial. Hopefully it gets added to the CommunityToolkit.Mvvm, or, at least a detailed step by step instructions are published with the package for that framework.

Also noted that updating the sample project project from MicrosoftWindowsAppSDK version 1.3 to 1.5 crashes at startup.

Hi, @gmgallo !
I'm going to be away from my laptop, so I won't be able to help you out with this for a couple of days, but can you check the following?

Does it work by just cloning the sample app? It works on my side.
Do you have the resources in the "Strings" folder in your project? Also check their properties, "Build Action" and "Copy to Output Directory" match with the sample app ones.

Hi @AndrewKeepCoding,
Thanks for the quick return!

Yes, the sample app compiles and works as is. But it uses V1 of the package. And as soon as I upgrade MicrosoftWindowsAppSDK to V1.5 (which I need in my solution), it crashes with an exception very early in the loading process. Downgrading it back to 1.3 doesn't repair the code completely. Unfortuately, that precludes me from using V1.
Yes, I have two resources,resw files for en-us and es-es. For what I could see stepping through LocalizationService.es initialization the files are loaded, and two language dictionaries are created, but something else is missing or changed from V1 to V2.

I'll revert the changes temporarily until you have some time to look into it.

I was able to reproduce the issue by just updating to WinAppSDK v1.5. It seems that this is not related to the WinUI3Localizer but to the TemplateStudio project.
The error disappears by bringing a PublishProfiles folder and its contents (*.pubxml files) from another working WinAppSDK v1.5. Recreating a TemplateStudio project from scratch might be a better idea.

Hi Andrew, thanks for the return, unfortunately the solution is a risky alternative for me. My project is in the final phase with almost two years of development, countless services and views. Too late to start from scratch a new TemplateStudio and migrate everything over there. I have bad experience trying to recycle parts of old project into a new one. Lots of things go on behind the scenes that can't be fixed just by renaming namespaces.
This is a nice feature for many developers around the world. I hope this makes its way as an add in option to TemplateStudio or the CommunityToolkit MVVM templates.

Closing this since it seems not to be related to WinUI3Localizer. Reopen this or create a new issue if you need my help.


When the page is refreshed, an error will be reported when playing automatically

##When the page is refreshed, an error will be reported when playing automatically
##The scene is, in a table, click a line will have a transition, click open can automatically play. But when I refresh the page and the transition keeps auto pop-up, auto play fails
     Uncaught (in promise) DOMException

@minbaowang what browser, operating system, version of wavesurfer?

@minbaowang what browser, operating system, version of wavesurfer?
chrome browser  , win10 system, Latest version

@minbaowang what browser, operating system, version of wavesurfer?

##When I click the refresh button, the page will refresh. The transfer of Vue will be opened automatically. If the wavesurfer is set to play automatically, it will not succeed and an error will be reported；
##The code for setting is as follows：
this.wavesurferObj.on("ready", function () {
	that.audioObj.duration = that.formatSeconds(that.wavesurferObj.getDuration());
	that.wavesurferObj.on("seek", function () {
	       that.audioObj.currentTime = that.formatSeconds(that.wavesurferObj.getCurrentTime());
	});
	that.wavesurferObj.on("audioprocess", function () {
	       that.audioObj.currentTime = that.formatSeconds(that.wavesurferObj.getCurrentTime());
	});
	that.$nextTick(() => {
		that.wavesurferObj.play()//自动播放
	})
})

The transfer of Vue will be opened automatically.

Please make an example that reproduces this problem that doesn't use vue.js or any other framework.

If the wavesurfer is set to play automatically, it will not succeed and an error will be reported；

Maybe is due to the autoplay policy?

Most browsers don’t allow audio to be played automatically, they require user interaction first.

大多数浏览器不允许自动播放音频，它们首先需要用户交互。

Most browsers don’t allow audio to be played automatically, they require user interaction first.

Most browsers don’t allow audio to be played automatically, they require user interaction first.
However, when I refresh the page, when the list is loaded, I will automatically pop up the pop-up box in the left column, and JS realizes automatic interaction.

If the wavesurfer is set to play automatically, it will not succeed and an error will be reported；

Maybe is due to the autoplay policy?

This is a strange one. When I don't remember that the session storage will pop up automatically in the left column, the first time I come in is the list page. Click a line in the list to pop up the left column. At this time, it can be played automatically

The transfer of Vue will be opened automatically.

Please make an example that reproduces this problem that doesn't use vue.js or any other framework.
##When you click the button, the recording will be generated and played automatically; when the browser has sessionstorage, the recording will be automatically generated instead of clicking the button, but the playback fails,.
audio_wave.zip

Vue的传输将自动打开。

请举一个重现此问题的示例，该示例不使用vue.js或任何其他框架。

The transfer of Vue will be opened automatically.

Please make an example that reproduces this problem that doesn't use vue.js or any other framework.

I think it's Chrome that restricts automatic playback, but I didn't find a similar implementation of audio's muted attribute on the official website

Chrome and Safari will restrict automatic playback, usually the user has to press a button, and then audio successfully plays.
Is the DOMException coming from wavesurfer? If you print it with console.error does it give more details?

@minbaowang browsers will auto play muted sounds by default or if a user has previously clicked the audio player on the same domain.
I've created a pr for a similar issue on mobile devices that are in silent mode that don't play audio since it requires user interaction. On ios browser I created a workaround a few months ago which uses timeouts and once a user touch event happens it will trigger the proper interaction play on a empty audio player allowing the rest of the players to work automatically.

@minbaowang browsers will auto play muted sounds by default or if a user has previously clicked the audio player on the same domain.
I've created a pr for a similar issue on mobile devices that are in silent mode that don't play audio since it requires user interaction. On ios browser I created a workaround a few months ago which uses timeouts and once a user touch event happens it will trigger the proper interaction play on a empty audio player allowing the rest of the players to work automatically.


Updated deploy configuration to use Heapster 1.4.2

A new version of heapster released https://github.com/kubernetes/heapster/releases/tag/v1.4.2.
Closes #1787

This change is

/ok-to-test
/lgtm

@piosz @DirectXMan12 PTAL.

Ref #1808 and #1753 - needs to be part of release process.


CA-125488, CA-43182

CA-43182: We do not use the Obsolete attribute anymore as it causes warnings. Instead a new attribute is created, DeprecatedAttribute.
CA-125488: C# and Powershell do not expose get_all_records for classes where it does not exist.

Looks ok to me!

Looks good, and I've checked the output. Merging.


testmybot setup issue

ENOENT: no such file or directory, open '/home/mtech/package.json'

What steps have you done to get this error?

Now, looks like this "npm WARN<EMAIL_ADDRESS>No repository field." in stmybot/samples/facebook

That's nothing to worry about.

thanks,
but, after the "sudo npm install" I wrote a command in terminal "npm test", it throw the error like:-
mtech@(username):~/testmybot/samples/facebook$ npm test

<EMAIL_ADDRESS>test /home/mtech/testmybot/samples/facebook
jasmine

Started
(node:29638) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Cannot build docker containers: 'Cannot build docker containers: Error: docker-compose failed: { Error: spawn docker-compose ENOENT\n    at exports._errnoException (util.js:1020:11)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:197:32)\n    at onErrorNT (internal/child_process.js:376:16)\n    at _combinedTickCallback (internal/process/next_tick.js:80:11)\n    at process._tickCallback (internal/process/next_tick.js:104:9)\n  code: 'ENOENT',\n  errno: 'ENOENT',\n  syscall: 'spawn docker-compose',\n  path: 'docker-compose',\n  spawnargs: \n   [ '-p',\n     'testmybot-sample1',\n     '-f',\n     '/home/mtech/testmybot/samples/facebook/botiumwork/testmybot-sample1-20180207-155902-oC0j5/docker-compose.botium.yml',\n     '-f',\n     '/home/mtech/testmybot/samples/facebook/botiumwork/testmybot-sample1-20180207-155902-oC0j5/fbmock/docker-compose.fbmock.yml',\n     '-f',\n     '/home/mtech/testmybot/samples/facebook/botiumwork/testmybot-sample1-20180207-155902-oC0j5/docker-env.yml',\n     'build' ] }\n    at ChildProcess.runningProcess.on (/home/mtech/testmybot/samples/facebook/node_modules/botium-core/src/helpers/ProcessUtils.js:47:18)\n    at emitOne (events.js:96:13)\n    at ChildProcess.emit (events.js:188:7)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:217:12)\n    at onErrorNT (internal/child_process.js:376:16)\n    at _combinedTickCallback (internal/process/next_tick.js:80:11)\n    at process._tickCallback (internal/process/next_tick.js:104:9)'
what I will do next for this issue!!

You don't need sudo to run npm install.
I will leave this docker issue to @codeforequity-at

ok, thanks @Naktibalda.

Did you install docker and docker-compose ? For this sample you need it ...

@codeforequity-at  when I installed "npm install"command on terminal, it return me "npm WARN<EMAIL_ADDRESS>No repository field."

@codeforequity-at  Yes, I am installed docker and docker-compose.

Hi @codeforequity-at ,
when I wrote "npm test" on terminal,it gives me an error like :-
Started
(node:7139) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Cannot build docker containers: 'Cannot build docker containers: Error: docker-compose returned error code 1\n    at ChildProcess.runningProcess.on (/home/mtech/testmybot/samples/facebook/node_modules/botium-core/src/helpers/ProcessUtils.js:40:18)\n    at emitTwo (events.js:106:13)\n    at ChildProcess.emit (events.js:191:7)\n    at maybeClose (internal/child_process.js:920:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)'
What I will do for same?

before running, please enable debug mode ("export DEBUG=botium*,testmybot*"). This should give more insights whats happening.

Hi @codeforequity-at,
before execute "npm test", enable debug mode it return like this:-
"botium-BotDriver BotDriver Build error: Error: Cannot build docker containers: 'Cannot build docker containers: Error: docker-compose returned error code 1\n    at ChildProcess.runningProcess.on (/home/mtech/testmybot/samples/facebook/node_modules/botium-core/src/helpers/ProcessUtils.js:40:18)\n    at emitTwo (events.js:106:13)\n    at ChildProcess.emit (events.js:191:7)\n    at maybeClose (internal/child_process.js:920:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)' +2s
(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Cannot build docker containers: 'Cannot build docker containers: Error: docker-compose returned error code 1\n    at ChildProcess.runningProcess.on (/home/mtech/testmybot/samples/facebook/node_modules/botium-core/src/helpers/ProcessUtils.js:40:18)\n    at emitTwo (events.js:106:13)\n    at ChildProcess.emit (events.js:191:7)\n    at maybeClose (internal/child_process.js:920:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)'
export DEBUG=botium*,testmybot*(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 3): Error: container not available
(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): Error: container not available
(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 6): Error: Error: container not available
F(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 8): Error: container not available
(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 9): Error: container not available
(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 11): Error: Error: container not available
F(node:5130) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 13): Error: container not available"
then, what should I do next??

Try to run docker-compose manually and see what happens.

Agree, seems that docker-compose is not installed or not in the path.
You can add the docker compose path in your testmybot.json capabilities:
  "DOCKERCOMPOSEPATH": "<absolute-path-to-docker-compose>"

More configuration possiblities are described here:
https://github.com/codeforequity-at/botium-core/wiki/Botium-Configuration

I tried but it gives same issue.

when you are running "docker-compose version" in command line, the docker-compose executable is found and some version information is shown ?
Also, there should be way more output when the debug mode is enabled. Did you run these two commands in a row ?

export DEBUG=botium*,testmybot*
npm test

Docker-compose version is 1.19.0.

when I execute command  "export DEBUG=botium*,testmybot*"   "npm test". It return like:-
"npm ERR! Linux 4.4.0-112-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "test"
npm ERR! node v6.12.3
npm ERR! npm  v3.10.10
npm ERR! path /home/mtech/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/home/mtech/package.json'
npm ERR! enoent ENOENT: no such file or directory, open '/home/mtech/package.json'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! Please include the following file with any support request:
npm ERR!     /home/mtech/npm-debug.log"

when I execute command "export DEBUG=botium*,testmybot*"  "npm test". It return like this :-
botium-BotDriver BotDriver Build error: Error: Cannot build docker containers: 'Cannot build docker containers: Error: docker-compose returned error code 1\n    at ChildProcess.runningProcess.on (/home/mtech/testmybot/samples/facebook/node_modules/botium-core/src/helpers/ProcessUtils.js:40:18)\n    at emitTwo (events.js:106:13)\n    at ChildProcess.emit (events.js:191:7)\n    at maybeClose (internal/child_process.js:920:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)' +2s
(node:4926) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Cannot build docker containers: 'Cannot build docker containers: Error: docker-compose returned error code 1\n    at ChildProcess.runningProcess.on (/home/mtech/testmybot/samples/facebook/node_modules/botium-core/src/helpers/ProcessUtils.js:40:18)\n    at emitTwo (events.js:106:13)\n    at ChildProcess.emit (events.js:191:7)\n    at maybeClose (internal/child_process.js:920:16)\n    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)'
(node:4926) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 3): Error: container not available
(node:4926) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): Error: container not available
(node:4926) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 6): Error: Error: container not available
F(node:4926) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 8): Error: container not available

I have to admit that I have no idea what's going on there.
Can you please try another sample which doesn't require Docker, in "samples/watson" for example - just to make sure that this problem is related to docker.
It could be some kind of user permission problems, but its hard to do remote diagnosis here. Maybe it would be possible to grant temporary SSH access to your workstation, so I can analyse locally ? If yes, please don't post here, get in contact at<EMAIL_ADDRESS>


Added link for installing Python

If the user does not already have Python installed, I'va added a link to redirect them to our other article about installing it.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you @ConnBreathnach for your contribution and congratulations on your first PR merge to this repo.


Feature Request: Allow Operator to manage being a downstream "cattle"

Hello!
Problem:
There's seemingly no great way to manage the registration of a "edge" rancher cluster with a cloud hosted "multicluster-managment" rancher - or if there is I'm missing something fundamental about how I should be managing these "cattle" clusters I create downstream of the Rancher.
Current Solution:
We manage this ourselves by creating a k8s job that runs at runtime and utilizes a "service account" with credentials retrieved from centralized secret store to create and register the cluster with rancher "multicluster-management" which then self applies the cattle-agent yaml.
is there a more preferred way to manage these types of registrations with the rancher?

Please see https://rancher.github.io/elemental/ for a successor of 'os2'.


Create README

added initial readme

The overall feel here is a "docker tutorial".
I would much rather provide a link to https://docs.docker.com/engine/reference/run/
and rather provide more details about creating word-data, server.properties files and directories for mounting im the images. To provide persistent configuration and world data.

I changed some things, what do you think? What can be improved?


Apps are not being removed from device

Describe the bug
When an application is closed on the PC, is not being removed from the device.
To Reproduce
Steps to reproduce the behavior:

Run the maxmix app.
Plug in the device
Open an app that creates a session such as VLC
See it appear on the device screen
Close the app
See how it does not get removed from the device menu

Expected behavior
Apps closed on pc should be removed from the device.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Windows
Version: 10

Additional context
Add any other context about the problem here.

Currently the session status is used to detect application close, in my limited testing before refactor, I was using Process's exited callback to detect close. So might be worth testing that approach instead of see if it is more reliable than the status change.


Demo Echo Server<->Client examples to Software Development Team

Demo the existing Echo Server and Client(posix) examples
Demo the native, CHIP.Framework based, macOS Echo Client interacting with the existing Echo Server on the esp32

@sagar-apple could we close this? I assume the demo is done since the issue was opened quite a while ago.

Already done!


Finish crt migration, DRAFT, DO NOT MERGE

Issue #, if available:
Description of changes:
Check all that applies:

[x ] Did a review by yourself.
[x ] Added proper tests to cover this PR. (If tests are not applicable, explain.)
[x ] Checked if this PR is a breaking (APIs have been changed) change. ( Struct sizes change AND the hash and cipher invariants have been updated.)
[x ] Checked if this PR will not introduce cross-platform inconsistent behavior.
[ ] Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

[x ] Linux
[x ] Windows
[ ] Android
[x ] MacOS
[ ] IOS
[ ] Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

closing, moved most of this PR  and the crypto CRT functionality to pull/2952 that already got merged. We plan on moving over to use as much of the CRT as possible. Those subsequent changes are being prioritized.


Update FAQ

Motivation and context
Added a couple of question
How has this been tested?
N/A
Checklist

[x] I submit my changes into the develop branch
- [ ] I have added description of my changes into CHANGELOG file
- [ ] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] I have linked related issues (read github docs)
- [ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
- [ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2020 Intel Corporation
#
# SPDX-License-Identifier: MIT

Coverage decreased (-0.04%) to 63.152% when pulling 7b88730601435f9f9a5dd372d11c9546d2bd116d on az/update_faq into 400d868f1176acc2e5c83197501682747b83c48c on develop.


[Feature] Add chat filters

Chat filters would be a great way to see PM's, @ notifications, etc.  Adding buttons that would eliminate chats except for what is filtered for was one of the ideas.

@crossed4 a new PM system is already in the works and nearing completion (sneak peak attached below). We will be looking into buttons for the likes of @ notifications soon too.

Mentions filter has been added and will be released as part of the PM update:


Track Magnet Rise move

Description
Sample messages:
|move|p2a: Magnezone|Magnet Rise|p2a: Magnezone
|-start|p2a: Magnezone|Magnet Rise
...
|-end|p2a: Magnezone|Magnet Rise

Gen>=5: Can also be removed by Smack Down (but the |-end| message won't be sent).

TempStatus duration should be 5, not 3. Not sure where I got this from. Reopening.


Add support for changing the git branch icon

Issue
The current branch icon differed from the one I use in my terminal prompt and to change the branch icon, I would have to directly edit the source code.
Solution and Explanation
Call a variable named "branch_symbol" located at tables.lua#L20 when outputting the branch icon. The aforementioned variable can be modified by the user, therefore, adding support for changing the git branch icon.

This is nice. Thanks for the contribution.
I have thought about putting get_branch() directly into the string before, but it felt a little slow for me. But now its working fine.
I will probably do an autocmd of BufEnter in the near future for updating the branch as it seems more efficient.
Thanks again.😅


Update Manuals INL Code reports

Issue Description
Update the manuals codes (INL document codes) and Printing dates.
This issue should be a floating one (not close but just reference)

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[x] 1. Is it tagged with a type: defect or task?
[x] 2. Is it tagged with a priority: critical, normal or minor?
[x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[ ] 1. If the issue is a defect, is the defect fixed?
[ ] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[ ] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
[ ] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?

Can the printing dates be dynamically set during compilation?

Yes. I did add the "\today" flag


Update rd-teams.md

Added new team members and edited one list's order. And added UX designers to workflows and integrations team's lists.

Thanks, @grundleborg! Just needs one more approval to merge, added @amyblais.

Thanks, @grundleborg! Just needs one more approval to merge, added @amyblais.


ref(cert): update Manager to support mult clients

Description:
Supports multiple clients in Manager struct. Refactoring
as a part of the root cert rotation work. During root cert
rotation, there will be 2 CertManagers - the CertManager
being rotated in and the CertManager being rotated out as
specified in the MeshRootCertificates.
The ca is moved from the Manager to the CertManagers
for each cert provider.
Part of #4502

Testing done:

CI

Affected area:

Functional Area

New Functionality
[ ]

CI System
[ ]

CLI Tool
[ ]

Certificate Management
[x]

Control Plane
[ ]

Demo
[ ]

Documentation
[ ]

Egress
[ ]

Ingress
[ ]

Install
[ ]

Networking
[ ]

Observability
[ ]

Performance
[ ]

SMI Policy
[ ]

Security
[ ]

Sidecar Injection
[ ]

Tests
[ ]

Upgrade
[ ]

Other
[ ]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project? no

Did you notify the maintainers and provide attribution?

Is this a breaking change? no

Has documentation corresponding to this change been updated in the osm-docs repo (if applicable)?

Codecov Report

Merging #4705 (cd68394) into main (ddd10e2) will decrease coverage by 0.02%.
The diff coverage is 34.48%.

@@            Coverage Diff             @@
##             main    #4705      +/-   ##
==========================================
- Coverage   69.45%   69.43%   -0.03%
==========================================
  Files         217      217
  Lines       15490    15535      +45
==========================================
+ Hits        10759    10786      +27
- Misses       4681     4699      +18
  Partials       50       50

Flag
Coverage Δ

unittests
69.43% <34.48%> (-0.03%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...icate/providers/certmanager/certificate_manager.go
29.56% <0.00%> (-0.53%)
:arrow_down:

...ertificate/providers/tresor/certificate_manager.go
63.63% <0.00%> (-1.32%)
:arrow_down:

pkg/certificate/types.go
100.00% <ø> (ø)

...certificate/providers/vault/certificate_manager.go
58.57% <6.66%> (-14.65%)
:arrow_down:

pkg/certificate/providers/config.go
73.77% <66.66%> (+0.38%)
:arrow_up:

pkg/certificate/fake_manager.go
41.17% <100.00%> (+9.92%)
:arrow_up:

pkg/certificate/manager.go
83.33% <100.00%> (+1.02%)
:arrow_up:

cmd/osm-bootstrap/osm-bootstrap.go
43.39% <0.00%> (-0.61%)
:arrow_down:

pkg/injector/iptables.go
100.00% <0.00%> (ø)

... and 4 more

Continue to review full report at Codecov.

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


Validate onBlur?

Prerequisites

[X] I have read the documentation;

Description
Is it possible to validate a field on Blur event? I would like to do that for, for example, email input.

I have the same question.

@eddyzhang1986 Its not possible to do so. I recommend you to create your own implementation of jsonschema generator, its not hard and you ll have all flexibility you need.

A demo of OO solution for validate onBlur for the whole form.
import Form from 'react-jsonschema-form';
class BlurForm extends Form {
  constructor(props) {
    super(props);
    const superOnBlur = this.onBlur;
    this.onBlur = (...args) => {
      const { formData } = this.state;
      const { errors, errorSchema } = this.validate(formData);
      this.setState({ errors, errorSchema },()=>superOnBlur(...args));
    }
  }
}

The rest is the same, just don't enable live validation.
My experience was that the on blur is unreliable. The on blur event came after the on click which mean if users click submit in the middle of editing a field, it fnck up.

In my scenario I blocks form submission and force the users to fix their input before submit. Validating when blur event is fired would help users visualizing their progress in fixing inputs.
I agree that on blur is unreliable. Therefore, I would like to validate both on submit and on blur, to strike a balance between user experience and reliability.

@knilink thanks for the snippet! but it validates all fields (even the untouched ones) when blur event is triggered. Is it possible to perform onBlur validation per field?

At present, react-jsonschema-form doesn't attempt to validate any user input at anything less than "the entire form" level.

@1nph1n1ty Why was this closed? This should be kept open and a prop should be added to the <Form> so that this feature can be toggled, just like liveValidate. Validating on blur is a very common case.

I was able to implement this using a combination of liveValidate on the form and a few higher order components to manually track blurred state and show errors only once a field has been blurred on my custom widgets.
Here's what that could look like:
import {
  compose,
  mapProps,
  withStateHandlers,
} from "recompose";

const rawErrorsToErrorMessage = mapProps(
  ({ rawErrors, isBlurred, ...props }) => ({
    ...props,
    // TODO: Also need to show all errors after first submit
    errorMessage: isBlurred && rawErrors && (
      <React.Fragment>
        {rawErrors.map((error) => (
          <div>{error}</div>
        ))}
      </React.Fragment>
    ),
  }),
);

const withBlurred = withStateHandlers(
  { isBlurred: false },
  {
    onBlur: () => () => ({
      isBlurred: true,
    }),
  },
);

const transformWidgetProps = compose(
  withBlurred,
  rawErrorsToErrorMessage,
);

const widgets: any = {
  text: transformWidgetProps(TextInput),
  select: transformWidgetProps(OptionInput),
};

Hope this could be useful to others here.

Create an example for selective field level onBlur validation.
https://codesandbox.io/s/blur-validation-react-json-schema-form-txnk8
Just provide 'validateOnBlur' true, in the uiSchema for that field, and it will do the job.
Hope it helps anyone facing this issue !

hope this help issue: 431

@KKS1 Thank you for putting together a proof of concept! I'm trying to get your example to work with material-ui and running into a problem. Since you're extending the Form, it requires:
import Form from '@rjsf/core';
and when I try this, I get an error:
import { withTheme } from '@rjsf/core'; import { Theme as MaterialUITheme } from '@rjsf/material-ui'; const Form = withTheme(MaterialUITheme);
How do I get onblur validation to work with Material UI? Any help would be greatly appreciated.

Did it work with import Form from '@rjsf/material-ui';

@epicfaace No, same error.

@stvhanna Created an end-to-end Material UI based implementation, using function based approach.
https://codesandbox.io/s/material-ui-blur-validation-react-json-schema-form-j4bms
Of-course, we can further optimize it using one time run effect, which can then call referenced Form onBlur if needed.
But this will give you ( or anyone else facing this issue) a base to start working with and make it production ready.
Hope it helps, cheers!

This is stale but I thought I'd share my approach for anyone still looking. I expanded one of the previous implementations, here's a simplified version of my solution:
https://codesandbox.io/s/material-ui-blur-validation-react-json-schema-form-forked-kmxtd
I turned off the form validation and kept the errors in the state myself, passing them to the form through the extraErrors prop. It also works with nested objects.


SISH asks for password

Hello, I have installed sish on gcp following the tutorial. I have produced all the steps with no errors. But asks me for password when connection.
<mygoogle_username>@cloudshell:~/cloudshell_open/sish-0 (<mygcp_project_name>)$ ssh -p 2222 -R foo:80:httpbin.org:80 401.lol
<mygoogle_username>@<mydomain>'s password:

Any solutions will be appreciated!

I have discovered after posting this issue right away...
I missed to add ssh keys, pubs on each folder(/keys, /publickeys)


Command-line switch to open DBeaver without auto connecting.

When I open DBeaver and have tabs which were not closed previous, DBeaver will auto-connect to that db.  I would like to be able to launch DBeaver without connecting to anything and also have tab windows restored.  I've found the switches for -disconnectAll but appears to not work without -closetabs.
ver. <IP_ADDRESS>212251901

There is a setting for SQL Editor. You can turn it off.

Duplicate of #18449


Dev Tools when coming up empty

I saw a closed issue about this in the release log, but I'm running the latest version of VS Code and this issue is still occurring for me.  The Dev Tools window opens, but it is completely empty.

Same here, did you find any workaround maybe?

This still appears to be a problem

still getting this :(

I had this issue as well; can see and select my devtools instances to attach to but DevTools comes up empty

Same here macOS 11.5, Chrome 92.0.4515.131
VSCode
Version: 1.59.0 (Universal)
Commit: 379476f0e13988d90fab105c5c19e7abc8b1dea8
Date: 2021-08-04T23:14:40.191Z
Electron: 13.1.7
Chrome: 91.0.4472.124
Node.js: 14.16.0
V8: 9.1.269.36-electron.0
OS: Darwin x64 20.6.0
No errors in the VSC Developer Tools


Refactor auth package

Motivation
Refactor auth packages to be inline with the rest of the SDK, not the proposal https://github.com/aerogear/proposals/pull/17/files#diff-18f11f90545248c2674f9c32745d3d6cR19
Description
Refactor package names
Progress

[x] Refactor

so should we update the proposal then?

@wei-lee Yes, I'm doing that now.
Jenkins seems to be an internal issue


renamed service fro scaleio from scaleio to scaleio

The current SCaleIO example will not work

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #552 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #552   +/-   ##
=======================================
  Coverage   28.32%   28.32%
=======================================
  Files          34       34
  Lines        2009     2009
=======================================
  Hits          569      569
  Misses       1379     1379
  Partials       61       61

Continue to review full report at Codecov.

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


Homepage / splash screen

Home page should show important outstanding information

[ ] parts with stock below minimum_stock level
[ ] outstanding purchase orders
[ ] outstanding customer orders
[x] stock required to meet pending builds
[ ] stock that requires attention for some reason

Improvements made in https://github.com/inventree/InvenTree/pull/203


GPL License Compliance Issue

The file shobj-conf in your project is released under the GPL-3.0-or-later license. According to the GPL-3.0 license, the overall project also needs to be released under GPL-3.0-or-later license. The problem is that your project is licensed under the MIT license.

Thanks for pointing that out. This is my fault because I didn't think of the implications of importing GPL-licensed source code when I made this change: https://github.com/rbenv/rbenv/commit/8facb3b3a790fd275a4e8d5f4de474bbd837c040
Would an acceptable solution be to remove shobj-conf from our project and cut a new release of rbenv?

There are 2 possible solutions:

You can change the project's license to GPL (generally not recommended)
If the shobj-conf file is not that required, you can remove it from the project； If it is necessary, you need to re-implement the corresponding function according to your own needs to replace that file.


[WIP] s/EntityManager/EntityManagerInterface in type-hints

Just a quick note: the typehint is also changed in ClassMetadataFactory::setEntityManager - so that should also be documented.


Improvement proposal - Generate a new log file each day

It could be interesting to limit log file by an amount of time.
For example, fileMaxDuration: 24 (in hours).

Hi there!
I'm a little low on time to implement feature requests at the moment, but feel free to submit a PR if you like.


Added HTTP Authentication Scheme registration requirements

Brian Campbell 7:28 AM a new header is not the same thing as a new HTTP Authentication Scheme and there seems to be some conflation of things here

Switched to defining a new HTTP header.


Support debugging without local sources

Currently you can only debug into local files (which SWI has mapped to URLs). For URLs that aren't successfully mapped, SWI should get the content from the browser and display it as a transient file for you to step through, inspect etc.
Admittedly this is a less important scenario than it is for the browsers' tools because Sublime is an editor. You're assumed to primarily be debugging sites directly as you're authoring them locally.

dupe of #92


Reworking of kube-plex

I'll admit, this is a "scratch my own itch" type of a solution. But when trying to make use of kube-plex, I ended up having a few issues. So I reworked quite a bit of it.
I'm dropping this PR as a heads up that this work has been done, I'm more than happy to try and break it down to smaller chunks for merging. Some changes included (in no specific order):

switch to using Job instead of Pod
use Kubernetes garbage collection to make sure that no pods are left behind
Transcoder properly shuts down when Plex force kills it (which seems to be the default behaviour)
Log messages to Plex logs to make debugging easier
No longer depends on /config on the transcoder, which enables more efficient PVCs for config
Properly supports subpaths
Adds a reverse proxy to the transcoder since Plex assumes localhost in way too many places
Adds tests to the codebase..

I'm also dropping vendor directory from the repository. Personally I prefer to have it, but it tends to mess up pull requests. I've also constructed all the Dockerfiles etc in a way where it's completely fine to either run everything as is, or by pre-caching the modules with go mod vendor.

I'm using this as my daily driver, so I'm not aware of any issues.

@ressu I'm interested in testing this out too. Other than installing the Helm Chart from your fork, are there different docker images needed to fully utilize your changes? I've tried just installing the helm chart, but it's failing to start pods, and your changes included switching to jobs instead, so I must be missing something. Thanks for this work!

You can use the image I built here https://github.com/ressu/kube-plex/pkgs/container/kube-plex
So the relevant parts of my helm settings are:
image:
  tag: latest
kubePlex:
  enabled: true
  image:
    repository: ghcr.io/ressu/kube-plex

I get the following error when kube-plex is invoked after using the provided image (which is progress from where I previously was getting 😄 )
Protected process returned an error: exit status 1
I haven't been able to determine where that message is coming from, yet. Any thoughts? I am running K3s at 1.21.1, so not sure if there is something newer in Kubernetes that might be causing this.

Hmm.. I'm not fully certain if that's relevant to the issue. I have to admit that I've never checked the plex console logs once I got everything working. What I would suggest is enabling logging in kubeplex by adding loglevel verbose to the values (similar to this)
image:
  tag: latest
kubePlex:
  enabled: true
  image:
    repository: ghcr.io/ressu/kube-plex
  loglevel: verbose

That will make kubeplex log more information. You can see the logs in the plex web UI, by going to settings -> manage -> console and filtering for transcode (if I remember correctly). This will show the logs from kubeplex directly and should give you an idea of what is going wrong.

So I made it a little farther with the assist of the verbose logging (thank you!). What that showed was insufficient permissions with the role kube-plex uses, so I had to update the role with the batch API group for jobs resources.
diff --git a/charts/kube-plex/templates/rbac.yaml b/charts/kube-plex/templates/rbac.yaml
index a327770..e59ae87 100644
--- a/charts/kube-plex/templates/rbac.yaml
+++ b/charts/kube-plex/templates/rbac.yaml
@@ -27,6 +27,19 @@ rules:
   - patch
   - update
   - watch
+- apiGroups:
+  - batch
+  resources:
+  - jobs
+  verbs:
+  - create
+  - delete
+  - deletecollection
+  - get
+  - list
+  - patch
+  - update
+  - watch

Now, I'm getting errors with the transcoder launching, and it looks like its maybe related to an ffmpeg flag, maybe?
Jun 21, 2021 10:59:44.793 [0x7f5f47277b38] Debug — [Transcoder] [AVHWDeviceContext @ 0x7ff9e5845700] Cannot open a VA display from DRM device (null).
Jun 21, 2021 10:59:44.793 [0x7f5f47325b38] Error — [Transcoder] Device creation failed: -542398533.
Jun 21, 2021 10:59:44.793 [0x7f5f47277b38] Error — [Transcoder] Failed to set value 'vaapi=vaapi:' for option 'init_hw_device': Generic error in an external library
Jun 21, 2021 10:59:44.794 [0x7f5f47325b38] Error — [Transcoder] Error parsing global options: Generic error in an external library
Jun 21, 2021 10:59:44.795 [0x7f5f47277b38] Error — [KubePlexProxy] transcode failed [error:exit status 1]
Jun 21, 2021 10:59:45.545 [0x7f5f47325b38] Info — [KubePlex] Error waiting for pod to complete: job "pms-elastic-transcoder-2kvxm" failed

I did test the ability for a pod to schedule GPU (using an Ubuntu OpenCL test pod) and it was able to schedule the pod and utilize the GPU successfully.

I'm running the Intel Device GPU Plugin daemonset configured like the following:
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: intel-gpu-plugin
  name: intel-gpu-plugin
  namespace: kube-system
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: intel-gpu-plugin
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: intel-gpu-plugin
    spec:
      containers:
      - env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        image: intel/intel-gpu-plugin:0.21.0
        imagePullPolicy: IfNotPresent
        name: intel-gpu-plugin
        resources: {}
        securityContext:
          readOnlyRootFilesystem: true
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /dev/dri
          name: devfs
          readOnly: true
        - mountPath: /sys/class/drm
          name: sysfs
          readOnly: true
        - mountPath: /var/lib/kubelet/device-plugins
          name: kubeletsockets
      dnsPolicy: ClusterFirst
      nodeSelector:
        feature.node.kubernetes.io/pci-0300_8086.present: "true"
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /dev/dri
          type: ""
        name: devfs
      - hostPath:
          path: /sys/class/drm
          type: ""
        name: sysfs
      - hostPath:
          path: /var/lib/kubelet/device-plugins
          type: ""
        name: kubeletsockets
  updateStrategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate

Then the pod resources for requests and limits need to request the GPU resource like so:
    resources:
      requests:
        gpu.intel.com/i915: 1
        cpu: 1000m
        memory: 1500Mi
      limits:
        gpu.intel.com/i915: 1

As I was writing this about the resource requests, I am now wondering if it might be that the GPU resource request needs to be added to the job spec that creates the pms-elastic-transcoder-* job pods in cmd/kube-plex/kubernetes.go, to make the GPU available to the elastic transcoder pods.

Yeah, the requests needs to be updated. I'm assuming that this is an exclusive lock. As in, there is just a single GPU instance available, which means that the easy solution is to add a mechanism to define additional resource requests/limits in the transcoder job. That should be easy enough to fix.
I'll add that later this week along with the RBAC

Alright, I'm working on the GPU support in this PR https://github.com/ressu/kube-plex/pull/1
The change itself turned out to be a bit more involved than I expected, but should work.

Sigh, renaming master branch to main closed this PR. I'll open a new one shortly..


Add missing native input attribute support

Add the following to allow for native attribute support to be passthrough to the <input>:

autofocus
name
pattern and ng-pattern
placeholder

This allows something like the following:
<ui-combobox name="foobar" placeholder="Foobar">
    ...
</ui-combobox>

Which translates to an input with:
<div class="ui-combobox>
    ...
    <input name="foobar" placeholder="Foobar">
    ...
</div>

In theory, this allows a user to treat <ui-combobox> just like a normal <input> element.

Closed via 8888528


Add missed semantic-release plugin

INTER-196

:tada: This PR is included in version 2.5.1 :tada:
The release is available on:

v2.5.1
GitHub release

Your semantic-release bot :package::rocket:


Can winrt::event deliver invocations asynchronously?

Currently, winrt::delegate<T>::operator() delivers its invocations on the calling thread. This can be problematic if the delegate implementation is not reentrant, or if the invocation is advisory-only.  There's an internal implementation of a WIL type that creates a separate thread to deliver the invoke calls.  While this can lead to unnecessary thread creation, supporting a mode of "deliver this invoke async" as part of the delegate's traits directly would be useful.
Implementations can do this themselves, however:
template<typename Q> fire_and_forget do_async(Q&& action)
{
    typename remove_reference<Q>::type stored { std::move(action) };
    co_await resume_background();
    stored();
}
void MyType::SetValue(hstring const& value)
{
    {
        auto lock = lock_self();
        m_value = value;
    }
    do_async([self = get_strong()] {
        m_valueUpdatedEvent(self, m_value);
    });
}

Sounds like https://github.com/microsoft/cppwinrt/issues/361 - is there enough demand to add such alternatives to C++/WinRT itself?

We're finding that event delivery and lock holding are real problems.  Async invocation avoids all those concerns by triggering the event "elsewhere" and letting delegates/marshaling handle any thread affinity problems.
It's fine to not add a specific type to C++/winrt, but we should figure out and describe the "best answer" for people trying to accomplish this without support in the projection.
Is the do_async above correct enough that we would tell people "here is how you replace wil::AsyncEventSource when moving to C++/WinRT?" (note: there's at least 143 hits internally for AsyncEventSource*.)
I assume we'd need versions for the other projections as well...

We could pretty easily write a winrt::async_event that is both non-blocking and scalable backed on the NT thread pool. The solution above is ok, but not parallel and sufficiently contrived that it would probably be better to provide a canned implementation. I can also experiment with making this the default for Rust. We probably can't do that for C++ since Xaml is implemented with C++/WinRT and their delegates are dodgy.

This came up in an API reps meeting recently and where we landed was that most events should be raised using Async unless you needed to deal with a .Handled style model (like lots of UI-related events.)  The delegates (and the event's use of agile & marshaling) "make it right."  Definitely we can't make the default behavior of event async (breaking behavioral change) but having this be an easily switchable option would be great.
Thanks!

The current WRL implementation doesn't attempt to do parallel delivery of events; it just delivers them all in a block from a new thread. Maybe that's v0 of the implementation, and v1 is the thread-per-handler model? Like async_event and async_parallel_event or a traits indicating how to fan out?
Out of curiosity, why the NT threadpool instead of some C++ built-in like std::thread or the coroutine model above?

It's about efficiency. Using std::thread on Windows is rarely a good idea because it burns a dedicated thread, which leads to overscheduling. The NT threadpool avoids this as it has an intimate relationship with the scheduler. C++/WinRT's coroutine support is good because it does the same thing under the hood. It's not quite as good as writing directly against the threadpool because unfortunately both require an allocation so you end up with a slightly less efficient allocation pattern. I've asked the threadpool owners to fix this but they have declined sadly. Perhaps in future when coroutines are the norm they may relent. 😉
Anyway, sorry for the delay. I'll try to throw something together this week. I've been rather swamped with Rust for Windows. But I'd rather just have a single parallel model than support different modes. I'll whip up an async_event and you can take it for a spin before I bake it into C++/WinRT.

OK, I have an async version working. Here's an example. I'll get a PR out shortly.
int main()
{
    event<EventHandler<int>> sync;
    auto sync_start = get_start_time();

    for (int i = 0; i != 5; ++i)
    {
        sync.add([=](auto&&, int args)
            {
                printf("sync=%d args=%d elapsed=%lld\n", i, args, get_elapsed_time(sync_start));
                Sleep(500);
            });
    }

    sync(nullptr, 123);
    printf("\n");

    async_event<EventHandler<int>> async;
    auto async_start = get_start_time();

    for (int i = 0; i != 5; ++i)
    {
        async.add([=](auto&&, int args)
            {
                printf("async=%d args=%d elapsed=%lld\n", i, args, get_elapsed_time(async_start));
                Sleep(500);
            });
    }

    async(nullptr, 456).get();
    printf("\n");
 }

Here's the output:
sync=0 args=123 elapsed=0
sync=1 args=123 elapsed=505
sync=2 args=123 elapsed=1013
sync=3 args=123 elapsed=1522
sync=4 args=123 elapsed=2031

async=0 args=456 elapsed=0
async=1 args=456 elapsed=0
async=2 args=456 elapsed=0
async=3 args=456 elapsed=0
async=4 args=456 elapsed=1