Express Integration

Hello! This is a great library, thank you for putting it together!
I was looking to integrate with an Express application. Would you like to have an Express connector as part of this repo or as something separate? I've started looking at writing code some to translate headers and query params etc. I'd be happy to add it here or have it separately as you wish.

Thanks, glad you like it.
I've been thinking about adding integrations to other frameworks too, PRs are most welcome. As you can see, lambda is supported directly in this library which isn't ideal. I was struggling whether to make add on libraries for the integrations, or if possibly using optional peerDependencies could work, but I haven't really tried that out. It's of course far from ideal that anyone using this library with lambda would get express dependencies, and vice versa. If you've got any opinions I'm all ears.
When you say express connector to translate headers etc, is your ambition to do that similarly to how it works for the lambda subclass, ie, mount it on express app route and then implement operations with openapi-ts-backend requests and responses and the original express specific parameters (the express request I assume) in the custom data, or would you rather connect it so that the operation handlers are mapped to express handlers?

It's of course far from ideal that anyone using this library with lambda would get express dependencies, and vice versa. If you've got any opinions I'm all ears.

Yes good point. Perhaps separate libraries are the way to go and it you can have:
openapi-ts-backend-aws-lambda
openapi-ts-backend-express
etc.
I haven't used peerDependencies much before, and it could work. I wonder if separate libraries is a cleaner solution though.
In terms of how I saw the express plugin working, here is my sandbox example: https://github.com/keithbro/openapi-ts-backend-express-demo/blob/main/src/server.ts
It works similarly to yours I think although I have a connect function which maps an OpenApi to an Express RequestHandler: https://github.com/keithbro/openapi-ts-backend-express-demo/blob/main/src/openapi-ts-backend-express/index.ts#L20
I'm fine with changing it a class based approach when an ExpressOpenApi would extend OpenApi, to keep it consistent with yours. Let me know what you think.

Nice. One potential problem with your connect solution is that you don't pass the original express data to your operations. They won't necessarily be needed, of course, but it could be useful. If you compare to my AWS Lambda integration, I pass the raw lambda event and context as data to the handleRequest method, so that operations could find things like the lambda runtime, the raw event etc, through params.data.lambda.event. I've had situations where I needed this.
Now, of course a connect based solution could pass {req: Express.Request} to handleRequest() as well, but one potential problem is that the OpenApi instance is still typed as OpenApi<unknown>, so that all the operations, authorizers and interceptors don't get typed params, knowing that params.data contains express properties. One way of typing the OpenApi instance is to create a sub-class, another one is to simply cast it, e.g. by having a connect style function return OpenApi<ExpressParams> or similar, after attaching the api with express.use(). But hiding away the use() call isn't ideal either so I'm not sure what the best connect signature would be, returning both an express handler function and a cast OpenApi<ExpressParams> instance.
An upside with having a separate connector is that you truly decouple the OpenApi stuff and the operation implementations from the HTTP framework used to serve it with requests. But at the same time, if you do need the context parameters - which depend on the framework - from your operations, then they aren't really decoupled anyway.
Anyway, this was the reason I chose the sub-class approach. If I do new LambdaOpenApi() I get an instance of OpenApi<LambdaParams> and a way to get a lambda specific event handler function.
Using the same approach for express could I guess look something like
const api = new ExpressOpenApi().register({definition, operations});
app.use(api.requestHandler()); // method on ExpressOpenApi sub-class

