[CI] Transition tox-based testing from pip 😭 to uv ⚡

uv is super fast.
It's pretty easy to install into the system and once you try it, something switches in you, so it's hard to go back.
# On macOS and Linux.
$ curl -LsSf https://astral.sh/uv/install.sh | sh

# Linux (*deb)
snap install astral-uv

# On Windows.
$ powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
$ pip install --user uv

tox-uv test-only dependency will be required for uv support in tox.
Additionally it may be useful to create a make install command that installs uv into the home directory and creates a ./.venv with dependencies installed. But the user will have to edit their ~/.shrc themselves (to modify PATH).
And the reason:
Installing all supported pythons, creating environments, installing all dependencies and running tests took me 5 minutes 30 seconds on AMD RYZEN 5 2600 - 3.4/3.9Ghz (turbo).
@leycec pull request approval is possible for this issue?

It may be fast, but it is neither widely adopted nor the accepted standard as pip is. I imagine leycec would appreciate this as an alternative but simply removing pip as an option will very likely be shut down.

Uv is cooland it's written in rust, which gives it an immediate x1000 street-cred boost!, I use it for most of my new projects and love it. But... is it really useful for beartype? Hatch can use uv for faster dependencies resolution and env management, but is speed currently a problem? If not, adding an extra tool to solve a non-problem might not be needed

Woops. Extreme apologies for failing to promptly attend to this or your corresponding PR, @minmax. I promised myself I would never "be that GitHub guy." Yet, I'm being that GitHub guy. :cry:
On the one tentacle, I undeniably like the sound of fixing this...

Installing all supported pythons, creating environments, installing all dependencies and running tests took me 5 minutes 30 seconds on AMD RYZEN 5 2600 - 3.4/3.9Ghz (turbo).

That's maybe horrible. How much of that is just the "running tests" part? If most of that is just the "running tests" part, that's fine for certain definitions of fine. If most of that is not just the "running tests" part, that's a new breed of awful.
Wait. tox doesn't install Python interpreters. Does it? So "Installing all supported pythons" shouldn't be happening at all. Right? Likewise, "creating environments, installing all dependencies" only happens on the first tox invocation. Subsequent tox invocations reuse previously spun up environments – until the next CPython bump, anyway.
So... that doesn't leave much for uv to optimize away, really. Of course, speed is speed. Improving efficiency is always a good thing. ...or is it?
On the other tentacle, I undeniably do not like the sound of this...

I imagine leycec would appreciate this as an alternative but simply removing pip as an option will very likely be shut down.

...and...

...but is speed currently a problem? If not, adding an extra tool to solve a non-problem might not be needed.

Yes! Yes! So much "Yes!" @Moosems and @m3at know @leycec better than @leycec knows @leycec.
Wait. Is that a Super Meatboy avatar coupled with a l33tsp3@k spelling for "meat", @m3at!?
Wait. We have now veered this crazy train so far off the rails that the train has sprouted wings. Pretty cool train. I suppose this is as good a time as any to admit that I'd love to add optional but not mandatory support for uv to our tox-based continuous integration workflow.
Can that be done? Ideally, tox could be configured via the top-level tox.ini file to:

If uv is installed, tox will install dependencies via uv.
Else, tox will install dependencies via pip.

And... it looks like that can be done. Maybe.
Onward to QA Golgotha
I couldn't help but grep around for a solution implementing that conditional workflow.
Sadly, tox-uv itself currently only unconditionally supports uv. Moreover, the tox-uv maintainer has explicitly excluded this functionality from tox-uv. Ergo, tox-uv will never conditionally support pip. This means we have to paint outside the tox-uv lines.
The closest to a working solution I could fine is this tox.ini snippet from @griels:
pip_impl = {env:TOX_PIP_IMPL:pip}
install_command = {env_python} -m {[tox]pip_impl} install {opts} "{packages}" {[tox]isolation_options} -c {[tox]constraints_file} -vvv

Certainly, that's better than nothing – but still not quite what @beartype was hoping for. Although that does allow one to trivially switch between pip and uv at tox time, that also forces the choice to be hardcoded in the ${TOX_PIP_IMPL} environment variable. That's way too heavyweight here.
We want install_command to intelligently select whichever of pip or uv is currently in the current ${PATH}, defaulting to uv if both are. Can install_command be a series of ;-delimited commands? If so, someone who is not me could probably cobble together an install_command script doing just that.
@beartype leaves this an exercise to the reader. Since "the reader" doesn't exist and would never do this even if "the reader" existed, let's quietly close this and hope for better CI from QA Santa this holiday season. :santa: :gift: :christmas_tree:

To answer the important question:

Is that a Super Meatboy avatar coupled with a l33tsp3@k spelling for "meat", @m3at!?

Yes. 😇
Thanks for the work on beartype, and the delightful comments ❤


Border is displaying  around date picker icon after closing the calendar  & calendar is not closing on click on icon ones opend

Describe the bug
1)please open the calendar on clicking calendar icon and select any date you can see the border around the icon which is displaying
2) open the calendar on clicking date picker icon again click on  same icon calendar is still showing not closing
Expected behavior
The border should not be show around the icon ones calendar is closed or date is selected  for time it self
on clicking  date picker icon  the calendar should close
Screenshots

Please provide ETC for this issue.

Is the issue with the border itself? Or with the calendar keeping the focus after having picked a date? I think I don't fully understand where exactly is the issue here.

Hi @jsardid ,
1)The calendar is keeping focus after picking date.
2)on  calendar  is open when I re click the calendar icon  opened  Calendar is not closing

Hi @apallamreddy
When a value from the date dialog is selected the focus moves back to the trigger, that's a common behavior. You can check the related behavior in the WAI-ARIA date picker dialog example.
Keyboard interaction from the dialog example documentation

Key
Function

Enter, space
Select the date, close the dialog, and move focus to the Choose Date button.


[Feature] Introduce ProcessingStep to use SageMaker Processing Job

Issue #, if available:
#20
Description of changes:
Step Functions has added SageMaker Processing Job as the new service integration, we want to introduce ProcessingStep to use this functionality.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

AWS CodeBuild CI Report

Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

This is great @shunjd !!

AWS CodeBuild CI Report

CodeBuild project: StepFunctionsPythonSDK-integtests
Commit ID: c37059889c078e726c4ff6b54d8b877a4acd2ccf
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


Add projects

Add a projects section, possibly include both original (state submitted in 201) and updated versions (post  301 styling / features)

Done!


Show diff before pushing and pulling changes

Instead of just overriding local tokens or pushing without knowing what's being pushed, let's introduce a modal that shows the user what's changed.
When pulling we show the user the changes in a UI, showing them all the values that changed. We do this by comparing the current state and the remote state and we show those changes to the user.

When pushing we show the user in two ways: JSON and UI. The JSON is the json that is being pushed, while the UI view shows the actual changed tokens. We should make sure to also include files such as $themes.json and $metadata.json

In the Push modals, it's specified which branch is being pushed to. It would be great to see this information in the Pull modals too. There's been a couple of times where I've pushed and pulled from the wrong branch.
Also, some more visual emphasis on the branch name would help to distinguish it from the helper text. Such as bolding the text or putting it in a code block.

Also, I think having the ability to only push / pull specific tokens sets would be very helpful (but may be best handled in a separate enhancement).


Upgrade JavaScript and Python dependencies

zulip-py3-venv:

aniso8601: 7.0.0 → (removed)
async-generator: (new) → 1.10
boto3: 1.17.5 → 1.17.19
botocore: 1.20.5 → 1.20.19
cffi: 1.14.4 → 1.14.5
click-log: 0.3.2 → (removed)
coverage: 5.4 → 5.5
cryptography: 3.4.4 → 3.4.6
django[argon2]: 3.1.6 → 3.1.7
fb-sapp: 0.2.8 → (removed)
flask: 1.1.2 → (removed)
flask-graphql: 2.0.1 → (removed)
graphene: 2.1.8 → (removed)
graphene-sqlalchemy: 2.3.0 → (removed)
graphql-core: 2.3.2 → (removed)
graphql-relay: 2.0.1 → (removed)
graphql-server-core: 1.2.0 → (removed)
ijson: 3.1.3 → 3.1.4
incremental: 17.5.0 → 21.3.0
itsdangerous: 1.1.0 → (removed)
markdown: 3.3.3 → 3.3.4
mock: 4.0.2 → 4.0.3
moto: 1.3.17.dev251 → 2.0.1
munch: 2.5.0 → (removed)
mypy: 0.800 → 0.812
openapi-core: 0.13.6 → 0.13.7
openapi-schema-validator: 0.1.1 → 0.1.4
openapi-spec-validator: 0.2.9 → 0.3.0
orjson: 3.4.8 → 3.5.0
phonenumberslite: 8.12.18 → 8.12.19
pillow: 8.1.0 → 8.1.1
promise: 2.3 → (removed)
prompt-toolkit: 3.0.14 → 3.0.16
pygments: 2.7.4 → 2.8.0
pyhamcrest: 2.0.2 → (removed)
pyre-check: 0.0.59 → 0.0.60
python-magic: 0.4.18 → 0.4.22
rx: 1.6.1 → (removed)
semgrep: 0.39.1 → 0.41.1
sentry-sdk: 0.19.5 → 1.0.0
setuptools: 53.0.0 → 54.0.0
singledispatch: <IP_ADDRESS> → (removed)
sphinx: 3.4.3 → 3.5.1
strict-rfc3339: 0.7 → (removed)
stripe: 2.55.2 → 2.56.0
tabulate: (new) → 0.8.9
tlds:<PHONE_NUMBER> →<PHONE_NUMBER>
tqdm: 4.56.1 → 4.58.0
twilio: 6.51.1 → 6.53.0
twisted: 20.3.0 → 21.2.0
ujson: 4.0.2 → (removed)
xxhash: 2.0.0 → (removed)

