Add huawei_lte notify component

Description:
Add notify component using Huawei LTE router SMS.
Related issue (if applicable): https://community.home-assistant.io/t/adding-notification-to-huawei-lte-router/70950
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#7934
Example entry for configuration.yaml (if applicable):
notify:
  - platform: huawei_lte
    target: "+15105550123"

Checklist:

[x] The code change is tested and works locally. Caveat: tested without an SMS enabled plan, so verified only that the API calls succeed and fail when/like they should, and sent messages end up in the router's SMS outbox.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Changing
from ..huawei_lte import DATA_KEY

to
from homeassistant.components.huawei_lte import DATA_KEY
Allowed me to test it as custom component.
I tested the sending of the sms 4 times and 2 times it was successful. The other two times I reached line 60 and the error message appeared.


Content is missing for "Configuring Business Rule Deployment"

Description:
Content for page [1] needs to be added.
[1] https://docs.wso2.com/display/SP400/Configuring+Business+Rule+Deployment

Fixed this..

Have added the content to the relevant page


Stack of items

I created a case by adding items by command /cc additem and then edit them. When I started testing I saw that I always get items by stack  or x2 (Look at screenshots

).

This is a setup which will correctly give you 8 diamonds if won.
https://gist.github.com/fatmanjumprope/caf64dfa1c9974642c48813db06dc93f
You can use that as reference if you like.

Doesn't happen in the newest version so I will consider this fixed.


source maps for less

resolve-url-loader is only for sass. It fails when using less-loader with source map, so I had to split that.

Alternatively there is a solution  -> Support for less-loader https://github.com/bholloway/resolve-url-loader/pull/41

Thanks!


Persist asset selector folder and filter

The finder persists it state and it would be usefull if also the asset selector did the same.

Thanks!


Build and deploy docker images for all supported architectures with manifest

If all builds success, the new stage deploy creates a manifest for :latest tag and deploys it to Docker hub.
The last build done for my testing branch is here: https://travis-ci.org/github/fedora-python/fedora-python-tox/builds/727426556
There were no conditions in the configuration so the build produced all the images and the manifest we currently have in Docker hub. As far as I can tell, everything seems to be working.
On my machine:
# podman pull fedorapython/fedora-python-tox:latest
# podman inspect f22249e5ab81546d1f4f890bb5e814517bf44921c218bdf13167154ed7b5d302
…
        "Version": "18.06.0-ce",
        "Author": "",
        "Architecture": "amd64",
        "Os": "linux",
        "Size":<PHONE_NUMBER>,
…

On s390x machine:
# podman pull fedorapython/fedora-python-tox:latest
# podman inspect  741ec96aac4573157ef8960c9d5994a6ad6563117fa313b29618bafb30af25ff
…
        "Version": "18.09.7",
        "Author": "",
        "Architecture": "s390x",
        "Os": "linux",
        "Size":<PHONE_NUMBER>,
…

The current build for the branch I'm creating this PR from looks good as well but we'll see after the merge whether it deploys everything correctly or not.

There is some No Gemfile found, skipping bundle install in the testing branch output. Can we see if using langage: generic makes it go away and doesn't break it?

All suggestions applied, let's see.

Is there a testing branch with the same but different branch conditional?

Is there a testing branch with the same but different branch conditional?

Not anymore. The code itself haven't changed a lot so I'd merge it and check whether it releases a new version. And we also need to check that the cron build works as before.

The condition for the deploy phase looks good because the latest build for the archs branch does not have the phase but the new build for master has.

It works! All tags updated and the manifest has the latest info.

I can confirm that it also updates automatically via Travis cron build.


Vanilla Rust frontend option generates javascript file instead of rust file

I don't know if this is the intended behavior but currently it generates main.js file instead of main.rs file for the frontend.

Version
create-tauri-app: 3.11.3

Yeah that is indeed the intended behavior, vanilla means raw HTML/CSS/JS, and you can't have a main.rs in vanilla without having a bundler which kinda beats the purpose of the vanilla


Not being able to modify domains

I can't modify any domains, whether i'm changing their record type, their content or deleting them.

Do you get an error?

no

Does this happen with all domains?

Now they don't load at all.

Can you see anything in the developer console?

Yes

It is most likely that you
A): don't have domains (as a result of potentially signing into the wrong account)
B): have the server_url override set to something other than our support servers.
You can check A by going to your account settings, and clicking "download your data". If you see that the "domains" part is empty ("domains":{}), it means that you haven't registered any domains

It is most likely that you A): don't have domains (as a result of potentially signing into the wrong account) B): have the server_url override set to something other than our support servers.
You can check A by going to your account settings, and clicking "download your data". If you see that the "domains" part is empty ("domains":{}), it means that you haven't registered any domains

So I actually don't have domains but i'm not on the dev server, and creating a domain results in an unhandled error. I tried clearing the local storage but that didn't do anything. Also are you sure you deleted 200947e34506d98e529af6cdd8bb0924ce9dcc8710d946424c7c09af4763ee5c?

Oh for further context, the domain table is stuck with an infinite blur, possibly related to https://github.com/ctih1/frii.site-frontend/commit/c500b6264095cc0f95f23068330cf0bf7b4a7e21

Linked to #180

Fixed in Dev (canary)


Is 3.0.10+quic ready?

Hi!
At Node.js we monitor the GitHub release tags and https://github.com/quictls/openssl/releases/tag/openssl-3.0.10-quic1 is showing OpenSSL 3.1.2 quic Release 1. Is it just a mistype when tagging the release on GitHub or 3.0.10+quic wasn't released at all?

That was a copy/paste error of the name/description when creating the 3.0.10 tag. I've since fixed it. The tag itself is correct.
The openssl-3.0.10-quic1 tag is on the openssl-3.0.10+quic branch at commit c960369e66
The openssl-3.1.2-quic1 tag is on the openssl-3.1.2+quic branch at commit ee904e9093


Showing how to link to another HTML page + text alterations

In this sentence:
"Change the a link to point to rocket.html instead of the nasa website." I suggest showing how to write the link, e.g. moon rocket
Also I suggest including angle brackets around the 'a' element and formatting it: "Change the  link ..."
And have NASA be all caps.

fixed. thx.


DuckDuckGo Android browser is still crashing

Describe the bug
I have seen your succession of hopeful update notes on the Google Play pages, but unfortunately, I have to report that the crashing that you are addressing has not yet been fixed on my phone.
I have been using Duckduckgo as my default browser on Android for years now — very successfully and happily until three or four months ago, when it began crashing.
THE PROBLEM: I open a few web pages in three or four tabs, then I switch apps — perhaps I receive an SMS, or make a phone call, or look something up — and when I try to return to it, Duckduckgo has completely shut down, and I have lost all the searching and reading that I was doing.
This has made Duckduckgo impossible to use, and with great sadness, I have made Vivaldi my default Android browser.  How I miss the Fire button!
Could you please sort this out.  Clearly it is not an easy fix.
PS:  I launched Duckduckgo yesterday and got a popup to comment on Duckduckgo.  I began to write about this, but the app crashed, and I lost all that I had written.  What an irony!
How to Reproduce
As described above.
Expected behavior
As described above
Environment
- DDG App Version: 5.204.1
- Device: Samsung Note10+
- OS: 12, OneUI 4.1, Kernel 4.14.113-24230781
Using VPN from PIA V4.0.7

Thank you for your input! We've looked into it but unfortunately haven't find a way to reproduce the issue, and so we can't take any further action at this moment


Doxygen-based documentation

The aim of this pull-request is to introduce automatically generated documentation hosted on github pages for tagged versions of MONC.

I'm replacing this with a github action rather than using travis