This would force operations to be of type OperationHandlers<ExpressParams> (if the params aren't interesting of course one could declare the operations as OperationHandlers<any>), and operations could then do
listPets: async (req, res, params) => {
  // Express request is in params.data.express.req if we need it

  return [ ... ];
}

Note that LambdaOpenApi also has a generic type <T> which enables you to create an OpenApi instance where params.data contains lambda data and custom data such as {lambda: {event, context}, myStuff: {foo, bar}}.
Anyway, splitting up openapi-ts-backend is definitely the way to go. I'll start looking at a v2 version where you don't get AWS Lambda as part of that module. Perhaps the add-on modules could simply contain both styles of connections for maximum flexibility?
export function requestHandler(api: OpenApi<unknown>): Express.RequestHandler {
  return ...
}

export type ExpressSource {
  express: {
    request: Express.Request;
  }
};

export class ExpressOpenApi<T> extends OpenApi<ExpressSource & T> {
  requestHandler(...) { // could allow custom data as per https://github.com/henhal/openapi-ts-backend/blob/main/src/services/aws-lambda/lambda-openapi.ts#L87
    return requestHandler(this);
  }
}

@keithbro I finally took a bigger grip on this and decided to separate the openapi-ts-backend module into several modules. I created an NPM scope @openapi-ts to collect the related modules. This means you can now do:
$ npm install @openapi-ts/backend

... to get the basic module, and e.g.
$ npm install @openapi-ts/aws-lambda

... to get the AWS Lambda specific implementation.
(I also extracted the basic types used by generated code to address #2)
I'm still working on updating the documentation and READMEs to deprecate the old module and link to the new module etc, and to make some final tests, but here's the new module for AWS Lambda integration.
I also created a new git for express integration here, and I wanted to ask if you if you're OK with me using parts of your example code above to create and publish this module (I will give you credit in the README in that case), or if you want to collaborate directly and add it yourself as a PR? I want to give credit where credit's due, of course!

Hi @henhal ! Sorry for the radio silence. Yes of course please go ahead and use the example code as you please. I will try to find some time this weekend to contribute but by all means go ahead and don't wait for me :)

@keithbro Thanks, I made an initial implementation for express at https://www.npmjs.com/package/@openapi-ts/express, but TBH I haven't had time to really test it right now. :scream:  Feel free to try it out and give feedback and/or provide improvements whenever you have time. :+1:
I'm closing this issue for now.
Cheers

Fixed in #5 and https://github.com/henhal/openapi-ts-express


can't find the function hdrimread and exrread

hello, when I set the cfg_hdrvqm.do_adapt in cfg_hdrvqm.m to 'linear', it can't find the hdrimread/exrread function in adapt_display_hdrvqm.m line 42/44. Can you  help me solve this question ?
And where can I get your in-house HDR video database to repeat the experiments ?

Hello,
See #3


Decorrelate branched RNG state

It appears I never validated the final version of commit 02f73620f6 ("Branch RNG state when generating secondaries") after dropping the call to Advance() for the branched RNG state with the other commits to optimize RNG usage from PR #117 (commits 127b7be676 ("Reuse RNG state of killed particles") and 08e4301a98 ("Move RNG branching to reduce thread divergence")). Testing current master reveals errors in comparison to Geant4 in the order of multiple per mill. Restore the call to Advance() for better decorrelation of the branched RNG.

Here's the comparison of 1 million electrons in TestEm3 (PbWO4 + lAr) between Geant4 and current master:  fig_CaloEDep.pdf (note the increased scale for the error graph of 1 percent!).
With this fix, the result is much better: fig_CaloEDep.pdf

Here's the comparison of 1 million electrons in TestEm3 (PbWO4 + lAr) between Geant4 and current master: fig_CaloEDep.pdf (note the increased scale for the error graph of 1 percent!).
With this fix, the result is much better: fig_CaloEDep.pdf

I'm just getting the same image, even if I rename locally one of the files, is it only me?

Hm, I probably uploaded the same file twice, here's the figure from this PR: fig_CaloEDep.pdf

Hm, I probably uploaded the same file twice, here's the figure from this PR: fig_CaloEDep.pdf

👍


Allow MOUNT_FLAGS to be passed to build_interop_image.sh

Background:
I was running into an issue when running the run_interop_tests.py script, trying to run the -l php -s node interop test. When the tools/jenkins/grpc_interop_php/build_interop.sh script is executed, there is a step in the PHP build script which needs to run the command composer install, which in turns needs to do a git clone to pull in a GitHub repo. That command fails sometimes when we exceed the GitHub rate limit. Here's the error:
Failed to clone the git@github.com:stanley-cheung/Protobuf-PHP.git repository, try running
in interactive mode so that you can enter your GitHub credentials
[RuntimeException]

The composer install command (PHP specific) can read from the file $HOME/.composer/auth.json which contains a personal GitHub auth token. If we can mount this file to the docker run command, then the error can be bypassed.
Here in this PR I propose we allow the MOUNT_FLAGS param to be passed to the tools/jenkins/build_interop_image.sh script via environment variable. Then I can invoke my -l php -s node interop test this way, and the error goes away
MOUNT_ARGS="-v $HOME/.composer/auth.json:/root/.composer/auth.json:ro" \
tools/run_tests/run_interop_tests.py -l php -s node --use_docker -t -j 8

I prefer this way rather than adding this $HOME/.composer/auth.json logic into the script because that is highly PHP and environment specific.
I also removed some outdated PHP pre-req in the base Dockerfile

Jenkins build is green

Well, exposing the MOUNT_ARGS env variable looks way too esoteric to me.
What you are basically trying to do here is to inject extra docker args, so it would be good to make that concept clear.
How about allowing contents of BUILD_INTEROP_DOCKER_EXTRA_ARGS (or some other selfexplanatory name) env variable to be passed to the docker run command that builds the interop image? The effect is the same, but the solution is much clearer.
BUILD_INTEROP_DOCKER_EXTRA_ARGS="-v $HOME/.composer/auth.json:/root/.composer/auth.json:ro"  tools/run_tests/run_interop_tests.py ...

In case you decide to go ahead, please add a comment explaining the significance of that env variable.

Please squash the commits, we will need to rerun the tests anyway as interop tests run has failed (some transient issue with node has occured).

Commit squashed. But Michael asked me to log an issue for the npm install issue: #3823

Michael fixed #3823. If his PR looks good, maybe I will rebase this PR on top of his to make sure everything is green again.

Jenkins is mostly green except for the Node intermittent issue. Good to merge?


import virtual module

Hi, I am trying to set this up with import 'virtual:...' in my main.js file.
With unocss, I can use import 'virtual:uno.css' and it will be included when the page loads.
With the current instructions, to set it up in Drupal, I have to set up a library dependency, or modify the html template.
Seems like there may be some adjustment needed and it would work?

Hi, yes the actual declaration needs some adjustments, at the time I had some issues with using the virtual: notation to import it and choose to standby on that.
This module do not give any function or usage so it does make sense we don't need to use the import notation to use it. Except to simplify installation indeed.


Weird behavior on some package such as sourcetree

See the following logs:
PS K:\> scoop install sourcetree -g
Installing 'sourcetree' (2.4.8) [64bit]
Loading SourceTree-2.4.8-full.nupkg from cache
Checking hash of SourceTree-2.4.8-full.nupkg... ok.
Extracting... done.
Linking C:\ProgramData\scoop\apps\sourcetree\current => C:\ProgramData\scoop\apps\sourcetree\2.4.8
Creating shim for 'sourcetree'.
Creating shortcut for Atlassian SourceTree (sourcetree.exe)
Running post-install script...
Type:
New-Item : Cannot process argument because the value of argument "type" is not valid. Change the value of the "type"
argument and run the operation again.
At line:1 char:1
+ New-Item "$dir\lib\Update.exe" -force | out-null
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.NewItemCommand

'sourcetree' (2.4.8) was installed successfully!

PS K:\> scoop uninstall sourcetree -g
Uninstalling 'sourcetree' (2.4.8).
Removing shim for 'sourcetree'.
Removing shortcut C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Scoop Apps\Atlassian SourceTree.lnk
Unlinking C:\ProgramData\scoop\apps\sourcetree\current
'sourcetree' was uninstalled.

PS K:\> scoop install 7zip -g
WARN  '7zip' (18.01) is already installed.
Use 'scoop update 7zip --global' to install a new version.
PS K:\> scoop install sourcetree -g
Installing 'sourcetree' (2.4.8) [64bit]
Loading SourceTree-2.4.8-full.nupkg from cache
Checking hash of SourceTree-2.4.8-full.nupkg... ok.
Extracting... done.
Linking C:\ProgramData\scoop\apps\sourcetree\current => C:\ProgramData\scoop\apps\sourcetree\2.4.8
Creating shim for 'sourcetree'.
Creating shortcut for Atlassian SourceTree (sourcetree.exe)
Running post-install script...
Type: File
'sourcetree' (2.4.8) was installed successfully!
PS K:\>

When I install sourcetree it asks for some user input about a "Type" during/after the post-install script.
The first time I did not enter anything and the install failed. Searching a bit for the New-Item function, I figured I should enter "File" instead and that did the trick.
Could you help me understand if this required user input is the expected behavior?
Thank you!
PS:

Isn't it weird that scoop, whether an install is successful or not, tells you that "xxx was installed successfully"? It requires the end user to manually keep track of apps that are actually successfully installed vs those that weren't and fiddle around with uninstall/reinstall to fix scoop internal state.
scoop also removes previous versions and shims before it confirms that the new version has been successfully deployed so you often end up with some missing tools because scoop preemptively removed them during a failed install. Maybe the removal of previous version/shims should be done after the new version has been installed instead of before? With scoop approach of having different versions deployed in different folders and using shims, that should not be an issue. Thoughts?

PPS: Maybe my PS should be logged as another issue. Let me know!

The ItemType is set to file now.
Yeah, the process after an unsuccessful installation is a bit cumbersome. Rolling back to the last installed version after a failed update would also be a good idea. The error handling is not that great at the moment.

Seems this has been addressed. Please let us know if this appear reappears. Thanks.


fixing async tests that was causing crash.

Checklist

[x] I checked the Contributing Guidelines before creating this request.
[x] I have only one commit in this pull request.
[x] New extensions support iOS 8 or later.
[x] New extensions are written in Swift 3.
[x] I have added tests for new extensions, and they passed.
[x] Pull request was created to master head branch.
[x] All extensions have a clear comments explaining their functionality, all parameters and return type in English.
[x] All comments headers have the word SwifterSwift: before description.

@LucianoPAlmeida Thanks looks great 🎉


Orbit scroll issue

How to reproduce this bug:

Create more than one orbit with auto-play on the same page in a way where they won't both fit entirely on the screen
Scroll until they're both partially in view

What should happen:
They should auto scroll as usual
What happened instead:
The screen jumps up to put the top of the top orbit into view.
Browser(s) and Device(s) tested on:
Google Chrome 59 desktop, Google Chrome 57 Android, Mobile Safari
Test case link:
http://codepen.io/rlhawk1/pen/ybgbyV

This appears to be working fine in your pen: https://codepen.io/rlhawk1/full/ybgbyV/
Closing.


[Feat][UI] Show total count in table pagination

Purpose of the pull request
close #10872

Brief change log

*Provide a tool function to show the total count in a table's pagination.
*And... I run prettier, that's why I changed so many lines.

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Codecov Report

Merging #10881 (884e0d5) into dev (a615422) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev   #10881      +/-   ##
============================================
- Coverage     40.31%   40.30%   -0.01%
+ Complexity     4847     4843       -4
============================================
  Files           933      933
  Lines         36792    36790       -2
  Branches       4027     4024       -3
============================================
- Hits          14831    14827       -4
- Misses        20472    20476       +4
+ Partials       1489     1487       -2

Impacted Files
Coverage Δ

...org/apache/dolphinscheduler/remote/utils/Host.java
43.47% <0.00%> (-2.18%)
:arrow_down:

...e/dolphinscheduler/remote/NettyRemotingClient.java
51.38% <0.00%> (-1.39%)
:arrow_down:

...pache/dolphinscheduler/common/utils/DateUtils.java
74.83% <0.00%> (-0.17%)
:arrow_down:

.../dolphinscheduler/plugin/task/datax/DataxTask.java
0.00% <0.00%> (ø)

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 a615422...884e0d5. Read the comment docs.

Close due to inactivity.


chore: unpin NumPy to allow use of 2.0

Related issue
# followed by the number of the issue
Summary
Notes
Please check if the PR fulfills these requirements

[ ] If the feature has an impact on the user experience, the changelog has been updated
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] The commit message follows the conventional commit specification

/e2e --tests=sdk,mnist

End to end tests: :hourglass_flowing_sand: STARTING

The pin was to prevent incompatibilities regarding pickle. What is the issue with it ?

The pin was to prevent incompatibilities regarding pickle. What is the issue with it ?

Keeping a pin to an old version of NumPy is going to be more and more problematic down the line, as more recent versions of pandas / pytorch might not support NumPy 1.x.
If it's working with NumPy 2.x, I think we should allow it.
Do you remember when the issue with pickle was occurring?


How to write to certain column or cell ?

Can I write to, let's say, cell D3:D10 in a new sheet ? Column A to C will be left blank. Because as far as I know, openspout always start in A1.

If I'm not wrong, since the whole idea of the library is to take as less memory as possible, you would have to make it manually with a for loop and reach the desired cells (leave the first 3 entries of the array as empty strings).

$writer->addRow(Row::fromValues(["", "", "", $var, ...]));

To be able to read/write certain cell, you would need to load the whole file in the memory which is not supported?


Improve schema validating error message from kubectl create when '--validate' is set

kubectl create when '--validate' is set, it uses a schema to validate the input  before sending it.
But now in schema validate, if an error occurs, it returns at once, only just show an error message. We should aggregate errors like server validate.
in schema validate, it doesn’t handle required fields now. We should handle them.

Actually assigned to @feihujiang

Please can the appropriate TL determine a milestone for this change.

I'd like this for 1.0. We need to give clear, actionable feedback to users when their configs are incorrect.

Fixed via #10007


setting the right service tag: event-hubs

Docs Build status updates of commit dc53aba:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/latest/event-hub.md
:warning:Warning
View (azure-node-latest)
Details

docs-ref-services/latest/event-hub.md

Line 2, Column 1: [Warning-ms-prod-and-service] Only one of the following attributes can exist: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 10, Column 16: [Warning-ms-prod-technology-invalid] Invalid value for 'ms.technology': 'azure' is not valid with 'ms.prod' value 'azure'.
Line 25, Column 74: [Suggestion-docs-link-absolute] Absolute link 'https://docs.microsoft.com/javascript/api/@azure/arm-eventhub' will be broken in isolated environments. Replace with a relative link.
Line 33, Column 114: [Suggestion-docs-link-absolute] Absolute link 'https://docs.microsoft.com/javascript/api/@azure/event-hubs' will be broken in isolated environments. Replace with a relative link.
Line 34, Column 114: [Suggestion-docs-link-absolute] Absolute link 'https://docs.microsoft.com/javascript/api/@azure/eventhubs-checkpointstore-blob/' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 3808c02:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-services/latest/event-hub.md
:bulb:Suggestion
View (azure-node-latest)
Details

docs-ref-services/latest/event-hub.md

Line 22, Column 74: [Suggestion-docs-link-absolute] Absolute link 'https://docs.microsoft.com/javascript/api/@azure/arm-eventhub' will be broken in isolated environments. Replace with a relative link.
Line 30, Column 114: [Suggestion-docs-link-absolute] Absolute link 'https://docs.microsoft.com/javascript/api/@azure/event-hubs' will be broken in isolated environments. Replace with a relative link.
Line 31, Column 114: [Suggestion-docs-link-absolute] Absolute link 'https://docs.microsoft.com/javascript/api/@azure/eventhubs-checkpointstore-blob/' will be broken in isolated environments. Replace with a relative link.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 0079660:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-services/latest/event-hub.md
:white_check_mark:Succeeded
View (azure-node-latest)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

#sign-off


increased info on cryptcheck

What is your current rclone version (output from rclone version)?
1.42
What problem are you are trying to solve?
cryptcheck
How do you think rclone should be changed to solve that?
I'd like to see more info on cryptcheck, especially for long/large checks.  I routinely check 2-3TB of data (200,000 files) and would like to see the bytes/mbytes/gbytes checked, as a good estimation of how long is left, since it seems impossilble to show the eta of completion time.

I guess you are looking at --stats output to see the progress.
-P works with cryptcheck too.
However the expensive calculate the hash part doesn't have progress as you've noted.  This is because rclone doesn't instrument the transfer as it knows it is a local transfer.
It would be relatively easy to get rclone to count the total stats so files/MB done, files/MB to go - would that help?
I think counting the transfers of individual files is more difficult.

yes, that would be great since as you said, rclone know how many local bytes processed.

also would be nice to see the mb/sec read time for the local drive crc check.


Add links to run samples in the Web

In the main repo:

You can use the following markdown:

 [:arrow_forward: Run](xxx)

In Samples Repo:

And similar link on each Sample's page.

Closed in https://github.com/DiligentGraphics/DiligentEngine/pull/308/commits/9bc3a43592c6e6d81e458ec34b188d2287bf21b9


Facing dennied access to secrets

Modifying the values of vault-crd-helm i updated the version of the vault-crd image to 1.9.1 to avoid the log4j vulnerability.
What happened:
The application starts crashing and restarting constantly showing the following errors:
Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. secrets is forbidden: User "system:serviceaccount:vault-crd:vault-crd-serviceaccount" cannot list resource "secrets" in API group "" at the cluster scope.

Message: secrets is forbidden: User "system:serviceaccount:vault-crd:vault-crd-serviceaccount" cannot watch resource "secrets" in API group "" at the cluster scope.

What you expected to happen:
Initialize the application correctly.
How to reproduce it:

Change the image tag in the values
vaultCRD.tag | Image tag | 1.9.1

Execute the helm upgrade command

helm upgrade vault-crd vault-crd/vault-crd --version 1.6.3 -f custom-values.yaml

Solution:
Add list and watch permissions to the ClusterRole resource:
- apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - get
      - create
      - patch
      - update
      - delete
      - list
      - watch

Application working:
[main] de.koudingspawn.vault.VaultApplication   : Starting VaultApplication v0.0.1-SNAPSHOT using Java 11.0.1

Hi @facu-tolay ,
thanks for pointing to this. I checked and had some confusion on my own due to double projects.
I deprecated now the old approach and here you can find the helm chart which should also contain the required changes: https://github.com/DaspawnW/helm-charts


Why is this Exposed=(Window,Worker) when Elements aren't exposed to Workers?

I can't see how this could possibly be used in workers.

Closed via #42


update k8s to v1.31.3

- What this PR does and why is it needed

- Special notes for reviewers

- How to verify it

- Description for the changelog

/retest


Fixed shellcheck errors in create-adu-import-manifest.sh

approved with comments

thanks for fixing the shellcheck issues. If I check in bad stuff, it's my responsibility to clean it up, so next time, please assign the bug to me.

For some reason the pipeline run for this was not automatically kicked off, so you might need to manually run it.


Prevent loading of all files

Hi;
Would it be somehow possible to prevent this from loading every file? The fact that it does this prevents codecoverage reports to be accurate. Do you have any suggestions on getting accurate codecoverage reports for testing with this package? Thanks

Hi @jackcrane, what do you mean by loading every file?

Without further details including a repro and more concise description of the issue, I'm afraid I won't be able to support.

Running yarn test --coverage --ui on this repository would be a repro. As for more of a description, i dont know what else I can suggest.
https://github.com/jackcrane/slu-open-project

I would not recommend colocating your tests with your routes inside the /routes directory.


Non-editables and editables install cannot be combined in the same solve-group

Checks

[X] I have checked that this issue has not already been reported.

[X] I have confirmed this bug exists on the latest version of pixi, using pixi --version.

Reproducible example
Given the following pyproject.toml:
[project]
name = "minimal_project"
version = "0.1"
description = "just says hello"
requires_python = ">=3.11"

[build-system]
requires = ["flit_core>=3.2,<4"]
build-backend = "flit_core.buildapi"

[tool.pixi.project]
name = "minimal_project"
channels = ["conda-forge"]
platforms = ["osx-arm64", "linux-64", "win-64"]

# Use the project in editable for development
[tool.pixi.feature.dev.pypi-dependencies]
minimal_project = { path = ".", editable = true}

# Don't install in editable mode for production
[tool.pixi.feature.prod.pypi-dependencies]
minimal_project = { path = ".", editable = false}

[tool.pixi.environments]
# We want to use the same solve-group for solving
# the same set of dependencies and we would only
# need to do this once
default = {features = ["dev"], solve-group = "default"}
prod = {features = ["prod"], solve-group = "default"}

Minimal project is just a simple example project, see the pixi/examples/pypi-source-deps for the module.
We have a case that @pavelzw has a lot, where we want to install a dependency as editable in development and non-editable in production. But do need to use the same solve-group so we use the same set of dependencies everywhere.
Currently running this will create both editables for development and production.
pixi list -e prod
Package          Version       Build               Size       Kind   Source
...
libzlib          1.2.13        h53f4e23_5          47 KiB     conda  libzlib-1.2.13-h53f4e23_5.conda
minimal_project  0.1                                          pypi   . (editable)
ncurses          6.4.20240210  h078ce10_0          801 KiB    conda  ncurses-6.4.20240210-h078ce10_0.conda
...

Removing the solve-group solves this.
pixi list -e prod
Package          Version       Build               Size       Kind   Source
...
libzlib          1.2.13        h53f4e23_5          47 KiB     conda  libzlib-1.2.13-h53f4e23_5.conda
minimal_project  0.1                                          pypi   .
ncurses          6.4.20240210  h078ce10_0          801 KiB    conda  ncurses-6.4.20240210-h078ce10_0.conda
...

Issue description
So removing the solve-group solves the issue but is generally not what you want. What we want is to solve once and install in two different ways, this requires building two seperate wheels. Editable wheels are different from regular ones. But because we need to resolve an source essentially we need to build the metadata first in the resolution phase.
So there are two problems:

Using the same solve-group incorrectly marks the dependency as editable in the prod installation.
PEP517 defines a hook: prepare_metadata_for_build_wheel and PEP662 defines a hook prepare_metadata_for_build_editable, for which there are no guarantees that they produce the same metadata. Actually, we know they don't produce the same .dist-info folder for sure (missing RECORD amongst other things)

We just need to debug 1) to see whats going wrong.
However, for 2) we need to assume that the hooks create the same METADATA file for now. It's the only way to allow this feature to work. I currently see no reason why it shouldn't generate the same METADATA but I don't know all the build backends internals or projects that might do something that produces different METADATA. So if anyone can enlighten me please!
Expected behavior
This should create two environments a default one with the editable install and a prod one where the installation is not editable.