zulip-thumbor-venv:

aiobotocore: 1.2.0 → 1.2.1
aiohttp: 3.7.3 → 3.7.4
django: 3.1.6 → 3.1.7
django-auth-ldap: 2.2.0 → 2.3.0
setuptools: 53.0.0 → 54.0.0

Merged, thanks @andersk!


Create a tool to manage the download and flashing of the HDMI2USB firmware

The tool should;

Understand and find the boards in any state

Support both the Opsis and Atlys boards

Manage both the "temporary load" and "flashing" process.

Create backups of the existing contents.

Maybe? - Manage udev rules / permissions?

Would be nice if it worked on Linux, Windows and Mac.

My find-boards.py stuff is the start of this tool.

See https://github.com/mithro/HDMI2USB-find-board

https://groups.google.com/forum/#!topic/hdmi2usb/6Gq5RCvLXAg


Applicant request history

As an IAO analyst
I want to find an applicant request history
so that I can see previous information released to the applicant relevant to their new request

Assumptions & Scope
What are the assumptions for this story?
All requests linked to the specific John Doe's applicant profile will be listed in the search result. If there are requests from other John Does (i.e., with different Applicant Profiles), they will not be listed in the Advanced Search results.
What is IN scope?
Search for applicant's request history
What is NOT in scope?
Edit and Save changes to an Applicant Profile #4769
View and select existing Applicant Profile #4761
Creating a new applicant profile #4770
Searching and selecting profiles for On Behalf of requests
Adding an additional applicant category profile (i.e. different applicant type) #4763
Request History for an applicant
Applicant Profile Change Log #4780
Acceptance Criteria
Scenario 1: No request history

GIVEN an IAO analyst is on the applicant's profile
WHEN the applicant has no previous history
THEN there will be a (0) beside 'Request History'

Scenario 2: One or more previous requests

GIVEN an IAO analyst is on the applicant's profile
WHEN the applicant has  previous FOI request
THEN there will be a (NUMBER OF REQUESTS) beside 'Request History' linked to the applicant's profile

Scenario 3: Click on Request History

GIVEN an IAO analyst is on the applicant's profile
AND there have been previous requests
WHEN the IAO analyst clicks on 'Request History'
THEN Advanced Search will open in a new browser tab
AND the search will be preset with Applicant Name filter
AND the search will be preset with the applicants name (e.g. John Doe) in the keyword search
AND all requests linked to the specific John Doe's applicant profile will be listed in the search result

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

@lmullane @JHarrietha-AOT waiting for response on advanced search implementation as per the discussion


RSS feed and sitemap

Hi,
I was wondering how static files like rss  feeds (atom.xml) and sitemap could and should be generated?
These are not part of the App, but are built using its datas…
On old versions of my website, I was just creating a js file to be called on webpack build:

The config with Feed and Sitemap functions
The js script that's called on build
And the Template

That worked, but now I want to add this in my nuxt website; and I don't really find out what would be the more… "nuxt-ish" way to achieve this?
Shall I "just" put the scripts in the middleware folder, call them in nuxt.config.js the same way I did in the webpack config ? I feel like that'd be very poorly implemented.
Thanks for any advice.

Hi. A super useful site map module for Nuxt.js is already developed by @NicoPennec so you can add it as a drop-in to your project.
For atom feed I think there isn't any special integration with Nuxt, it just has to serve /atom.xml with a serverMiddleware to do its DB fetch and atom feed generation logic. Please let us know if you have better ideas for feed integration :)

Perfect, I'll try this module, I hope I can get it to work with async routes like I do in generate part:
generate: {
	async routes () {
		const blogs = await axios.get('https://rest.emmanuelbeziat.com/posts')
		const portfolios = await axios.get('https://rest.emmanuelbeziat.com/portfolio')
		const b_slugs = blogs.data.map(post => `/blog/${post.slug}`)
		const p_slugs = portfolios.data.map(portfolio => `/portfolio/${portfolio.slug}`)

		return [...b_slugs, ...p_slugs]
	}
},

I didn't found this community group, this is awesome. Thanks!


Bump Flux CRDs to Flux 2.4

It seems like the Go tests passes when Flux CRDs are bumped to Flux 2.4. I see that we already have moved into "Flux 2.4 land" in the go.mod file. What if we try to head directly for Flux 2.4? We use ww-gitops with Flux 2.4 in our clusters, so at least for the main parts, it works.
/cc @casibbald

Yeah heading directly to 2.4.0 is totally fine with me.
On Sat, 23 Nov 2024 at 09:05, Erik Godding Boye @.***>
wrote:

It seems like the Go tests passes when Flux CRDs are bumped to Flux 2.4. I
see that we already have moved into "Flux 2.4 land" in the go.mod file.
What if we try to head directly for Flux 2.4? We use ww-gitops with Flux
2.4 in our clusters, so at least for the main parts, it works.
/cc @casibbald https://github.com/casibbald
You can view, comment on, or merge this pull request online at:
https://github.com/weaveworks/weave-gitops/pull/4229
Commit Summary

22f5729
https://github.com/weaveworks/weave-gitops/pull/4229/commits/22f57294d5ea36958822050be8daa9055f11956f
Bump Flux CRDs to Flux 2.4

