MINOR: update VerifiableProducer to send keys if configured and removed StreamsRepeatingKeyProducerService

This PR does the following:

Remove the StreamsRepeatingIntegerKeyProducerService and  the associated Java class
Add a parameter to VerifiableProducer.java to enable sending keys when specified
Update the corresponding Python file verifiable_producer.py to support the new parameter.

Tested by kicking off all system tests https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1677/
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

ping @guozhangwang, @mjsax, @vvcephei
\cc @ewencp for the VerfiableProducer changes.

Adding @dguy

@mjsax, thanks for the comments.  Yes, PR is for reducing code redundancy, as previously the StreamsRepeatingIntegerKeyProducerService is merely a wrapper around a producer that uses keys.
As for running system tests, I kicked off the entire suite earlier today, and it's still running.

updated this

First triggered system test build was hung (11 hours).  So kicked off a new build https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1681/

In latest system test run run there were two failures

kafkatest.tests.core.transactions_test.TransactionsTest.test_transactions.failure_mode=clean_bounce.bounce_target=clients.check_order=False: FAIL: Message Copier failed to stop

kafkatest.tests.core.upgrade_test.TestUpgrade.test_upgrade.from_kafka_version=<IP_ADDRESS>.to_message_format_version=None.compression_types=.snappy.new_consumer=False: FAIL: Node ubuntu@worker11: did not stop within the specified timeout of 150 seconds

But these seem unrealted to changes made in VerifiableProducer . At any rate I've kicked off another run of the entire system test suite

Retest this please.
@guozhangwang If the system test failure are unrelated, can we merge this anyway?

The same tests failed after a few attempts so I rebased and kicked off a new build https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1698/

the latest build was aborted after 13 hours.  There was one test failure kafkatest.tests.connect.connect_distributed_test, but the cause was KeyboardInterrupt so I think this was due to stopping the build.
I've kicked off another build  https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1700/

retest this please

@bbejeck Could you rebase?

rebased this.
the previous system test build timed out, but there were no failures, 356 tests ran.
Kicking off a new system test build

The system test seem failed again, not sure if it the same you observed before:
17:20:15 [INFO:2018-04-16 17:20:15,620]: RunnerClient: kafkatest.tests.streams.streams_eos_test.StreamsEosTest.test_failure_and_recovery: FAIL:
17:20:15 Traceback (most recent call last):
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/venv/local/lib/python2.7/site-packages/ducktape-0.7.1-py2.7.egg/ducktape/tests/runner_client.py", line 132, in run
17:20:15     data = self.run_test()
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/venv/local/lib/python2.7/site-packages/ducktape-0.7.1-py2.7.egg/ducktape/tests/runner_client.py", line 185, in run_test
17:20:15     return self.test_context.function(self.test)
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/tests/kafkatest/tests/streams/streams_eos_test.py", line 86, in test_failure_and_recovery
17:20:15     StreamsEosTestVerifyRunnerService(self.test_context, self.kafka))
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/tests/kafkatest/tests/streams/streams_eos_test.py", line 112, in run_failure_and_recovery
17:20:15     self.abort_streams(processor1, processor3, processor2)
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/tests/kafkatest/tests/streams/streams_eos_test.py", line 157, in abort_streams
17:20:15     self.wait_for_startup(monitor2, keep_alive_processor2)
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/tests/kafkatest/tests/streams/streams_eos_test.py", line 161, in wait_for_startup
17:20:15     self.wait_for(monitor, processor, "StateChange: REBALANCING -> RUNNING")
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/tests/kafkatest/tests/streams/streams_eos_test.py", line 167, in wait_for
17:20:15     err_msg=("Never saw output '%s' on " % output) + str(processor.node.account))
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/venv/local/lib/python2.7/site-packages/ducktape-0.7.1-py2.7.egg/ducktape/cluster/remoteaccount.py", line 668, in wait_until
17:20:15     allow_fail=True) == 0, **kwargs)
17:20:15   File "/home/jenkins/workspace/system-test-kafka-branch-builder/kafka/venv/local/lib/python2.7/site-packages/ducktape-0.7.1-py2.7.egg/ducktape/utils/util.py", line 34, in wait_until
17:20:15     time.sleep(backoff_sec)
17:20:15 KeyboardInterrupt

yes, that's the same error, the build sometimes takes too long.
I've kicked off another one https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1720/

The above system test still fails.

Yes, I saw that earlier.
One note is all of the StreamsUpgradeTest s are failing, but don't use the VerifiableProducer at all.
The latest PR from @mjsax upgrading streams has all streams system tests passing.  I'm thinking maybe once that PR is merged I'll rebase and try again.
WDYT?

Re-triggered https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1734/

system-test build failed looks like its the JDK-7 related issue:
00:53:15 ==> worker5: This may mean that the package is missing, has been obsoleted, or
00:53:15 ==> worker5: is only available from another source
00:53:15 ==> worker5: However the following packages replace it:
00:53:15 ==> worker5:   oracle-java8-set-default
00:53:15 ==> worker5:
00:53:15 ==> worker5: E: Unable to locate package oracle-java7-installer
00:53:15 ==> worker5: E: Package 'oracle-java7-set-default' has no installation candidate
00:53:15 ==> worker5: + echo 'ERROR: JDK install failed'
00:53:15 ==> worker5: ERROR: JDK install failed
00:53:15 ==> worker5: + exit 1

needed to rebase. Kicked off new system test https://jenkins.confluent.io/job/system-test-kafka-branch-builder/1735/

Failures in 1735 is not related, I'm going to merge it now.

Thanks @bbejeck !


Replace your Dockerfile with go Guide + Demo Video

A guide that shows how to replace a Dockerfile with Go
To-do:

[ ] Guide
[ ] Demo Video (don't start recording until guide content is approved)

Is this a duplicate of #3614 ?

@vikram-dagger yes, but let's close #3614 because it was created later. I will reassign to you, but let @kpenfound know what you need!
Once the guide is done, I will let you choose if you want to do the demo video or if you'd like Kyle to do it.

@kpenfound @mircubed one idea is to take a standard, popular open source app that is available as an official Docker image and replace its Dockerfile with our pipeline. One example might be memcached: https://github.com/docker-library/memcached/blob/master/alpine/Dockerfile (but it could also be wordpress, mariadb or something else). WDYT? Any other approach?
In terms of support for the above idea, I would need the code that replicates the Dockerfile operations in the Dagger Go SDK.

Yeah, that sounds great! I think that it would probably be related to #3584 . I'll let @kpenfound and you figure out which would be best to use

@vikram-dagger @kpenfound This is a really popular ask from the community, so we should make sure to cover this during a community call and maybe even make a blog post to go into more detail around the use case. I'll add it to the community call backlog as a topic


MWPW-154549 | Integrating unity Block in CC

Adding unity block in CC
Resolves: MWPW-154549
Test URLs:
Before: https://main--cc--adobecom.hlx.live/drafts/mathuria/unity/poc?unitylibs=stage&martech=off
After: https://mwpw-154549--cc--adobecom.hlx.live/drafts/mathuria/unity/poc?unitylibs=stage&martech=off

marking it as verified with sanity checks. majority of functional flows work only on integration env(www.stage) and we do complete E2E testing in stage


Fine tune control over reminders

itd be cool to control the reminders it sends. i think ideally i want to be reminded to send an update at random intervals throughout the week. maybe a simple algorithm where each day there is a 14% chance i get a reminder. that way, ill get a reminder on average once a week.

Perhaps a week picker with time

doing lottery fixes this


Declare more interfaces and fix some typo

Signed-off-by: yhmo<EMAIL_ADDRESS>#16

There are some Linting errors.

There are some Linting errors.

Ok, already fixed.

/lgtm


Open source events based in Latin America

I'll try to add some events as soon as possible.

Sounds great @PatriLoto!

Events to be added: LatinR, Khipu and JAIO


Fix dead link from CONTRIBUTING.md to README.rst

Note
Identical to PR #157, re-opening after being added to the Github organization.
Context
A small fix of a link in CONTRIBUTING.md that was still pointing to a markdown version of the README.
Review

[ ] PR description is complete
[ ] Coding style (imports, function length, New functions, classes or files) are good
[ ] Unit/Scientific test added
[ ] Updated Readme, in-code, developer documentation

Shall we merge this PR? I've approved it.


coot/network update

Network update for sprint 68

I expanded the section on typed-protocols by mentioning all draft PRs.


Trigger certain trybots with Gerrit "hash"tags or labels

I was reading that you can configure a GitHub Action to trigger when a certain label is applied to a PR, and I thought that would be a useful feature for our Gerrit code reviews.
The idea is that tagging a CR with a Gerrit Hashtag like "[check-flutter]" would trigger the 'flutter-analyze' and 'flutter-engine' try bots.
Or maybe it would be with the other Gerrit syntax that, for example, we use to specify how a CR was tested with 'Tested=' on the final lines of a description.

There's no built-in support for triggering on gerrit tags or labels, only thing we currently can configure is based on modified files:
https://chromium.googlesource.com/infra/luci/luci-go/+/refs/heads/main/lucicfg/doc/README.md#luci.cq-tryjob-verifier
Something similar is currently support with this footer, though:
Cq-Include-Trybots: luci.dart.try:flutter-analyze-try
So the easiest would be to implement a script that adds the appropriate footers to the CL.

So the easiest would be to implement a script that adds the appropriate footers to the CL.

That's not a bad idea! git commit --template=flutter-trybots-footer.txt looks like it will do the trick. From the docs:

When editing the commit message, start the editor with the contents in the given file.

Thanks @athomas ! We can close this unless there is an upstream gerrit feature request or something.

Let's close it for now, if it turns out the current features are too cumbersome we can revisit.

Many moons later (but not yet a year!), I have encoded this into a git alias.
In my ~/.gitconfig, I have:
[alias]
        commitbots = "!git commit \"$@\" -m \"Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try\" #"

I need a better name... but now I can write, with extra arguments, something like git commitbots -am "Commit message" and the Cq-Include-Trybots will be added at the end, resulting in a commit message of:
Commit message

Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try

which will automatically get picked up by git cl upload. 🎉


Precommit with ruff+codespell

setting up precommit hooks with ruff + codespell
codespell found a few typos :)
feedback welcome

@agramfort thanks for the PR, tests are not running anymore since last commit.
https://github.com/scikit-adaptation/skada/actions/runs/8133112804
Could we have a quick test checking that style is valid (flake8 was not needed anymore but can we test it with ruff maybe?).  To detect new contributors that did not install the pre-commit.

@rflamary @kachayev @tgnassou this one is good to go from my end

@agramfort This is cool, very needed tools! I have a question regarding testing/linting flow: testing job is setup to run pre-commit hooks, which contains ruff linter with --fix flag. What happens if someone commits unlinted file? I guess it will just fix the code locally in the test container without reporting/failing? 🤔

@kachayev good question. I copied the practice of another repo that has been using this successfully for a few months. Let's see how it goes here. We can always adjust.

well now we know it does not fail since my PR definitely does not respect ruff:
https://github.com/scikit-adaptation/skada/pull/135