or https://github.com/prefix-dev/pixi/pull/1121#issuecomment-2039816866


Two potential memory leaks when doing Analyze on iOS 9

Line 101 and 114 in Reachability.m
Potential leak of an object stored into 'ref'

Hi,
Any news on which of these solutions can be merged in? Removing this warning would make our CI machine very happy and would stop it failing on the analysis stage or our pipeline :)
Thanks!
S

Is this project dead?

I hope not - it's in most of our apps (10 or so!) and I don't want to have to replace it :)

It appears to me that this warning is only when return value is not able to allocate, which should basically never happen. But to fix it and get rid of the warning i did the following:
+ (instancetype)reachabilityWithHostName:(NSString *)hostName
{
    Reachability* returnValue = NULL;
    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, [hostName UTF8String]);
    if (reachability != NULL)
    {
        returnValue= [[self alloc] init];
        if (returnValue != NULL)
        {
            returnValue->_reachabilityRef = reachability;
            returnValue->_alwaysReturnLocalWiFiStatus = NO;
        } else
            CFRelease(reachability);
    }
    return returnValue;
}

+ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress
{
    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)hostAddress);

    Reachability* returnValue = NULL;

    if (reachability != NULL)
    {
        returnValue = [[self alloc] init];
        if (returnValue != NULL)
        {
            returnValue->_reachabilityRef = reachability;
            returnValue->_alwaysReturnLocalWiFiStatus = NO;
        } else
            CFRelease(reachability);
    }
    return returnValue;
}

So basically all i did was add the:
else
    CFRelease(reachability);

to each function.

Thank you @JimmyAdler - that helped me.

Thank you @JimmyAdler - that helped me.

Can someone merge in 118 to fix this bug, it seems to me to both correct the problem, and correct it in a sensible place.
Granted, there is no real issue as the leak would only happen if the init fails, but, analyser warnings.

@JimmyAdler  i don't find _alwaysReturnLocalWiFiStatus variable in Reachability.h . Where is it. Thanks


Enable hubploy to tell r2d to use different base images

https://github.com/jupyterhub/repo2docker/pull/909 enables repo2docker to use different base images. It'd be nice to be able to pass this along to hubploy so that we can use different base images for different datahub deployments.
It seems logical to seed the base image configuration in the deployment hubploy.yaml and then pass that to the r2d object within hubploy.

Fixed by #114.


Sound fades in and out with tiny motions (Wwise vs PA in separate maps?)

PA 1.1, UE 4.23 (custom), VS2019, Wwise 2019.1.5.
I'm up and running in a coarse-bake acoustics environment, player running around a big area which includes a few subrooms. The effect of the environment on sounds seems glitchy in some cases.
Most noticeable: I have a room with highly absorptive (grass, 0.7) walls/floors/ceiling, open to a much bigger area with harder surfaces. Inside the "grass room" is an object emitting a kick-drum thump once per second. Standing next to it it sounds correctly dry. As player moves outside the room into the big hard space it gets reverby. Moving away from the door, it goes to silence when the player stops moving, but any extremely small movement of the camera (= listener) causes the sound to come back up in volume for a moment and then back down to silence. It sounds like it might be restarting a blend from a previous probe point every time I move, no matter how small the move.
I can provide video of this occurring if that's helpful.

The cause seems to be changes I made in order to let maps without acoustic data use wwise spatialization while those with acoustic data use PA. This is pretty important for us in the near term while we're evaluating whether or not we want to commit to using PA.
In the UAcousticsAudioComponent constructor, if I leave the stanza bUseSpatialAudio = false stanza in place, then our non-acoustics maps don't work correctly. I tried moving that block into TickComponent and doing it once conditionally based on whether or not an .ACE was successfully loaded for the level, but in that case I got the reported fade-in-and-out, I guess because Wwise occlusion was conflicting with PA.
I tried another approach, turning bUseSpatialAudio off in the constructor and conditionally turning it back on in the tick, and Wwise spatialization seems to generally work in non-acoustics maps in that case, but I'm getting many AK::SpatialAudio::SetEmitterObstructionAndOcclusion: game object (ID:...) is not registered as a spatial audio emitter errors to the log.
Before I dig deeper into the Wwise occlusion/obstruction logic, do you have any suggestions for addressing this? I don't want to use separate sound components for Wwise-mode and PA-mode, because we want to re-use blueprints across our test maps.

I'm pretty sure that what you are trying to do is unsupported, but there might be a way to pull off what you desire.  I'm going to ping our contacts at AudioKinetic to see if they can chime in.

A related question: in the non-PA maps, do you intend to use the acoustics features of the Wwise Spatial Audio Engine - like Wwise Reflect, rooms/portals etc.? Or do you mainly want a decent fallback option with spatialization + manual reverb in cases where you can't use PA?

@NoelCross I think I got the solution I needed -- I check for an AcousticsSpace actor in the level at BeginPlay and turn off the Wwise spatialization then instead of in the constructor. Seems to work okay.
@nikunjragh This is purely a short term thing while we're evaluating PA for a new project. I don't need all the features of Wwise, just need it not to sound like I've broken everything in non-PA maps.