NIFI-4022 - Enabled SASL auth scheme/ACL support for Curator use

Enhancement allows user to enable SASL based ACL's for nodes created via Curator for cluster management (e.g. leader election nodes, Cluster Coordinator/Primary Nodes).
For testing would recommend the following actions:

Follow the updated administrator guide  for enabling kerberos on Zookeeper (external or embedded) and NiFi

2)Testing with nifi nodes where principals vary across servers.  For example<EMAIL_ADDRESS>vs<EMAIL_ADDRESS> In this case the kerberos.removeHostFromPrincipal would need to be true (in both zookeeper.properties and nifi.properties) to ensure that the user will be normalized as<EMAIL_ADDRESS>for acls.

Ensuring leader election scenarios work as expected with acls in place on the /nifi path (acl should be 'sasl',  cdrwa and 'world', anyone r).  Recommended scenario is removal of Cluster Coordinator from a cluster to ensure new coordinator is elected.

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Reviewing...

@bbende thanks!


Improving calculation for total job memory

What is the change?
This swaps the calculation for total job memory to use a more straightforward cluster resource request parameter. Some edits and additions to the tests flow from the update.
Why is the change being made?
This makes the math simpler!

Checklist

[x] This PR has only one purpose or idea.
[x] Tests have been added/updated to verify any new/changed code.

[x] The code style follows good practices.
[x] The commit message(s) follow good practices.

[x] ~The release notes have been updated if necessary.~ too small to matter
[x] The documentation is still up-to-date in the doc folder.
[x] The dependencies are still up-to-date in pyproject.toml.

Wait, neither of these settings exist in ARMI:
self.cs["nTasksPerNode"]  # OLD
self.cs["cpusPerTask"]  # NEW

If we are modifying this code, I would prefer to move it out of ARMI.

Can you update the docstring for test_getTotalJobMemory?

I'm not sure how it's inaccurate?

Wait, neither of these settings exist in ARMI:
self.cs["nTasksPerNode"]  # OLD
self.cs["cpusPerTask"]  # NEW

If we are modifying this code, I would prefer to move it out of ARMI.

Discussed offline. Removal will happen! Just not in this PR.

Can you update the docstring for test_getTotalJobMemory?

I'm not sure how it's inaccurate? It's the same test as before, just with the new inputs. (and I added a combo or two)

you're right! I was wrong. All good!


Add eval command

Closes #275

⌛ Deploy Preview - Build in Progress If you are part of our discord server then leave your discord name for a role.

@win11bot needs to rebuild!!

@hello-smile6 commit again

❌ DEPLOY PREVIEW BUILD HAS FAILED

DUH! Rebuild!

@hello-smile6 commit again

I know!

✔ Deploy Preview for win11blue ready! 😎 Browse the preview: https://277.pr.blueedge.me ! 🔨 If you experience an SSL issue then wait 2 minutes and try again. 🔍 Inspect the deploy log: https://github.com/blueedgetechno/win11React/actions/runs/1759812051

Thanks! BTW, it works!

@hello-smile6 commit again

Does it work?

works

works

Could I add output?

hmm, doesn't it poses a security risk for remote code execution?

hmm, doesn't it poses a security risk for remote code execution?

If someone's willingly using it, they could just use a bookmarklet instead. It'd be so that people could quickly test a UI change.

@andrewstech what's your take on this?

@andrewstech what's your take on this?
Also read this first: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#never_use_eval! It is on official mozilla website.

Huh, would you be okay with executing JS in a VM?

What exactly do you mean by VM?

What exactly do you mean by VM?

https://github.com/copy/v86 (libv86)
It's decently easy to use. You could run MS-DOS in the background for the terminal.

what are the performance impact of it?

what are the performance impact of it?

Can crash an iPad Mini 2, but you could avoid using it if the device isn't fast enough. Additionally, if you pause the VM when it's not actively doing anything, it would be almost impossible to tell it's running.

@andrewstech what's your take on this?
Also read this first: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#never_use_eval! It is on official mozilla website.

Yes it could lead to remote code execution. However as our project is static we should be fine as we are not connecting to a server.

Yes it could lead to remote code execution. However as our project is static we should be fine as we are not connecting to a server.

same thought, should we merge it?

Yes it could lead to remote code execution. However as our project is static we should be fine as we are not connecting to a server.

same thought, should we merge it?

Yes. however somthing is broken

Yes. however somthing is broken

what is broken?

Is it a security flaw.

Works now. @Lukas-Batema

Works now. @Lukas-Batema

I know
cough you are welcome


conda_dependencies.yml changes the base image.

[Enter feedback here]
Below code will change the base image to the default one. Please help explicitly point this out. Thanks.
from azureml.core.environment import Environment
from azureml.core.conda_dependencies import CondaDependencies
myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
Installs numpy version 1.17.0 conda package
conda_dep.add_conda_package("numpy==1.17.0")
Installs pillow package
conda_dep.add_pip_package("pillow")
Adds dependencies to PythonSection of myenv
myenv.python.conda_dependencies=conda_dep

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

ID: a10c58c2-1767-778c-5591-8b6eb1e50969
Version Independent ID: ecc11aa4-56c9-d8b0-69c0-d9978de4adc5
Content: Use software environments - Azure Machine Learning
Content Source: articles/machine-learning/how-to-use-environments.md
Service: machine-learning
Sub-service: core
GitHub Login: @saachigopal
Microsoft Alias: sagopal

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


[FIXED JENKINS-23609] "Successful" and "Failed" links do not work

Seemed to not actually be providing the run result data to the matrix. Unclear how this could ever have worked
@reviewbybees

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

:+1:

@ikedam this pull request has now successfully completed the CloudBees internal processes and we are now asking you, as the maintainer of the plugin for your feedback with a view towards merging and cutting a new release with this fix