That's interesting. In my PRs it actually fails because of files being changed (which is desirable) 🤔
ruff lint skada..........................................................Failed
- hook id: ruff
- files were modified by this hook
- ```

this is very weird no?


Implement goto-definition using go/types

With progression of #434 and #437 it should be possible to use go/types to handle goto-definition and possibly also the documentation display

Any progress on this? :)

I believe there is also a goto definition feature in this plugin:
https://github.com/alvarolm/GoGuru


docs(data-table): update code tab

Closes #6115
Changelog
New
Changed

Update the code tab for Data Table

Removed

closing as we are moving these docs to storybook


Replace getWithDefault (Fixes #1970)

getWithDefault is deprecated by https://github.com/emberjs/rfcs/pull/554, causing failures with Ember Canary. See #1970

Amazing – thank you!

@samselikoff Regarding the test failure, I believe it's unrelated. There is a version of moment with two copies of the en-sg.js file: https://github.com/moment/moment/commit/36a817d94eab0f070bbcc7d8431631ee71400b89#diff-fb216d9e8791e63c8d12bdc420956839
We fixed this issue in our app by resolving to a newer (fixed) version of moment. If you know how you want to handle it, I'm happy to open another PR to fix.

Yes – sorry I haven't gotten to this yet. It looks like a problem with the floating dependencies test job. Usually this means there's a change to a transitive dependency somewhere that's broken something.
In the past I've fixed this by manually doing a binomial search on the yarn.lock file... it's kind of ridiculous. Basically, you should be able to reproduce the failure if you run the suite locally with yarn install --no-lockfile, and if you do, the problem is somewhere in there. The next step is to literally delete half of the lock file, run yarn install, and see if you have the error. If you do, the problem is in one of the remaining lines; if not, it was in one of the lines you deleted.
Continue trimming down by half each time until you identify the problematic line of the lockfile. At that point you should have identified the problematic dependency and we can decide whether to just lock it down using Yarn resolutions, or try to help fix the underlying bug.
LMK if that makes sense, and if you get around to it that would be extremely helpful! If not I'll probably get to it this weekend. After we solve it, we can open a PR (separately) with an updated yarn.lockfile, including whatever fix we applied, at which point we can re-run this PR and it should pass.

@samselikoff (or anyone that has time) TL;DR – https://github.com/jasonmit/ember-cli-moment-shim/issues/183

These tests should pass with https://github.com/miragejs/ember-cli-mirage/pull/1977

Rebased against mater to kick off another CI run

@samselikoff mind cutting a release when you get a chance? not sure what your release process is here

Absolutely - thanks so much for taking care of these over the weekend!

No problem! And thanks for the release. I left most of the dep upgrades because they are either more significant or because they require dropping the EOL node versions here, which requires bumping major.

@chancancode gotcha... do all dep upgrades that EOL node require e-c-mirage to bump major? I think this one might have already gotten in: https://github.com/miragejs/ember-cli-mirage/pull/1897
But if e-c-mirage is not using broccoli-funnel in a way that breaks on older nodes, it's technically not breaking for us, is it?

I think if you are running node 8, npm install (or yarn) will fail, because it will fail to find a version of broccoli-funnel that matches all the constraints – within the version range e-c-mirage asked for and supports node 8 according to their package.json, so I think it's generally best practice to consider dropping node versions a breaking change. If this breaks people code, we can revert the bump and re-release 1.1.8. cc @rwjblue

I see. Happy to do that, def. don't mind reverting + bumping versions in the future.


flacon: 5.1.0 -> 5.2.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/flacon/versions.
meta.description for flacon is: '"Extracts audio tracks from an audio CD image to separate tracks."'.
Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS
/bin/sh passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 5.2.0 with grep in /nix/store/n5jhbq1j0m4b3cbn708rrw3br2im50xi-flacon-5.2.0
directory tree listing: https://gist.github.com/983e6aa4b9fd720ef87d63b6375d4d05
du listing: https://gist.github.com/eb6ed836fc51833f91615d26301e6cef

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)
1 package rebuild(s)
1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
flacon

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/n5jhbq1j0m4b3cbn708rrw3br2im50xi-flacon-5.2.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A flacon https://github.com/r-ryantm/nixpkgs/archive/ba5d584ea987befd526d8657ca729d6b15b34432.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/n5jhbq1j0m4b3cbn708rrw3br2im50xi-flacon-5.2.0
ls -la /nix/store/n5jhbq1j0m4b3cbn708rrw3br2im50xi-flacon-5.2.0/bin

cc @ndowens @nico202 for testing.

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/12


Please help start ssl

hi,  please tell me how to make a configuration file for ssl Dockerfile
its answer https://gist.github.com/DarthSim/a5ad15ba399eb9166cef546eb2d31278  not working (

привет, скажите, пожалуйста, как сделать файл конфигурации для ssl Dockerfile
его ответ https://gist.github.com/DarthSim/a5ad15ba399eb9166cef546eb2d31278 не работает (

[WARNING]: Empty continuation line found in:
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories ADD default.conf /etc/nginx/conf.d/default.conf
[WARNING]: Empty continuation lines will become errors in a future release.
Step 1/7 : FROM darthsim/imgproxy:latest
---> e5a4994124ff
Step 2/7 : RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories ADD default.conf /etc/nginx/conf.d/default.conf
---> Running in aef5327c1f14
/bin/sh: 1: cannot create /etc/apk/repositories: Directory nonexistent
The command '/bin/sh -c echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories ADD default.conf /etc/nginx/conf.d/default.conf' returned a non-zero code: 2

Hey!
Here're two things about this solution:

It works for images based on Linux Alpine, but the latest images of imgproxy are based on Debian.
This solution is kinda bad practice. I'd not recommend running two processes in one container. You'd better run nginx outside of Docker or use Docker Compose to run a separate nginx container.


Images are broken in gitbook documentation

Images are broken in gitbook documentation. Example:

@smola I don't have that problem. Are you checking latest release or master documentation?

@ajnavarro https://docs.sourced.tech/gitbase/using-gitbase/schema at the end of the page

Yeah, I know, but I'm able to see it:

@ajnavarro Indeed. Privacy Badger was blocking gitbook's CDN domain.


Horizontal file layout - feature?

A feature request, explain how to do this....
I take advantage of the vertical page layout to have at least 2 files open at the same time, however, for anyone who has a small screen (13 inch laptop ,etc) being able to drag an open file to the botton of the screen can be better since you can see each file at full with.
I will paste in a screenshot of atom as reference.

keybindings => workbench.action.toggleEditorGroupLayout ?

@usernamehw How would that be implemented in settings?

@AnthonyMichaelc Split editor => F1 => type horizon => Enter

Are you asking about changing the default value?

@usernamehw I am asking if there is a way to have both. I referenced atom because they allow you to grab the tab of a file and then drag it all the way to the right for a vertical layout or you can drag it down to the bottom for a horizontal layout without having to do a keyboard function that makes it strictly only vertical or only horizontal.
Not an Atom fan but having the ability to drag a file to either the side or bottom at any time is better user friendly in cases where you are plugged into a monitor and then unplug to work on the go or something like that. If this is something that is deemed not valuable to add I understand and will use the command you just showed me, just curious if this is a feature that could be added.

https://github.com/Microsoft/vscode/issues/14909

@usernamehw Thank you for linking me to that discussion.


DeepSpeed CI failures in Transformers with the latest version 0.12.4 but works with 0.12.3

DeepSpeed integration CI test suites is failing with ~80+ tests being impacted. https://github.com/huggingface/transformers/actions/runs/7155087776/job/19483398901
It is because the runner is changing the below command:

stdout: [2023-12-11 14:03:02,193] [INFO] [runner.py:570:main] cmd = /raid/sourab/miniconda3/envs/hf/bin/python -u -m deepspeed.launcher.launch --world_info=eyJsb2NhbGhvc3QiOiBbMCwgMV19 --master_addr=<IP_ADDRESS> --master_port=10999 --enable_each_rank_log=None /raid/sourab/transformers/examples/pytorch/translation/run_translation.py --model_name_or_path t5-small --train_file /raid/sourab/transformers/tests/deepspeed/../fixtures/tests_samples/wmt_en_ro/train.json --validation_file /raid/sourab/transformers/tests/deepspeed/../fixtures/tests_samples/wmt_en_ro/val.json --output_dir /tmp/tmpd708_3kl --overwrite_output_dir --max_source_length 32 --max_target_length 32 --val_max_target_length 32 --warmup_steps 8 --predict_with_generate --save_steps 0 --eval_steps 10 --group_by_length --label_smoothing_factor 0.1 --source_lang en --target_lang ro --report_to none --source_prefix "translate English to Romanian: " --fp16 --do_train --num_train_epochs 1 --max_train_samples 16 --per_device_train_batch_size 2 --learning_rate 3e-3 --do_eval --max_eval_samples 16 --per_device_eval_batch_size 2 --deepspeed /raid/sourab/transformers/tests/deepspeed/ds_config_zero2.json

to

stdout: [2023-12-11 14:03:02,193] [INFO] [runner.py:570:main] cmd = /raid/sourab/miniconda3/envs/hf/bin/python -u -m deepspeed.launcher.launch --world_info=eyJsb2NhbGhvc3QiOiBbMCwgMV19 --master_addr=<IP_ADDRESS> --master_port=10999 --enable_each_rank_log=None /raid/sourab/transformers/examples/pytorch/translation/run_translation.py --model_name_or_path t5-small --train_file /raid/sourab/transformers/tests/deepspeed/../fixtures/tests_samples/wmt_en_ro/train.json --validation_file /raid/sourab/transformers/tests/deepspeed/../fixtures/tests_samples/wmt_en_ro/val.json --output_dir /tmp/tmpd708_3kl --overwrite_output_dir --max_source_length 32 --max_target_length 32 --val_max_target_length 32 --warmup_steps 8 --predict_with_generate --save_steps 0 --eval_steps 10 --group_by_length --label_smoothing_factor 0.1 --source_lang en --target_lang ro --report_to none --source_prefix translate English to Romanian:  --fp16 --do_train --num_train_epochs 1 --max_train_samples 16 --per_device_train_batch_size 2 --learning_rate 3e-3 --do_eval --max_eval_samples 16 --per_device_eval_batch_size 2 --deepspeed /raid/sourab/transformers/tests/deepspeed/ds_config_zero2.json

Notice no " around translate English to Romanian:  . Becuase of this HF Argument parser fails leading to many tests being impacted.
Maybe the cause: https://github.com/microsoft/DeepSpeed/pull/4660

Reverting the PR https://github.com/microsoft/DeepSpeed/pull/4660 resolves the issue (tested it).

Thanks @pacman100 - I've created a PR to revert it here.  Will work on getting that merged.
We also know that our nv-transformers-v100 tests are failing with the latest transformers version, we are working on that as well.


Add constant structs for the property names

Sampling Mike Ash's post about namespaced constants (http://www.mikeash.com/pyblog/friday-qa-2011-08-19-namespaced-constants-and-functions.html), this adds the generation of constant structs to access the attribute, relationship and fetched property names. This makes sure that when you're creating a fetch request, you can use these values to guarantee their existence.

Are you using the ARC flag (--template-var arc=true)? I've been using them solely with ARC since August. :)

@jdmuys, @danielctull thanks for clearing this up, it will go in v1.24's changelog


Stateless component shorthand

I want to start out by saying I love the new component, it takes care of so much boilerplate and I've been using it and loving it since I upgraded to 1.5 last week.
I was wondering, are there any plans to support a stateless component shorthand (like React's stateless function components) in Angular?
For context, I recently demonstrated a stateless component to my team using the new one-way binding:
app.component("greeter", {
  bindings: {
    name: "<"
  },
  template: `<div> Hello, {{ $ctrl.name }}! </div>`
});

And I was thinking it would be really cool to be able to do something like
app.statelessComponent("greeter", ($ctrl) => `<div> Hello, {{ $ctrl.name }}! </div>`);

I'm not super familiar with how the provider method works, so it's not clear to me what level of difficulty this is. I was considering making a custom helper function to do this, but I figured I'd ask first to see if there are any plans or interest in official support.

I personally don't think even more sugar is needed. Or is there a semantic difference between the stateless helper and the normal helper? Or differently asked, what's stateless about this new syntax?

what's stateless about this new syntax?

Upon reflection, I think stateless might be a less-optimal word in this context. The functionality is not different, it's sugar for a very specific configuration of component:

all bindings are one-way (hence dropping the bindings config object)
the controller only contains bindings; no other functionality is added to it
returns an inline template
probably doesn't use transclude or any other config options

The specific example I was attempting to translate was this one from the React support in Typescript:
const Greeter = ({name = 'world'}) =>
Hello, {name}!
;

let example = <Greeter name='TypeScript 1.8' />;

That example seems to demo well (people in my office were very excited about it being a one-liner, and then were a little disappointed that we couldn't golf the angular component into a one-liner too), but I accept that it may have limited use outside of a demo.

const Greeter = ({name = 'world'}) =>
Hello, {name}!
;

I was able to golf this to one line :P:
.component('greeter', {bindings: {name: '<'}, template: '
 Hello, {{ $ctrl.name }}!
'});

--
Fun aside, I agree with @Narretz that we don't want to start adding syntactic sugar for every concept around. This is getting too specific and what works for your team will not work for another.
Until certain concepts have been established as widely adopted best practices, I think the .component() helper provides an appropriate abstraction and in flexible enough to build any custom helpers on top of.
E.g.:
function statelessComponent(moduleName, componentName, bindings, template) {
  bindings = bindings.reduce((aggr, prop) => { aggr[prop] = '<'; return aggr; });
  angular.module(moduleName).component(componentName, {bindings, template});
}

statelessComponent('myApp', 'greeter', ['name'], '
Hello, {name}!
');

// OR
function slc(bindings, template) {
  bindings: bindings.reduce((aggr, prop) => { aggr[prop] = '<'; return aggr; }),
  return {bindings, template};
}

.component('greeter', slc(['name'], '
 Hello, {{ $ctrl.name }}!
'));

I was able to golf this to one line :P

OK, fair, golf was a poor choice of words on my part :p
Thanks for the suggestions, I really like the second one.
It appears that I have the permissions to close this, so I am going to go ahead and do so. Thanks for the prompt response!

Todd Motto covers this on his blog.  Not sure by the comments if you have checked it out but here is the link https://toddmotto.com/stateless-angular-components/  .


Mounting premium storage is old and unclear

Please update the section of the document dealing with Mounting the premium file share.  This screen shot is old and there are new options around authentication that needs to be addressed in this document as far as which type should be used.

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

ID: 45511218-137b-ba77-3e15-8af90f16c05b
Version Independent ID: 643bf07b-8fd6-6983-f7dd-6a60ae82ac99
Content: Create an FCI with a premium file share - SQL Server on Azure VM
Content Source: articles/azure-sql/virtual-machines/windows/failover-cluster-instance-premium-file-share-manually-configure.md
Service: virtual-machines-sql
Sub-service: hadr
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

@rvahaver
Thanks for your feedback! We will investigate and update as appropriate.

@MashaMSFT Can you please check and add your comments on this doc update request as applicable

Hi @rvahaver , thanks for your feedback! We've processed a change to the documentation that should be live next week.
I'll close out this Git Issue but please feel free to comment should you need anything further.
Thanks again for improving our docs and I hope you have a wonderful rest of your day!
Masha from the SQL Docs team
#please-close


HP 14a G5 Careena(grunt) dummy output only

Everything seems to be working but audio now with ubuntu on this device. I have tried sof-setup-audio after booting as well as SOUNDCARD=rtk sof-setup-audio and I still end up with only dummy output in the sound settings and no inputs. Let me know if you need more info. Thanks

Can you give an alsa-info please?

Here is the output of alsa-info.
alsa-info.txt

I have an HP Chromebook 14a with an Octopus board, I saw the same issue and resolved it by re-loading ALSA by running sudo alsa force-reload. I can't guarantee it'll work for you, but worth a try


[Performance] performance bottlenecks in gluon.data.DataLoader

Hi! there.
I read the code of gluon.data.DataLoader and found the following performance bottlenecks.

the function __next__ in _MultiWorkerIter
Code: https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/data/dataloader.py#L441
There are many operators in this function, especially pickle.loads occupies most of the time.
We can add an independent thread to compute it, and push the result into a queue.

only a worker is used.
Code: https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/data/dataloader.py#L442
self._push_next() will be called when __iter__() of _MultiWorkerIter is called, then __iter__() will wait util the task is finished. It means that there is only a task in the worker pool.

The initialization of _MultiWorkerIter
Code: https://github.com/apache/incubator-mxnet/blob/master/python/mxnet/gluon/data/dataloader.py#L581
Case:

loader = DataLoader(xxx)
for epoch in range(start_epoch, end_epoch):
    # It will take repeated time to initialize `_MultiWorkerIter`, and `_MultiWorkerIter` need to re-prefetch the data.
    for data in loader:
        model(data)

Close it since I found the bottleneck of performance is the release of NDArray Object.


add missing anchor case in positioner invert-x for xdg-shell

I didn't test this because at the time we didn't have a good xdg-shell implementation.
The xdg-shell-v6 code is fine.

Thanks1


Unable to upload object with PreSigned Url

Description
I am generating a Pre-Signed URL for S3 bucket from Lambda using AWS .Net SDK to upload excel files but the upload is failing with 403 (Forbidden) error. Same upload when tried with PostMan is giving 'SignatureDoesNotMatch' error. Lambda function has 's3:PutObject' action allowed on the bucket. S3 Bucket itself has CORS configured with 'Put' from any origin and headers, along with a bucket policy to allow 's3:PutObject'.

Environment

SDK Version: AWSSDK.S3 -> 3.5.10
Targeted .NET Platform:  .Net Core 3.1

This is a :bug: bug-report

Hi @rohit3d2003,
Good afternoon.
Thanks for posting the question.
Unfortunately, I'm unable to reproduce the issue. Here's the code:
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.IO;
using System.Net;

namespace PreSignedUrlTest
{
    class Program
    {
        private static string bucket = "test-bucket-issue1410";
        private static string key = "testkey.jpg";
        private static string filePath = @"<<folder_path>>\IMG_XXXX.jpg";
        static void Main(string[] args)
        {
            var amazonS3Client = new AmazonS3Client();

            var request = new GetPreSignedUrlRequest
            {
                BucketName = bucket,
                Key = key,
                Verb = HttpVerb.PUT,
                Expires = DateTime.Now.AddMinutes(60)
            };

            var url = amazonS3Client.GetPreSignedURL(request);

            UploadFile(filePath, url);
        }

        private async static void UploadFile(string filePath, string presignedUrl)
        {
            if (string.IsNullOrWhiteSpace(filePath)) throw new ArgumentNullException("filePath");
            if (string.IsNullOrWhiteSpace(presignedUrl)) throw new ArgumentNullException("presignedUrl");
            if (!File.Exists(filePath)) throw new FileNotFoundException($"File '{filePath}' not found");

            byte[] bytes;
            await using (var fs = File.Open(filePath, FileMode.Open))
            {
                bytes = new BinaryReader(fs).ReadBytes((int)fs.Length);
            }

            var httpRequest = WebRequest.Create(presignedUrl) as HttpWebRequest;
            if(httpRequest != null)
            {
                httpRequest.Method = "PUT";
                httpRequest.ContentLength = bytes.Length;

                using (var requestStream = httpRequest.GetRequestStream())
                {
                    requestStream.Write(bytes, 0, bytes.Length);
                }

                var httpResponse = httpRequest.GetResponse() as HttpWebResponse;
            }
        }
    }
}

I used the above code (similar to your code) and it works perfectly fine. It could be the S3 bucket configuration issue. Could you also check the value of Verb which is set in GetPreSignedUrlRequest?
Thanks,
Ashish

@ashishdhingra - You saved my day. The error was related to HttpVerb, somehow I wasn't mapping it correctly. Thank you so much!


markdown: Refactor out additional properties added to Message.

This adds a new class called MessageRenderingResult to contain the
additional properties we added to the Message object (like alert_words)
as well as the rendered content to ensure typesafe reference. No
behavioral change is made except changes in typing.
This is a preparatory change for adding Django stubs to the backend.
Related: #18777

The migration to use a dataclass feels really nice; I posted a few more comments but this seems close to being mergeable.

Merged, thanks @PIG208!  It's great whenever type-checking work results in a really nice cleanup like this :).


MySQL 5.7 Unsupported

While working on a local dev setup I noticed that MPOS is not ready for MySQL 5.7. Some defaults have changed that will cause things like payouts to not find any valid shares. The error itself is caused by a changed globals setting in MySQL.
For now, either run an older MySQL Version (you will have to try out which one works) or follow this hack to disable the new option and return to the old behaviour: https://stackoverflow.com/a/35729681
I implemented a fix, but I am not confident that it's going to work on an older SQL version without causing any issues for the users. Hence please use that workaround for now.

Upon further investigation there are quite a few places that are affected by the new GROUP BY policy set via sql_mode=only_full_group_by. I have tried to fix https://github.com/MPOS/php-mpos/blob/master/include/classes/statistics.class.php#L183-L190 as an example but it doesn't work properly. It seems that I may need assistance by someone more familiar with this change and how this can be addresses without breaking MPOS :)

Here the example used. Even though this resulted in a cryptic error message when doing payouts it didn't break anything beyond that. I am hesitant to just change the query as suggested because in this example it does return wrong results. In a payment processor this could be catastrophic!
Enable Workaround, execute SQL
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)

mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT         b.*,         a.username AS finder,         a.is_anonymous AS is_anonymous,         COUNT(b.id) AS solvedblocks,         SUM(b.amount) AS generatedcoins       FROM blocks AS b       LEFT JOIN accounts AS a       ON b.account_id = a.id       WHERE confirmations > 0       GROUP BY finder       ORDER BY solvedblocks DESC LIMIT 10;
+----+--------+------------------------------------------------------------------+---------------+--------+-----------------------+------------+-----------+------------+--------------------+--------+----------+-------------+--------------+--------------+----------------+
| id | height | blockhash                                                        | confirmations | amount | difficulty            | time       | accounted | account_id | worker_name        | shares | share_id | finder      | is_anonymous | solvedblocks | generatedcoins |
+----+--------+------------------------------------------------------------------+---------------+--------+-----------------------+------------+-----------+------------+--------------------+--------+----------+-------------+--------------+--------------+----------------+
|  1 | 118821 | 1f8b06c1198d4be1bb369cd10e2a160b391ff02e35d2854853c0482be02eb82e |           172 |     50 | 0.0002441371325370145 |<PHONE_NUMBER> |         1 |          1 | TheSerapher.worker |      9 |       56 | TheSerapher |            0 |            4 |            200 |
+----+--------+------------------------------------------------------------------+---------------+--------+-----------------------+------------+-----------+------------+--------------------+--------+----------+-------------+--------------+--------------+----------------+

Disable Workaround, execute SQLs
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY';
Query OK, 0 rows affected (0.00 sec)

mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT         b.*,         a.username AS finder,         a.is_anonymous AS is_anonymous,         COUNT(b.id) AS solvedblocks,         SUM(b.amount) AS generatedcoins       FROM blocks AS b       LEFT JOIN accounts AS a       ON b.account_id = a.id       WHERE confirmations > 0       GROUP BY finder       ORDER BY solvedblocks DESC LIMIT 10;
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mpos_ltc.b.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
mysql> SELECT         b.*,         a.username AS finder,         a.is_anonymous AS is_anonymous,         COUNT(b.id) AS solvedblocks,         SUM(b.amount) AS generatedcoins       FROM blocks AS b       LEFT JOIN accounts AS a       ON b.account_id = a.id       WHERE confirmations > 0       GROUP BY finder, b.id       ORDER BY solvedblocks DESC LIMIT 10;
+----+--------+------------------------------------------------------------------+---------------+--------+-----------------------+------------+-----------+------------+--------------------+--------+----------+-------------+--------------+--------------+----------------+

Same as above with adjusted GROUP BY with wrong result
| id | height | blockhash                                                        | confirmations | amount | difficulty            | time       | accounted | account_id | worker_name        | shares | share_id | finder      | is_anonymous | solvedblocks | generatedcoins |
+----+--------+------------------------------------------------------------------+---------------+--------+-----------------------+------------+-----------+------------+--------------------+--------+----------+-------------+--------------+--------------+----------------+
|  1 | 118821 | 1f8b06c1198d4be1bb369cd10e2a160b391ff02e35d2854853c0482be02eb82e |           172 |     50 | 0.0002441371325370145 |<PHONE_NUMBER> |         1 |          1 | TheSerapher.worker |      9 |       56 | TheSerapher |            0 |            1 |             50 |
|  2 | 118817 | 8ca7cc19d8f6edcce088bd0c50187533bdde1b642d3873b9b5ac6710dcb14bb2 |           176 |     50 | 0.0002441371325370145 |<PHONE_NUMBER> |         1 |          1 | TheSerapher.worker |     40 |       37 | TheSerapher |            0 |            1 |             50 |
|  3 | 118823 | ef5bb49a9902db7e4d9691331df2763bf7aabcc242af94b38844bb5b949ed787 |           170 |     50 | 0.0002441371325370145 |<PHONE_NUMBER> |         1 |          1 | TheSerapher.worker |      1 |       57 | TheSerapher |            0 |            1 |             50 |
|  4 | 118820 | eb338480b8eeb08f61ba7459c5ea183689635f21970463c52b6b5d9c39f4683a |           173 |     50 | 0.0002441371325370145 |<PHONE_NUMBER> |         1 |          1 | TheSerapher.worker |     21 |       50 | TheSerapher |            0 |            1 |             50 |
+----+--------+------------------------------------------------------------------+---------------+--------+-----------------------+------------+-----------+------------+--------------------+--------+----------+-------------+--------------+--------------+----------------+

I looked at more queries, for a SQL specialist this may be easy to solve, for me not having worked on SQL or MPOS for such a long time it may not be feasible to get it done in a proper amount of time. Please use the workaround, I have added it to the FAQ for the time being: https://github.com/MPOS/php-mpos/wiki/FAQ#is-mysql-57-supported

Hello,
i have the same Problem.
But i didn't understand the Workaround.
I wrote in the SQL-Consle of the MPOS-Database
set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
But the Problem wasn't solved. Where is my mistake?
Who can help me?
Sorry, but my SQL-KnowHow is very low.
Thank you very much.

I added a MySQL version check to the admin setup page. Since I am unsure of anything > 5.7 it's just checking 5.7 for now anywhere in the version string returned by a SQL query (SELECT VERSION()). Only available in development or MPOS > 1.1.0.
If this is an issue later down the road we may have to adjust the check, but it'll help for a few first time setups at least.


Notify user when new image is available

In #184 we've changed the default behaviour  so that the new AiiDAlab docker image is pulled only when user explicitly requests it. This is good for stability, but now users are not aware of updates. We should print a note when a new Docker image becomes available.

This is a useful feature but not clear to me the definition of "new image".
It can be when there are new released versions (new tag) such as 2023.1012 -> 2023.1013. Or it can be using the latest tag and the latest tag is updated with the new image.
The second case is what https://github.com/aiidalab/aiidalab-launch/pull/184 bought up.

Ah, indeed, I meant the second case. First case doesn't make much sense, since we can't know which new tags are available (at least not easily).

I did have a look at the link you shared https://hynek.me/articles/semver-will-not-save-you/ (Not very happy at beginning of the reading as well, but being persuaded a bit after) and come back to this issue, I am now understand the docker image release strategy of Jupyter docker stack that they running the released CI periodically. I didn't adopt this setting when I refactoring the CI workflow.
If it is also the case of our docker stacks, then when the tag is fixed the newly released image will be checked for all tags and it makes a lot sense to have this notification rather that just when using the image with tag latest.

then when the tag is fixed the newly released image will be checked for all tags and it makes a lot sense to have this notification rather that just when using the image with tag latest.

I am not sure what you mean here. But for a given profile, we now both the image and its tag, so we should hopefully  be able to reuse the existing download logic to check if newer image is available. No need to look at all tags.


[DNM] Adds Anaconda support

Description:
This upgrades the project to support running command lines through specific Anaconda Environments. Which makes it compatible with the ML-Agents 0.8 release and fixes #1
To use, simply fill out the new fields on TensorFlowConfig:

Currently you cannot read the output stream of mlagents-learning due to the limitations of executing a command line in a conda environment on one command line execution. So instead I just print a simple messaging telling the user everything is working:

Other changes

This also upgrades the project to Unity Editor 2019.1
Populated all of the Tensorflow configs in the example scenes to reflect Anaconda usage

Do not merge this. Looks like unity locks up when trying to start up the communicator with mlagents. It most likey has to do with starting mlagents from conda.exe. I've tried to figure out a work around for this problem but looks like because of the limitations of conda it will not be possible.
I'll update this PR if I find a solution, but in the meantime maybe leave this PR up so others who are interested in using this with conda can help.

If anyone is reading this in the future, the solution is to create a batch file or bash file and use activate.bat from Anaconda instead of conda.exe run.
In a batch file you activate your conda environment and then process whatever command you need.
i.e: C:\ProgramData\Anaconda3\Scripts\activate.bat {env name} ^&& mlagents-learn {etc etc}
This works for unity. Make sure you set your process UserShellExecute flag to true.
Here is the full process code in my project that starts up tensorboard:
Process tensorboardProcess = new Process();
            tensorboardProcess.StartInfo.FileName = "cmd";
            tensorboardProcess.StartInfo.UseShellExecute = true;
            tensorboardProcess.StartInfo.CreateNoWindow = false;
            tensorboardProcess.StartInfo.Arguments = $"/K {Application.streamingAssetsPath}\\tensorboard.bat {config.TensorBoardAddress} " +
                $"{config.ConfigDirectory} {config.AnacondaRootDir} {config.CondaEnvName} {config.SummariesDirectory}";
            tensorboardProcess.Start();

And here is my tensorboard batch file:
@echo off
echo Starting Tensorboard at: %1
cd %2
%3\Scripts\activate.bat %4 ^&& python -m tensorboard.main --logdir=%5

I will not be updating this pr with the fixes as I'm creating my own automation system but I'll most likely opensource it when I'm done. Thanks to @dracolytch for help getting me started with his example.

Hey!
I just tried to implement your tool, unfortunately I have the same problem as @dracolytch.
I do not understand where and what I should write in a batch and what I should keep in unity.
Maybe you can give me some more information on how to use your tool.
Thank you in advance! :)

Hey this isn't my tool. But if you are trying to follow my approach to getting conda environment support working then I can help you. Where are you stuck?

Yeah I tried, but i'm not sure where to put these changes.
Where do I need to create the batch file for activating the conda env?

@nikitaa-x3 anywhere you want. You have to use System.Diagnostics.Process to start the batch file.
Here is my code to kick off the conda env and start a training session:
Process mlProcess = new Process();
            string otherArgs = "";
            if (config.Slow)
            {
                otherArgs += "--slow ";
            }
            if (config.Load)
            {
                otherArgs += "--load ";
            }
            mlProcess.StartInfo.FileName = "cmd";
            mlProcess.StartInfo.UseShellExecute = true;
            mlProcess.StartInfo.CreateNoWindow = false;
            mlProcess.StartInfo.Arguments = $"/K {Application.streamingAssetsPath}\\ml-learn.bat {config.ConfigDirectory}" +
                $" {config.AnacondaRootDir} {config.CondaEnvName}" +
                $" {configPath} {trainingName} {otherArgs}";
            mlProcess.Start();

As you can see ml-learn.bat is my batch file and the parameters after it is what I pass to that batch file.
And this is the contents of my batch file:
@echo off
echo Starting ML-Agents Learn
cd %1
@echo on
%2\Scripts\activate.bat %3 ^&& mlagents-learn %4 --run-id=%5 --train %6

Sorry for the late answer.
And how do I start the process file?

@DooblyNoobly Hey!
I tried it again today, but I still do not understand where these code snippets should go or what I need to do with it. Could you please tell me idiot-proof what to do?

@nikitaa-x3:  I compiled it with csc and I get an executable You what now? You just need to make a batch file and run it through cmd. Look at this part of my code:
mlProcess.StartInfo.FileName = "cmd";

I'm opening cmd and then sending it arguments to run my batch file (ml-learn.bat)
mlProcess.StartInfo.Arguments = $"/K {Application.streamingAssetsPath}\\ml-learn.bat {config.ConfigDirectory}" +
                $" {config.AnacondaRootDir} {config.CondaEnvName}" +
                $" {configPath} {trainingName} {otherArgs}";

/K means to run the following arguments as a command once cmd has finished starting up. The rest of the values come from a config class that I've set up so I can use different values whenever I want. But as you can see they line up with the variables in the batch file itself. i.e. %1 %2..


minor bugfix. RandomChoiceResize should get scales instead of scale.

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Minor bugfix. RandomChoiceResize should get scales instead of scale.
Modification
I changed the RandomChoiceResize scale into scales in all the training pipelines.
BC-breaking (Optional)
No.
Use cases (Optional)
None.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMCls.
The documentation has been modified accordingly, like docstring or example tutorials.

 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.

Hi @gihanjayatilaka ！We are grateful for your efforts in helping improve mmdetection open-source project during your personal time.
Welcome to join OpenMMLab Special Interest Group (SIG) private channel on Discord, where you can share your experiences, ideas, and build connections with like-minded peers. To join the SIG channel, simply message moderator— OpenMMLab on Discord or briefly share your open-source contributions in the #introductions channel and we will assist you. Look forward to seeing you there! Join us ：https://discord.gg/UjgXkPWNqA
If you have a WeChat account，welcome to join our community on WeChat. You can add our assistant ：openmmlabwx. Please add "mmsig + Github ID" as a remark when adding friends：）
Thank you again for your contribution❤


Add PropertyChecks for scala.js on 3.0.0

I'm porting typelevel Discipline to sjs and scalcheck integration is a must have. This is also the case for Cats and supporting modules.
Locally I got this working fine on a local build, but on an older versiion od scalatest-js. Diffs :
diff --git a/project/GenScalaTestJS.scala b/project/GenScalaTestJS.scala
index 751747b..0ab380c 100644
--- a/project/GenScalaTestJS.scala
+++ b/project/GenScalaTestJS.scala
@@ -371,9 +371,9 @@ object GenScalaTestJS {
       ), targetDir) ++
     copyDir("scalatest/src/main/scala/org/scalatest/prop", "org/scalatest/prop",
       List(
-        //"Configuration.scala",
-        //"Checkers.scala",
-        //"PropertyChecks.scala",
+        "Configuration.scala",
+        "Checkers.scala",
+        "PropertyChecks.scala",
         "Whenever.scala"
       ), targetDir) ++
     copyDir("scalatest/src/main/scala/org/scalatest/concurrent", "org/scalatest/concurrent",

diff --git a/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala b/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
index a6e1602..dd38bf9 100644
--- a/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
+++ b/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
@@ -225,6 +225,7 @@ repeatedly pass generated data to the function. In this case, the test data is c
  *
  * @author Bill Venners
  */
+// SCALATESTJS-ONLY @scala.scalajs.js.annotation.JSExportDescendentClasses(ignoreInvalidDescendants = true)
 trait Checkers extends Configuration {

Hi Alistair,
Sorry I didn't realized that wasn't in there. We'll look into it.
Bill

Hi Bill - Sorry if I sound like I'm hassling you but any ideas on timelines for this, please? I'm just planning other work so would be nice to know if I should just wait a few more days or implement my plan B.

No please do hassle! We have so many things coming at us lately that things can get sometimes get forgotten. This seems like a simple deployment issue. I'll try and get a new milestone out pronto with this in it.

Can you let us know a bit more about your build. What version are you using? A long time back we didn't have this in because ScalaCheck didn't work on all the JS platforms, but once that got fixed we added this in. The latest version is 3.0.0-M6. If you're not on that, can you try it. If you still see the problem, let us know more about your build.

thx - will upgrade to M6 and give feedback soon.

Still no joy with M6, but works with a local, hacked build of scalatest. Build is at https://github.com/InTheNow/discipline/tree/topic/sjs and the diff for branch 3.0.x is:
diff --git a/project/scalatest.scala b/project/scalatest.scala
index caffb8b..8ab54d2 100644
--- a/project/scalatest.scala
+++ b/project/scalatest.scala
@@ -132,7 +132,7 @@ object ScalatestBuild extends Build {
   )

   def scalacheckDependency(config: String) =
-    "org.scalacheck" %% "scalacheck" % "1.12.3" % config
+    "org.scalacheck" %% "scalacheck" % "1.12.4" % config

   def crossBuildLibraryDependencies(theScalaVersion: String) =
     CrossVersion.partialVersion(theScalaVersion) match {
@@ -173,7 +173,8 @@ object ScalatestBuild extends Build {

   def scalatestJSLibraryDependencies =
     Seq(
-      "org.scala-js" %% "scalajs-test-interface" % "0.6.4"
+      "org.scala-js" %% "scalajs-test-interface" % "0.6.4",
+      "org.scalacheck" %% "scalacheck_sjs0.6" % "1.12.4"
     )

   def scalatestTestOptions =
@@ -499,8 +500,8 @@ object ScalatestBuild extends Build {
         (baseDirectory, sourceManaged in Compile, version, scalaVersion) map genFiles("gentables", "GenTable.scala")(GenTable.genMainForScalaJS),
       sourceGenerators in Compile <+=
         (baseDirectory, sourceManaged in Compile, version, scalaVersion) map genFiles("genmatchers", "MustMatchers.scala")(GenMatchers.genMainForScalaJS),
-      /*genMustMatchersTask,
       genGenTask,
+      /*genMustMatchersTask,
       genTablesTask,
       genCodeTask,
       genCompatibleClassesTask,
diff --git a/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala b/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
index 67fb8f3..326a53d 100644
--- a/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
+++ b/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
@@ -228,6 +228,8 @@ repeatedly pass generated data to the function. In this case, the test data is c
  *
  * @author Bill Venners
  */
+ // SCALATESTJS-ONLY @scala.scalajs.js.annotation.JSExportDescendentClasses(ignoreInvalidDescendants = true)
+
 trait Checkers extends Configuration {

   /**

Hi Allstair,
Seems like incompatible issue between scalacheck 1.12.3 and 1.12.4, I have
submitted a PR to update to use scalacheck 1.12.4:
https://github.com/scalatest/scalatest/pull/639
The JSExportDescendentClasses that you added to Checkers is not required
imho, or I could be missing something, do you mind to give the branch a try
to see if it fixes your problem?
Thanks.
Chee Seng
On Sat, Jul 11, 2015 at 2:14 AM, Alistair Johnson<EMAIL_ADDRESS>wrote:

Still no joy with M6, but works with a local, hacked build of scalatest.
Build is at https://github.com/InTheNow/discipline/tree/topic/sjs and the
diff for branch 3.0.x is:
diff --git a/project/scalatest.scala b/project/scalatest.scala
index caffb8b..8ab54d2 100644--- a/project/scalatest.scala+++ b/project/scalatest.scala@@ -132,7 +132,7 @@ object ScalatestBuild extends Build {
)
def scalacheckDependency(config: String) =-    "org.scalacheck" %% "scalacheck" % "1.12.3" % config+    "org.scalacheck" %% "scalacheck" % "1.12.4" % config
def crossBuildLibraryDependencies(theScalaVersion: String) =
CrossVersion.partialVersion(theScalaVersion) match {@@ -173,7 +173,8 @@ object ScalatestBuild extends Build {
def scalatestJSLibraryDependencies =
Seq(-      "org.scala-js" %% "scalajs-test-interface" % "0.6.4"+      "org.scala-js" %% "scalajs-test-interface" % "0.6.4",+      "org.scalacheck" %% "scalacheck_sjs0.6" % "1.12.4"
)
def scalatestTestOptions =@@ -499,8 +500,8 @@ object ScalatestBuild extends Build {
(baseDirectory, sourceManaged in Compile, version, scalaVersion) map genFiles("gentables", "GenTable.scala")(GenTable.genMainForScalaJS),
sourceGenerators in Compile <+=
(baseDirectory, sourceManaged in Compile, version, scalaVersion) map genFiles("genmatchers", "MustMatchers.scala")(GenMatchers.genMainForScalaJS),-      /*genMustMatchersTask,
genGenTask,+      /*genMustMatchersTask,
genTablesTask,
genCodeTask,
genCompatibleClassesTask,diff --git a/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala b/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala
index 67fb8f3..326a53d 100644--- a/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala+++ b/scalatest/src/main/scala/org/scalatest/prop/Checkers.scala@@ -228,6 +228,8 @@ repeatedly pass generated data to the function. In this case, the test data is c
*

@author Bill Venners
*/+ // SCALATESTJS-ONLY @scala.scalajs.js.annotation.JSExportDescendentClasses(ignoreInvalidDescendants = true)+
trait Checkers extends Configuration {

/**
—
Reply to this email directly or view it on GitHub
https://github.com/scalatest/scalatest/issues/631#issuecomment-120483642
.

Yes, works fine from branch! LGTM & thanks

I have merged this in and am having trouble deploying 3.0.0-M7 because of network issues. Hopefully I'll get it out before my flight, as I was unable to deploy from the plane wifi on the way here. If not in the next hour, it will be tonight.

No luck even on the 4th attempt. I'll try again once I get back home. I think the problem is just bad network connectivity.

Yes, it was just network issues. Deployed fine first attempt from home. Please try 3.0.0-M7.
Thanks.
Bill

Works perfectly :) Many thanks


Refactor find to findPersons

The Duke The Market application currently has two classes Event and Person which each has the find operation.
The current find operation is to find persons. To increase clarity, it is important to refactor the find command into findPersons.
Let's refactor all instances of find to findPersons
Closes #118

Codecov Report
Base: 64.37% // Head: 64.37% // No change to project coverage :thumbsup:

Coverage data is based on head (8cbf8c4) compared to base (f798ea4).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #126   +/-   ##
=========================================
  Coverage     64.37%   64.37%
  Complexity      464      464
=========================================
  Files            88       88
  Lines          1687     1687
  Branches        179      179
=========================================
  Hits           1086     1086
  Misses          543      543
  Partials         58       58

Impacted Files
Coverage Δ

...edu/address/logic/commands/FindPersonsCommand.java
100.00% <100.00%> (ø)

.../seedu/address/logic/parser/AddressBookParser.java
80.00% <100.00%> (ø)

...address/logic/parser/FindPersonsCommandParser.java
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


YARP should support gracefully closing WebSocket connections to the backend during shutdown

What should we add or change to make your life better?
When YARP shuts down while proxying a WebSocket to the backend, the backend has no way to observer that the proxy wants to gracefully close the connection. This means that YARP will always hit the Host's ShutdownTimeout which was recently increased to 30 seconds before exiting. Because HttpForwarder proxies WebSockets using IHttpUpgradeFeature rather than IHttpWebSocketFeature, it has no mechanism to notify the backend that it wants to try gracefully closing the connection. If it used the WebSocket feature instead, it could initiate a WebSocket closing handshake which should speed up YARP shutdown and restarts dramatically in this situation.
Parsing and redoing the WebSocket framing will have some minor performance implications and injecting a close handshake into a proxied WebSocket could be behavior people don't want, so this should probably be made opt-in. Although, I do think the fast majority of customers would prefer this behavior.
Related: I filed https://github.com/dotnet/aspnetcore/issues/42057 so Kestrel exposes HTTP/2 and HTTP/3 GOAWAY frames to apps on the back which should also help the proxy close long running HTTP/2 and HTTP/3 requests to Kestrel backends. This is a little safer though because YARP can continue sending data to the backend after sending a GOAWAY. This is not possible after starting the WebSocket closing handshake.

Triage: Unclear if we want to go this route.
We do it in Telemetry and the overhead there is very small -- we should be able to use the same pattern here if we decide to do so.


Documentation mentions Project.settingsSets which no longer exists, no alternative given

See http://www.scala-sbt.org/1.0/docs/Setting-Initialization.html
I was looking for a way to override some of the sub-project settings specified in their internal build.sbt files from the top-level build.sbt.
settingsSets looked like something that would allow me to do that, why was it removed? Is there any alternative way of changing the order of how the settings are applied (at the moment it seems like subprojects' build.sbt always override the main build.sbt)?
notes
sbt version: 1.0.4

Here's the issue that lead to the removal: https://github.com/sbt/sbt/issues/2617.

Do I understand correctly that with this change it is no longer possible to
override settings pulled from sub-projects?
On 6 December 2017 at 10:35, Dale Wijnand<EMAIL_ADDRESS>wrote:

Here's the issue that lead to the removal: #2617
https://github.com/sbt/sbt/issues/2617.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sbt/sbt/issues/3797#issuecomment-349600012, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAx_-mZKHTcnHH-5i72IJbm8eMcH-Z1Fks5s9m3zgaJpZM4Q28I3
.

I'm not sure what you mean exactly by "override settings pulled from sub-projects", but it's no longer possible to customise the order in which sbt loads settings, at a project level (http://www.scala-sbt.org/1.0/docs/Setting-Initialization.html#Controlling+Initialization).


Check solution for Windows 8 RT & Windows 10 platforms

The library should be available and should work properly for:

Windows 8 (WinRT)
WIndows 10

Library supports now UWP (Windows 10)