@borogove , I'm going to close this issue since you have a solution. Feel free to reopen if you find that your solution no longer works for what you need.

@MikeChemi This still doesn't quite work. If I turn off Wwise spatialization in UAcousticsAudioComponent::BeginPlay instead of the constructor, then Acoustics dry-path spatialization doesn't seem to work -- it looks like the listener position maybe doesn't update, as the dry path works near the player start but nowhere else. I suppose the solution is to just add an Acoustics Space to all our test levels, and disable via IAcoustics::SetEnabled if there's no baked data available. (The default behavior with no bake is too "boomy".)

@borogove yeah, that should work. Thanks for the feedback on the default no-bake sound. This could be adjusted via design parameters, but then you'd have to undo those parameters when re-enabling the bake. If using SetEnabled is working for you, I'd stick with that.

Hmm, no, disabling acoustics leaves me with no spatialization again, it appears.

I was never able to get a code solution that spatialized correctly for both Acoustics-ready and non maps. We went ahead and baked acoustics data for all our maps and switched over wholesale.
I do think being able to selectively enable acoustics would be a good feature for teams in the process of evaluating PA, but this is not currently a blocking issue for me.


Expose VorbisComment.CueSheet property for FLAC embedded CueSheets

Note: This's not to be confused with FLAC native CueSheet metadata field
Many audio players (e.g. Foobar2000) allow for embedding album CueSheet in VorbisComment:

Currently to access CueSheet embedded in VorbisComment one has to access it through index of VorbisComment property.
Check following PowerShell code:
> Add-Type -Path .\FlacLibSharp.dll
> $f = [FlacLibSharp.FlacFile]::new('C:\2004 - apparat - shapemodes.flac')
> $f.VorbisComment

Key                     Value
---                     -----
album                   {Test}
artist                  {Apparat}
cue_track01_TRACKNUMBER {01}
cue_track02_TRACKNUMBER {02}
cue_track03_TRACKNUMBER {03}
cue_track04_TRACKNUMBER {04}
cue_track05_TRACKNUMBER {05}
cue_track06_TRACKNUMBER {06}
cuesheet                {REM GENRE Electronic...
DATE                    {2004}
GENRE                   {Electronic}
LABEL                   {Neo Ouija}
STYLE                   {Glitch, Broken Beat, IDM, Experimental}
TOTALTRACKS             {06}

> $f.VorbisComment['cuesheet']
REM GENRE Electronic
REM DATE 2004
PERFORMER "Apparat"
TITLE "Shapemodes"
REM REPLAYGAIN_ALBUM_GAIN -1.92 dB
REM REPLAYGAIN_ALBUM_PEAK 0.977234
FILE "2004 - apparat - shapemodes.flac" WAVE
  TRACK 01 AUDIO
    TITLE "Solaris"
    REM REPLAYGAIN_TRACK_GAIN -1.83 dB
    REM REPLAYGAIN_TRACK_PEAK 0.951843
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Riding"
    REM REPLAYGAIN_TRACK_GAIN +4.00 dB
    REM REPLAYGAIN_TRACK_PEAK 0.977234
    INDEX 01 06:08:69
  TRACK 03 AUDIO
    TITLE "Get Out Of Your Krib"
    REM REPLAYGAIN_TRACK_GAIN -1.28 dB
    REM REPLAYGAIN_TRACK_PEAK 0.977234
    INDEX 01 10:34:66
  TRACK 04 AUDIO
    TITLE "Scissors And Saxophones"
    REM REPLAYGAIN_TRACK_GAIN -4.99 dB
    REM REPLAYGAIN_TRACK_PEAK 0.939636
    INDEX 01 14:48:23
  TRACK 05 AUDIO
    TITLE "Sinus"
    REM REPLAYGAIN_TRACK_GAIN -1.82 dB
    REM REPLAYGAIN_TRACK_PEAK 0.931366
    INDEX 01 18:59:66
  TRACK 06 AUDIO
    TITLE "Radau"
    REM REPLAYGAIN_TRACK_GAIN -1.89 dB
    REM REPLAYGAIN_TRACK_PEAK 0.977203
    INDEX 01 25:40:37

Proposal:
Add CueSheet property to VorbisComment so it can be accessed directly:
> $f.VorbisComment.CueSheet

What's the format of this Cuesheet data in the tag? Do you have some good resources? I think I may be missing it, but I can't find a good reference for this format.
I'd love to get it implemented. I'll see when I find some time.
Thanks for the suggestion! I really appreciate it! Really cool you're using it from PowerShell, hadn't even thought of that.

@AaronLenoir As for the CueSheet data format you could check, hydrogenaudio wiki. However in my example you can see that Foobar2000 keeps ReplayGain info in comments. The problem with CueSheet format is that there's a lots of apps that diverge from the standard. So instead of processing CueSheet data (which would be amazing but may be hard to cover all the edge cases) what I was looking for is rather simple addition of extra VorbisCommenValue e.g:
        /// <summary>
        /// Gets or sets the embedded CueSheet if available.
        /// </summary>
        /// <remarks>If not found an empty string is returned.</remarks>
        public VorbisCommentValues CueSheet {
            get { return this["CUESHEET"]; }
            set { this["CUESHEET"] = value; }
        }

In fact it would be great, if you'd implement import and export of embedded CueSheet to file (with UTF8 encoding). The same for pictures. But this's not as important because I can do it with PowerShell and your amazing FlacLibSharp already.

Oh I see what you mean! Yeah that would be a small addition, can be done for sure.
I agree parsing it if there's no real standard is probably a rabbit hole I can't get into at the moment.

@kborowinski it's in the master branch now and it'll be in version 3.2.0


Upload-CreditReport FINERACT-1285

Description
Uploading Credit Reports back to ThitsaWorks Credit Bureau, https://issues.apache.org/jira/browse/FINERACT-1285.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

@rrpawar96 FYI this has SpotBugs violations you'll want to fix.
Also, you may be affected by FINERACT-924 after you fix SpotBugs, so rebase after that is fixed.

@rrpawar96 FYI this has SpotBugs violations you'll want to fix.
Also, you may be affected by FINERACT-924 after you fix SpotBugs, so rebase after that is fixed.

@vorburger fixed the build and Ready for review.
Also have updated the documentation (uploading the creditReport): https://cwiki.apache.org/confluence/display/FINERACT/Documentation+to+use+Integrated+Credit+Bureau

@vorburger fixed the build and Ready for review.
Also have updated the documentation (uploading the creditReport): https://cwiki.apache.org/confluence/display/FINERACT/Documentation+to+use+Integrated+Credit+Bureau

LGTM, have 1 minor feedback. @rrpawar96 should @nikpawar89 review and LGTM this as well? Or shall we merge it, after you commented on that minor feedback? Tx.

Yes, would like to get LGTM from @nikpawar89 too.

LGTM, have 1 minor feedback. @rrpawar96 should @nikpawar89 review and LGTM this as well? Or shall we merge it, after you commented on that minor feedback? Tx.

Yes, would like to get LGTM from @nikpawar89 too.

@rrpawar96 This looks fine to me but I would expect report generation to be automated. It would be difficult for users to generate report manually, I think we should automate it.
We have different options here :

Create a job, which generates the file and uploads to Credit Bureau.
User triggers the report generation - looks into the report then submits to Credit Bureau.

You may have both features  or start with second option, build trust and then automate the process.
Let's take step by step approach, let us implement second option and then option one should be easy.
Regarding report generation, You would have to identify the fields in the schema to be mapped to fields of the template provided by Credit Bureau.  Also consider, the row limitation of file format (or constraints from credit bureau), if there is any.
You may also want to take a more generic approach, where in user has the ability to create/update mapping, format etc - sky is the limit :)
For now, the upload feature looks good to me. Report generation can be worked independently.

@rrpawar96 This looks fine to me but I would expect report generation to be automated. It would be difficult for users to generate report manually, I think we should automate it.
We have different options here :

Create a job, which generates the file and uploads to Credit Bureau.
User triggers the report generation - looks into the report then submits to Credit Bureau.

You may have both features  or start with second option, build trust and then automate the process.
Let's take step by step approach, let us implement second option and then option one should be easy.
Regarding report generation, You would have to identify the fields in the schema to be mapped to fields of the template provided by Credit Bureau.  Also consider, the row limitation of file format (or constraints from credit bureau), if there is any.
You may also want to take a more generic approach, where in user has the ability to create/update mapping, format etc - sky is the limit :)
For now, the upload feature looks good to me. Report generation can be worked independently.

@nikpawar89, thanks for the review, and for giving the idea of generating the report by automation and also thanks for the explanation on how to approach the same, will create a JIRA for this enhancement.

@nikpawar89, thanks for the review, and for giving the idea of generating the report by automation and also thanks for the explanation on how to approach the same, will create a JIRA for this enhancement.

@nikpawar89 sorry just to make this more explicit, does this have LGTM Approval from you for merge? Will you merge it, or do you want me to? Just asking to avoid confusion. Thanks!

@nikpawar89 sorry just to make this more explicit, does this have LGTM Approval from you for merge? Will you merge it, or do you want me to? Just asking to avoid confusion. Thanks!

@nikpawar89 sorry just to make this more explicit, does this have LGTM Approval from you for merge? Will you merge it, or do you want me to? Just asking to avoid confusion. Thanks!

@vorburger I gave LGTM, unfortunately I don't have access to merge.

@nikpawar89 sorry just to make this more explicit, does this have LGTM Approval from you for merge? Will you merge it, or do you want me to? Just asking to avoid confusion. Thanks!

@vorburger I gave LGTM, unfortunately I don't have access to merge.

@vorburger I gave LGTM, unfortunately I don't have access to merge.

oh OK sorry I forgot; I'll merge it. If you contribute more yourself, you can earn the committer privilege!

@vorburger I gave LGTM, unfortunately I don't have access to merge.

oh OK sorry I forgot; I'll merge it. If you contribute more yourself, you can earn the committer privilege!

@vorburger I gave LGTM, unfortunately I don't have access to merge.

oh OK sorry I forgot; I'll merge it. If you contribute more yourself, you can earn the committer privilege!

I am already a committer- but don't know how would I get merge access.

@vorburger I gave LGTM, unfortunately I don't have access to merge.

oh OK sorry I forgot; I'll merge it. If you contribute more yourself, you can earn the committer privilege!

I am already a committer- but don't know how would I get merge access.