File Changes
(8 files https://github.com/weaveworks/weave-gitops/pull/4229/files)

M Makefile
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52
(6)
M tools/testcrds/helm.toolkit.fluxcd.io_helmreleases.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-caeb5dca7553f3c49d8c5a379e9cf25b77c9160b42862c4d56488a29e8944401
(6918)
M tools/testcrds/kustomize.toolkit.fluxcd.io_kustomizations.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-99808d8a62e26bc46fbcb39ba65213559c36407743e7fd62662b8fa252ab170c
(3157)
M tools/testcrds/source.toolkit.fluxcd.io_buckets.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-51742ececb70aec11f00834dd97ae5f2c876bd79623328c0ff98ea8fb266b733
(1429)
M tools/testcrds/source.toolkit.fluxcd.io_gitrepositories.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-338f23b08857ee00aa37bedfb3aa4ec74ee7cd570a150111507b0972e9349438
(2205)
M tools/testcrds/source.toolkit.fluxcd.io_helmcharts.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-19abaa447ac66eb6af1c5377a4e14587aac41d9f2e0c626dff651d2bce488513
(1840)
M tools/testcrds/source.toolkit.fluxcd.io_helmrepositories.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-56fab058901a3d358a39bbe762f5012167938ae70dccd9c4540c9e23d3ea4a27
(1612)
M tools/testcrds/source.toolkit.fluxcd.io_ocirepositories.yaml
https://github.com/weaveworks/weave-gitops/pull/4229/files#diff-f321d13a15af0dd63c5e03b1a7e3206a737517547f04c9d6c6a3e6abe4a413e3
(788)

Patch Links:

https://github.com/weaveworks/weave-gitops/pull/4229.patch
https://github.com/weaveworks/weave-gitops/pull/4229.diff

—
Reply to this email directly, view it on GitHub
https://github.com/weaveworks/weave-gitops/pull/4229, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA6C34SWRV5GA7CT7EU3A32CASMZAVCNFSM6AAAAABSKYWFVWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGY4DKNJUHE2TCNI
.
You are receiving this because you were mentioned.Message ID:
@.***>


Update sbt-release to 1.0.12

Updates com.github.gseitz:sbt-release from 1.0.11 to 1.0.12.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.gseitz", artifactId = "sbt-release" } ]

labels: semver-patch

Codecov Report

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

@@         Coverage Diff         @@
##           master   #8   +/-   ##
===================================
  Coverage       0%   0%
===================================
  Files           1    1
  Lines          46   46
===================================
  Misses         46   46

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 b9a1897...6b3ef9c. Read the comment docs.


Package Testing Hangs if Package Being Tested is the Root Directory of the Repository

Bug description
When testing a package, if the package is the root directory of the repository, the test runner hangs at least as long as the default timeout for GitHub Actions.
By "package is the root directory of the repository", I mean that the repository structure is as follows:
ROOT
-> README.md
-> Editor
-> Runtime
-> Tests
-> package.json
...

The opposite case, where this problem does not occur, is when the package is not the root directory of the repository, meaning that the repository structure is as follows:
ROOT
-> README.md
-> com.example.packagename
---> Editor
---> Runtime
---> Tests
---> package.json

How to reproduce

Take a Unity Package (preferably one which has been successfully tested with the test runner already), and upload it into a GitHub repository of it's own, such that the directory containing the package is the root of the repository.
Run the test runner on the repository, passing a value of . to the projectPath input for the action.
Observe that the test runner hangs.

Expected behavior
It would be expected for a package in the root of the repository to work the same as a package stored in a subdirectory of the root of the respository.
Additional details
A while ago, I dug into this to try to finish it before the completion of the package testing feature, but to no avail. Here are the comments on the original package testing issue and PR which discuss this problem:
Here is my in-depth info dump on the problem
Here is a description of a workaround I performed

Leaving this here for visibility: the workaround I linked to in the issue was a bit hacky, but it got the job done.
Essentially, I just copied the entirety of the root directory of the repository into a subdirectory, then passed that subdirectory in for the projectPath input, which then allowed the package to work correctly.
Here's a direct link to the workflow file where I did this, and below is the specific step in my workflow I used to do the folder copy:
      - name: copy dir to new dir
        run: |
          pwd
          folderName=$(echo "${PWD##*/}")
          rsync -r "$GITHUB_WORKSPACE" "copiedProject"
          ls -F "copiedProject/$folderName"

# then later give the test runner the projectPath arg with the value ./copiedProject/WhateverYourProjectNameIsHere

All that said, it's not a pretty solution, and maybe not even the best way to do the folder copy itself, since I probably just whipped it up in a hurry back when I was trying to debug this.

Thanks @trudeaua21 - also leaving this solution for moving into a separate folder:
          mkdir -p unity-package
          shopt -s extglob
          mv !(unity-package) unity-package/
          shopt -u extglob


Stricter argument hygiene for passing datamodules to trainer.fit or trainer.tune

What does this PR do?

Deprecates passing datamodules as an unnamed argument to trainer.fit and trainer.tune
Provides consistency with how datamodules are passed to validate and test
Lets us type train_dataloader properly in these APIs

Before submitting

[ ] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes? (if necessary)
[ ] Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review
Anyone in the community is free to review the PR once the tests have passed.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?
Make sure you had fun coding 🙃

Hello @ananthsub! Thanks for opening this PR.

In the file pytorch_lightning/trainer/trainer.py:

Line 445:121: E501 line too long (121 > 120 characters)
Line 674:121: E501 line too long (121 > 120 characters)

Do see the Hitchhiker's guide to code style


Garbled message text in 1.14.0

Storage Explorer Version: 1.14.0 -- just after upgrade, so probably newly introduced bug
Build Number: 20200624.3
Platform/OS: macOS Catalina 10.15.5
Architecture: x64
Regression From: Yes, prior release
Bug Description
Message text appears as seen in screenshot in the table, whereas it appears correctly in the "View Message" popup.

In the popup (parts obscured for privacy):

@evictor is there a chance you could share the full message with us? Or maybe a different one which is also affected by this issue?

Sorry, I should have mentioned this is with an Azure queue.
Here is a simple example of adding a message "Test 123" with UTF-8 encoding:

And then the garbled result as it appears in the table:

Note the odd expiration time also with year 9999.
Note also that the message body display is correct in the View Message popup:

Got it—thank you for the great product
On Wed, Jul 1, 2020 at 11:43 AM Matthew Rayermann<EMAIL_ADDRESS>wrote:

@evictor https://github.com/evictor OK, got it, we'll fix it the
encoding issue. As for the "weird date", that's what the server returns for
expiration date of a queue message that was added with a time to live of
"none".
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/AzureStorageExplorer/issues/3154#issuecomment-652585394,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMLRPCVSYCPWG75G7DWIZTRZN7WPANCNFSM4OLPCQQA
.

--

Zeke

What's happening is the queue message when you open it shows fine, but in the queue list it's trying to decode UTF-8 to Base-64. you can see this by taking what is in your queue message in UTF-8 format and decoding it from Base-64 (not encoding it to Base-64).

We've checked in a fix for this for our hotfix, 1.14.1.


Add UCXRequest

Ideas:

The internal request object contains a pointer to the external, which contains the real callback and arguments, rooted in an IdSet
Closure cfunctions, sadly don't work on PPC.
AsyncCondition and callback uses libuv to unlock that.
UCX 1.9 has an extended API

Ideas:

The internal request object contains a pointer to the external, which contains the real callback and arguments, rooted in an IdSet
Closure cfunctions, sadly don't work on PPC.
AsyncCondition and callback uses libuv to unlock that.
UCX 1.9 has an extended API


consideration of sigma-hole of halogen atoms

Jorgensen WL and Schyman P, "Treatment of Halogen Bonding in the OPLS-AA Force Field: Application to Potent Anti-HIV Agents, JCTC 8, 3895-3901, 2012
... should it be done with probe preparation? (with QM tools such as Gaussian)

http://molecular-modeling.dq.ua.pt/mediawiki/index.php/Implementation_of_an_Extra_Point_of_charge_for_halogen_bonding
Distance between Ep and halogen atoms:

pre-defined values are used at first
optimize the distance with consideration of minimization of RESP error

https://onlinelibrary.wiley.com/doi/full/10.1002/jcc.26841
Here is an example article how to create Ep


Virtual List poor performance on iOS v2.0-beta4

Short description of the problem:
Well, im trying the virtual list, and it worked perfect in android, it really boost my app in performance, but with iOS i got a really bad performance, it gets really laggy.
I have a list with 450 items and i'm using cards, and each card has some images.
Anyone having this same problem?
Thanks
Which Ionic Version? 2.x
Run ionic info from terminal/cmd prompt: (paste output below)
Your system information:
Cordova CLI: 6.0.0
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic Framework Version: 2.0.0-beta.4
Ionic CLI Version: 2.0.0-beta.24
Ionic App Lib Version: 2.0.0-beta.14
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Mac OS X El Capitan
Node Version: v5.6.0
Xcode version: Xcode 7.3 Build version 7D175

If you remove the images is the performance better? There's some updates that need to happen to ion-img for iOS. Right now Safari doesn't do a good job handling image requests.

@adamdbradley If i remove the img the perfomance is better, but it is not good enough.
I tried with ion-img and img, but i didint got any better performance, and the imgs are local, so im not using any http requests.

I have been testing virtual scroll with large lists including thumbnail images for each item as well and have also found some performance issues.
I have tried with both ion-img and regular img tags.
The main issue I notice is that when I first swipe either up or down there is a noticable stutter and THEN the scrolling starts and is nice and smooth.  Seems like just as it leaves the current viewport it stutters for a moment and then goes, almost like it's loading the next set of data and then it's all good.
it's a bit better with <ion-img when not using local images.

I have been testing this further with the same app and find that:
on Android device: virtualScroll is very smooth even with 1000+ item lists all with images
in Chrome with ionic Serve: virtualScroll is very smooth even with 1000+ item lists all with images
on iOS device (iphone6 os9.3): virtualScroll seems to have an initial lag the first time that you scroll, you don't seem to get the standard animation, it stutters and then jumps straight to where your scroll would have ended, subsequent scroll actions on the same list on the same page are much smoother.  Very odd.

just idea, can we use passive eventlistener polyfill (https://github.com/WICG/EventListenerOptions)?

I just read the blog for the release of beta6 that states that virtualScroll is already faster than collection-repeat and I think this is probably true on Android.
on iOS though I have the same large list in colletion-repeat in my old app version and it scrolls fine.  with virtualScroll on iOS there is a huge lag when you first start to scroll, it doesn't really animate the scroll, just jumps and stutters and then smooths out a bit but is still not close to what is achieved on the same list with collection-repeat on ionic v1.
I have updated to beta6 and tests on an iphone6 and see the same also in the iphone6s emulator.
Perfectly smooth in ionic serve or in Android though.  Would be great if some attention could be put towards performance on iOS as at the moment it's a complete blocker to letting anyone else start testing on my app.
I am happy to help testing on real devices and in browser to validate any changes made if that helps.

In case this was just related to images on iOS I also tried removing the per item images and just using an icon, same icon for every item and a much shorter list and I still get this big stutter when you first start scrolling.
This is the same on beta6 as it is on beta4.
Can be reproduced on both the emulator and a real device like the iphone6.
tried enabling prodmode as well just in case that granted some extra performance on ios but still the same.
retested on android again and Android virtualScroll is awesomely smooth with the same code.

Found something interesting.  Tested with the wkwebview plugin with local webserver, ran through xcode to monitor resource usage and the scrolling is silky smooth and everything works beautifully.  Unfortunately wkwebview is not an option for me until I can access storage locations outside of the www/ root.  But interesting that the virtualScroll performance looks great here.
I then went back to uiwebview and ran through xcode so I could monitor it's resource usage.  While resource usage is obviously higher the CPU was still only peaking at 50% memory usage around 80-90mb which is very normal from my experience.  So it didn't seem to be a straight performance issue on starting to scroll the list.
Interestingly though in the native console I noticed that there IS an exception thrown at the point when the first page with virtualscroll is entered and then a smaller error thrown on every page with virtual scroll after that.  This might be what is causing the initial lag and then the poor scrolling performance after.  I have pasted the log below from cold app start up to enter the first view with virtualscroll where the large error is thrown, then moving in and out of other views with virtual scroll triggers the smaller errors at the end each time a view is entered.
2016-04-27 09:25:39.359 beta4[5574:2205235] Apache Cordova native platform version 4.1.1 is starting.
2016-04-27 09:25:39.364 beta4[5574:2205235] Multi-tasking -> Device: YES, App: YES
2016-04-27 09:25:39.624 beta4[5574:2205235] Using UIWebView
2016-04-27 09:25:39.629 beta4[5574:2205235] [CDVTimer][handleopenurl] 0.133991ms
2016-04-27 09:25:39.632 beta4[5574:2205235] [CDVTimer][intentandnavigationfilter] 3.175974ms
2016-04-27 09:25:39.632 beta4[5574:2205235] [CDVTimer][gesturehandler] 0.104010ms
2016-04-27 09:25:39.663 beta4[5574:2205235] [CDVTimer][splashscreen] 31.032026ms
2016-04-27 09:25:39.715 beta4[5574:2205235] [CDVTimer][statusbar] 50.534010ms
2016-04-27 09:25:39.717 beta4[5574:2205235] [CDVTimer][keyboard] 1.479983ms
2016-04-27 09:25:39.717 beta4[5574:2205235] [CDVTimer][TotalPluginStartup] 88.863015ms
2016-04-27 09:25:42.176 beta4[5574:2205235] Resetting plugins due to page load.
2016-04-27 09:25:43.340 beta4[5574:2205235] Finished load of: file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/index.html
2016-04-27 09:25:45.132 beta4[5574:2205235] DEVICE READY FIRED AFTER 1968 ms
2016-04-27 09:25:45.142 beta4[5574:2205235] all albums count: 1093
2016-04-27 09:26:26.649 beta4[5574:2205235] EXCEPTION: TypeError: null is not an object (evaluating '_this._el.removeEventListener')
2016-04-27 09:26:26.649 beta4[5574:2205235] ERROR: EXCEPTION: TypeError: null is not an object (evaluating '_this._el.removeEventListener')
2016-04-27 09:26:26.649 beta4[5574:2205235] ERROR: STACKTRACE:
2016-04-27 09:26:26.649 beta4[5574:2205235] ERROR: file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:64778:22
ngOnDestroy@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:58447:35
dehydrateDirectives
dehydrate@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:15442:33
destroyRecursive@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:15455:23
destroyRecursive@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:15462:41
destroy@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:25081:45
destroyViewInContainer@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:25546:21
remove@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:25408:41
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46558:41
destroy@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:47996:30
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46484:25
forEach@[native code]
_cleanup@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46482:25
_transFinish@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46401:30
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46161:31
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46374:21
invoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:390:34
onInvoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29625:47
invoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:389:43
runGuarded@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:297:54
runInner@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29656:81
run@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29563:74
_afterTrans@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46345:23
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46321:34
_didFinish@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:38452:26
play@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:38126:28
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46332:36
invoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:390:34
run@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:283:50
runOuter@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29658:74
runOutsideAngular@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29576:88
_beforeTrans@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46290:37
_postRender@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46272:26
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46207:38
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:46585:17
invoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:390:34
onInvoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29625:47
invoke@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:389:43
run@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:283:50
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:635:61
invokeTask@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:423:43
onInvokeTask@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/app.bundle.js:29616:51
invokeTask@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:422:55
runTask@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:320:58
drainMicroTaskQueue@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/angular2-polyfills.js:541:43
g@file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/es6-shim.min.js:11:1947
file:///var/containers/Bundle/Application/00004377-9A56-4A8A-AD20-E62CD8830B6E/beta4.app/www/build/js/es6-shim.min.js:11:1877
promiseReactionJob@[native code]
2016-04-27 09:26:26.956 beta4[5574:2205235] -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:26:26.960 beta4[5574:2205235] *** WebKit discarded an uncaught exception in the webView:willRemoveScrollingLayer:withContentsLayer:forNode: delegate:  -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:26:39.260 beta4[5574:2205235] Received memory warning.
242016-04-27 09:27:32.518 beta4[5574:2205235] -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:27:32.518 beta4[5574:2205235] *** WebKit discarded an uncaught exception in the webView:willRemoveScrollingLayer:withContentsLayer:forNode: delegate:  -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:57:13.710 beta4[5574:2205235] exeption nativeEvalAndFetch : TypeError: null is not an object (evaluating 'elt.constructor')
2016-04-27 09:57:45.540 beta4[5574:2205235] -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:57:45.544 beta4[5574:2205235] *** WebKit discarded an uncaught exception in the webView:willRemoveScrollingLayer:withContentsLayer:forNode: delegate:  -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:57:56.192 beta4[5574:2205235] -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0
2016-04-27 09:57:56.192 beta4[5574:2205235] *** WebKit discarded an uncaught exception in the webView:willRemoveScrollingLayer:withContentsLayer:forNode: delegate:  -[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12751a0a0

Any chance of some feedback on this?  It seems to be a problem that still persists with beta6 and only affected uiwebview on iOS.

With beta6, we have problems on ios here too.
While on android it's working really well, on ios it's doing nonsense with items you can't see, white spaces everywhere... Strange !

Same issues on beta6 with iOS 9.3.2. With ~1600 items. When I try to scroll them list items will blanked and then my app crashed with Terminated due to memory error.

This issue is even worse with beta7.  Scrolling is now extremely laggy.  ion-img no longer loads images in virtualscroll list after scrolling for me either.
virtualscroll on ios uiwebview really needs a bit of love, it's not usable at the moment for me unfortunately.

Did anyone find any solution for this? I actually have a virtual scroll with just 20 items and it doesn't work well at all. This issue is present in ion-list and ion-select as well.

Yeh it doesn't seem to be better with shorter lists.  As I posted above I see errors thrown in the native console when I start to scroll a virtual list.
I haven't seen any feedback or comments from the ionic team yet about performance on ios.
@adamdbradley I know that ionic2 is in beta state but any chance of a quick update on when virtualscroll on ios is likely to get a little love?  It is brilliant on Android for me, far better than collection-repeat ever was and on ios with wkwebview it is also really fast but unfortunately wkwebview has pretty limited application at the moment with all it's limitations.

hey @ghenry22, yesterday I moved my app to beta.7 and set a [approxItemHeight]="'#px'" to the virtual scroll tag, it's working a little bit better, I still see some issues when you scroll the first time but then it works better. But as you said ion-image is not longer working.

Thanks for the feedback and error logs, I'll start looking into improving performance on UIWebView.
@evgeniynet Yeah Passive Event Listeners would be awesome here, but sadly we're still constrained by UIWebView. But eventually we will be able to move to Passive Event Listeners which should bump up performance.

Happy to help out testing if that is useful just let me know

This issue is related: https://github.com/driftyco/ionic/issues/6984

@ghenry22 Have you been able to test out beta9's virtual scroll?

@adamdbradley - Yes I have updated to beta9 and it appears much better but still with some issues as I logged in #6984 which make it a bit hard to test thoroughly at the moment.

Ok thanks, then I'll close this one and we can work off the new issue.


.barba-container does not disappear

Hey there
I really like your library, but in my project is something wrong. After I click a link, Barba is fetching the requested site but then the old one does not disappear. Here is my Code:
var Barba = require('barba.js');
var TweenMax = require('gsap');

module.exports = {
  start: function () {
    Promise
      .all([this.newContainerLoading, this.fadeOut()])
      .then(this.fadeIn.bind(this));
  },
  fadeOut: function () {
    var deferred = Barba.Utils.deferred();
    TweenMax.to(this.oldContainer, 0.4, {opacity: 0, onComplete: function () {
      deferred.resolve();
    }});
    return deferred.promise;
  },
  fadeIn: function () {
    var _this = this;
    this.oldContainer.style.display = 'none';
    TweenMax.from(document.querySelector('body'), 1, {opacity: 0, y: 100, onComplete: function () {
      _this.done();
    }});
  }
};

var WyBarbaTransition = require('./transition.js');
var Barba = require('barba.js');

document.addEventListener("DOMContentLoaded", function(event) {

	Barba.Pjax.Dom.wrapperId = 'page';
	Barba.Prefetch.init();
	Barba.Pjax.start();

	Barba.Pjax.getTransition = function () {
		return Barba.BaseTransition.extend(WyBarbaTransition);
	};

});

Do you see something wrong?

Hello @Virnus , the code looks after a first sight.
Can you debug and make sure that .done() is correctly called?
When you say that the old page do not disappear, you mean that stays in the DOM? or that it's always visible?

The function .done() gets called.
The old page stays in the dom and is still visible. the new page looks like this: <div style="visibility: hidden;" class="barba-container">


A few minor typos in the user intrest options

Zoo's should be Zoos (remove the apostrophe)
Body of Waters should be Bodies of Water
Winery's should be Wineries

I am going to close this. I found and fixed the typos. I'll push it with the rest of my code soon.


feat(gateway): heartbeat jitter

To spread out server load, Discord wants gateway users to randomize the initial heartbeat event time.
See https://discord.com/developers/docs/topics/gateway#heartbeat-interval

This shouldn't be targeted at another PR i believe.

I'll reorder the PRs and make the other one depend upon this one


Example of pagenumber pagination with infinite scroll

Hello,
I'm wondering if anyone has any examples of how to implement infinite scroll with PageNumberPagination? I'm kind of lost trying to figure it out.. right now I have my Route.model set to this.store.query('model', params) but not sure exactly how to do it etc... just wondering if anyone could help me out! thanks!

anyone have any input on this?


[MM-19601] Update to v12.0.10, fix alt issue in linux

Summary
Update to electron v12.0.10
Should fix #1080 #1399 as well as some other issues
Ticket Link
MM-19601
Release Note
update to v12.0.10, fixed alt+shift problem on Linux.

I'm slightly concerned about changing the package-lock to this new version since we didn't have any discussions regarding node v16 and npm v7 is it ok or should we keep the prev. version?

tested alt+shift doesn't trigger menu, alt by itself does trigger it.
OS ubuntu 21.04

I'm slightly concerned about changing the package-lock to this new version since we didn't have any discussions regarding node v16 and npm v7 is it ok or should we keep the prev. version?

I think it makes sense to use Node v16 and npm v7 for development on the desktop app, since we're using it for the webapp. So I think the changes are fine.


Operator fails for RZGate with 10 control qubits

What is happening?
Creating an operator from RZGate controlled by 10 qubits raises ValueError.
How can we reproduce the issue?
from qiskit import QuantumCircuit, QuantumRegister
from qiskit.circuit.library import RZGate
from qiskit.quantum_info import Operator

n_qubits=11
qr = QuantumRegister(n_qubits)
qc = QuantumCircuit(qr)
mcrz_gate = RZGate(0.3).control(n_qubits-1)
qc.append(mcrz_gate, qr)
op = Operator(qc)
#op = Operator(qc.decompose(reps=1))    # it works if we decompose qc.
op.num_qubits

This results in ValueError: too many subscripts in einsum. As mentioned in the comments, it works fine if we decompose the circuit.
What should happen?
It should not raise the error.

The issue arises when trying to create an Operator from a QuantumCircuit that contains a RZGate with a large number of control qubits. The error message ValueError: too many subscripts in einsum suggests that the problem is related to the handling of large tensor products or matrix multiplications in the Operator class. This can occur when the number of control qubits results in an exponentially large matrix representation that exceeds the capabilities of NumPy's einsum function.
To address this issue, we can consider the following changes:

Optimize the RZGate Control Method: Ensure that the control method of RZGate and other related controlled gates handle large numbers of control qubits more efficiently, potentially by using more efficient synthesis or decomposition methods.

Modify the Operator Class: Adjust the Operator class to handle large matrices more gracefully, possibly by using a more memory-efficient representation or by decomposing the circuit before attempting to create an operator.

Automatic Decomposition: Implement a mechanism to automatically decompose circuits with a large number of control qubits before creating an Operator, as decomposing the circuit manually works around the issue.

Let's implement these suggestions:
Changes to qiskit/circuit/library/standard_gates/rz.py
Enhance the RZGate control method to handle large numbers of control qubits by using a more efficient decomposition:
def control(
    self,
    num_ctrl_qubits: int = 1,
    label: str | None = None,
    ctrl_state: str | int | None = None,
    annotated: bool | None = None,
):
    """Return a (multi-)controlled-RZ gate."""
    if num_ctrl_qubits > 5:  # Arbitrary threshold for decomposition
        from qiskit.circuit.library import MCPhaseGate
        return MCPhaseGate(self.params[0], num_ctrl_qubits, ctrl_state=ctrl_state)
    # Existing logic for smaller numbers of control qubits
    ...

Changes to qiskit/quantum_info/operator.py
Modify the Operator constructor to automatically decompose the circuit if it contains a large number of control qubits:
class Operator:
    def __init__(self, data):
        if isinstance(data, QuantumCircuit):
            if self._contains_large_controlled_gates(data):
                data = data.decompose()
        # Existing initialization logic
        ...

    def _contains_large_controlled_gates(self, circuit):
        for instruction in circuit.data:
            if isinstance(instruction.operation, ControlledGate) and instruction.operation.num_ctrl_qubits > 5:
                return True
        return False

Explanation

RZGate Control Enhancement: By using a more efficient method for creating multi-controlled phase gates (MCPhaseGate), we can handle large numbers of control qubits more effectively.

Automatic Decomposition in Operator: Before attempting to create an Operator, we check if the circuit contains large controlled gates and decompose the circuit if necessary. This avoids the issue with einsum by reducing the complexity of the matrix representation.

These changes should help mitigate the issue by avoiding the creation of excessively large matrices that lead to the einsum error.


[Sign up] User can register to the platform

User provides registration credentials and creates an account on the platform

[ ] Write test for POST /user endpoint  using JEST
[ ] Create a user model
[ ] Create a routes file with POST  /users  endpoint
[ ] Create a user controller exporting signup function
[ ] Run the user_can_signup test


Update Docs for query_key types (compound_query_key)

Compound query keys must be passed as a list of strings. This updates the docs to reflect the possible query_key types.
Reference where query_key type is checked for setting the compound_query_key
https://github.com/Yelp/elastalert/blob/2791119dc1e31abe5c46bf1b733d40de90ed37a1/elastalert/loaders.py#L332

Test are failing


Unexpected indenting when chaining commands

That ^
In case it matters, here is my RustFmt:
hard_tabs         = true
trailing_comma    = "Never"
use_try_shorthand = true
wrap_comments     = true
format_strings    = true
fn_single_line    = true
match_block_trailing_comma = true
condense_wildcard_suffices = true

reorder_imports          = true
reorder_imported_names   = true
reorder_imports_in_group = true

array_layout  = "Block"
fn_call_style = "Block"
max_width     = 200

Closed by #1565.


Apply the bulk of changes from upstream post-open-source

This updates the BE port with most of the changes that have occurred since the open-sourcing of the vanilla game. Most of the changes are bug fixes, but this also makes the sidebar resource customizable.
Notation-related changes are not ported over as I'm not sure how they would be reconciled with future changes to the notation system specific to the BE port.
Most of the commits are untested due to unrelated errors that occur while importing vanilla saves.

I've updated my comment to be correct (it originally stated a file that did not exist)
Notation changes should be fine, since afaik the notation code was only done post-patches. Minor bugs might exist, but if needed I can manually sort them out.

Notation changes should be fine, since afaik the notation code was only done post-patches. Minor bugs might exist, but if needed I can manually sort them out.

Porting over the relevant commits listed below gives a working modal allowing the player to change the minimum number of digits necessary to show commas or notation in the exponent; however, this is currently nonfunctional for all notations.

https://github.com/IvarK/AntimatterDimensionsSourceCode/commit/6bc1a0b50cd4747e54bea7a59b5102d355cf615e
https://github.com/IvarK/AntimatterDimensionsSourceCode/commit/772ab98ab16c5ad5de91bcc4956012394172291d
https://github.com/IvarK/AntimatterDimensionsSourceCode/commit/745c5585dff23e06f63efc438d56aff92b91d200

Notation changes should be fine, since afaik the notation code was only done post-patches. Minor bugs might exist, but if needed I can manually sort them out.

Porting over the relevant commits listed below gives a working modal allowing the player to change the minimum number of digits necessary to show commas or notation in the exponent; however, this is currently nonfunctional for all notations.

IvarK/AntimatterDimensionsSourceCode@6bc1a0b
IvarK/AntimatterDimensionsSourceCode@772ab98
IvarK/AntimatterDimensionsSourceCode@745c558

You will need to change the code to do import * as ADNotations from "adnot-beport-small"; instead

I have updated the relevant line and pushed the notation changes as they all work now.


[FLINK-32738][formats] PROTOBUF format supports projection push down

What is the purpose of the change
Enable projection pushdown for protobuf format
Brief change log

Enable projection pushdown for protobuf format

Verifying this change
Please make sure both new and modified tests in this PR follows the conventions defined in our code quality guide: https://flink.apache.org/contributing/code-style-and-quality-common.html#testing
This change is already covered by existing tests, such as all the Proto to Row tests.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not documented)
](https://github.com/apache/flink/pull/23323)

@libenchao Hi Master, This CI seems failed with Node.js related issue. Would you please help review the Pb projection logic first? I have made it pass all the proto2row test. Let me know if any need clarification

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@flinkbot run azure

@libenchao Hi Master, This CI seems failed with Node.js related issue. Would you please help review the Pb projection logic first? I have made it pass all the proto2row test. Let me know if any need clarification

@zhougit86 You can use the command '@flinkbot run azure' to rerun the CI as suggested in the flinkbot's comment.
Besides, you don't need to call me or any other Committers/PMC members "Master", we are all volunteers to this project.

@libenchao got you Benchao. And I found the CI has passed. Please help review the commit when you have time.

@zhougit86 Yes, I can review this, however, I have limited spare time, which means that I may respond slowly.

Ok, take your time. Let me know if any clarification needed

@zhougit86 Yes, I can review this, however, I have limited spare time, which means that I may respond slowly.

Ok, take your time. Let me know if any clarification needed

@maosuhan @ljw-hit Are you interested in reviewing this?

@maosuhan @ljw-hit Are you interested in reviewing this?

@maosuhan @ljw-hit Would you please help to review? this commit is to enable projection pushdown for the pb format.

@zhougit86 @libenchao I am very happy to review this code. I will take a look during this time.

@zhougit86 @libenchao I am very happy to review this code. I will take a look during this time.

@ljw-hit Hi Bro,  May I know your review advice

Hi, I will give my review suggestions in the next two days
------------------ 原始邮件 ------------------
发件人: "Xiaogang @.>;
发送时间: 2023年10月8日(星期天) 晚上6:45
收件人: @.>;
抄送: @.>; @.>;
主题: Re: [apache/flink] [FLINK-32738][formats] PROTOBUF format supports projection push down (PR #23323)
@zhougit86 @libenchao I am very happy to review this code. I will take a look during this time.
@ljw-hit Hi Bro,  May I know your review advice
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

Hi, I will give my review suggestions in the next two days
…
------------------ 原始邮件 ------------------ 发件人: "Xiaogang @.>; 发送时间: 2023年10月8日(星期天) 晚上6:45 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [apache/flink] [FLINK-32738][formats] PROTOBUF format supports projection push down (PR #23323) @zhougit86 @libenchao I am very happy to review this code. I will take a look during this time. @ljw-hit Hi Bro, May I know your review advice — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

Hi @ljw-hit , sorry to disturb you. I know you must be very busy, could you please have a review on this?

@zhougit86  Sorry, I'm a little busy recently. You can take a look at this PR. There are some modifications to the logic of codegen and the code will be split. You may need to rebase this for compatibility.

@zhougit86 Thank you for your patience. The ability to split protobuf code has been merged with commit a2ec4c. You can rebase and resolve any code conflicts. Let's work together to merge the protobuf projection pushdown capability.

@ljw-hit Hi Bro, I have merged my commit based on yours. And made your new test passed. Please help me review. Thanks

@zhougit86 Thank you for your patience and contribution. I will complete the review within the next two weeks and provide comments.

@zhougit86 Thank you for your patience and contribution. I will complete the review within the next two weeks and provide comments.

@ljw-hit just a reminder to review, thx 💯

@ljw-hit @libenchao Hi Bro, would you please help review this commit again? Do you think it necessary to create 2 constructor PbDecodingFormat.java ?

@libenchao Hi benchao, seems ljw has been busy, do you mind help review this PR? thanks

@zhougit86 @libenchao I'm very sorry, there have been a lot of things going on at the company recently, and I haven't had time to invest in the community. I'm here now to continue following up on this matter, and let's work together to get it done.

@zhougit86 @libenchao I'm very sorry, there have been a lot of things going on at the company recently, and I haven't had time to invest in the community. I'm here now to continue following up on this PR, and let's work together to get it done.

@ljw-hit thanks bro :) , let me know if any question


[test] Remove dead code

We don't use ReactDOM.render anymore anywhere.

Shouldn't we, though? https://app.circleci.com/insights/github/mui/material-ui/workflows/react-17-cron/overview

Shouldn't we, though?

Yes, if we want these to run again. Taking a quick look at them, things we'll have to fix additionally:

132 faiing unit tests, mostly because we use testing library renderHook.
regression tests failing because depedencies use 'react/jsx-runtime'.

Not fully convinced it makes sense to allocate a lot of time to this.

Then let's disable the tests so we don't waste credits for no reason.


pydantic: support confloat fields

Description
This patch adds support for constrained float field types in Pydantic models.
Types of Changes

[ ] Core
[x] Bugfix
[x] New feature
[ ] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR

Closes #2362

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Thanks for adding the RELEASE.md file!

Here's a preview of the changelog:

Support constrained float field types in Pydantic models.
i.e.
import pydantic

class Model(pydantic.BaseModel):
    field: pydantic.confloat(le=100.0)
	equivalent_field: float = pydantic.Field(le=100.0)

Here's the preview release card for twitter:

Here's the tweet text:
🆕 Release (next) is out! Thanks to Etienne Wodey for the PR 👏

Get it here 👉 https://github.com/strawberry-graphql/strawberry/releases/tag/(next)


Import acoustics to the simulator

Need to import the acoustics into the simulator, such that the algorithms can be tested without the AUV

Explore data logging solutions using ROS bags, look into other tools as well. Would be nice to write a custom Python based data visualization program to plot various topics.
Best current solution for real-time simulator logging is using Gazebo with Webviz interface.

There is no standard way of adding this, thus it will probably be very time-consuming to implement. We therefore close the issue for now

There is no standard way of adding this, thus it will probably be very time-consuming to implement. We therefore close the issue for now


Add support for role based security in ATC generator.

https://swagger.io/docs/specification/authentication/

Design proposal
Setup in yaml file will be done using security schemes and the first type to support is OAuth2 with client id + client secret as authetication. Scopes will be used to support access based on rights.
This can be done like shown below:
Definition of the security schema:
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: 'https://login.microsoftonline.com/39e165d1-ec01-4e3b-9691-3c8268c2e60e/oauth2/v2.0/token'
          refreshUrl: ''
          scopes:
            api.execute.all: Access to all operations
            api.execute.smartcharging: Access to smart charging operations.
      description: OAuth2 using client id + client secret

Usage in a operation:
paths:
  '/items/{id}':
    put:
      summary: 'Updates an item'
      description: 'Updates an item'
      operationId: updateItem
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateItemRequest'
      parameters:
        - name: id
          in: path
          description: The id of the order
          required: true
          schema:
            type: string
            format: uuid
      security:
        - oAuth2ClientCredentials:
            - api.execute.all
            - api.execute.read

The generated code will affect the controller class(es) and will add an Authorize attribute to each method that is setup with security in its operation definition. The Roles property in the Authorize attribute maps to OAuth2 scopes and these are defined in the securiy scheme.
As the Roles property of the Authorize attribute treats multiple attributes on the same method as AND requirements it will be needed to have only 1 attribute per method to support OR and the roles will have to be comma separated. To make the code a bit nicer a static class with scope definitions are generated for each defined security schema.
The generated code could look something like this:
namespace Demo.Api.Generated.Security
{
    public static class OAuth2ClientCredentials
    {
        // Single scopes
        public const string ApiExecuteAll = "api.execute.all";
        public const string ApiExecuteRead = "api.execute.read";

        // Combined scopes
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Better readability for combined scopes.")]
        [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1310:Field names should not contain underscore", Justification = "Better readability for combined scopes.")]
        public const string ApiExecuteAll_ApiExecuteRead = ApiExecuteAll + "," + ApiExecuteRead;
    }
}

namespace Demo.Api.Generated.Endpoints
{
    /// <summary>
    /// Endpoint definitions.
    /// Area: Items.
    /// </summary>
    [ApiController]
    [Authorize]
    [Route("api/v1/items")]
    [GeneratedCode("ApiGenerator", "<IP_ADDRESS>")]
    public class ItemsController : ControllerBase
    {
        /// <summary>
        /// Description: Updates an item.
        /// Operation: UpdateItem.
        /// Area: Items.
        /// </summary>
        [HttpPut("{id}")]
        [Authorize(Roles = OAuth2ClientCredentials.ApiExecuteAll_ApiExecuteRead)]
        [ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
        public Task<ActionResult> UpdateItemAsync(UpdateItemParameters parameters, [FromServices] IUpdateItemHandler handler, CancellationToken cancellationToken)
        {
            if (handler is null)
            {
                throw new ArgumentNullException(nameof(handler));
            }

            return InvokeUpdateItemAsync(parameters, handler, cancellationToken);
        }

        private static async Task<ActionResult> InvokeUpdateItemAsync(UpdateItemParameters parameters, IUpdateItemHandler handler, CancellationToken cancellationToken)
        {
            return await handler.ExecuteAsync(parameters, cancellationToken);
        }
    }
}

Design proposal
Setup in yaml file will be done using security schemes and the first type to support is OAuth2 with client id + client secret as authetication. Scopes will be used to support access based on rights.
This can be done like shown below:
Definition of the security schema:
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: 'https://login.microsoftonline.com/39e165d1-ec01-4e3b-9691-3c8268c2e60e/oauth2/v2.0/token'
          refreshUrl: ''
          scopes:
            api.execute.all: Access to all operations
            api.execute.smartcharging: Access to smart charging operations.
      description: OAuth2 using client id + client secret

Usage in a operation:
paths:
  '/items/{id}':
    put:
      summary: 'Updates an item'
      description: 'Updates an item'
      operationId: updateItem
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateItemRequest'
      parameters:
        - name: id
          in: path
          description: The id of the order
          required: true
          schema:
            type: string
            format: uuid
      security:
        - oAuth2ClientCredentials:
            - api.execute.all
            - api.execute.read

The generated code will affect the controller class(es) and will add an Authorize attribute to each method that is setup with security in its operation definition. The Roles property in the Authorize attribute maps to OAuth2 scopes and these are defined in the securiy scheme.
As the Roles property of the Authorize attribute treats multiple attributes on the same method as AND requirements it will be needed to have only 1 attribute per method to support OR and the roles will have to be comma separated. To make the code a bit nicer a static class with scope definitions are generated for each defined security schema.
The generated code could look something like this:
namespace Demo.Api.Generated.Security
{
    public static class OAuth2ClientCredentials
    {
        // Single scopes
        public const string ApiExecuteAll = "api.execute.all";
        public const string ApiExecuteRead = "api.execute.read";

        // Combined scopes
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Naming", "CA1707:Identifiers should not contain underscores", Justification = "Better readability for combined scopes.")]
        [System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1310:Field names should not contain underscore", Justification = "Better readability for combined scopes.")]
        public const string ApiExecuteAll_ApiExecuteRead = ApiExecuteAll + "," + ApiExecuteRead;
    }
}

namespace Demo.Api.Generated.Endpoints
{
    /// <summary>
    /// Endpoint definitions.
    /// Area: Items.
    /// </summary>
    [ApiController]
    [Authorize]
    [Route("api/v1/items")]
    [GeneratedCode("ApiGenerator", "<IP_ADDRESS>")]
    public class ItemsController : ControllerBase
    {
        /// <summary>
        /// Description: Updates an item.
        /// Operation: UpdateItem.
        /// Area: Items.
        /// </summary>
        [HttpPut("{id}")]
        [Authorize(Roles = OAuth2ClientCredentials.ApiExecuteAll_ApiExecuteRead)]
        [ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
        public Task<ActionResult> UpdateItemAsync(UpdateItemParameters parameters, [FromServices] IUpdateItemHandler handler, CancellationToken cancellationToken)
        {
            if (handler is null)
            {
                throw new ArgumentNullException(nameof(handler));
            }

            return InvokeUpdateItemAsync(parameters, handler, cancellationToken);
        }

        private static async Task<ActionResult> InvokeUpdateItemAsync(UpdateItemParameters parameters, IUpdateItemHandler handler, CancellationToken cancellationToken)
        {
            return await handler.ExecuteAsync(parameters, cancellationToken);
        }
    }
}

The problem with using scopes are that any external client generating code from this OpenApi spec will assume it is the required OAuth scope, but what it really is, is just a role-claim in the JWT token.

The problem with using scopes are that any external client generating code from this OpenApi spec will assume it is the required OAuth scope, but what it really is, is just a role-claim in the JWT token.


Support for default JSON deserialization of arrays of objects in form data request bodies in OpenAPI 3

User Story Description

As a developer, I want to be able to pass in arrays of objects in multipart/form-data and application/x-www-form-urlencoded request bodies, not just arrays of primitives.
Acceptance Criteria

Arrays in form data request bodies, with delimiters specified by the encoding style, can now include JSON objects. For instance, curl -v -F "arrays={'foo':'value', 'data':'a'}, {'foo':'value1', 'data':'a'}, {'foo':'value2', 'data':'a'}" when 'arrays' has the Form encoding style with explode set to false, will get serialized appropriately as the array [{'foo':'value', 'data':'a'}, {'foo':'value1', 'data':'a'}, {'foo':'value2', 'data':'a'}]. This is based on the default serialization standard for arrays of objects in OpenAPI 3: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.1.md#styleValues. As far as I understand, arrays of objects are not supported in OpenAPI 2.
Currently, curl -v -F "arrays={'foo':'value', 'data':'a'}, {'foo':'value1', 'data':'a'}, {'foo':'value2', 'data':'a'} will result in a type error as 'arrays' will have the string literal value of the JSON array.
Sprint Ready Checklist

[ ] Acceptance criteria defined
[ ] Team understands acceptance criteria
[ ] Team has defined solution / steps to satisfy acceptance criteria
[ ] Acceptance criteria is verifiable / testable
[ ] External / 3rd Party dependencies identified

we appreciate the issue and pr @ilanashapiro! however, we do not see that there is a standard way to construct such a request body schema. The style prop describes query, path, header and cookie parameters objects. do you see something in oas 3.x where that would apply to a request body schema? otherwise we will close the issue and pr.

@daniel-white I see how the style prop in this particular table only describes query, path, header, and cookie parameter objects. I realized I should have made the link more specific, as this same document also has a description of how the request body schema should be serialized for form data: https://tinyurl.com/dnca4knd.
Specifically, "the following default Content-Types are defined for multipart... If the property is complex, or an array of complex values, the default Content-Type is application/json".
Then, in the example below, it specifies that the "default Content-Type for arrays is based on the inner type (object shown, so application/json in this example)".
Subsequently, the following table (https://tinyurl.com/5n8wemsx) goes on to discuss how one can apply single encoding definitions to a single schema property in the request body. For the style attribute, the following description is given: "Describes how a specific property value will be serialized depending on its type... The behavior follows the same values as query parameters, including default values."
According to this standard, one can specify how the parameter in the request body should be serialized using the content-type prop in the encoding object. However, my PR only introduces support for the default serialization strategy (arrays of objects as JSON), although I could certainly work on introducing custom content-type serialization in a future PR.

@daniel-white just wanted to check in if it's ok to move ahead with the issue and PR? Thanks!

@rattrayalex @RobertCraigie

@ilanashapiro our team took a look at your PR - we need to get it into a sprint to review more in depth. thanks for your patience.


Remove EvaluationContext as a forApplication Parameter

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

Instead use it as a paraemmter to the Evaluator Factory. Evaluator
Factories must not be reused across pipelines, as they may be stateful.
Evaluation Contexts are representative of a single execution of a
Pipeline and thus can be passed at construction time.

R: @bjchambers

LGTM


Connection 404

Alex just say hallo und in the tunein.log files:
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.amazon.com
DEBUG:urllib3.connectionpool:"GET /auth/o2/token HTTP/1.1" 404 29
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.amazon.com
DEBUG:urllib3.connectionpool:"GET /auth/o2/token HTTP/1.1" 404 29

This project is now deprecated in favor of the new AlexaPi (https://github.com/alexa-pi/AlexaPi) which has all the features of this project and much more, such as:

support for a wide range of devices and platforms (Raspberry Pi, CHIP, Orange Pi, desktops, Magic Mirror and others)
voice activation (great PocketSphinx support and snowboy support soon to be released)
much more robust installation and configuration
better security
Arch Linux support
awesome documentation
and much, much more! You get it - it's just awesome.

Please switch over to the new project and if your issue persists there, file an issue in the new repo's issue tracker. Thank you.


Refactor MessageEntityType

This PR changes MessageEntityType to use class instead of enum to preserve original string value from the Bot API.
From a user standpoint not much is changed. But in case if Telegram again suddenly adds another entity type this change will preserve its original string value even through several json convertions so one could update its bot without waiting for the library update to see what the new type is.
// Old
var messageEntity = new MessageEntity
{
    Type = MessageEntityType.Hashtag,
    Offset = 10,
    Legnth = 10
};

switch (messageEntity.Type)
{
    case MessageEntityType.Hashtag:
    ...
}

// New
var messageEntity = new MessageEntity
{
    Type = MessageEntityType.Hashtag,
    Offset = 10,
    Legnth = 10
};

switch (messageEntity.Type.Type)
{
    case EntityType.Hashtag:
    ...
}

Naming could be tweaked a bit to make it look better. I don't like .Type.Type but couldn't come up with something better.

Maybe rename the last .Type to something with Enum?

I think this PR can be closed. This approach isn't substantially better compared to using strings and static classes for help.


Update Minecraft Wiki links to new domain

The Minecraft Fandom wiki has been forked to a new domain: minecraft.wiki. Learn more here: https://minecraft.wiki/w/Minecraft_Wiki:Moving_from_Fandom. This PR updates all URLs accordingly.

@microsoft-github-policy-service agree

Thank you for this PR! To make our Github instances happier, I've fixed these manually on our staging repo and will push to the public repo soon.


[BUG] SegFault when doing a host to GPU columnar transition for a very large data string.

Describe the bug
I don't have a tone of information yet on this. I was trying to reproduce/debug some slowness with a specific query and it looked like it was related to a regular expression problem. I thought it might be related to a very large string, so I created a 300 KiB string with a lot of rows. The string was duplicated for each of the rows.  When I tried to read it in from parquet it would fail with out of memory errors because the split code could not deal with it yet.  When I turned off the parquet reader I got a segfault.
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fecf9052416, pid=1597425, tid=0x00007fecbc9f9700
#
# JRE version: OpenJDK Runtime Environment (8.0_382-b05) (build 1.8.0_382-8u382-ga-1~20.04.1-b05)
# Java VM: OpenJDK 64-Bit Server VM (25.382-b05 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# v  ~StubRoutines::jbyte_disjoint_arraycopy
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /.../hs_err_pid1597425.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

Looking at the file I see a stack trace of.
Stack: [0x00007fecbc8f9000,0x00007fecbc9fa000],  sp=0x00007fecbc9f6ae0,  free space=1014k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
v  ~StubRoutines::jbyte_disjoint_arraycopy
J 17997 C2 ai.rapids.cudf.HostColumnVector$ColumnBuilder.appendUTF8String([BII)Lai/rapids/cudf/HostColumnVector$ColumnBuilder; (222 bytes
) @ 0x00007fecfc3af227 [0x00007fecfc3af120+0x107]
J 18107 C1 com.nvidia.spark.rapids.ColumnarCopyHelper.stringCopy(Lorg/apache/spark/sql/vectorized/ColumnVector;Lai/rapids/cudf/HostColumn
Vector$ColumnBuilder;I)V (77 bytes) @ 0x00007fecfc3fa97c [0x00007fecfc3fa580+0x3fc]
j  com.nvidia.spark.rapids.HostColumnarToGpu$.columnarCopy(Lorg/apache/spark/sql/vectorized/ColumnVector;Lai/rapids/cudf/HostColumnVector
$ColumnBuilder;Lorg/apache/spark/sql/types/DataType;I)V+376
j  com.nvidia.spark.rapids.HostColumnarToGpu.columnarCopy(Lorg/apache/spark/sql/vectorized/ColumnVector;Lai/rapids/cudf/HostColumnVector$
ColumnBuilder;Lorg/apache/spark/sql/types/DataType;I)V+7
j  com.nvidia.spark.rapids.GpuColumnVector$GpuColumnarBatchBuilder.copyColumnar(Lorg/apache/spark/sql/vectorized/ColumnVector;II)V+24
j  com.nvidia.spark.rapids.HostToGpuCoalesceIterator.$anonfun$addBatchToConcat$2(Lcom/nvidia/spark/rapids/HostToGpuCoalesceIterator;Lorg/
apache/spark/sql/vectorized/ColumnarBatch;II)V+11

I was able to make this happen twice, but the data took 45 mins to write out on the CPU, and is over 100 MiB in size, so I am just going to file the issue for now so I don't lose track of it. I'll spend some time debugging it after the long weekend.

I tried to reproduce it today and could not.  Will keep trying periodically.


Fix compatiblity with XHTML content type

HTML5 can be delivered with Content-type application/xhtml+xml. Only a few small fixes are necessary to make OpenLayers compatible with the additional constraints of XHTML: HTML tag names are case-sensitive, and most HTML entities like   are not available.

thanks @NeoRaider


how to set the tasks in the centerpoint?

i wonder how to assign the classes in the task, e.g. what will happen if i put the truck and barrier in the same group. Now i train the centerpoint on my custom datasets, is there any rules or suggestions to guide me to group my own classes. Thanks!

@kamiLight Hi, this grouping setting on NuScenes mainly takes class balances, object sizes and shapes into consideration. Details can be seen at https://arxiv.org/pdf/1908.09492.pdf. You could follow this grouping principle on your own datasets.

@kamiLight Hi, this grouping setting on NuScenes mainly takes class balances, object sizes and shapes into consideration. Details can be seen at https://arxiv.org/pdf/1908.09492.pdf. You could follow this grouping principle on your own datasets.

Thank you!


Validate md5sum if given in PluginRelease

After adding #17 I am thinking about another improvement.
What if plugins.json for each release, in addition to the url property could also support a new md5sum property. If that is not set, it will work as today, but if the md5sum is set then the framework would check that the downloaded file matches.
One benefit is to validate that the download was complete and not corrupt. Another is that when you trust the repo site hosting plugins.json file but not necessarily each download host where the artifacts reside. Imagine a central plugins.json listing a bunch of 3rd party plugins, but only as a reference, not hosting the binaries. A group of trusted committers would accept PRs against the plugins.json file, test the plugin and then merge the PR. If the contribution contains an md5sum, the community will know that they can trust that binary stays the same.
Ideally such a feature would be integrated inside the FileDownloader but currently that interface only takes a URL:
public Path downloadFile(URL fileUrl)

A solution could be to add a second argument DownloadOptions:
public Path downloadFile(URL fileUrl, DownloadOptions options)

where DownloadOptions could be a bean with a builder pattern, e.g.
file = downloader.downloadFile(myUrl, DownloadOptions.create().md5Validation(md5sum).basicAuth("john:pass"));

If null there would be no options, and it can be extended over time without changing the interface. Then the UpdateManager's installPlugin() and updatePlugin() methods could have a variant that includes md5 and pass it down.
Do you see the security benefit for this, and is it an acceptable design? Alternative ways? I could cook up a PR.

Definitely, the idea is good.
In my mind the implementation is based on Decorator/Wrapper pattern without to change the actual signature of FileDownloader (it contains only a method Path downloadFile(URL fileUrl)).
The FileDownloader implementation knows about how to validate the downloaded file.
For example if I want to use checksum on each downloaded file, I can create a class ChecksumFileDownloader similar with:
public class ChecksumFileDownloader implements FileDownloader {

    private FileDownloader fileDownloader;

    public ChecksumFileDownloader() {
        this(new SimpleFileDownloader());
    }

    public ChecksumFileDownloader(FileDownloader fileDownloader) {
        this.fileDownloader = fileDownloader;
    }

    @Override
    public Path downloadFile(URL fileUrl) throws PluginException, IOException {
        Path dowloadedFile = fileDownloader.downloadFile(fileUrl);
        // call "verifyChecksum" method

        return dowloadedFile;
    }

}

How do you then convey the md5sum property from plugins.json to the verifyChecksum method? The checksum is different for each url, so it cannot be passed in ChecksumFileDownloader constructor in the way I did for my ApacheChecksumVerifyingDownloader, which finds the checksum file to download based on the fileUrl.
Since the FileDownloader interface is still new and unreleased it figured the least intrusive would be to add a generic DownloadOptions param to the signature. Or we could add a more generic Map<String,String> options argument but that is a bit too open ended and error prone to my taste.
Of course an alternative would be to place the md5 validation inside UpdateManager.downloadPlugin() and then validate checksum for the file that was just downloaded. It would still let users override the behavior, but I think it's not as nice as keeping download validation in one place, the FileDownloader

How do you then convey the md5sum property from plugins.json to the verifyChecksum method?

For each plugin file (zip or jar) I have a file with the same name but with suffix .md5 or .sha1 that contains the checksum (text file). To get this file I use fileDownloader.downloadFile(fileUrl + ".md5").
For variant with DownloadOptions how I could scale (add new custom options or remove the options that don't make sense for my Downloader).
Can your add a link to your ApacheChecksumVerifyingDownloader to take a look?

The ApacheChecksumVerifyingDownloader (link) does a variant of what you describe, only it downloads the checksum from a trusted site, while the binary artifact is downloaded from a 3rd party mirror site close to the user (to limit bandwidth on Apache servers). So that use case is easy to fulfill with current FileDownloader.
The usecase I describe in this issue is not to download a separate md5 file from the download site (that defeats the purpose if you don't trust that server), but to commit a static md5sum string into the plugins.json PluginInfo itself, so that once it is in there it is a guarantee that the binary file, wherever it may be hosted, is the same as it was when a committer accepted the PR for the plugins.json entry.

I think that I understand what you say.
I forget to add the question sign to the end of sentence so I will ask you again:
For variant with DownloadOptions how I could scale (add new custom options or remove the options that don't make sense for my FileDownloader) ?

For variant with DownloadOptions how I could scale (add new custom options or remove the options that don't make sense for my FileDownloader) ?

I see your concern, that class would perhaps be too closed down for future use cases such as SCP download needing a ssh-key etc. Perhaps a Java Properties object is better, and document what properties that the framework uses such as md5sum.
Aside: Of course, to be 100% sure that the binaries are from a certain author you should verify signatures. For all Apache artifacts there's an .asc file as well with a PGP signature. I plan to integrate a signature check as well into my ApacheMirrorsUpdateRepository.

See #29 for a better solution. I chose sha512 instead of md5 since md5 is now commonly viewed as insecure as a means of validating that the content of a file has not changed.

@janhoy
Can we close this issue?


Implement To/FromWasmAbi for arrays

Allows using Rust arrays as arguments and return values for wasm-bindgen functions.

Thanks for the PR! I'd prefer to not implement this via this strategy though becuase this can be a hidden performance trap relative to allocations and transferring/copying memory. I don't necessarily know of an alternative way to implement this that doesn't suffer from such an issue, but I would recomend consumers instead work with Vec<T> and then convert to [T; N] themselves (e.g. with the array-init crate you found) instead of baking that directly into wasm-bindgen


[To rel/13] [IOTDB-4332] data backup tool based on iotdb-session

A tool for import and export data from iotdb,including timeseries structure and those data.
-Iotdb-session based
-Pipeline-based import and export tool
-Project-Reactor based
-support more situations,such as export and import a storage,export and import the timeseries structure,the device's align properties.
-support export the data when the query result timeseries > 1000
More information: docs/UserGuide/Maintenance-Tools/Backup-Tool.md
backup-tool/**

为iotdb-backup-tool单开了一个仓库，此pr作废