This feature have never worked. It was broken already in the first release
(omer727/Matrix-Combinations-Jenkins-Plugin#4).
I'm not sure document.parameters works in any web browsers.
Do you know about that?

I want also JENKINS-27233 fixed in the next release, but I don't have time to work for that soon.
Would you (or CloudBees) work for that?
If not, I'll make a new release only with this fix.

@ikedam so document.parameters is just the accessing of the form named parameters that is part of the "contract" of parameters.
I had a look at JENKINS-27233 and I just cannot get my head around how to avoid the looking up matrix project. Maybe I'm just not seeing the whole context.
Anyway, it would be good if you can merge this. If you think it will be more than two weeks before you can cut a release I would favour releasing this one early rather than wait 2+ weeks for a release with JENKINS-27233 as an addition

document.parameters is just the accessing of the form named parameters

I got it! Thanks!
OK, I'll merge this change and make a new release soon (without JENKINS-27233).


Add Token to Checkout GitHub Action

According to the post below, I need to add my PAT secret to the token parameter of the checkout action.

For anybody using GitHub Actions, you need to set the token option of the actions/checkout action so that GitHub would authorize local Git with the necessary push permissions.
- name: Checkout
  uses: actions/checkout@v3
  with:
    fetch-depth: 0
    token: ${{ secrets.CI_GITHUB_TOKEN }}

Your CI_GITHUB_TOKEN secret should equal your GitHub Personal Access Token with the repo permissions scope. That scope would authorize pushes to protected branches, given you don't have "Include administrators" set in the protected branch's settings.

Creating encrypted secrets on GitHub

Todo

[ ] Add new params
[x] Update tags

:tada: This issue has been resolved in version 1.1.5 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[WiP] Session result overall

Relates #32

Codecov Report

Merging #67 into master will decrease coverage by 37.42%.
The diff coverage is 0%.

@@             Coverage Diff             @@
##           master      #67       +/-   ##
===========================================
- Coverage   59.09%   21.66%   -37.43%
===========================================
  Files          12       22       +10
  Lines          88      240      +152
  Branches        0       14       +14
===========================================
  Hits           52       52
- Misses         36      174      +138
- Partials        0       14       +14

Impacted Files
Coverage Δ

...ents/Layouts/SessionResult/OverallResults/Stars.js
0% <0%> (ø)

...ponents/Layouts/SessionResult/IndividualResults.js
0% <0%> (ø)

...ient/src/Components/Layouts/SessionResult/index.js
0% <0%> (ø)

...mponents/Layouts/SessionResult/StyledComponents.js
0% <0%> (ø)

...s/SessionResult/OverallResults/TextfieldResults.js
0% <0%> (ø)

...ents/Layouts/SessionResult/OverallResults/Popup.js
0% <0%> (ø)

.../Layouts/SessionResult/OverallResults/find_rate.js
0% <0%> (ø)

...ayouts/SessionResult/OverallResults/get_options.js
0% <0%> (ø)

...ents/Layouts/SessionResult/OverallResults/index.js
0% <0%> (ø)

client/src/Components/App.js
0% <0%> (ø)
:arrow_up:

... and 11 more

Continue to review full report at Codecov.

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


Guide users to choosing between dotdir and XDG

Newsboat version: 2.10 e171c84de8a67a978a29889067f597a0f0432a1d
Steps to reproduce the issue:

Do not create a configuration.

Run newsboat.

Expected output: Newsboat tells me that I don't have the urls configured and suggests creating either ~/.newsboat/urls or ~/.config/newsboat/urls.
Actual output: Newsboat only tells me about ~/.newsboat/urls.

Also, without any configuration ~/newsboat/cache.db is created even though no urls file exists in that location. If we're going to guide users to choose between the two locations we should also avoid creating files in any location before any configuration is added.

I ended up reverting #907 (see https://github.com/newsboat/newsboat/pull/907#issuecomment-619381303), so this issue is open again.

The message for OPML import should be updated too, cf. #1919.


Handle Logical Operators in vensim parsing

Need to be able to handle :AND:,:OR:, and :NOT:
I think thats all of them?

Vensim also has a :NA: syntax.

I think that in addition to adding and and or to the translation dictionary, we need to add them to the grammar, probably as their own entry. They should have the same relation to the Conditional entry that addition/subtraction have to multiplication/division, as we need to process them in order of priority.
not will also need to have its own place in the grammar, most likely. (or create a 'unary operator' element of which it is one instance)
@BaharEs, we can track this here.

Sounds good.
There is also an assignment operator ":IS:" that should be covered (https://www.vensim.com/documentation/index.html?operators.htm).

Decided not to address the assignment operators or the :NA:, as they seem to be a bit of a more arcane part of the vensim language. (They would require reworking some of the parsing grammars, and I'm not sure what they really add. If there is a big demand for them in the future, we'll address it.)
However, I think the logical operators are working at least as of https://github.com/JamesPHoughton/pysd/commit/6498655f209fb9dd92e14d4435281d36b77f84be, and tested with https://github.com/SDXorg/test-models/tree/master/tests/logicals, so I'll close this.


Support deleting of events between tests

Instead of restarting the server, remove events (requires dev-mode), so we minimize time and still support a fresh start.

"/v1/devmode/purge-events" i do it via this REST endpoint b/w tests.


Volunteer Profile (general, dui/crim, roles & skills)

Create pages for Profile Frames: Volunteer Profile (general info, dui/crim, roles & skills). Refer to figma: https://www.figma.com/file/h85P5QFeMPJlRy9piBQQxH/Wireframes?node-id=483%3A31541

/cib volunteer-profile-general-dui-crim-roles-skills

Branch 46-volunteer-profile-general-dui-crim-roles-skills created!


Enable plugins to change rendering of shards in serving_graph/dbtopo

LGTM thanks for cleaning up indentation too!

BTW I don't have the power to merge


Pretrained model

Hello! If there is any opportunity to use your pretrained model?

The paper says this doesn't really benefit much from pretraining, FWIW


feat(Topology): add IsCompact.nhdsSet_prod_eq etc

Also delete NhdsContainBoxes and related lemmas as they were only used for another proof of generalized_tube_lemma.

bors merge


this fixes typing issues for moeculer-web

declare is typically used to enhance an existing type declaration for a module, as this is the actual module, a declare block actually breaks the typings

The changes to the CHANGELOG.md were due to my markdown linter, I can revert that if you wish, it simpy adds spacing around the headers blocks.


Add merlinite-7B-AOT to AlpacaEval

ibm/merlinite-7b aligned using a novel AOT (Distributional Preference Alignment Via Optimal Transport)

Impressive @imelnyk 💯


Enable operator metrics collection

Enable collection for operator metrics.

Added SSL and auth configuration for downstream collection, this made operator metrics endpoint incompatible with monitoring user workload.
@memodi appart from review comments, the PR is ready to be tested.
After deploying this branch and setting DOWNSTREAM_DEPLOYMENT to true, you should see operator metrics without enabling user workload.

Added SSL and auth configuration for downstream collection, this made operator metrics endpoint incompatible with monitoring user workload.

@OlivierCazade - is the idea, they would be compatible with SSL and auth configuration once operator is deployed with DOWNSTREAM_DEPLOYMENT to true?

Yes, SSL and authentication for the metrics endpoint. And the prometheus deployment should automatically use it from the ServiceMonitor configuration

/ok-to-test

@OlivierCazade - I tried with image from this PR, I am not able to see those metrics:
$ oc get pod/netobserv-controller-manager-7794cf659b-vcnhn -o yaml | egrep -A 1 "DOWN"
    - --downstream-deployment=$(DOWNSTREAM_DEPLOYMENT)
    command:
--
    - name: DOWNSTREAM_DEPLOYMENT
      value: "true"

$ oc get servicemonitor
NAME                        AGE
netobserv-metrics-monitor   5m19s

am I missing something?

/ok-to-test

/ok-to-test

/approve

adding NETOBSERV-900 as JIRA reference


Help

I would like to know if
"Always use secure connections
Upgrade navigations to HTTPS and warn you before loading sites that do not support it"
calls Google's servers.

I would also like to know if saving passwords calls Google's servers or if it is completely local.

I would also like to know if
"Live Caption
automatically creates subtitles for English audio and video files. The audio and subtitles never leave your device."
calls Google's servers.

No
No
I don't know, is that even available in ungoogled-chromium?

This project not only removes code that would normally send requests to Google servers, it also forcefully removes all Google urls from the source code.
Still please be aware that the code is provided "AS IS", if your requirements are to be safe against targeted tracking by an intelligence agency or something you should probably not only rely on this project to stop connections to Google.

Yes, in the settings. It is in Advanced > Accessibility > Live Caption
It basically gives yous subtitles which is nice.

Moreover, it does that in real-time. So that is why I wanted to know if it was something wholly local or constantly made calls to Google.

I also wanted to know if "Autocomplete searches and URLs
Sends some cookies and searches from the address bar and search box to your default search engine." contacts Google because out of the description, it does not seem to. Nevertheless, I wanted to make sure that it doesn't because usually, in other browsers, it does.

ungoogled-chromium does not have that setting or functionality as it requires google servers.

I will close this for now. For this type of questions please consider asking on matrix in the future.


[BUG] NaiveForecaster fails when sp>1 and fh is combination of in-sample and out-sample

Describe the bug
Exception:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_1832\2346858064.py in <module>
     11 forecaster = NaiveForecaster(sp=2)
     12 forecaster.fit(y_train)
---> 13 forecaster.predict(fh=fh)

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_base.py in predict(self, fh, X, return_pred_int, alpha, keep_old_return_type)
    203         # this is how it is supposed to be after the refactor is complete and effective
    204         if not return_pred_int:
--> 205             y_pred = self._predict(fh=fh, X=X_inner)
    206
    207             # convert to output mtype, identical with last y mtype seen

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\naive.py in _predict(self, fh, X, return_pred_int, alpha)
    340         """
    341         y_pred = self._forecaster.predict(
--> 342             fh=fh, X=X, return_pred_int=return_pred_int, alpha=alpha
    343         )
    344

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_base.py in predict(self, fh, X, return_pred_int, alpha, keep_old_return_type)
    203         # this is how it is supposed to be after the refactor is complete and effective
    204         if not return_pred_int:
--> 205             y_pred = self._predict(fh=fh, X=X_inner)
    206
    207             # convert to output mtype, identical with last y mtype seen

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\compose\_column_ensemble.py in _predict(self, fh, X, return_pred_int, alpha)
    149         y_pred = np.zeros((len(fh), len(self.forecasters_)))
    150         for (_, forecaster, index) in self.forecasters_:
--> 151             y_pred[:, index] = forecaster.predict(fh)
    152
    153         y_pred = pd.DataFrame(data=y_pred, columns=self.y_columns)

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_base.py in predict(self, fh, X, return_pred_int, alpha, keep_old_return_type)
    203         # this is how it is supposed to be after the refactor is complete and effective
    204         if not return_pred_int:
--> 205             y_pred = self._predict(fh=fh, X=X_inner)
    206
    207             # convert to output mtype, identical with last y mtype seen

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_sktime.py in _predict(self, fh, X, return_pred_int, alpha)
     86         # both in-sample and out-of-sample values
     87         else:
---> 88             y_ins = self._predict_in_sample(fh.to_in_sample(self.cutoff), **kwargs)
     89             y_oos = self._predict_fixed_cutoff(
     90                 fh.to_out_of_sample(self.cutoff), **kwargs

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_sktime.py in _predict_in_sample(self, fh, X, return_pred_int, alpha)
    145             update_params=False,
    146             return_pred_int=return_pred_int,
--> 147             alpha=alpha,
    148         )
    149

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_base.py in _predict_moving_cutoff(self, y, cv, X, update_params, return_pred_int, alpha)
   1454                     update_params=update_params,
   1455                     return_pred_int=return_pred_int,
-> 1456                     alpha=alpha,
   1457                 )
   1458                 y_preds.append(y_pred)

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_sktime.py in _update_predict_single(self, y, fh, X, update_params, return_pred_int, alpha)
    217             raise NotImplementedError()
    218         self.update(y, X, update_params=update_params)
--> 219         return self._predict(fh, X, return_pred_int=return_pred_int, alpha=alpha)
    220
    221

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_sktime.py in _predict(self, fh, X, return_pred_int, alpha)
     77         if fh.is_all_out_of_sample(self.cutoff):
     78             return self._predict_fixed_cutoff(
---> 79                 fh.to_out_of_sample(self.cutoff), **kwargs
     80             )
     81

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\base\_sktime.py in _predict_fixed_cutoff(self, fh, X, return_pred_int, alpha)
    111         # assert all(fh > 0)
    112         y_pred = self._predict_last_window(
--> 113             fh, X, return_pred_int=return_pred_int, alpha=alpha
    114         )
    115         index = fh.to_absolute(self.cutoff)

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\naive.py in _predict_last_window(self, fh, X, return_pred_int, alpha)
    131             else:
    132                 # reshape last window, one column per season
--> 133                 last_window = self._reshape_last_window_for_sp(last_window)
    134
    135                 # select last non-NaN row for every column

C:/Users/X/Desktop/sktime/sktime\sktime\forecasting\naive.py in _reshape_last_window_for_sp(self, last_window)
    202         # reshape last window, one column per season
    203         last_window = last_window.reshape(
--> 204             int(np.ceil(self.window_length_ / self.sp_)), self.sp_
    205         )
    206

ValueError: cannot reshape array of size 46 into shape (25,2)

To Reproduce
from sktime.forecasting.naive import NaiveForecaster
from sktime.utils._testing.series import _make_series
from sktime.utils._testing.forecasting import _make_fh
import numpy as np

y_train = _make_series(
    n_columns=1, index_type="period", n_timepoints=50
)
fh = _make_fh(cutoff=y_train.index[-1], steps=np.array([-3, 2]), fh_type="period", is_relative=False)

forecaster = NaiveForecaster(sp=2)
forecaster.fit(y_train)
forecaster.predict(fh=fh)

Expected behavior

Additional context
Bug revealed in #1963 . Bug seems to exist for relative as well as absolute fh.
Versions
main

one more bug for the list "bugs that were not detected since only one parameter setting per estimator was tested". Working on upgrading the forecasting tests to avoid this in the future.

In-sample for Naive should be the equivalent of a one-step forecasting horizon, no matter what the out of sample horizon is,  right?
i.e. Yt = Yt-1 or Yt = Yt-m for seasonal.

yes, for the "last" strategy. Similar for the other strategies.


SecureEntityStorage needs to be refactored so not just EntityStorage can have locks on it

Description

A global "locking" system is needed because more than EntityStorageComponent will make use of locking/unlocking.

I'll take a look

I forgot why I even wanted this.


[Release-1.25] K3s crashes because it doesn't wait for CRI-dockerd to be ready

Backport https://github.com/k3s-io/k3s/issues/6811 to release-1.25

Feb 12 22:41:02 ip-172-31-41-11 k3s[19451]: Error: failed to run Kubelet: unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /run/k3s/cri-dockerd/cri-dockerd.sock: connect: no such file or directory"
Feb 12 22:41:02 ip-172-31-41-11 k3s[19451]: time="2023-02-12T22:41:02Z" level=fatal msg="kubelet exited: failed to run Kubelet: unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial unix /run/k3s/cri-dockerd/cri-dockerd.sock: connect: no such file or directory\""


fix helm install error for No such file or directory

What problem are we solving?
#5249
How are we solving the problem?
How is the PR tested?
Checks

[ ] I have added unit tests if possible.
[ ] I will add related wiki document changes and link to this PR after merging.

please help to fix some lint errors

there are a few minor ones from previous PRs:
k8s/charts/seaweedfs/values.yaml
  Error: 100:1 [trailing-spaces] trailing spaces
  Error: 259:4 [indentation] wrong indentation: expected 4 but found 3
  Error: 262:19 [trailing-spaces] trailing spaces
  Error: 264:5 [comments] missing starting space in comment
  Error: 313:1 [trailing-spaces] trailing spaces
  Error: 467:1 [trailing-spaces] trailing spaces
  Error: 660:1 [trailing-spaces] trailing spaces

there are a few minor ones from previous PRs:
k8s/charts/seaweedfs/values.yaml
  Error: 100:1 [trailing-spaces] trailing spaces
  Error: 259:4 [indentation] wrong indentation: expected 4 but found 3
  Error: 262:19 [trailing-spaces] trailing spaces
  Error: 264:5 [comments] missing starting space in comment
  Error: 313:1 [trailing-spaces] trailing spaces
  Error: 467:1 [trailing-spaces] trailing spaces
  Error: 660:1 [trailing-spaces] trailing spaces

en ? I not change  k8s/charts/seaweedfs/values.yaml this file .

thanks! there is one left:
k8s/charts/seaweedfs/values.yaml
  Error: missing starting space in comment

thanks! there is one left:
k8s/charts/seaweedfs/values.yaml
  Error: missing starting space in comment

done


Issue about drawHierarchyInKeyWindow

I have an issue when I tries to run tests with drawHierarchyInKeyWindow == true. I know that I need to run the test in the host project. But I have no idea how to do it exactly. Is there a sample project that I can reference?

Closing it as I find the right way to run it.


Bug: Daily Unassign cron task is no longer working

Every night at midnight, the cron task runs and unassigns anyone who has not closed the issue for 5 days.  This is no longer working @JisanAR03

Fixed here https://github.com/OWASP/BLT-Action/commit/1d0460bf285ab3df8fe5a5b94ef40906763ce7a9


ci: set opt-level for debug builds

Sets the opt-level to 3 for debug builds in an attempt to reduce flakeyness of integration tests (which cannot be reproduced outside of the ci environment).

I've opened #464 so we don't forget about this bug. With that, we can merge this short-term fix.

closing in favor of #465 which should make the tests more reliable.


[BUG] The recall rate significantly drops by 20% when using CAGRA with a full 1s prefilter (nothing filtered out).

Describe the bug
When using CAGRA with a full ones prefilter, (nothing filtered out), the recall rate significantly drop by 20%
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Benchmark                                            Time             CPU   Iterations        GPU    Latency     Recall end_to_end items_per_second      itopk          k  n_queries total_queries
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
raft_cagra.dim32/0/0/process_time/real_time       1.17 ms         1.17 ms        11941   1.16104m   1.17158m     0.9385    13.9899        853.548/s        128         10          1       11.941k algo="single_cta"
raft_cagra.dim32/1/0/process_time/real_time       2.14 ms         2.14 ms         6554   2.12471m   2.13548m   **0.789747**    13.9959        468.279/s        256         10          1        6.554k algo="single_cta"
raft_cagra.dim32/0/1/process_time/real_time       2.42 ms         2.42 ms         5768   2.41063m   2.42168m     0.9385    13.9682       412.937k/s        128         10       1000        5.768M algo="single_cta"
raft_cagra.dim32/1/1/process_time/real_time       4.59 ms         4.59 ms         3045   4.58215m   4.59372m    **0.79002**    13.9879       217.689k/s        256         10       1000        3.045M algo="single_cta"

Steps/Code to reproduce bug
CUVS_CAGRA_ANN_BENCH reproduce branch
Expected behavior
The recall rate should be very close to the no prefilter case.
Environment details (please complete the following information):

Any benchmark environment.

Additional context
Add any other context about the problem here.

@rhdong Thank you for the bug report. I have reproduced the problem when the itopk size is equal to or larger than 128. I'll investigate the cause, so please wait a while.

@rhdong Can you apply this change and check the recall again? https://github.com/rapidsai/cuvs/pull/489


Transcripts page Mobile Issues

it has horz scroll
I think the speakers name could be rotated sideways to make more room for the actual transcript

Is not just issue that is overflowing "horizontal scroll". When i scroll because you have that issue  im unable to see full transcript, black background on the text. Android 13, Chrome version 119.0.6045.163. And on the desktop you have a sticky position for the h4 Transcript header Scott name is to long and overflowing on the left you can se the first letter from his name. I was checking on the Show 697.

@themisterholliday thanks! That was exactly the fix. Also added a new layout for mobile so transcripts are easier to read


[Improvement] dropSchema interface should support NoSuchSchemaException

What would you like to be improved?
dropSchema interface just supports throw NonEmptySchemaException, it should also support NoSuchSchemaException.
  boolean dropSchema(NameIdentifier ident, boolean cascade) throws NonEmptySchemaException;

How should we improve?
No response

@FANNG1, could you assign this ticke to me?

@FANNG1, could you assign this ticke to me?

sure, thanks for taking this.

@FANNG1, I have checked dropSchema interface. Because this implementation of this interface return false for NoSuchSchemaException. This interface does not need to support NoSuchSchemaException. Meanwhile, all drop interfaces have the same behavior that returns false if not existed.

I think this should be improved, with NoSuchSchemaException we could know the exactly reason why drop schema failed.  The background is I'm developing spark-connector,  if Gravitino returns NoSuchSchemaException, I could catch it and throw corresponding exception to Spark.
@jerryshao @mchades do you agree?
  public boolean dropSchema(NameIdentifier ident, boolean cascade) throws NonEmptySchemaException {
    try {
      clientPool.run(
          client -> {
            client.dropDatabase(ident.name(), false, false, cascade);
            return null;
          });
      LOG.info("Dropped Hive schema (database) {}", ident.name());
      return true;

    } catch (InvalidOperationException e) {
      throw new NonEmptySchemaException(
          e, "Hive schema (database) %s is not empty. One or more tables exist.", ident.name());

    } catch (NoSuchObjectException e) {
      LOG.warn("Hive schema (database) {} does not exist in Hive Metastore", ident.name());
    // should throw NoSuchSchemaException exception not return false
      return false;

    } catch (TException e) {
      throw new RuntimeException(
          "Failed to drop Hive schema (database) " + ident.name() + " in Hive Metastore", e);

    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

@FANNG1, does only the dropSchema need to be improved as above mentioned? What about other interfaces like dropPartition?

I agree with @SteNicholas , we should revisit all the dropXXX interfaces:
a) We should define a clear behavior of return value (false) and exception thrown.
b) We should have a consistent behavior for all the dropXXX interfaces.

duplicate with #1062,  will close this issue. cc @SteNicholas

@jerryshao, @FANNG1, We could introduce ignoreNotExist parameter in drop interfaces. When ignoreNotExist  is true return false, otherwise throw exception.


Fix charts/jenkins/values.yaml.

Please see https://github.com/helm/charts/commit/b02ae3f484a9ee73920f2dd5c3243a113e4c7dfe

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

Please merge this change for future courses


Rename "Display settings" to "Preferences"

As discussed on CZO:

The "Display settings" panel in settings is a bit of a misnomer, in that not all of the settings there are accurately described as display settings -- e.g. policies for what to mark as read, or your default view.

To address this, we should rename the "Display settings" panel to "Preferences". The URL should be changed to /#settings/preferences, with a redirect from /#settings/display-settings.
Help center documentation will need to be updated accordingly as part of this change, including links used for self-hosted organizations. Be sure to add the "documentation review" label to the PR.

@zulipbot claim

Hey @alya,
I can work on this issue , can you tell me little more about ,the links for self hosted organization, where can i find them.
Thank you.

okay, @karlstolley i will check it  out.

Hello @alya I've set up the development structure and understood the structure of the code, I feel like I can solve this issue

@zulipbot claim

@karlstolley @alya I've opened a PR for this issue, Kindly review it.

@zulipbot claim


macOS uninstall: remove only packages installed by build script

Change Description

Previously, the uninstall script would remove all homebrew packages required for
building EOS, even pre-existing ones. Now, the packages installed by the build
script are written to a file in $EOSIO_INSTALL_DIR, where they are read from the
uninstall script upon uninstallation.
Consensus Changes

[ ] Consensus Changes

API Changes

[ ] API Changes

Documentation Additions

[ ] Documentation Additions

#8725

Please retarget to the develop branch.

Please retarget to the develop branch.

Done

Please retarget to the develop branch.

Done

Sorry, didn't notice you had a test failure.  When updating to the develop branch, be sure to update your submodule checkouts as well so they don't revert to the version master had.  You'll need to retarget both now.

Please retarget to the develop branch.

Done

Sorry, didn't notice you had a test failure. When updating to the develop branch, be sure to update your submodule checkouts as well so they don't revert to the version master had. You'll need to retarget both now.

ok, I've cherrypicked my commit onto the latest head of develop - all CI tests have passed.

@scottarnette can you also review this, including looking at the errors that are occurring in the build? (I restarted the failing steps, so they may go away)


Programatically create equivalent of AI.config Defaults

AI.config has a bunch of default settings like list of initializers, modules, processors, and various others. For someone programatically configuring AI settings, there should be a method like 'CreateDefaultAI' which constructs the default TelemetryConfiguration matching the default AI.config.

So far there is no clear design on this feature, and we track ASP.NET Core configuration separately. Closing this issue for now.


refactor: gcs storage driver

This refactors GCS storage driver from the ground up and makes it a bit more consistent with the rest of the storage drivers.
Notably, the writer now contains a reference to the driver in a similar fashion the S3 writer is implemented.
Some of the "helper" funcs were removed and others were made methods on specific GCS driver objects. This simplifies the code quite a bit and gets it more aligned with other storage driver implementations in this repository.
NOTE: There is more work to be done but I figured this could be a first step hence the PR is marked as a DRAFT at the moment
CC: @flavianmissi @jmontleon @kaovilai since you were the OG authors of the recent GCS driver update. Would you mind having a look and if you have a way to test it somewhere in GCS that'd be grand. I've only done some local "simulation" tests.

I've fixed the first batch of bugs and can report I successfully tested this on my personal GCS bucket 😄
$ docker push localhost:5000/distribution/hello-world
Using default tag: latest
The push refers to repository [localhost:5000/distribution/hello-world]
01bb4fce3eb1: Pushed
latest: digest: sha256:7e9b6e7ba2842c91cf49f3e214d04a7a496f8214356f41d81a6e6dcad11f11e3 size: 525

Now I see that the chunking built into the Google Cloud SDK does not coalesce short writes. It only breaks up long writes, but that still covers half of what our own buffering is useful for. And we don't have to opt in as the ChunkSize defaults to 16 MiB. bufio.Writer could cover the other half: it coalesces short writes and passes through long ones. I think there's easily at least delta -60 lines to be found by replacing our own buffering with off-the-shelf parts. Is there something unique that rolling our own buffering affords for us that I'm not seeing?

Is there something unique that rolling our own buffering affords for us that I'm not seeing?

I dont think so. GCS driver has always been marked as experimental historically - that's also the reason why building it requires explicitly opting in by specifying a build tag.
The code was written by someone in the community and was never cleaned up; I'm attempting to do it but it's a slow burn because I'm not yet very familiar with the Go API SDK and can only test it against my personal GCP account 😅 But at least things work now and can finally iterate on them.

Running gcs tests with code from this branch yields hundreds of "already closed" errors, here's the full output (down below I paste the output of a run on master as well for reference).
$ go test -timeout=60m -tags=include_gcs -v ./registry/storage/driver/gcs/...
=== RUN   Test

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1013: DriverSuite.TestConcurrentFileStreams

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1254:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:391: DriverSuite.TestContinueStreamAppendLarge

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:396:
    suite.testContinueStreamAppend(c, chunkSize)
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:452:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:401: DriverSuite.TestContinueStreamAppendSmall

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:402:
    suite.testContinueStreamAppend(c, int64(32))
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:452:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:275: DriverSuite.TestWriteReadLargeStreams

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:297:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:235: DriverSuite.TestWriteReadStreams1

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:238:
    suite.writeReadCompareStreams(c, filename, contents)
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1290:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:243: DriverSuite.TestWriteReadStreams2

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:246:
    suite.writeReadCompareStreams(c, filename, contents)
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1290:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:251: DriverSuite.TestWriteReadStreams3

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:254:
    suite.writeReadCompareStreams(c, filename, contents)
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1290:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:259: DriverSuite.TestWriteReadStreams4

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:262:
    suite.writeReadCompareStreams(c, filename, contents)
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1290:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:267: DriverSuite.TestWriteReadStreamsNonUTF8

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:270:
    suite.writeReadCompareStreams(c, filename, contents)
/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:1290:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:534: DriverSuite.TestWriteZeroByteContentThenAppend

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:556:
    c.Assert(err, check.IsNil)
... value driver.PathNotFoundError = driver.PathNotFoundError{Path:"var/folders/p0/c1z2jht90l99pg75kvywwyfw0000gn/T/driver-4129983992/u-zpwjhw.yhgt/9zyu.xvl/p-e1.0iu", DriverName:"gcs"} ("gcs: Path not found: var/folders/p0/c1z2jht90l99pg75kvywwyfw0000gn/T/driver-4129983992/u-zpwjhw.yhgt/9zyu.xvl/p-e1.0iu")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:476: DriverSuite.TestWriteZeroByteStreamThenAppend

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:490:
    c.Assert(err, check.IsNil)
... value *errors.errorString = &errors.errorString{s:"already closed"} ("already closed")

OOPS: 25 passed, 11 FAILED
--- FAIL: Test (1003.73s)
=== RUN   TestCommitEmpty
    gcs_test.go:132: writer.Close: unexpected error: already closed
--- FAIL: TestCommitEmpty (0.43s)
=== RUN   TestCommit
    gcs_test.go:179: writer.Close: unexpected error: already closed
--- FAIL: TestCommit (3.74s)
=== RUN   TestRetry
--- PASS: TestRetry (28.83s)
=== RUN   TestEmptyRootList
--- PASS: TestEmptyRootList (0.60s)
=== RUN   TestMoveDirectory
--- PASS: TestMoveDirectory (0.52s)
FAIL
FAIL	github.com/distribution/distribution/v3/registry/storage/driver/gcs	1038.991s

Not all the tests are passing on the main branch either - for reference, here's the output of running the tests on main:
$ go test -timeout=60m -tags=include_gcs -v ./registry/storage/driver/gcs/...
=== RUN   Test

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:534: DriverSuite.TestWriteZeroByteContentThenAppend

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:556:
    c.Assert(err, check.IsNil)
... value driver.PathNotFoundError = driver.PathNotFoundError{Path:"/1b8.va_2flb2e-kf_nq_wnj6nw/e/uk", DriverName:"gcs"} ("gcs: Path not found: /1b8.va_2flb2e-kf_nq_wnj6nw/e/uk")

----------------------------------------------------------------------
FAIL: /Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:476: DriverSuite.TestWriteZeroByteStreamThenAppend

/Users/flavian/go/src/github.com/openshift/docker-distribution/registry/storage/driver/testsuites/testsuites.go:507:
    c.Assert(err, check.IsNil)
... value driver.PathNotFoundError = driver.PathNotFoundError{Path:"/f85-g-6um9/kw8n-wh6ao2r.yx-w/e2", DriverName:"gcs"} ("gcs: Path not found: /f85-g-6um9/kw8n-wh6ao2r.yx-w/e2")

OOPS: 34 passed, 2 FAILED
--- FAIL: Test (1848.90s)
=== RUN   TestCommitEmpty
--- PASS: TestCommitEmpty (0.49s)
=== RUN   TestCommit
--- PASS: TestCommit (1.77s)
=== RUN   TestRetry
--- PASS: TestRetry (28.47s)
=== RUN   TestEmptyRootList
--- PASS: TestEmptyRootList (0.61s)
=== RUN   TestMoveDirectory
--- PASS: TestMoveDirectory (0.52s)
FAIL
FAIL	github.com/distribution/distribution/v3/registry/storage/driver/gcs	1882.070s
FAIL

I need to look into them 😬 I've been testing this mostly by simpe docker pull and docker push directly into my GCS bucket.
I have changed some code around how the driver is marked as closed....so that needs looking into

@flavianmissi what do you use for these tests? Do you just point them into an actual GCS package or do you use some nice tool that let you run them locally?

I'd just create a mock gcp client
https://github.com/googleapis/google-cloud-go/blob/main/testing.md#testing-using-mocks
another tool I've seen used in OSS is mockery https://vektra.github.io/mockery/latest/#why-mockery

Mocks are cute and handy for unit tests, but not a replacement for an integration tests 😄

@flavianmissi the close errors should now be addressed.
@corhere Go cloud API SDK still doesn't seem to provide "native" support for resumable upload. I was searching their GH repo and came across https://github.com/googleapis/google-cloud-go/issues/1224 but it's 4 years old and as good as dead.
This is as far as I could clean it up using the SDK. PTAL.

@milosgajdos the SDK uses resumable uploads internally to power chunking and retrying. That doesn't help when the upload needs to be ~resumed~ appended to from another host, of course. Could we use compose operations to append to uploads as suggested in the issue you linked, instead of resuming the upload session?

Could we use compose operations to append to uploads as suggested in the issue you linked, instead of resuming the upload session?

I was skimming through docs and on the first and very short look I couldnt tell. I'd need to spend a bit more time with it. Worth exploring indeed..

Thinking about it some more, we'd have to fundamentally redesign how the gcs driver implements append-writes in order to use compose operations. That's way bigger than "just" a refactor. Maybe it's even big enough of a change to justify forking the driver. Regardless, it would be massive scope creep for this PR so I'm going to shut up and review this PR as is.

I've accepted a bunch of suggestions on the first look but will give this a proper look tomorrow. I've also realized that GCS writer doesn't have a reference to driver's context like the S3 driver has...so I'll add that in so we can call w.writeChunk(w.ctx), etc.

Some fantastic optimisation gains, @corhere. There is still the question of that Read comment you made. I need to have a think about it. In the meantime, would you mind taking another pass at this?

Alright, PTAL @corhere

PTAL: @thaJeztah @Jamstah @squizzi @corhere

I just noticed that calling func (*BucketHandle) Retryer with no arguments is a no-op. And on the topic of retries, I don't think the Google Cloud SDK defaults

So this is my misunderstanding of the docs again 🤦♂: my assumption was that the default retries you're mentioning only apply when you call Retryer() without any arguments (assuming that the retrier applies the defaults described in that section. I'm wondering how much of my garbage code coulda been avoid if I didn't constantly misuderstand the docs 🤣

What should we do about retries? I'm tempted to simply leave SDK retry defaults alone, wrap the putContent calls in Cancel() and Close() with retry() and declare that the different retry behaviour with Reader is a feature. And delete all the no-op .Retryer() calls.

I'd be ok with this, yeah.
Btw, I'm also not sure how I feel about indefinite retries, but then docs say:

To stop retries from continuing, use context timeouts or cancellation.

So if the API clients are set up properly this should be ok 🤔

Anything else you want me to address on this PR @corhere ?

@milosgajdos just this:

wrap the putContent calls in Cancel() and Close() with retry()

The Google Cloud SDK will not retry those requests as uploads without preconditions are not idempotent and the default retry config only retries idempotent requests.

Aaaaah, right. Sorry I'm in a different timezone now and now it's coming back to me 🙃

PTAL @Jamstah @wy65701436 @thaJeztah

@milosgajdos what's your plan for merging this PR? Are you planning to squash it all down to a single commit, or clean up the history with rebase?

@milosgajdos what's your plan for merging this PR? Are you planning to squash it all down to a single commit, or clean up the history with rebase?

Yes, gonna squash today. I have been leaving it unsquashed both because I was lazy but also was hoping more people would chip in. I'll squash and chase folks

Ok, squashed.
PTAL @thaJeztah @Jamstah @squizzi 🙏

Think I've addressed all your comments @thaJeztah PTAL

Ok, figure out the cause of the failing tests 🎉 CC: @flavianmissi all the tests are now passing on this branch 😄
Test Output
GOOGLE_APPLICATION_CREDENTIALS="$HOME/.config/application_default_credentials.json" REGISTRY_STORAGE_GCS_BUCKET="distributiontest" go test -timeout=10m -tags=include_gcs -v  ./registry/storage/driver/gcs/...
=== RUN   Test
OK: 36 passed
--- PASS: Test (151.72s)
=== RUN   TestCommitEmpty
--- PASS: TestCommitEmpty (0.09s)
=== RUN   TestCommit
--- PASS: TestCommit (0.42s)
=== RUN   TestRetry
--- PASS: TestRetry (28.75s)
=== RUN   TestEmptyRootList
--- PASS: TestEmptyRootList (0.11s)
=== RUN   TestMoveDirectory
--- PASS: TestMoveDirectory (0.09s)
PASS
ok      github.com/distribution/distribution/v3/registry/storage/driver/gcs     181.748s

PTAL @thaJeztah @wy65701436 @squizzi @Jamstah

Does the current code work against GCS? If not then I'll happily approve this.
If it does, then I think testing is the big thing here. If we haven't tested against GCS then we shouldn't merge.

Although it looks like here - you did sign up for a bucket?
https://github.com/distribution/distribution/pull/4120#issuecomment-1777518891

Yeah, it's tested on my personal GCP account.
This a proper integration test result. No LARP 😁

Would be nice to figure out integration tests across all major cloud providers.
I'll open a ticket with CNCF. Maybe they have some cloud credits we could (ab)use.

Going to squash and then merge.


"Push to Orchest branch" style job deployment

Describe the feature you'd love to have in Orchest
We've had requests from multiple users to have more comprehensive support for deploying code in Orchest by simply pushing commits to a branch that can then be picked up to deploy the pipeline in Orchest (as a job).
We're developing our thinking in this area, and this GitHub issue is where we want to keep track.
Relevant other issues are:
#483: managing git access on a user level basis
#958: enabling SSH based remote IDE development workflow
Is your feature request related to a problem? Please describe.
A better local development workflow that integrates with Orchest. The idea is to have a similar duality that exists on GitHub today: you can use Codespaces (browser workbench) or develop & push locally to a remote instance (GitHub.com being the "remote instance").

Hi, @ricklamers , I have an idea that might be relevant to this issue.
I need to update the code in Job, it is not allowed now. Only rebuild the Job.
Can I allow the switching of the git commit in Edit Job?


Atom.Object.defineProperty.get is deprecated.

atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace),
which returns an HTMLElement.
Atom.Object.defineProperty.get (/opt/atom/resources/app/src/atom.js:55:11)
LintStatusView.getActiveLintRunner (/home/fernando/.atom/packages/atom-lint/lib/lint-status-view.coffee:27:22)

Dupe of #119, #120


HardwareKeyboard handler does not fire correctly after TextField focus (v3.24.5 vs 3.27.1, stable)

Steps to reproduce
On Android ServicesBinding.instance.keyboard.addHandler(keyboardHandler) behaves differently on v3.24.5 vs 3.27.1
The steps are as follows (see example):

Without focusing the field
Using the "open keyboard" button type: "1.1.1" (I'm using a bluetooth barcode scanner, a.k.a. external keyboard)
Type "4" in the field
Lose focus of the field
Click "open keyboard" again and type: "1.1.1" (I'm using a bluetooth barcode scanner, a.k.a. external keyboard)

In Flutter 3.24.5 all key events are handled correctly look at the "Expected results".
In Flutter 3.27.1, after editing the field and then using the barcode scanner, all "." characters are ignored. When using the on screen keyboard all key events are ignored.
This shouldn't be normal behavior right?
Expected results
Flutter 3.24.5 everything handled correctly even after typing a value in the TextField:
HardwareKeyboard initialized
 -------
 key pressed event1
 Key pressed: 1
 Not a key down event: ignore
 -------
 key pressed event.
 Key pressed: .
 Not a key down event: ignore
 -------
 key pressed event1
 Key pressed: 1
 Not a key down event: ignore
 -------
 key pressed event.
 Key pressed: .
 Not a key down event: ignore
 -------
 key pressed event1
 Key pressed: 1
 Not a key down event: ignore
 Textfield value: 4
 -------
 key pressed event1
 Key pressed: 1
 Not a key down event: ignore
 -------
 key pressed event.
 Key pressed: .
 Not a key down event: ignore
 -------
 key pressed event1
 Key pressed: 1
 Not a key down event: ignore
 -------
 key pressed event.
 Key pressed: .
 Not a key down event: ignore
 -------
 key pressed event1
 Key pressed: 1
 Not a key down event: ignore

Exactly the same output using the bluetooth barcode scanner.
Actual results
 Logs: using the on screen keyboard
Flutter 3.27.1
Logs:
HardwareKeyboard initialized
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed event.
Key pressed: .
Not a key down event: ignore
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed event.
Key pressed: .
Not a key down event: ignore
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
Textfield value: 4

After typing the value in the TextField everything is ignored.
 Logs: using the bluetooth barcode scanner (a.k.a. external keyboard)
HardwareKeyboard initialized
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed event.
Key pressed: .
Not a key down event: ignore
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed event.
Key pressed: .
Not a key down event: ignore
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed eventEnter
Key pressed:
Not a key down event: ignore
Textfield value: 4
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore
-------
key pressed event1
Key pressed: 1
Not a key down event: ignore

After typing the value in the TextField all "." characters are ignored.
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatefulWidget {
  const MainApp({super.key});

  @override
  State<MainApp> createState() => _MainAppState();
}

class _MainAppState extends State<MainApp> {
  @override
  initState() {
    ServicesBinding.instance.keyboard.addHandler(keyboardHandler);
    print("HardwareKeyboard initialized");
    super.initState();
  }

  bool keyboardHandler(KeyEvent event) {
    if (event is! KeyDownEvent) {
      print("Not a key down event: ignore");
      return false;
    }
    print("-------");
    print("key pressed event${event.logicalKey.keyLabel}");
    if (focusNode.hasFocus) {
      print("textfield has focus: ignore");
      return false;
    }
    if (event.character != null && event.character?.isNotEmpty == true) {
      print("Key pressed: ${event.character}");
      return true;
    }
    print("key pressed but not a character: ignore");
    return false;
  }

  @override
  dispose() {
    ServicesBinding.instance.keyboard.removeHandler(keyboardHandler);
    print("HardwareKeyboard disposed");
    super.dispose();
  }

  FocusNode focusNode = FocusNode();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(children: [
          const SizedBox(height: 100),
          TextField(
            focusNode: focusNode,
            onChanged: (value) {
              print("Textfield value: $value");
            },
          ),
          TextButton(
              onPressed: () {
                focusNode.unfocus();
              },
              child: const Text("unfocus")),
          TextButton(
              onPressed: () {
                SystemChannels.textInput.invokeMethod("TextInput.show");
              },
              child: const Text("Open keyboard")),
        ]),
      ),
    );
  }
}

Screenshots or Video
No response
Logs
No response
Flutter Doctor output
Doctor output 3.27.1
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.27.1, on Microsoft Windows [Version 10.0.22631.4602], locale en-NL)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.11.6)
[!] Android Studio (version 2022.1)
    X Unable to determine bundled Java version.
[!] Android Studio (version 2023.3)
    X Unable to determine bundled Java version.
[√] Android Studio (version 2024.2)
[√] VS Code (version 1.94.2)
[√] VS Code, 64-bit edition (version unknown)
    X Unable to determine VS Code version.
[√] Connected device (4 available)
[√] Network resources

Doctor output 3.24.5
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.24.5, on Microsoft Windows [Version 10.0.22631.4602], locale en-NL)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.11.6)
[!] Android Studio (version 2022.1)
    X Unable to determine bundled Java version.
[!] Android Studio (version 2023.3)
    X Unable to determine bundled Java version.
[√] Android Studio (version 2024.2)
[√] VS Code (version 1.94.2)
[√] VS Code, 64-bit edition (version unknown)
    X Unable to determine VS Code version.
[√] Connected device (4 available)
[√] Network resources

Hello @ReindertKorver, I tried to reproduce the issue and I am unable to reproduce it, All hardware key events are getting logged. let me know if I am missing something
https://github.com/user-attachments/assets/9abe667a-79cb-4cc0-baee-1c0281613204

logs
I/flutter ( 5676): HardwareKeyboard initialized
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event1
I/flutter ( 5676): Key pressed: 1
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event.
I/flutter ( 5676): Key pressed: .
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event1
I/flutter ( 5676): Key pressed: 1
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event.
I/flutter ( 5676): Key pressed: .
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event1
I/flutter ( 5676): Key pressed: 1
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): Not a key down event: ignore
I/AssistStructure( 5676): Flattened final assist data: 408 bytes, containing 1 windows, 3 views
I/flutter ( 5676): logical key=LogicalKeyboardKey#93474(keyId: "0x00000034", keyLabel: "4", debugName: "Digit 4") physical key=PhysicalKeyboardKey#cd770(usbHidUsage: "0x00070021", debugName: "Digit 4")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event4
I/flutter ( 5676): textfield has focus: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#93474(keyId: "0x00000034", keyLabel: "4", debugName: "Digit 4") physical key=PhysicalKeyboardKey#cd770(usbHidUsage: "0x00070021", debugName: "Digit 4")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): Textfield value: 4
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event1
I/flutter ( 5676): Key pressed: 1
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event.
I/flutter ( 5676): Key pressed: .
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event1
I/flutter ( 5676): Key pressed: 1
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event.
I/flutter ( 5676): Key pressed: .
I/flutter ( 5676): logical key=LogicalKeyboardKey#8248e(keyId: "0x0000002e", keyLabel: ".", debugName: "Period") physical key=PhysicalKeyboardKey#0bc66(usbHidUsage: "0x00070037", debugName: "Period")
I/flutter ( 5676): Not a key down event: ignore
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): -------
I/flutter ( 5676): key pressed event1
I/flutter ( 5676): Key pressed: 1
I/flutter ( 5676): logical key=LogicalKeyboardKey#8ac81(keyId: "0x00000031", keyLabel: "1", debugName: "Digit 1") physical key=PhysicalKeyboardKey#c4f7f(usbHidUsage: "0x0007001e", debugName: "Digit 1")
I/flutter ( 5676): Not a key down event: ignore

flutter doctor -v
```console
[✓] Flutter (Channel stable, 3.27.1, on macOS 15.1.1 24B2091 darwin-arm64, locale en-US)
    • Flutter version 3.27.1 on channel stable at /Users/mahesh/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 17025dd882 (2 days ago), 2024-12-17 03:23:09 +0900
    • Engine revision cb4b5fff73
    • Dart version 3.6.0
    • DevTools version 2.40.2
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/mahesh/Library/Android/sdk
• Platform android-35, build-tools 34.0.0
• ANDROID_HOME = /Users/mahesh/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 16A242d
• CocoaPods version 1.16.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2024.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin version 61.2.4
• Dart plugin version 212.5080.8
[✓] VS Code (version 1.94.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.100.0
[✓] Connected device (3 available)
• macOS (desktop)                 • macos                 • darwin-arm64   • macOS 15.1.1 24B2091 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 15.1.1 24B2091 darwin-arm64
• Chrome (web)                    • chrome                • web-javascript • Google Chrome 128.0.6613.85
[✓] Network resources
• All expected network resources are available.
• No issues found!

</details>