Add support for --docker-image

Signed-off-by: David Cassany<EMAIL_ADDRESS>

@Itxaka  I rebased and added a new commit to configure cosign and mtree luet plugins


narrow array type with .filter(Boolean)

Search Terms
narrow, array, filter
Suggestion
add this overload to Array<T>.filter:
filter(fn: typeof Boolean): Array<Exclude<T, null | undefined | 0 | ''>>

This may be considered too specific - but the use case is very common so hopefully worth it.
Use Cases
This will allow using array.filter(Boolean) to get rid of null/undefined/falsy values, and have the type system track it correctly even with strictNullChecks.
Right now the options are to use lodash.compact or write a similar function (not ideal to add a dependency), or to use ! (myArray.filter(Boolean).map(val => val!.foo(...))) which is a little dangerous.
Examples
Example
const maybeStrings = ['foo', null, 'bar']
const definitelyStrings = maybeStrings.filter(Boolean)

definitelyStrings is of type (string | null)[] even though it's impossible for nulls to be in it.
current behaviour:

proposed behaviour:

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code (I don't think so - types would become more specific)
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

See #29955

@jack-williams interesting, it'd be great if this could be solved by modifying the type of Boolean rather than filter. But I just tried manually putting in @ForbesLindesay 's signature in typescript@next and it doesn't allow using .filter(Boolean) without explicitly supplying the generic i.e. .filter<string>(Boolean). That's fine-ish for strings but when it's a complex inferred type that wouldn't be feasible.

@mmkal That can be fixed, but will require improvements to the inference engine.


Enhancement: Masks should apply on a per-stage basis in antsRegistration

When I specify a mask via "--masks [fixedmask,movingmask] can I do so on a per-stage basis?
The documentation states:
     -x, --masks [fixedImageMask,movingImageMask]
          Image masks to limit voxels considered by the metric.

This hints to me that it is per-stage, is that true?

Not yet.  I've been meaning to fix this for awhile.  I'll try to get to it soon.

Thanks for the clarification, the addition of a per-stage mask would be awesome.

Let's go ahead and keep this open to serve as a reminder.  I don't think there's another issue open pertaining to the mask per level.

Okay, this should be complete with this commit.   I'll close this but let me know if anything needs to be fixed.

Nice! Thanks very much!

Quick clarification, what if I wanted stages without a mask and stages with, is it possible to implement that in this structure? Maybe specify "NULL" for a mask?

It looks like this implementation will use a mask if it is specified anywhere on the command line. I would like to request a modification:
If masks are specified outside the stages, the same mask is used for all stages. If a mask is specified within a stage, it is only used within that stage.
This is particularly important if you want to make calls with something like Rigid -> Affine -> Affine (with mask) -> Syn (with mask).

Did you see the help menu?

-x, --masks [fixedImageMask,movingImageMask]
     Image masks to limit voxels considered by the metric. Two options are allowed
     for mask specification: 1) Either the user specifies a single mask to be used
     for all stages or 2) the user specifies a mask for each stage. Note that we
     handle the fixed and moving masks separately to enforce this constraint.

Okay, I'll restate my case slightly, what if I want to do:
Rigid -> Affine -> Syn (with mask)
As I understand the help, my mask would apply at all stages, or is there a way I can specify a null mask?

Okay, I understand now.  I'll have to think about that since there isn't a straightforward solution with the way the command line works.  However, for now, you can simply create a mask the size of your image with all ones to use for the affine and rigid stages which would be equivalent to what you want.
Rigid (with maskOnes) -> Affine (with maskOnes) -> SyN (with mask)

Okay, I see the currently implementation would make such a request difficult. The all-ones mask easy to manage. Thanks for your help!

Okay, Gabriel, I think the latest commit should do what you want without having to create masks of all ones.  You still have to specify a place holder on the command line (per the help menu).  Let me know if you run into any problems.

Looks like exactly what I'm looking for, now I can say NULL for a mask! Thanks!

I had a chance to rebuild ANTs with the new masking and I'm testing, and I think I'm running into a bug:
ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=16 antsRegistration --dimensionality 3 --float 0 --collapse-output-transforms 1 --verbose \
  --output [$outputdir/$(basename $movingfile)-$(basename $fixedfile)] \
  --winsorize-image-intensities [0.01,0.99] --use-histogram-matching 1 \
  --initial-moving-transform [$fixedfile,$movingfile,1] \
  --transform Rigid[0.2] --metric Mattes[$fixedfile,$movingfile,1,32,Random,0.25] --convergence [2000x2000x2000x2000,1e-6,10] --shrink-factors 8x4x2x1 --smoothing-sigmas 3x2x1x0vox --masks [NULL,NULL] \
  --transform Affine[0.5] --metric Mattes[$fixedfile,$movingfile,1,32,Random,0.30] --convergence [2000x2000x2000x2000x2000,1e-6,10] --shrink-factors 8x8x4x2x1 --smoothing-sigmas 4x3x2x1x0vox --masks [NULL,NULL] \
  --transform Affine[0.1] --metric Mattes[$fixedfile,$movingfile,1,64,Random,0.30] --convergence [2000x2000x2000x2000x2000,1e-8,10] --shrink-factors 8x6x4x2x1 --smoothing-sigmas 4x3x2x1x0vox --masks [$fixedmask,$movingmask] \
  --transform BSplineSyN[0.5,48,0] --metric CC[$fixedfile,$movingfile,1,4] --convergence [2000x1000x1000x100x40,1e-6,10] --shrink-factors 8x6x4x2x1 --smoothing-sigmas 4x3x2x1x0vox --masks [$fixedmask,$movingmask] \
  --transform BSplineSyN[0.1,48,0] --metric CC[$fixedfile,$movingfile,1,6] --convergence [20,1e-6,10] --shrink-factors 1 --smoothing-sigmas 0vox --masks [$fixedmask,$movingmask]

Based on the call, I think I'm doing

No masking for stage 0
No masking for stage 1
Masking for stage 2
Masking for stage 3
Masking for stage 4

However, this isn't what I get, instead:
And the beginning of the output:
  Reading mask(s).
    Registration stage 0
      Fixed mask = input/template/ad_ADNI_002_S_0816_S19532_I40726_mask.mnc
      Moving mask = input/atlas/brain1_mask.mnc
    Registration stage 1
      Fixed mask = input/template/ad_ADNI_002_S_0816_S19532_I40726_mask.mnc
      Moving mask = input/atlas/brain1_mask.mnc
    Registration stage 2
      Fixed mask = input/template/ad_ADNI_002_S_0816_S19532_I40726_mask.mnc
      Moving mask = input/atlas/brain1_mask.mnc
    Registration stage 3
 file NULL does not exist .
      No fixed mask
 file NULL does not exist .
      No moving mask
    Registration stage 4
 file NULL does not exist .
      No fixed mask
 file NULL does not exist .
      No moving mask

This is the reverse of what I expected.
Should I specifying this differently? Or is this a bug?

I'm guessing that the GetFunction call works like a stack, so it's getting the last specified first and going backwards.
Looks like it should count down like:
for( int currentMetricNumber = numberOfMetrics - 1; currentMetricNumber >= 0; currentMetricNumber-- )
      {
<SNIP>

Yeah, I designed it that way but apparently forgot as I was putting the modified mask option together.  Why don't you try the recent commit
https://github.com/stnava/ANTs/commit/59efa592f9692ceaebed258221e48b9ab34d1f04
and let me know if that works.  The ordering in reading the masks is all found here in this section of code so if there's still a problem, why don't you submit a pull request and I'll merge it.

Thanks for the quick fix, that's exactly what I changed in my code (still compiling...).
I'll report back after testing.

All seems good now! Thanks!


Is publication offer function thread safe?

Use scenarios as follows:
Thread1: pub = Aeron.AddPublication(Channel1, StreamID1),   pub.Offer(.....)
Thread2: pub = Aeron.AddPublication(Channel1, StreamID2),   pub.Offer(....)
Channel1 = Channel2 and StreamID1 = StreamID2
Is this usage thread safe? Thanks.
PS: The version is 1.4.0

I assume this is C# given the code sample? If so then best addressed to https://github.com/AdaptiveConsulting/Aeron.NET.
It is not clear what part you are asking is thread safe. Publications and the Aeron client are threadsafe.
1.4.0 is a very old version and no longer supported.

Thanks. C# code.


Better doc

In lieu of https://github.com/ambuda-org/ambuda/pull/124 , seeing that it will take a looong time to process.

Sorry for the late follow-up here!
There have been some recent changes that make these docs a little stale:

db_seed_basic is now db-seed-basic.
make db-seed-basic is now merged into make install

Rather than separate update commands, I think a new make update makes sense for consistency and ease of use. It can also update our node modules and migrate the database.

I see. Resolved the conflicts and freshened this up. Please recheck.

Content looks good to me, but the requirements.txt diff looks quite complex, including a downgrade of Jinja 2.
I don't think we need .. collapse:: Debug info -- you can leave this as a .. note:: if you like and reset requirements.txt to main to simplify the changes here.

Content looks good to me, but the requirements.txt diff looks quite complex, including a downgrade of Jinja 2.

Ah - sorry about that. I think I've brought sanity there now. I ran:
bash
source env/bin/activate
pip install -r requirements.txt
pip freeze > requirements.txt

And, I did not note any warnings. ( Dump here  - https://pastebin.com/YiMnMhEd ) So, it should be fine now.

I don't think we need .. collapse:: Debug info -- you can leave this as a .. note:: if you like and reset requirements.txt to main to simplify the changes here.

.. note:: seems more cluttery (screenshot below) - so, unless you veto, I'd keep collapse (old screenshot below).

did you push? I'm still seeing Jinja2==3.0.3 in requirements.txt

did you push? I'm still seeing Jinja2==3.0.3 in requirements.txt

Pushed now (I deduce that I must have pushed to a wrong branch last time)

Build is breaking on a dependency conflict.
On that note, do you know why so many new deps are being added here? Is it all just for sphinx_toolbox.collapse? If no, I think a .. note:: is preferable -- even if it's less readable, it keeps our dependencies a little more sane.

Also, see #290.

Also, see #290.

Looks like this is obsolete then. Closing.

On that note, do you know why so many new deps are being added here? Is it all just for sphinx_toolbox.collapse? If no, I think a .. note:: is preferable -- even if it's less readable, it keeps our dependencies a little more sane.

Seems so.


Field.Group: Support "exact" prop

What
I suggest to add a new exact prop to the <Field.Group/> component.
Why
To prevent groups closing/reopening for nested group that must belong to the group outside.
Example
<Field.Group name="first">
  <Field.Group name="second">
    <Input name="fieldOne" initialValue="foo" />
  </Field.Group>

  <Field.Group exact name="second">
    <Input name="fieldOne" initialValue="bar" />
  </Field.Group>
</Field.Group>

Serializes into:
{
  "first": {
    "second": {
      "fieldOne": "foo"
    }
  },
  "second": { // exact
    "fieldOne": "bar"
  }
}

The support for exact prop is added. The integration tests for Field.Group have been re-written and simplified.


question: Metadata in serinus

Could you show me some example when is useful to use metadata in serinus?
I do not know why should I use it or when..

Of course. Here is a little example of how I would use the metadata to specialize the route.
class AppController extends Controller {

  AppController({super.path = '/'}){
    on(
      Route.get('/public'),
      (context) async => {'message': 'Hello, Common User!'}
    );
    on(
      Route.get(
       '/admin',
       metadata: [
          Roles(roles: ['admin'])
        ]
      ),
      (context) async => {'message': 'Hello, Admin!'}
    );
  }

}

In this case the /admin endpoint will be accessible only if the for example from the JWT Token of a user you see that the user role is admin. Obviously you will need a Hook that does that or, for example a Middleware that check this parameter.
This is how I would implement the hook to check it
class RolesHook extends Hook {

  @override
  Future<void> beforeHandle(RequestContext context) async {
    final roles = context.canStat('roles') ? context.stat('roles') ?? [] : [];
    final userRoles = context['userRoles'] ?? [];
    if(
      (roles.isNotEmpty && userRoles.isEmpty) ||
      (roles.isNotEmpty && userRoles.isNotEmpty && !intersect(roles, userRoles))
    ) {
      throw ForbiddenException(message: 'You do not have the required roles to access this route');
    }
    return;
  }

  bool intersect(List<String> a, List<String> b) => a.any((element) => b.contains(element));

}

Ok. Thank you for this small example :)


terrible duplicities refactored

Jožo, have you considered creating some tests related to the change?

@yurloc , no I want to fix Bpmn2UnmarshallingTestCase at first. There are the same fails on master and my branch.

While I do appreciate the effort and your work to refactor some of the common functionality I don't think it's necessary to use terms as "terrible" or "fails"..there is really no need for that.
I do agree that we should ad some tests because changes to roundtripping bpmn2 even if its just moving some "terrible" common code into separate methods can possible cause changes in the bpmn2 that need to be caught.

I would not use "extract" as the method name. Probably better to use "set" please.
Also the level is somewhat too granular IMO, for example when generating color info it would make more sense to have a single setColorInfo for example method than
extractColorProperty("a"); extractColorProperty("b"), extractFontSize(..."
Also like method names such as "extractNameFlowElement" make little sense to people that read the code, especially if you have for example:
protected void applyEndEventProperties(EndEvent ee, Map<String, String> properties) {
ee.setId(properties.get("resourceId"));
extractNameFlowElement(ee, properties);
Simpler name as in "setNodeName" for example would be better here as it would apply to flow elements, artifacts, etc and its confusing to have applyEndEventProeprties then set some "flow element name"
Just as last comment if we do go ahead of choose to refactor as you have it it would be better if we are more flexible to pass for example the proeprty name(s) as well as the namespace into the refactored methods, for example:
private void extractIsSelectable(BaseElement sequenceFlow, Map<String, String> properties) {
if(properties.get("isselectable") != null && properties.get("isselectable").length() > 0) {
ExtendedMetaData metadata = ExtendedMetaData.INSTANCE;
EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature(
"http://www.jboss.org/drools", "selectable",
Given the nature of bpmn2 and that we often have to create slightly different changes depending on the node types given the same properties it would be better to pass both the property name "isselectable" as well as the namespace in this case ""http://www.jboss.org/drools" to the method. This would even allow you to further refactor all methods which retrieve data from node extension elements in the future and allow us to create small one-offs when needed to implement certain features.
Just my 2c :)

@tsurdilo I didn't want to offend nobody with words as "terrible" and "fails". If I did, sorry for that. By "fails" I meant testcases, which didn't passed.
I was a little bit investigating. In project is used this library [1] and in these failing tests [2] is assertion, if some TextAnnotation belongs to Artifact's of process. But this is basically not possible, because in used library [1] TextAnnotation class is not child of Artifact class.
I am really not sure, how to solve this.
I will apply your suggestions as soon as possible and I will let you know then.
[1]
from effective pom: <version.org.eclipse.bpmn2>0.7.6-jboss</version.org.eclipse.bpmn2>
[2]
Bpmn2UnmarshallingTestCase.testAssociationBidirectionalUnmarshalling:757 ClassCast
Bpmn2UnmarshallingTestCase.testAssociationUnidirectionalUnmarshalling:742 ClassCast
Bpmn2UnmarshallingTestCase.testAssociationUnmarshalling:727 ClassCast org.ecli...
Bpmn2UnmarshallingTestCase.testTextAnnotationUnmarshalling:373 » NoSuchElement

@jomarko great catch! That change was done just recently and was to switch TextAnnotations from Artifacts to FlowElement type so that they also can be included inside a LaneSet.
I think honestly these test no longer apply and can be removed.
Thanks again for all your help !

All existing tests have passed. I am going to add testcases for code I have refactored. Then I will mark this PR as completed from my site.

@tsurdilo I think, I am done with this PR. Please review the PR and feel free to give me any feedback.

@tsurdilo any update on this? Can it be merged? I see it is not cleanly mergeable anymore, so that would need to be fixed.

+1, @tsurdilo do you have any objections?

@psiroky @tsurdilo is this still makes sense?


Add definition file to npm

Fixes #1107
(I also had to fix the syntax.)
@lhorie BTW, TypeScript does find definition files under node_modules now, so it's best to upload it to npm now.
As a side effect, nobody needs to worry about keeping other versions (e.g. DefinitelyTyped) up to date.

Oh, and by the way, in next, there are two mirrored versions for compatibility reasons - those using import * as m from "mithril" with the ambient version will have to switch to import m from "mithril" for the module version, and I didn't want this update to instantly break their apps on the next update.


Italicize comments

Hi there! Love the work you've done on Duotone -- it looks awesome! I was just wondering what your thoughts are on italicizing code comments. (I personally prefer my syntax highlighting scheme to italicize code comments.) Thanks again :)

+1

:+1:  Yeah, I like it too. Let's do it.
If somebody really hates it, it can be undone in styles.less with
atom-text-editor::shadow .comment {
  font-style: normal;
}


Tests Dependencies/relations

How can user set dependencies between multiple tests?
Example:
Test1->Test2 to TestN : In order to execute Test2 to TestN , Test1 should be executed successfully first as that is the primary/basic test for the module.

A possible solution for this would be a setup function at suite level?, check out my answer on #54

Yes, you are correct.It makes more sense to have a function to do this at the suite level.


Health Check

Does it make since that adding an additional interface to emit health check results here? Say adding an IHealthCheckListener, and emitting health check result to it in HealthCheckBackgroundService.cs. The PaaS implements it and records the received health check results. About the pure OSS part, we can add a simple empty implement.
I proposal this is because that from the perspective of PaaS side it's better to know nothing about the OSS details, but the HealthCheckBackgroundService.cs contains internal logics and configurations, I think it's more appropriate to prevent PaaS from knowing the details and creating the overrided background service.

The health check mechanism needs to consider multiple scenarios, say we can take internal resources as the health check objects but not for external resources.
We should have offline discussion with @tongwu-msft and @moria97 .

The health check mechanism needs to consider multiple scenarios, say we can take internal resources as the health check objects but not for external resources. We should have offline discussion with @tongwu-msft and @moria97 .

For this pr, we could first add external resource check, and refine it later.


Code scanning alert - Incomplete string escaping or encoding - False positive?

Hi markdown-to-jsx maintainers!
I have code scanning running on minified bundled code including your package. It flagged a piece of code coming from your package as "Incomplete string escaping or encoding". The code in question is in the following line:
https://github.com/quantizor/markdown-to-jsx/blob/3a04b9ed86d67a3b72c59e605aac00aa3e8f59d5/index.tsx#L1760
It doesn't like the string replacement. I imagine it probably thinks this replacement is intended to escape the string and prepare it for display; however, this replacement does not seem to be preparing the string for safely displaying.
My understanding is that this library is not written with the intention of making anything you pass into it safe to display, which makes this complicated.
I have some vague guesses regarding what's happening in this code, but I don't know enough about this package to say I can really tell what's happening here. I just wanted to present this to you and ask if you can tell more about what exactly the code alert is concerned about since you have more context around how this code is being used. Could you share with me some context regarding how this code is being used and help me to determine if there is something I need to do to account for this or if I can safely consider this a false positive?
Thank you very much for your time and consideration!
Screenshots of the code alert description:

Links in the screenshot:

OWASP Top Ten 2017 | A1:2017-Injection | OWASP Foundation
sqlstring - npm
CWE - CWE-20: Improper Input Validation (4.15)
CWE - CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS) (4.15)
CWE - CWE-116: Improper Encoding or Escaping of Output (4.15)

Basically when using link references if the corresponding ref is not available it puts the content back into the document with the square bracket escaped so it won't get reparsed.
e.g.
[Foo][1] bar

There should be a corresponding entry at the end of the document:
[1]: https://google.com

But if there isn't one, then we fall back to putting the raw content back in as-is with a touch of escaping.

tbh this might not even be needed, I'll look into it


LastInsertID again

Coverage decreased (-23.0%) to 51.183% when pulling ca4a2d9b7de753828c871bcb173aaf8ccde84ef0 on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage decreased (-40.4%) to 33.801% when pulling 9817f4d598ed33cab7490cdf0bbf02faab34eaf3 on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage decreased (-23.0%) to 51.183% when pulling 9d86b861b920f8c2ddfa5a936317d9a6b46e2d47 on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage decreased (-22.9%) to 51.267% when pulling 1904877d8ccc87fa381efef1f5d2c4f7e6c8f146 on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage increased (+0.08%) to 74.251% when pulling 4dc7464be4a6fadd6ca8363b4a5c65e35e9e6a3d on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage decreased (-22.9%) to 51.267% when pulling c1e7280dc6c6f30af4a952a342fa086c677372b7 on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage decreased (-22.9%) to 51.267% when pulling 3f20e0cab0aa5b4f5ce19fa53e1199697f5641ee on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Coverage increased (+0.08%) to 74.251% when pulling 8a9d2d66fc81ff74539002f742ff2d6a8b5e0ad2 on david-puglielli:lastinsertID into 2ab756ee6d42de49e8caf4efc6635bf79ef98a4d on Microsoft:dev.

Please add a Wiki page for the updates with a php example


Can't load aurelia.use.plugin('ag-grid-aurelia') with new aurelia-webpack-plugin

I'm submitting a ...  (check one with "x")
[x] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here

Current behavior
Using aurelia.use.plugin('ag-grid-aurelia'); in export function configure(aurelia) {} will not work with the new aurelia-webpack-plugin v2 (currently 2.0.0-rc.1).
Expected behavior Be able to load ag-grid-aurelia plugin without issues under aurelia-webpack-plugin v2.
Minimal reproduction of the problem with instructions
Please download minimal Aurelia + Webpack setup from here. Then do the following simple steps.
npm install --save ag-grid ag-grid-aurelia
src/main.js:
import {PLATFORM} from 'aurelia-framework';
export function configure(aurelia) {
  aurelia.use
     .standardConfiguration()
     .plugin('ag-grid-aurelia') // <--- added this line
     .developmentLogging();
  aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app')));
}

To fix this error, I wrap it in PLATFORM.moduleName(). See more info about PLATFORM.moduleName() as described by @jods4.
import {PLATFORM} from 'aurelia-framework';
export function configure(aurelia) {
  aurelia.use
     .standardConfiguration()
     .plugin(PLATFORM.moduleName('ag-grid-aurelia')) // <--- wrapping in PLATFORM.moduleName()
     .developmentLogging();
  aurelia.start().then(() => aurelia.setRoot(PLATFORM.moduleName('app')));
}

However, the browser gives this error:
Uncaught (in promise) Error: Unable to find module with ID: ag-grid-aurelia/lib/agGridAurelia
I think internally, ag-grid-library is trying to load ag-grid-aurelia module. If this is the case, then this as well need to be wrapped by PLATFORM.moduleName()
What is the motivation / use case for changing the behavior?
As aurelia-webpack-plugin is upgrading to v2 (currently 2.0.0-rc.1), ag-grid-aurelia will fail to load on webpack setups.
Please tell us about your environment: Windows, VS Code, Webpack, Webpack Dev Server

ag-grid-aurelia version: 8.2.0

ag-Grid/ag-Grid-Enterprise version: 8.2.0

Aurelia version: 1.1.0

Browser: all

Language: all

@seanlandsman I'll try to look at this today

I've recreate a webpack loader issue here https://github.com/swalters/agGridAureliaWebpack and am waiting for feedback from Aurelia team

A temporary solution is to add following lines in webpack.config.js
const AureliaWebpackPlugin = require('aurelia-webpack-plugin');
...
.plugins = [
...
    new AureliaWebpackPlugin.ModuleDependenciesPlugin({
        'ag-grid-aurelia': [
          './lib/agGridAurelia',
          './lib/agGridColumn',
          './lib/agTemplate'
        ]
    }),

As the issue over at aurelia/webpack-plugin has been fixed I assume that this has been fixed too
If this is still an issue please open a new issue and I'll investigate
thanks


Version 1.9.6 fails to install glocaltokens==0.6.1 in home assistant official containers

Describe the bug
With the last release (v1.9.6) the integration is unable to start due to dependency install failure due to missing c++ in the container.
This is probably related to a dependency not having a wheel for the Python/OS version of the official Home Assistant containers.
Version of the integration
1.9.6

Logs
Unable to install package glocaltokens==0.6.1: ERROR: Command errored out with exit status 1: command: /usr/local/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-mqsqsqz6/grpcio-tools/setup.py'"'"'; __file__='"'"'/tmp/pip-install-mqsqsqz6/grpcio-tools/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-rczzd0sb cwd: /tmp/pip-install-mqsqsqz6/grpcio-tools/ Complete output (11 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-mqsqsqz6/grpcio-tools/setup.py", line 180, in <module> if check_linker_need_libatomic(): File "/tmp/pip-install-mqsqsqz6/grpcio-tools/setup.py", line 91, in check_linker_need_libatomic cpp_test = subprocess.Popen([cxx, '-x', 'c++', '-std=c++11', '-'], File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/local/lib/python3.9/subprocess.py", line 1821, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'c++' ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. WARNING: You are using pip version 20.2.4; however, version 22.0.3 is available. You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

I also got this error when I upgraded to v1.9.6

Just came here to say I'm getting the same error. I'm on 2022.02.1:
Setup failed for google_home: Requirements for google_home not found: ['glocaltokens==0.6.1'].

On my system it's being installed from wheels as expected:
❯ pip install --force-reinstall grpcio-tools==1.43.0
Collecting grpcio-tools==1.43.0
  Using cached grpcio_tools-1.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB)
Collecting protobuf<4.0dev,>=3.5.0.post1
  Using cached protobuf-3.19.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
Collecting setuptools
  Using cached setuptools-60.7.1-py3-none-any.whl (1.0 MB)
Collecting grpcio>=1.43.0
  Using cached grpcio-1.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB)
Collecting six>=1.5.2
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: protobuf, setuptools, six, grpcio, grpcio-tools
  Attempting uninstall: protobuf
    Found existing installation: protobuf 3.19.4
    Uninstalling protobuf-3.19.4:
      Successfully uninstalled protobuf-3.19.4
  Attempting uninstall: setuptools
    Found existing installation: setuptools 60.7.1
    Uninstalling setuptools-60.7.1:
      Successfully uninstalled setuptools-60.7.1
  Attempting uninstall: six
    Found existing installation: six 1.16.0
    Uninstalling six-1.16.0:
      Successfully uninstalled six-1.16.0
  Attempting uninstall: grpcio
    Found existing installation: grpcio 1.43.0
    Uninstalling grpcio-1.43.0:
      Successfully uninstalled grpcio-1.43.0
  Attempting uninstall: grpcio-tools
    Found existing installation: grpcio-tools 1.43.0
    Uninstalling grpcio-tools-1.43.0:
      Successfully uninstalled grpcio-tools-1.43.0
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

glocaltokens 0.6.1 requires zeroconf<0.37.0,>=0.36.2, but you'll have zeroconf 0.38.3 which is incompatible.
audio-metadata 0.11.1 requires attrs<19.4,>=18.2, but you'll have attrs 21.2.0 which is incompatible.
Successfully installed grpcio-1.43.0 grpcio-tools-1.43.0 protobuf-3.19.4 setuptools-60.7.1 six-1.16.0

@allenporter can you help us here? Why grpcio is not installed from wheels on the official HA container?

On my system it's being installed from wheels as expected:
❯ pip install --force-reinstall grpcio-tools==1.43.0
Collecting grpcio-tools==1.43.0
  Using cached grpcio_tools-1.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB)
Collecting protobuf<4.0dev,>=3.5.0.post1
  Using cached protobuf-3.19.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
Collecting setuptools
  Using cached setuptools-60.7.1-py3-none-any.whl (1.0 MB)
Collecting grpcio>=1.43.0
  Using cached grpcio-1.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB)
Collecting six>=1.5.2
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: protobuf, setuptools, six, grpcio, grpcio-tools
  Attempting uninstall: protobuf
    Found existing installation: protobuf 3.19.4
    Uninstalling protobuf-3.19.4:
      Successfully uninstalled protobuf-3.19.4
  Attempting uninstall: setuptools
    Found existing installation: setuptools 60.7.1
    Uninstalling setuptools-60.7.1:
      Successfully uninstalled setuptools-60.7.1
  Attempting uninstall: six
    Found existing installation: six 1.16.0
    Uninstalling six-1.16.0:
      Successfully uninstalled six-1.16.0
  Attempting uninstall: grpcio
    Found existing installation: grpcio 1.43.0
    Uninstalling grpcio-1.43.0:
      Successfully uninstalled grpcio-1.43.0
  Attempting uninstall: grpcio-tools
    Found existing installation: grpcio-tools 1.43.0
    Uninstalling grpcio-tools-1.43.0:
      Successfully uninstalled grpcio-tools-1.43.0
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

glocaltokens 0.6.1 requires zeroconf<0.37.0,>=0.36.2, but you'll have zeroconf 0.38.3 which is incompatible.
audio-metadata 0.11.1 requires attrs<19.4,>=18.2, but you'll have attrs 21.2.0 which is incompatible.
Successfully installed grpcio-1.43.0 grpcio-tools-1.43.0 protobuf-3.19.4 setuptools-60.7.1 six-1.16.0

@allenporter can you help us here? Why grpcio is not installed from wheels on the official HA container?
@skgsergio @craigmate @JeffersonBledsoe can you try to install it manually from HA venv?

Got the same error, thought I might be able to fix it by removing the integration and adding it again, but the I get:

As a short term solution you should be able to install the compiler (c++) inside the container. It should be something like but may depend on your platform:
apk install gcc

Home Assistant containers are:

OS: Alpine Linux 3.14
Python: Python 3.9.7

I can see the container has installed grpcio-tools==1.31.0. Probably wheels doesn't work due to Alpine Linux using musl.
I don't find manually installing gcc is a solution since these containers are shipped officially by Home Assistant and updates (and other actions) will recreate the container.
I've downgraded this component until there is a decision over this.
Trying to manually install grpcio-tools==1.43.0:
bash-5.1# pip3 install grpcio-tools==1.43.0
Collecting grpcio-tools==1.43.0
  Using cached grpcio-tools-1.43.0.tar.gz (2.2 MB)
    ERROR: Command errored out with exit status 1:
     command: /usr/local/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-erx9lsbe/grpcio-tools/setup.py'"'"'; __file__='"'"'/tmp/pip-install-erx9lsbe/grpcio-tools/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-tv3325nl
         cwd: /tmp/pip-install-erx9lsbe/grpcio-tools/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-erx9lsbe/grpcio-tools/setup.py", line 180, in <module>
        if check_linker_need_libatomic():
      File "/tmp/pip-install-erx9lsbe/grpcio-tools/setup.py", line 91, in check_linker_need_libatomic
        cpp_test = subprocess.Popen([cxx, '-x', 'c++', '-std=c++11', '-'],
      File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "/usr/local/lib/python3.9/subprocess.py", line 1821, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'c++'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

@skgsergio I think it should use this: https://github.com/allenporter/wheels-grpc/

Yep, they use that wheels repo for wheels that work in alpine, and indeed this version is not there, looks like they internally use 1.31.0:
https://wheels.home-assistant.io/alpine-3.14/amd64/
grpcio_tools-1.31.0-cp39-none-any.whl              23-Aug-2021 21:53             2380097
So I think that upgrading a dependency they internally use might not be a good idea :/

It's there for armv7 and aarch64. Amd64 should fallback to public wheels. Maybe that fallback mechanism doesn't work.

grpcio==1.43 is a different thing from grpcio-tools==1.43.0, in fact the first one is installed in the official container:
$ docker exec -it homeassistant pip freeze | grep grpcio
grpcio==1.43.0
grpcio-status==1.43.0
grpcio-tools==1.31.0

It's there for armv7 and aarch64. Amd64 should fallback to public wheels. Maybe that fallback mechanism doesn't work.

That is not the issue, the wheels on pypi that link native libraries don't work in Alpine due to the usage of musl instead of glibc. Example using a fresh python 3.9.7 running in alpine 3.14:
sconde@ARIEL ~ $ docker run -it --rm docker.io/python:3.9.7-alpine3.14 sh
/ # pip install grpcio-tools==1.43.0
Collecting grpcio-tools==1.43.0
  Downloading grpcio-tools-1.43.0.tar.gz (2.2 MB)
     |████████████████████████████████| 2.2 MB 4.6 MB/s
    ERROR: Command errored out with exit status 1:
     command: /usr/local/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-fkh0g1c4/grpcio-tools_fe63c472f8ae4e4c8c39650845b86893/setup.py'"'"'; __file__='"'"'/tmp/pip-install-fkh0g1c4/grpcio-tools_fe63c472f8ae4e4c8c39650845b86893/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-oregvszq
         cwd: /tmp/pip-install-fkh0g1c4/grpcio-tools_fe63c472f8ae4e4c8c39650845b86893/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-fkh0g1c4/grpcio-tools_fe63c472f8ae4e4c8c39650845b86893/setup.py", line 180, in <module>
        if check_linker_need_libatomic():
      File "/tmp/pip-install-fkh0g1c4/grpcio-tools_fe63c472f8ae4e4c8c39650845b86893/setup.py", line 91, in check_linker_need_libatomic
        cpp_test = subprocess.Popen([cxx, '-x', 'c++', '-std=c++11', '-'],
      File "/usr/local/lib/python3.9/subprocess.py", line 951, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "/usr/local/lib/python3.9/subprocess.py", line 1821, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'c++'
    ----------------------------------------

So I guess we need wheels for grpcio-tools 1.43 as well?

Ok, I think grpcio-tools is only used for generating protobuf bindings for python. So we can just remove this dependency.
@leikoilja can you check this please?

Got the same error, thought I might be able to fix it by removing the integration and adding it again, but the I get:

Same for me

My history with these are described here:
https://github.com/home-assistant/core/issues/56669
https://github.com/grpc/grpc/issues/27512
I agree with what was said about about

yes this is about grpc tools and not grpcio and that difference matters for this wheel
agree it's trying to compile from source and can't find a compiler, as was said above rather than an musl vs libc link error. So yeah, because it can't find a matching wheel for the specific version and architecture.
don't upgrade this dependency from what core is using if you don't need to
remove the dep if you don't need it at run time (are users machines really compiling protobufs or is this a development component?)
otherwise come up with a wheel building scheme for all the deps.

By the way we're not using that grpc wheel builder in core. Instead I modified the existing wheel builder in core to builder wheels for grpcio properly.

Installed component from master and it works again. I did some tests with the sruff I have set up with this component and looks normal.

should this be live yet? I am still getting the error.
Thanks

works for me! thanks for the great work @KapJI @leikoilja !

Since I updated to HA 2022.3 I am getting "Setup failed for custom integration google_home: Requirements for google_home not found: ['glocaltokens==0.5.2']." on Raspberry Pi 4 with official Docker container. Should I open a new issue or is this the same issue ultimately?


Automated cherry pick of #6481: region: fix get resource details panic

Cherry pick of #6481 on release/2.13.
#6481: region: fix get resource details panic

Codecov Report

Merging #6518 into release/2.13 will decrease coverage by 0.00%.
The diff coverage is 1.58%.

@@               Coverage Diff               @@
##           release/2.13   #6518      +/-   ##
===============================================
- Coverage          6.85%   6.85%   -0.01%
===============================================
  Files               536     536
  Lines             90596   90621      +25
===============================================
- Hits               6213    6211       -2
- Misses            83874   83900      +26
- Partials            509     510       +1

Flag
Coverage Δ

#aFlag
6.85% <1.58%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/cloudcommon/db/rbac.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/tenantcache.go
1.31% <0.00%> (ø)

pkg/cloudprovider/cloudprovider.go
1.57% <0.00%> (ø)

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

pkg/compute/models/cloudaccounts.go
0.80% <0.00%> (ø)

pkg/compute/models/guest_actions.go
0.00% <0.00%> (ø)

pkg/compute/models/guests.go
0.56% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/hosts.go
0.33% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/networks.go
0.53% <0.00%> (ø)

pkg/compute/models/wires.go
1.47% <0.00%> (+<0.01%)
:arrow_up:

... and 6 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 4fc2d63...7fe9e4a. Read the comment docs.

/lgtm

/approve

/approve


Made the program easier to use for people without computer experience

Hi,
I understand if you don't want to merge this request, because I have changed a lot about the program.
I wanted to make it easier for people who don't know anything about programming to use, so I made it so that the program runs from a batch file and has interactive inputs instead of command line arguments.
I also made it so that the program is in verbose mode always.
Thank you for making such an awesome program, I've been listening to random songs while coding this ^_^

Ok, I just pushed the commits to my fork, I'm pretty sure they should show up. This is my first time contributing to a project and using pull requests so I'm still learning.
I don't know much about operating systems other than windows so thanks for the hints about how to make it works on other operating systems.
Thanks for the great feedback, like I said this is my first time contributing to an opensource project and you have been really nice :)

It looks great, @HoboJoe2! Thanks for helping contribute!


Using ExtractTextPlugin with SplitByPathPlugin

I use webpack-split-by-path to automatically create a vendor bundle without me having to explicitly define the list of vendors.
However when I have this plugin active, ExtractTextPlugin generates no .css file.
My webpack config:
var path = require("path");
var webpack = require("webpack");

var SplitByPathPlugin = require('webpack-split-by-path');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    entry: {
        app: path.resolve(__dirname, 'app/src/app.js')
    },

    output: {
        path: path.resolve(__dirname, 'build'),
        filename: '[name].js',
        chunkFilename: '[name].js'
    },

    resolve: {
        root: [
            path.resolve(__dirname, "bower_components")
        ]
    },

    plugins: [
        new webpack.ResolverPlugin(
            new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"])
        ),

        new SplitByPathPlugin([
            {
                name: 'vendor',
                path: [
                    path.resolve(__dirname, "node_modules/"),
                    path.resolve(__dirname, "bower_components/")
                ]
            }
        ]),

        new ExtractTextPlugin("[name].css")
    ],

    module: {
        loaders: [
            {
                test: /\.scss/,
                loader: ExtractTextPlugin.extract("style-loader", "css!sass")
            }
        ]
    }
};

I believe this is the same issue others have with CommonsChunkPlugin. In the same way, SplitByPathPlugin is supposed to create multiple chunks based on the absolute path of required packages, rather than their explicit list.

@idiotstrike Did you manage to find out any fixes for this?

Not yet. I've had to move to node-sass to generate my stylesheets.

FYI, adding a couple ignore values fixed this for me:
    new SplitByPathPlugin(
      [{ name: 'vendor', path: __dirname + '/node_modules' }],
      { ignore: [__dirname + '/node_modules/css-loader', __dirname + '/node_modules/style-loader', /\.css/] }
    )

I found that use of ignore on splitByPath plugin helps but still some css is missing from the created css file, no errors are emited, I would be very grateful for any help with this combination of plugins

Closing due to inactivity. Please test with latest version and feel free to reopen if still regressions. Thanks!


Patches for --LoadLibaries and nuisance groups

Any update in including the discretes ?

Hi,
sorry for the delay...
I have an implementation for the discretes, which I wanted to test on the
Hgg legacy ws, but the task has low enough priority that I haven't done it
yet.
P.
On 30 October 2015 at 13:07, nckw<EMAIL_ADDRESS>wrote:

Any update in including the discretes ?
—
Reply to this email directly or view it on GitHub
https://github.com/cms-analysis/HiggsAnalysis-CombinedLimit/pull/225#issuecomment-152507183
.

--
Pasquale Musella - ETHZ
http://musella.web.cern.ch/musella

Would it be possible to split out the loadLibraries patch. This could be very useful to have also in the root6 branch


Fix search component label accessibility

What

when the page is linearized (web developer toolbar, miscellaneous, linearize page) the absolutely positioned label for the search input (which is pretending to be placeholder text) appears before the search input and is unreadable on a blue background
this fixes this by adding a white background to the label, so the appearance is unchanged in the normal view but readable when linearized

Why
As raised by @selfthinker
Visual Changes
Before (normal view)

Before (linearized)

After (linearized)

After when focussed (linearized)

After with some custom colours applied

Thanks both. That's some odd behaviour - the overlap problem seems to be only occurring on the preview app, not on my local version. Will investigate.

Should be fixed now. Have also tested it using some custom colours, appears to be correct.


Add topics to all cucumber sub projects on Github

Summary
Add topics to all cucumber sub-projects on Github to add more meta data to projects users can use to find the project which suites their needs best.

https://github.com/blog/2309-introducing-topics
https://help.github.com/articles/about-topics/

Example for use in search:
https://github.com/search?utf8=✓&q=topic%3Abdd&type=Repositories
Suggested topics:

testing-framework
cucumber
bdd
test
framework
tdd
specification-by-example
test-driven-development
behaviour-driven-development
documentation
communication
collaboration
specification
<programming language>

Expected Behavior
All cucumber sub-projects have topics defined - where relevant.

Current Behavior
Only some have topics defined.

Possible Solution

Steps to Reproduce (for bugs)

Context & Motivation

Your Environment

Version used:
Operating System and version:
Link to your project:

You need admin right to be able to do this: https://help.github.com/articles/permission-levels-for-an-organization/


Merge refs/heads/feature/no-redis into alpha

Merge refs/heads/feature/no-redis into alpha

This PR has been merged into alpha and tagged as 1.6.0-alpha-202303281749. Thanks for your contribution!