Login @v2 error registering cloud profile when used against AzureStack

Hello
we used @v1 for our logins to AzureStack, and it worked fine until we were hit by 447 and had to migrate to @v2. After we switched versions, the login step started failing with the below log:
Run azure/login@v2
  with:
    creds: ***
    environment: AzureStack
    enable-AzPSSession: true
    allow-no-subscriptions: false
    audience: api://AzureADTokenExchange
    auth-type: SERVICE_PRINCIPAL
  env:
    ACTIONS_ALLOW_UNSECURE_COMMANDS: true
##[debug]Reading creds in JSON...
::add-mask::***
::add-mask::***
Running Azure CLI Login.
##[debug]Azure CLI path: /usr/bin/az
##[debug]Azure CLI version used:
##[debug]azure-cli                         2.61.0
##[debug]
##[debug]core                              2.61.0
##[debug]telemetry                          1.1.0
##[debug]
##[debug]Extensions:
##[debug]azure-devops                       1.0.1
##[debug]
##[debug]Dependencies:
##[debug]msal                              1.28.0
##[debug]azure-mgmt-resource               23.1.1
##[debug]
##[debug]Python location '/opt/az/bin/python3'
##[debug]Extensions directory '/opt/az/azcliextensions'
##[debug]
##[debug]Python (Linux) 3.11.8 (main, May 16 2024, 03:47:28) [GCC 11.4.0]
##[debug]
##[debug]Legal docs and information: aka.ms/AzureCliLegal
##[debug]
##[debug]
##[debug]Your CLI is up-to-date.
##[debug]
Unregistering cloud: "azurestack" first if it exists
/usr/bin/az cloud set -n azurestack
/usr/bin/az cloud unregister -n azurestack
ERROR: The cloud 'azurestack' is not registered.
Error: Login failed with Error: The process '/usr/bin/az' failed with exit code 1. Double check if the 'auth-type' is correct. Refer to https://github.com/Azure/login#readme for more information.
##[debug]Error: The process '/usr/bin/az' failed with exit code 1
##[debug]    at ExecState._setResult (/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2333:25)
##[debug]    at ExecState.CheckComplete (/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2316:18)
##[debug]    at ChildProcess.<anonymous> (/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2210:27)
##[debug]    at ChildProcess.emit (node:events:519:28)
##[debug]    at maybeClose (node:internal/child_process:1105:16)
##[debug]    at ChildProcess._handle.onexit (node:internal/child_process:305:5)
ERROR: The cloud 'azurestack' is not registered.
Ignore cloud not registered error: "Error: The process '/usr/bin/az' failed with exit code 1"
Registering cloud: "azurestack" with ARM endpoint: "https://management.<hiddenhost>.domain"
/usr/bin/az cloud register -n azurestack --endpoint-resource-manager "https://management.<hiddenhost>.domain" --suffix-keyvault-dns ".vault.<hiddenhost>.domain" --suffix-storage-endpoint "<hiddenhost>.domain" --profile "2019-03-01-hybrid"
ERROR: az cloud register: '"2019-03-01-hybrid"' is not a valid value for '--profile'. Allowed values: latest, 2017-03-09-profile, 2018-03-01-hybrid, 2019-03-01-hybrid, 2020-09-01-hybrid.
Did you mean '2019-03-01-hybrid' ?

Examples from AI knowledge base:
az cloud register -n MyCloud --cloud-config @"cloud.json" ("cloud.json" supports all the endpoint and suffix options in camel case or the JSON output format from `az cloud show`. See the example content below.) *** "endpointActiveDirectory": "https://login.microsoftonline.us", "suffixAcrLoginServerEndpoint": ".azurecr.us" *** or *** "endpoints":*** "activeDirectory": "https://login.microsoftonline.us" ***, "suffixes":*** "acrLoginServerEndpoint": ".azurecr.us" *** ***
Register a cloud with a config file

https://aka.ms/cli_ref
Read more about the command in reference docs
Error: Error while trying to register cloud "azurestack"
/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2333
                error = new Error(`The process '$***this.toolPath***' failed with exit code $***this.processExitCode***`);
                        ^

Error: The process '/usr/bin/az' failed with exit code 2
    at ExecState._setResult (/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2333:25)
    at ExecState.CheckComplete (/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2316:18)
    at ChildProcess.<anonymous> (/home/runner/work/_actions/azure/login/v2/lib/main/index.js:2210:27)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5)

Node.js v20.13.1

The workflow step is as follows:
    - uses: azure/login@v2
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
        environment: "AzureStack"
        enable-AzPSSession: true

I am repeating myself, but the only difference with the previously working code is the @v2 tag after azure/login
Can we please get some help? Thanks

Hi @mikhail-teslya, it seems that the argument profile doesn't pass correctly in the workflow. Could you please try the fix-459 branch to see if it works for you?
- uses: azure/login@fix-459
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
        environment: "AzureStack"
        enable-AzPSSession: true

Hi @MoChilia, thanks for the update, we'll test ASAP and get back with an update

Cloud is now registered, but we got another error:
Run azure/login@fix-459
  with:
    creds: ***
    environment: AzureStack
    enable-AzPSSession: true
    allow-no-subscriptions: false
    audience: api://AzureADTokenExchange
    auth-type: SERVICE_PRINCIPAL
  env:
    ACTIONS_ALLOW_UNSECURE_COMMANDS: true
##[debug]Reading creds in JSON...
::add-mask::***
::add-mask::***
Running Azure CLI Login.
##[debug]Azure CLI path: /usr/bin/az
##[debug]Azure CLI version used:
##[debug]***
##[debug]  "azure-cli": "2.61.0",
##[debug]  "azure-cli-core": "2.61.0",
##[debug]  "azure-cli-telemetry": "1.1.0",
##[debug]  "extensions": ***
##[debug]    "azure-devops": "1.0.1"
##[debug]  ***
##[debug]***
##[debug]
Unregistering cloud: "azurestack" first if it exists
/usr/bin/az cloud set -n azurestack
/usr/bin/az cloud unregister -n azurestack
ERROR: The cloud 'azurestack' is not registered.
Error: Login failed with Error: The process '/usr/bin/az' failed with exit code 1. Double check if the 'auth-type' is correct. Refer to https://github.com/Azure/login#readme for more information.
##[debug]Error: The process '/usr/bin/az' failed with exit code 1
##[debug]    at ExecState._setResult (/home/runner/work/_actions/azure/login/fix-459/lib/main/index.js:2333:25)
##[debug]    at ExecState.CheckComplete (/home/runner/work/_actions/azure/login/fix-459/lib/main/index.js:2316:18)
##[debug]    at ChildProcess.<anonymous> (/home/runner/work/_actions/azure/login/fix-459/lib/main/index.js:2210:27)
##[debug]    at ChildProcess.emit (node:events:519:28)
##[debug]    at maybeClose (node:internal/child_process:1105:16)
##[debug]    at ChildProcess._handle.onexit (node:internal/child_process:305:5)
ERROR: The cloud 'azurestack' is not registered.
Ignore cloud not registered error: "Error: The process '/usr/bin/az' failed with exit code 1"
Registering cloud: "azurestack" with ARM endpoint: "https://management.<hiddenhost>.domain"
/usr/bin/az cloud register -n azurestack --endpoint-resource-manager https://management.<hiddenhost>.domain --suffix-keyvault-dns .vault.<hiddenhost>.domain --suffix-storage-endpoint .<hiddenhost>.domain --profile 2019-03-01-hybrid
Done registering cloud: "azurestack"
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Login to AzureStack with Az Powershell

Hello, @MoChilia do you have any news? :) Thanks

@mikhail-teslya, it appears that the process exits after registering the cloud. The subsequent login commands did not execute. Actually, the error ERROR: The cloud 'azurestack' is not registered should be ignored, as https://github.com/Azure/login/blob/151fd0098c71af3d948d2ec8126743aa98926f5a/src/Cli/AzureCliLogin.ts#L75-L77
I will prepare a debug release for you tomorrow.

@MoChilia an error again, the output is line-to-line the same as the previous one

@MoChilia an update: please excuse me, the output is slightly different - the exception has disappeared, full log is below:
Run azure/login@fix-459
  with:
    creds: ***
    environment: AzureStack
    enable-AzPSSession: true
    allow-no-subscriptions: false
    audience: api://AzureADTokenExchange
    auth-type: SERVICE_PRINCIPAL
  env:
    ACTIONS_ALLOW_UNSECURE_COMMANDS: true
##[debug]Reading creds in JSON...
::add-mask::***
::add-mask::***
Running Azure CLI Login.
##[debug]Azure CLI path: /usr/bin/az
##[debug]Azure CLI version used:
##[debug]***
##[debug]  "azure-cli": "2.61.0",
##[debug]  "azure-cli-core": "2.61.0",
##[debug]  "azure-cli-telemetry": "1.1.0",
##[debug]  "extensions": ***
##[debug]    "azure-devops": "1.0.1"
##[debug]  ***
##[debug]***
##[debug]
Registering cloud: "azurestack" with ARM endpoint: "https://management..<hiddenhost>.domain"
/usr/bin/az cloud register -n azurestack --endpoint-resource-manager https://management..<hiddenhost>.domain --suffix-keyvault-dns .vault..<hiddenhost>.domain --suffix-storage-endpoint .<hiddenhost>.domain --profile 2019-03-01-hybrid
/usr/bin/az cloud set -n azurestack
ERROR: The cloud 'azurestack' is not registered.
Error: Login failed with Error: The process '/usr/bin/az' failed with exit code 1. Double check if the 'auth-type' is correct. Refer to https://github.com/Azure/login#readme for more information.
##[debug]Error: The process '/usr/bin/az' failed with exit code 1
##[debug]    at ExecState._setResult (/home/runner/work/_actions/azure/login/fix-459/lib/main/index.js:2333:25)
##[debug]    at ExecState.CheckComplete (/home/runner/work/_actions/azure/login/fix-459/lib/main/index.js:2316:18)
##[debug]    at ChildProcess.<anonymous> (/home/runner/work/_actions/azure/login/fix-459/lib/main/index.js:2210:27)
##[debug]    at ChildProcess.emit (node:events:519:28)
##[debug]    at maybeClose (node:internal/child_process:1105:16)
##[debug]    at ChildProcess._handle.onexit (node:internal/child_process:305:5)
Done registering cloud: "azurestack"
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Login to AzureStack with Az Powershell

@mikhail-teslya, I've updated the branch azure/login@fix-459 now. It appears that the az cloud set executed before az cloud register. Could you please try again?
If you encounter any issues again, feel free to contact me via Teams. You can find my email on the profile. Since I don't have access to an Azure Stack environment, I need your assistance with testing this. Thanks!

@MoChilia this time it worked

@mikhail-teslya, great, thanks for testing this! I've created a pull request for this bug fix and will inform when it's officially released.

@MoChilia thanks for your efforts! Looking forward to the new version :)


Project Rome Xamarin.Android Unbrauchbar

Project Rome Xamarin.Android Unbrauchbar
useless

Same here
Java.Lang.UnsatisfiedLinkError: No implementation found for long com.microsoft.connecteddevices.RemoteSystemWatcher.initialize()
with RomeCastSample App- worked some month ago-

Is there a solution for this?
I have a thoroughly tested UWP app running on Windows 10 in Desktop mode implementing App Services and several thoroughly tested client UWP apps running on same PC communicating very nicely. I extended the App Services code per your instructions to make it work with Connected Devices. Local PC communication is still working fine after these modifications. Am trying to develop an Android phone app that will communicate with same UWP app. Am taking elements from your Project Rome's Main Activity and incorporating them into my Phone App's Main Activity. Seems like I'm following instructions pretty well. Am stopped at the error as described in this thread.
Code is running on a physical Android 5.0.2 device at present. Expecting it to work on Kit Kat or greater in the future. UWP apps were written under Xamarin on Visual Studio 2017 Community, 15.5.6. Android app in question is being debugged under same.
I put a try-catch around the line:
remoteSystemWatcher.Start();
and caught the exception as follows:
Unhandled Exception:Java.Lang.UnsatisfiedLinkError No implementation found for long com.microsoft.connecteddevices.RemoteSystemWatcher.initialize() (tried Java_com_microsoft_connecteddevices_RemoteSystemWatcher_initialize and Java_com_microsoft_connecteddevices_RemoteSystemWatcher_initialize__) occurred
A little research says I'm:
"attempting to dynamically load a native library that cannot be located by the Java Runtime Environment (JVM)"
Native (rural Midwest) USA English is my one and only fluent language. Been programming in variants of C language for more than 35 years. Total mastery of Windows. More than willing to
Xamarin has had me pulling my hair out lately.
Assistance?
Thanks.

p.s. Your Flux Capacitor is malfunctioning.


Remove constraint on _rpc method for MockDriver

The trend seems to be that more drivers will see the introduction of rpc oriented interfaces. This is especially true as things shift to model based configuration. This PR removes the junos constraint from the _rpc method in the MockDriver.
The specific usecase is to allow napalm-yang tests work with an iosxe driver I'm developing.

Coverage increased (+0.2%) to 72.786% when pulling 985c3ff7310db25c437521f54411f9a421979cbe on nickethier:develop into cb9ecd4bce0294354584a5b7587a3406eda6c383 on napalm-automation:develop.


python3Packages.maestral/maestral-qt: 1.7.3 -> 1.8.0; python3Packages.survey 3.4.3 -> 4.5.4

Description of changes
Maestral has updated its survey version requirements, so this includes an update to that package that supersedes https://github.com/NixOS/nixpkgs/pull/238427 .
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

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

10 packages built:

maestral (python310Packages.maestral)
maestral-gui
maestral-gui.dist
maestral.dist (python310Packages.maestral.dist)
python310Packages.survey
python310Packages.survey.dist
python311Packages.maestral
python311Packages.maestral.dist
python311Packages.survey
python311Packages.survey.dist

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2473


Authorization as someone with Collection Admin rights

From release plan spreadsheet
Estimate from release plan: 20 hours
Expressing interest: none
Needs testing

Closing as "fixed".  This was tested in 7.0 testathon, and bugs discovered there are either in process or resolved.


Endpoint not rendering in version 2.0.0+

Hi, I have the following DRF router:
class Router(SimpleRouter):
    routes = [
        Route(
            url=r'^{prefix}{trailing_slash}$',
            mapping={
                'get': 'retrieve',
                'put': 'update',
                'patch': 'partial_update',
            },
            name='{basename}-retrieve-update',
            initkwargs={'suffix': 'Details'}
        ),
        Route(
            url=r'^{prefix}/(?P<id>\d+)/(?P<key>[A-Z\d]+){trailing_slash}$',
            mapping={
                'get': 'anonymous_retrieve',
                'put': 'anonymous_update',
                'patch': 'partial_anonymous_update',
            },
            name='{basename}-anonymous-update',
            initkwargs={'suffix': 'Anonymous Update'}
        ),
    ]

After upgrading, the first route no longer shows in the schema view. If I remove the second route, the first shows. Any ideas as to why this is happening? I'm assuming it's some kind of bug with the new renderer.
Reordering the routes doesn't change anything; neither does replacing {trailing_slash} with /

Hi,
If you change the name of the second prefix (two routes with different names), does the first shows?

Hi @AllanNozomu, sorry it's taken so long for me to get back to you -- things were a bit hectic for a while.
If I remove the {prefix} and just substitute the actual prefix in (with no changes), the routes are rendered as expected.
Any ideas?

Well, I said it because I was suffering with the same issue. So I changed the name for a test and worked. Unfortunatly, don't know why.

gotcha.
pinging @marcgibbons: any thoughts?

@kavdev Nothing jumps at me. Could you try writing a failing unit test on the Django REST Framework code base to recreate / demonstrate? (This is where the introspection takes places)

@marcgibbons: sure; it might be a while before I can dedicate some time to this, but I'll ping you with a PR as soon as I do.

Hello,
I have a similar issue on a project.
Urls:
    url(r'^type/$', views.types_list, name='types_list'),
    url(r'^type/(?P<pk>\d+)$', views.types_details, name="types_details"),

If types_list has @api_view(['GET', 'POST']) and types_details @api_view(['POST', 'DELETE']), the POST method of types_list doesn't appear in the documentation. If type_details is set to @api_view(['PUT', 'DELETE']), the 4 methods appears in the documentation.
I didn't do a lot of debugging, but the sechma generator seems to return the 4 links in both cases.

I'm also facing this problem with the following urls:
    url(r'^test2/$', Test.as_view(), name='test2'),
    url(r'^test2/(?P<data1>\w+)/$', Test.as_view(), name='test21'),
    url(r'^test2/(?P<data1>\w+)/(?P<data2>\w+)/(?P<data3>\w+)/$', Test.as_view(),
        name='test23'),
    url(r'^test2/(?P<data1>\w+)/(?P<data2>\w+)/$', Test.as_view(), name='test22'),```

re-ordering in urls.py does not change anything. It will always only show the url entry named test2 and test23.

Anyone has an idea how to fix this?


Resizing animations are broken for demo project on Monetery

After failing to understand why this dependency would fail to properly resize window when switching between tabs, I decided to try the example project. It seems that example project has the same issue as my own project.
macOS 12.5.1
Dependency pulled in using SPM.

It seems that an issue is with this line of code.
After I have changed isDisjoint(with:) with isSubset(of:).
In the same file there's this code:
		if #available(macOS 10.14, *) {
			options = animated && isAnimated ? [.crossfade] : []
		} else {
			options = []
		}

Since .crossfade animation is used, the statement in question will always result in false.

@RaimundasSakalauskas  The change to the linked line of code sounds sensible! Would be great if you create a PR so we can add this.

I haven't actually pulled this repo locally. Just changed it in the project that I am using it in.


Error when changing TIMESTEPS

`InvalidArgumentError: Assign requires shapes of both tensors to match.

lhs shape= [10,2] rhs shape= [5,2]
     [[Node: save/Assign_15 = Assign[T=DT_FLOAT,
     _class=["loc:@dnn/layer0/fully_connected/weights"],
     use_locking=true, validate_shape=true,
     _device="/job:localhost/replica:0/task:0/cpu:0"]

     (dnn/layer0/fully_connected/weights, save/restore_slice_15)]]`

I am getting the error message above when the time steps is changed from 5 to 10. It appears the rhs shape is not updating.
When I inspect the generated data it is the correct shape:
Generated data from 48,000 examples with TIMESTEPS = 10
X train (39086, 10, 1)
X val (4337, 10, 1)
X test (4819, 10, 1)
y train (39086, 1)
y val (4337, 1)
y test (4819, 1)
Everything runs well when TIMESTEPS is set to 5 but changing that to any other value has problems.

I found this problem was caused by using the same directory for LOG_DIR = './ops_logs'
Adjusting time steps and using a new directory has no issues


Set up pull and/or rebase automation from upstream (using bots, actions, apps, etc.)

Continuing the discussion from here: https://github.com/atom-ide-community/atom/pull/12
We should work out our approach for merging/rebasing stuff from upstream master into this fork.

I think we should have pull bot hard reset our upstream_master to match atom/atom:master (upstream's master) every time upstream pushes to their master.

I have my doubts about any automated rebasing being a good idea... But if we want to do that:
Then we can trigger a rebase Action to rebase our master on our upstream_master each time our upstream_master is pushed.
That way our work in our master is rebased on top of upstream master any time they push to their master.
(Pull Bot doesn't know how to rebase our work on top of the remote, it only know how to rebase the remote on top of us.)
We could also try this rebase Action, but we would have to schedule it, or think of an appropriate trigger for it (maybe pushes to upstream_master here? Meaning we would still use Pull Bot to sync upstream_master.)

Still working on writing my own rebase Action, will update here if there is news on that.

I will rewrite the history of the master, then we can use a clean method after that. I agree with upstream_master. We should probably rebase manually.

Mind if I rebase (manually) on upstream_master now? I haven't done that yet. Don't want to cause a conflict.
For pushing our master branch after a manual rebase, I recommend we exclusively use
git push --force-with-lease
https://blog.developer.atlassian.com/force-with-lease/

Yes, you can do it. We have a upstream_backup branch in case something goes wrong.
When I rebased the upstream, for some reason, I was added as the co-author of other's commits. We should avoid that.

When I rebased the upstream, for some reason, I was added as the co-author of other's commits. We should avoid that.

GitHub shows the Author and Committer with equal prominence in their GUI. When you rebase someone's commit, you become the committer, but the author info is preserved.
Under the hood this is all correct, it's just weird seeing both names like they have the same role.
You can cheat and manually set the committer and commit date to the original one, with env vars like GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL, but as far as I know there is no convenient tooling around this. And it seems reasonable to record who actually re-committed the code during the rebase, since the rebaser might have modified the code during merge conflicts, etc.
(Yes, you can totally fake/fabricate someone else's commit activity, barring that they usually cryptographically sign their commits. But this is like any kind of forgery/lying, it's bad and no-one should do it.)

We should not try to rebase/force-push our master anymore. This breaks all the open pull requests. From now on, I will merge the changes normally. Pull bot alters us about the changes. We should not rely on the inaccurate commit counter of GitHub for comparing our changes to upstream.
I want to close this if there are not any other thoughts.

We should not try to rebase/force-push our master anymore. This breaks all the open pull requests. From now on, I will merge the changes normally.

Yeah, that sounds okay.
Thoughts beyond that: This isn't new, but I think for upstreaming changes, posting just the changes relative to upstream master, as committed directly on the tip of upstream master, is the way to go.

I want to close this

:+1:


Add Firebase example

Higher order component for listening Firebase paths by passed props. It must handle componentWillUnmount and componentDidUpdate properly without leaking.

I have been injecting a firebase service, similar to fetch, into the actions rather than an HOC. Also firebase just came out with promises: https://www.firebase.com/blog/2016-01-21-keeping-our-promises.html

Seconded for example

@rkoberg We need HOC for component, which are listening Firebase temporarily.

Sure, and that can be done with the fetch HOC, not to be confused with the isomorhic-fetch that does GET, POST, ect. In the fetch HOC you use the either isomorphic-fetch or firebase (ref.json with isomorphic fetch or ref.once() with firebase)

Closed in 4dbf357df6b2d8e39887b04977b076f24d295eab


fix: gate SmartStart behind SDK 6.81+, add method to test support

New investigations have shown that SmartStart is only supported in SDK 6.81+ and using it will prevent inclusion of new nodes on older sticks. Therefore it is now gated by the SDK version and trying to provision a node on an older stick will throw. Already provisioned nodes will stay on the list but won't be auto-included.
Before using SmartStart, checking for support is now mandatory with controller.supportsFeature(ZWaveFeature.SmartStart).
fixes: #2320

@zwave-js-bot pack this

@zwave-js-bot pack this


Add function to_sequential to PipelineModule

In https://github.com/EleutherAI/gpt-neox we were previously maintaining two separate models - one if the user wanted to use pipeline parallel, and one if they didn't.
The more straightforward solution was to add a to_sequential function to export the PipelineModule as an nn.Sequential model, so we could train with deepspeed features that aren't compatible with pipe parallel (i.e ZeRO 2+).
Figure this might be a useful addition to the base module, too. I'm not 100% sure if the support for tied layers here is as flexible as it could / should be, since their capabilities are not very well documented, but it works at least for our purposes (with tied Embeddings as the output layer).

In addition to to_sequential, there may be another way we could accomplish this while keeping the normal PipelineModule, if that would be useful.
If we short-circuit this condition and use the regular training engine, I think that PipelineModule should behave as a normal torch.nn.Module and you can use ZeRO-2, etc.  I intended for that to be the case, but not tested these days.
https://github.com/microsoft/DeepSpeed/blob/dad26428e3f28898b8d0f5ace1b3df3e6db8f8e8/deepspeed/__init__.py#L119-L120

Hi @ShadenSmith
I think the two latest commits should fix both the above requirements. There is maybe some repeated code between SequentialModel and PipelineModule that could be slimmed down - but I have tested with gpt-neox and it works well.

Can one of the admins verify this patch?

@sdtblck - just fixed some formatting issues that were preventing this - if the tests pass, would this be good to merge now?


Fixes messenger version number

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@stephengillie Bot managed to create PR (#98977) with incorrect version number so I'm submit this PR as correction.


feat: Enable runAsNonRoot by default

What this PR does / why we need it:
When running kyverno using https://kyverno.io/policies/pod-security/restricted/, some checks failed. This enables more secure policy by default
Special notes for your reviewer:
Not sure if this is something that you want - don't mind it being closed :)
Release note:

runAsNonRoot is now enabled by default in the securityContext values. If you're using custom containers with the chart that run as root, you will need to set this back to false.

/kind feature
/milestone v1.4

thanks for bringing this to our attention @mikebryant, I think a more comprehensive version of this is being reviewed in #4036
/close


Declare outs just like ins

just like #93
ins 1
outs 1:
    someOut

sample:
    someOut = in1   #aka out1 = in1

Perhaps this can confuse things a bit, not so sure.

But it's gonna be useful for processes, so that their output can be accessed by name and not by index


[Suggestion] Google website manual installation guide suggests old gmaps lib

https://developers.google.com/maps/documentation/ios-sdk/config
as you can see, on 'install manually' tab , the suggested tar is older version (6.0.1) than the fresh released

@dkati Please take a moment to fill out this short survey. Thank you!
This is an automated message, feel free to ignore.


Updated requirements

Coverage remained the same at 68.246% when pulling 4c7953d8ab0fb1f059355f0e61bc74bfcaea3598 on feature/upgrade-django into 848c3f20ebc1cd191103218ef142cf021fbf4730 on master.


docs: Add missing links to web-public channels in development community page.

Adds some links to web-public channels on the development community page.
Screenshots and screen captures:
Current documentation

Current documentation

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Looks great, merged, thanks @laurynmm!


Remove duplicate closer registration

It was added in 7598696 since there was a warning in eclipse that writer is never closed. But the created writer is registered again in line 70 which causes the writer to be closed twice (which will fail).

@liyinan926 can you review?

LGTM.


failed to transform "style.sass" (text/x-sass): this feature is not available in your current Hugo version

I am running Hugo Static Site Generator v0.46 linux/amd64 BuildDate: 2018-08-01T09:00:55Z
I did the step by step in the README.md
When I try to hugo server I get
$ hugo server
Building sites … ERROR 2018/08/06 15:57:05 error: failed to transform resource: TOCSS: failed to transform "style.sass" (text/x-sass): this feature is not available in your current Hugo version
Total in 15 ms
Error: Error building site: logged 1 error(s)

my bad, thought I had the extended version installed, didn't.
you NEED hugo extended version, in my case hugo_extended_0.46_Linux_64bit.deb

@jukefr Glad to hear!

Am having the same issue with hugo 51 linux. any ideas?


Add Role to Block Quote Table Elements in Email Templates

User Story - Business Need
We want to update the template formatting in our utils repo for block quotes. For accessibility reasons, we want all <table> tags to include role="presentation". When block quotes are added, a table is created in the template. We need to ensure the proper role is added when this happens.

[ ] Ticket is understood, and QA has been contacted (if the ticket has a QA label).

User Story(ies)
As a Veteran
I want to be able to access my email via a screen reader
So that I can get the provided information accessibly and accurately.
Additional Info and Resources

The html email body is created using the get_html_email_body function.
This task can be accomplished by editing the NotifyEmailMarkdownRenderer or creating a post-processing function to be called as part of get_html_email_body function using regex.

Editing the renderer would involve adding more custom features to Mistune, which could make the upgrade more difficult.
A post-processing function would involve finding the table elements when block quotes exist and adding the requested role. This can be accomplished with regex trickery.

ARIA: presentation role

Acceptance Criteria

[ ] When block quote "tables" exist in a template they include role="presentation"
[ ] This work is added to the sprint review slide deck (key win bullet point and demo slide)

QA Considerations

[ ] Ensure template previews and sent include role="presentation" in all block quote table tag properties.

Potential Dependencies

Out of Scope

@EvanParish is there some sort of figma drawing (or any mock) that shows what this is supposed to look like in a template?

Hey team! Please add your planning poker estimate with Zenhub @cris-oddball @EvanParish @k-macmillan @MackHalliday @mchlwellman


refactor: refactor bad smell UnnecessaryToStringCall

Repairing Code Style Issues

UnnecessaryToStringCall
The toString() method is not needed in cases the underlying method handles the conversion. Also calling toString() on a String is redundant. Removing them simplifies the code.

Repairing Code Style Issues

UnnecessaryToStringCall (1)

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4ed1f3d). Click here to learn what that means.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master     #123   +/-   ##
=========================================
  Coverage          ?   71.63%
  Complexity        ?     1142
=========================================
  Files             ?       63
  Lines             ?     3113
  Branches          ?      538
=========================================
  Hits              ?     2230
  Misses            ?      689
  Partials          ?      194

Impacted Files
Coverage Δ

...g/apache/commons/validator/ValidatorResources.java
75.72% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


JIRA | No "Start Timer" Button in new Jira issue view

Please follow this guide when creating a new issue. This speeds up the process of replicating the issue and finding a solution.
Environment details

Operation system: Windows 10 with Chrome Version 68.0.3440.106 (Official Build) (64-bit)
Extension version: v1.11.1

Expected behavior

"Start Timer" button to be visible

Actual behavior

no "Start Timer" button visible

Steps to reproduce the behavior

using the latest Jira issue view (cloud version)

The new issue view is live for all boards in business projects, and is available for all Jira Software boards and backlogs. To turn the new issue view on or off in Jira Software projects for now, head to Your profile and settings -> Personal settings and toggle the switch for the New Jira issue view.
Additional details

https://confluence.atlassian.com/jiracorecloud/the-new-jira-issue-view-938040503.html

18315050291
18323808212

General question from user re integration, Jira has been updated and there is a new Issue view presentation. Are there any plans to integrate the Toogl Button into the new view?

conversations/18968063290

Looking to get this into the next release 👍

There is an existing PR here: #1121


SignatureHelp.activeParameter

I'm implementing a LS client and I'm wondering why activeParameter is inside the SignatureHelp object and not in the ParameterInformation object?
Currently I'm testing clangd as a server. This seems a bit limiting when dealing with C++ source code.
Here is an example:
int func1(const float a, float const b)
{
    return a + b;
}
int func1(const int b)
{
    return b*10;
}
int main()
{
    func1(|5, 6);
}

If cursor is at the | character and I request the textDocument/signatureHelp. I receive something like
{
  "id": 21,
  "jsonrpc": "2.0",
  "result": {
    "activeParameter": 0,
    "activeSignature": 0,
    "signatures": [
      {
        "label": "func1(const int b) -> int",
        "parameters": [ {"label": "const int b"} ]
      },
      {
        "label": "func1(const float a, const float b) -> int",
        "parameters": [ { "label": "const float a" }, { "label": "const float b" } ]
      }
    ]
  }
}

If I follow the spec I can highlight the parameter b in the first result, but not parameter a in the second result. Do I understand the spec correctly?
Can someone explain the rationale behind it? At least for C++ this seems a limiting. Probably for languages which support named parameters it might make a bit more sense, but still I think the language servers for such languages could fill the activeParameter for all of the found signatures without too much trouble.
Am I missing something?

If I follow the spec I can highlight the parameter b in the first result, but not parameter a in the second result. Do I understand the spec correctly?

@obfuscated In your example JSON response, VS Code will highlight const int b in the first result and const float a in the second result because activeParameter is set to 0.
Are you seeing a different behaviour or am I misunderstanding something?

@rcjsuen I don't have VS Code installed to test it. But if it behaves as you describe it, then it is not following its own spec - https://microsoft.github.io/language-server-protocol/specification#textDocument_signatureHelp

/**
* The active parameter of the active signature. If omitted or the value
* lies outside the range of signatures[activeSignature].parameters
* defaults to 0 if the active signature has parameters. If
* the active signature has no parameters it is ignored.
* In future version of the protocol this property might become
* mandatory to better express the active parameter if the
* active signature does have any.
*/
activeParameter?: number;

@obfuscated Okay, I think I see what you are trying to say.
You mean that the specification is implying that activeParameter is only intended to be used for the "active signature" and not the other signatures in the signatures array, correct?

@rcjsuen Yes, this is how I understand it.

@obfuscated good find. Actually I would like to loosen the spec around this a little bit since the activeParameter makes sense even for signature others than the active signature. Something like this: clients are free to use the activeParameter on signatures others than the active one if the client support for example scrolling through the signatures to highlight a given parameter. However there is no guarantee that the activeParameter is inside the range of help.signatures[help.activeSignature].parameters


Add MySQL support

Proposed Functionality
Support MySQL as a backend.  This is in addition to PostgreSQL.
Use Case
As a user, my company only uses MySQL.  Nautobot needs to support MySQL for me to be able to deploy it.
Database Changes
TODO
External Dependencies
TODO

Personally I'd rather see development resources spent on extending core functionality, rather than making the architecture more complicated & force limiting SQL features to those that are supported by both PostgreSQL & MySQL-compatible DBs.
Speaking of which, if you end up having to do that, here's a good comparison of Python database abstractions:
https://www.gramps-project.org/wiki/index.php/Database_abstraction_layers_comparison

Wasn't the reason for choosing postgresql due to all the builtin features for manipulating IP addresses. I do not see why this is worth reinventing the wheel.

Personally I'd rather see development resources spent on extending core functionality, vs. making the architecture more complicated, less performant, & force limiting SQL features to those that are supported by both PostgreSQL & MySQL-compatible DBs.
If you end up having to do that anyway, I hope you're able to choose a good Python database abstraction.
Personally I've been using MariaDB's Aria engine for several applications & I'm pretty satisfied with it.

These things aren't mutually exclusive, and the idea is trying to make Nautobot more flexible in deployment and not be tightly-coupled to any specific database backend.
If we do this right, adding support for MySQL will be transparent.

Wasn't the reason for choosing postgresql due to all the builtin features for manipulating IP addresses. Respectfully.

Yes, it comes down to PostgreSQL native inet and cidr field types. No other database technology has that out of the box, which makes it a quick and easy decision.
It is possible to do networks more agnostically, and that's what we want to try to achieve, to allow more people the ability to deploy Nautobot without having to deploy PostgreSQL, which for many, is not a supported option.
It's also not as simple as just using containers, because this is also a challenge for many environments, either not having the experience or the authorization to run such deployment patterns in production.

allow more people the ability to deploy Nautobot without having to deploy PostgreSQL, which for many, is not a supported option.

if the goal is to support something "self-contained" then perhaps dqlite (distributed SQLite) is worth a look:  https://dqlite.io/

Wasn't the reason for choosing postgresql due to all the builtin features for manipulating IP addresses. Respectfully.

Yes, it comes down to PostgreSQL native inet and cidr field types. No other database technology has that out of the box, which makes it a quick and easy decision.
It is possible to do networks more agnostically, and that's what we want to try to achieve, to allow more people the ability to deploy Nautobot without having to deploy PostgreSQL, which for many, is not a supported option.

MariaDB has some good docs on their "ip range" tables, as well as performance notes & a reference implementation (e.g. CIDR needs to be converted to "ip ranges" first, etc.),
https://mariadb.com/kb/en/ip-range-table-performance/#reference-implementation-of-ipv4
HtH

Addressed by #584


Fix #6287: wrong nested breadcrumb ordering

Pull Request Description
Fixes #6287. When selecting a nested breadcrumb, a race condition would happen: all new breadcrumbs were being added in a separately spawned task whose execution was thus indeterministic.
https://github.com/enso-org/enso/assets/607786/73734805-292d-42ce-b08a-060a987d99bb
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the Scala, Java, and Rust style guides. In case you are using a language not listed above, follow the Rust style guide.
All code has been tested:

[ ] Unit tests have been written where possible.
[x] If GUI codebase was changed, the GUI was tested when built using ./run ide build.

Oh damn, I posted a comment in the issue. QA 🟢


How does linting work in this project?

When I make changes to the files in this project in VSCode, it makes a bunch of formatting changes that I end up having to revert. I don't care what settings we're using here, I just don't want my editor to trample on them.
This project uses eslint and editorconfig, and it has .vscode/settings.json file.
When I run npm run lint on the main branch, all is well.
When I open a file like index.js or index.test.ts in VSCode and hit Save, it formats a bunch of the code, leading to a huge diff. npm run lint still passes after those changes, so apparently eslint is indifferent about all those formatting preferences that my editor is applying on save?
Forgive my ignorance on the matter, but what am I doing wrong here?

Forgive my ignorance on the matter, but what am I doing wrong here?

@zeke I've had this problem with pretty much every JS project I've touched — including this one, on occasion. Small configuration changes or invisible updates to some tool in my stack results in large, chaotic formatting diffs. I can't account for this, and it drives me nuts.
I don't particularly care for one convention over another. All I want is exactly what you describe: to open up the project in a fresh VSCode instance and have everything format and lint correctly.


"3.1-ubuntu" tag doesn't exist

Something is wrong with tags description
$ docker pull jrottenberg/ffmpeg:3.1-ubuntu
Pulling repository docker.io/jrottenberg/ffmpeg
Tag 3.1-ubuntu not found in repository docker.io/jrottenberg/ffmpeg

Ah my bad, let me update the wiki it's misleading,

3
3.1
ubuntu

are different tags from the same image.
That should be fix with #15

Had to reorganize the tagging a bit but it should be more consistent and simple going forward.


Can mount_base64_uploader also handle normal file uploads?

I want to offer the users of my website to either use a standard input type="file" or a textarea with a base64 string.
I hoped that mount_base64_uploader would accept both kinds, but it seems it doesn't. What would you recommend to implement such a behaviour?

Actually it already does that.
If it is not working for you, i would suggest you to check your form (i suppose you have two fields for the same property in one form, and the second one overrides the first one)

Hm and I indeed thought that I had this working already some time ago, so I was surprised, too!
I will check again what you said. Thanks for the fast response!

Okay, I tracked it down a little further:

When creating a nested object, the upload using input type="file" works as expected
When creating a nested object, the upload using textarea and base64 string works as expected
When updating a nested object, the upload using input type="file" doesn't work
When updating a nested object, the upload using textarea and base64 string works as expected

Interestingly, the option to remove an existing file of a nested object doesn't work either, regardless of whether mount_uploader or mount_base64_uploader is used.
All this seems to be only the case on nested objects. Any idea? I will check out whether my test app from the last issue shows the same behaviour.

The dummy app shows the same behaviour, I simply changed mount_uploader to mount_base64_uploader for both User and Attachment.
https://github.com/jmuheim/test-carrierwave-base64-update/blob/42e97054b30f375d2e0f37764170820f9393362b/app/models/attachment.rb

Oh, it seems to have to do with something like in the last issue! When I only change the file field, then it doesn't have any effect on update. But if I also change another field (e.g. the name), it updates correctly!

does the failure persist if you use the regular mount_uploader?

No, it only happens with mount_base64_uploader. And it only happens for nested objects. You can try it in the test app.

After a short investigation i found out, that the carrierwave gem does not marks the attribute as changed for some reason.
So i think i could just mark the attribute as changed before calling the super method from the carrierwave gem. But i'm not sure that this is correct.

Thanks for investigating this. Should we propagate this issue on the carrierwave repo?

Would you help me writing the description for the issue? I think you can do this much more precise than I can. I'm willing to write some passing/failing specs showing the problem, if needed, too.
Would be nice to have this issue created before end of the week, as I will be on holidays next week.

I think i actually was wrong :(
Looks like the setter method from my gem overrides the method from the carrierwave, therefor it is not marking the attribute as changed for regular files. I'm sorry for any inconvenience, and i will make a quick in the next hour.

Thanks, this is great to hear!

So this should be fixed in version 2.1. Sorry again for the delay

Nearly everything seems to work now, except one thing:

When updating a nested object, the upload textarea and base64 string doesn't work, as long as it's the only changed attribute

That's strange. Was this working before?

I can't say it. It sounds familiar, but I don't really remember.

Pushed a new minor version. It should fix the mentioned problem

Alright, it's working perfectly now! Thank you.

It would be great if you could clarify in readme that using mount_base64_uploader will not break mount_uploader. Or some note that clarifies how to use this gem to receive files by both an API and a form.

@juanpastas yep, that's a good idea.


Locking results in blank screen

Issue: When the user navigates to any other page besides the homepage (Key Management or connect sites etc page) and then lock screen - the screen blanks out as in screenshot

https://user-images.githubusercontent.com/4185994/121188875-d2483180-c869-11eb-847a-32f200889f58.mov


[Github]Configure Github

Set the merge method, review limit, label, website and GitBox

@CalvinKirs  I got your point, and done is ASAP

But I have to said that, we still have a discuss in https://github.com/apache/incubator-seatunnel/pull/886#discussion_r776153469

But I have to say that, we still have a discussion in #886 (comment)

We already done in https://github.com/apache/incubator-seatunnel/pull/887


[SPARK-24709][SQL] schema_of_json() - schema inference from an example

What changes were proposed in this pull request?
In the PR, I propose to add new function - schema_of_json() which infers schema of JSON string literal. The result of the function is a string containing a schema in DDL format.
One of the use cases is using of schema_of_json() in the combination with from_json(). Currently, from_json() requires a schema as a mandatory argument. The schema_of_json() function will allow to point out an JSON string as an example which has the same schema as the first argument of from_json(). For instance:
select from_json(json_column, schema_of_json('{"c1": [0], "c2": [{"c3":0}]}'))
from json_table;

How was this patch tested?
Added new test to JsonFunctionsSuite, JsonExpressionsSuite and SQL tests to json-functions.sql

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Test build #92510 has started for PR 21686 at commit 2ff71e8.

Test build #92510 has finished for PR 21686 at commit 2ff71e8.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92510/
Test FAILed.

Test build #92511 has started for PR 21686 at commit 56c925d.

Test build #92511 has finished for PR 21686 at commit 56c925d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92511/
Test PASSed.

@rxin, does this look okay to you? If so will check closely and get this in.

Does this actually work in SQL? How does it work when we don't have a data type that's a schema?

Does this actually work in SQL?

Yes, it does. Please, have a look at the SQL test:
https://github.com/apache/spark/pull/21686/files#diff-3b8a538abd658a260aa32c4aa593bed7R41

How does it work when we don't have a data type that's a schema?

We recently supported schema as any data type in DDL format: https://github.com/apache/spark/pull/21550 . The new function uses the same mechanism as we use for schema inferring when we read files. So, it can infer and return any data type (but not MapType for now) as string in DDL format. And from_json() can accept it due to the https://github.com/apache/spark/pull/21550 . @rxin If I didn't answer to your question, please, clarify what do you mean.

Thanks. Awesome. This matches what I had in mind then.

Seems fine to me otherwise.

Test build #92575 has started for PR 21686 at commit c993fd1.

Test build #92575 has finished for PR 21686 at commit c993fd1.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92575/
Test FAILed.

Test build #92578 has started for PR 21686 at commit 86f6886.

Test build #92580 has started for PR 21686 at commit dc35731.

Test build #92578 has finished for PR 21686 at commit 86f6886.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92578/
Test PASSed.

Merged to master.


test: write unit tests for packages

Overview
Currently, we don't have unit tests for packages here. Please write one for all packages.

After thinking about this again, this feels like having a really-low impact since we already have tests for ReadFile and MakeMultipartRequest. Closed until further notice.


Parameters

Hi,,
i'm try to understand the code.
in the PPG_sensor _V000 section, main.cpp file line 57
where this SYSCTL_CLOCK_SWM parameter defined ??
Can you say that?

@Squantor

@Furki81 This is defined in PPG_sensor_research/software/libMcuLL/inc/nxp/LPC8XX/LPC8XX_clock.h and is used to enable/disable clocking to the SWM. The library libMcuLL is my own hal library for the microcontrollers I use but this code base is a bit old and the libraries are a bit old too. I am planning to revisit this code and use the RP2040 instead of the LPC microcontroller so people can reproduce this.
I really suggest you install visual studio code so you can browse through the code and see where everything is defined.

Thanks for your reply. But i could not find visual studio code. Can you help me to find ?

You can download [https://code.visualstudio.com/](visual studio code) from here.
What do you want to do with this code? PPG sensor V000 hardware is not really documented, I suggest you find some other project for PPG sensors.

I understand that it is not documented. I only try to understand how you builded a PPG sensor project with c/c++ language.

Good, just want to manage your expectations. V000 is very primitive and just uses a scheme of turning LED on and waiting until the comparator switches. The time between LED on and comparator switch is measured and used as the value for reflectivity. V120 of the software does it a bit more "normal" by turning the LED on for a period, and measuring the integration capacitor value.
If it is very low it will increase the LED on time, if it is very high it will decrease LED on time. This will keep the PPG signal in the middle of the ADC range, this way you have the most signal.
This worked pretty well but I had a bit more problems with noise, that made it hard to detect the signal. I want to revisit this project for a while but other things are getting in the way.

Thanks a lot for your help. Can I ask questions in here while i 'm building PPG sensor with Stm32 MCU application? I will be pleased if you navigate me to complete my project for sure in your suitable time.

I have only experience in getting raw reflectivity data from a homebrew PPG sensor. I think there are better libraries/projects that do things like extracting heart rate from such data to base your project on. Feel free to ask, but my knowledge is limited.

Thanks, a lot.


WIP: Configurable separate namespaces for hive-operator and hive-controllers etc.

This change removes the assumption that all hive components run in the "hive" namespace. hive-operator can now be run in it's own namespace, and deploy hive itself into another namespace as configured by HiveConfig.Spec.TargetNamespace. For now we assume you will not change target namespace, we cannot validate this easily as hiveadmission does not exist at this point. If you change the target namespace you'll get a parallel hive install with both controllers listening. Do not change the target namespace.
OLM and kustomize still have roughly the same responsibility, deploying the hive-operator. Previously RBAC for controllers/hiveadmission/hiveapi was munged into this process, this had to be removed as kustomize and OLM both are not good at multi-namespace. As such there is much less in kustomize.yaml.
hive-operator now deploys the ClusterRoles and ClusterRoleBindings for controllers/admission/hiveapi. This required additional permissions be added to the operator, and some duplication and simplification was done particularly on the controllers role.
hive-controllers rbac was renamed from "manager-role" and "manager-role-binding" to be hive-controllers specific. This could avoid a complication where another operator attempted to use controller-runtime default rbac names and collides with ours. Additionally a hive-controller's service account was added as we should never be using the default service account for operators.
hive-operator previously created a default HiveConfig for you if none exists, this is no longer the case as it was discovered to be non-standard behavior. make deploy will do this for you now.
hive-operator now has to inject the configured namespace into a variety of the assets it deploys.
e2e tests now make use of the most complex scenario, hive-operator in it's own separate ns, and hive itself is moved to a non-"hive" namespace just to ensure this functionality is and stays working, despite the defaults of "hive".

hive-operator now deploys the ClusterRoles and ClusterRoleBindings for controllers/admission/hiveapi. This required additional permissions be added to the operator, and some duplication and simplification was done particularly on the controllers role.

This seems like a big change. I thought that we explicitly wanted OLM to handle dishing out permissions rather than giving the permissions to the operator.

hive-operator now deploys the ClusterRoles and ClusterRoleBindings for controllers/admission/hiveapi. This required additional permissions be added to the operator, and some duplication and simplification was done particularly on the controllers role.

This seems like a big change. I thought that we explicitly wanted OLM to handle dishing out permissions rather than giving the permissions to the operator.

Can you think of another option? OLM can't cross namespaces, you specify your permissions and a service account and it assumes to configure and bind to a service account in the namespace you're installing your operator. This would mean that hive must be in the namespace hive-operator is installed, and subsequently that all OCM components must be in one namespace, as they are planning to munge our CSV into theirs for productized releases.
The hive-operator already had permission to manage clusterroles and clusterrolebindings: https://github.com/openshift/hive/blob/master/config/operator/operator_role.yaml#L116
This allows hive-operator to fully provision hive, I'm actually not crazy about the previous implementation where some things were OLM and some were hive-operator. Now OLM configures hive-operator, and hive-operator configures everything else, it's cleaner and clearer. (with exception of CRDs which are configured by both, but on newer OLM we can make a desicion which way to go there)
Indeed hive-operator is very powerful, but this does not need to trickle down to hive-controllers etc.
In future if OLM allows multi-namespace, we could revisit and revoke these permissions. Today I can't think of another alternative aside from jamming everything into one NS, which does not seem like a good idea.

Today I can't think of another alternative aside from jamming everything into one NS, which does not seem like a good idea.

Are there any specific things you're worried about?
On one hand, it's appealing to have the NS configurable. On the other hand, it's appealing to let OLM be the god object.

Today I can't think of another alternative aside from jamming everything into one NS, which does not seem like a good idea.

Are there any specific things you're worried about?
On one hand, it's appealing to have the NS configurable. On the other hand, it's appealing to let OLM be the god object.

I'd be ok with it for hive and hive-operator, but not when we get to the OCM use case where every component lands in one namespace, because we're munging into one CSV.

Most feedback addressed, but we still need to settle what to do about who deploys hive operand RBAC.
I believe that leaving this to OLM implies that all ACM components must land in the same namespace, it can't deploy RBAC for a service account other than where we're deploying hive-operator. I personally do not want to be called in to debug OCM/ACM problems where there are dozens of pods in one namespace all with access to the same secrets and configmaps. It feels like bad practice to stuff multiple independent components into one namespace.
This permission to grant RBAC is not new, hive-operator already had it as it's used to deploy the hive-admin/reader roles for us in prod/stage.
But more than that I want to try to make the case that this is preferable in general. We chose to have our own hive-operator layer to deploy, upgrade and orchestrate hive itself. Contrast with a world where hive-controllers+hiveadmission was deployed directly by OLM (hive is after all an operator in itself), and OLM deploying it might make sense someday, but that is not the design we chose and currently have today.
With what we have today I prefer that OLM deploys hive-operator, and hive-operator deploys hive, and we stick to this as much as possible. Having hive-operator control the RBAC for hive then is cleaner and more logical than having the responsibilities cross. hive-operator has powerful permissions but that's necessary for it's job.

/test e2e

/test e2e

/test e2e

E2E was just clear, I've squashed everything and pushed.
I've successfully installed these changes with OLM all to the hive namespace. I have not been able to test a 1.0.0 upgrade yet because of OLM concepts I'm still learning, regardless I think an install is a good indicator this is safe enough to go to stage.

/retest

/retest

nudge on this PR so that we can get ocm-4.4.0 updated. 😄


RDM-2505 Spring Boot 2.0 compatibility

https://tools.hmcts.net/jira/browse/RDM-2505
Changes in config files and some imports for Spring 5.0.y and Spring Boot 2.0.x compatibility
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[X] No

Codecov Report

Merging #56 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff            @@
##             master     #56   +/-   ##
========================================
  Coverage      93.1%   93.1%
  Complexity      111     111
========================================
  Files            26      26
  Lines           290     290
  Branches         19      19
========================================
  Hits            270     270
  Misses           16      16
  Partials          4       4

Impacted Files
Coverage Δ
Complexity Δ

...i/HikariConfigurationPropertiesReportEndpoint.java
25% <ø> (ø)
1 <0> (ø)
:arrow_down:

src/main/java/uk/gov/hmcts/ccd/AliasWebConfig.java
100% <100%> (ø)
2 <1> (ø)
:arrow_down:

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 9d44edb...93d58e7. Read the comment docs.

Tested this Spring Boot upgrade in SAAT and looks good, ready to be merged.


fix(artifacts): fix s3 object example

fixing the example for defining an s3 object artifact. s/name/reference

@lwander @benjaminws PTAL

@lwander good point. i'll add it back. i got thrown off at first because the example didn't work.

@lwander fixed. merge when ready!


[Feature]: Convert metadata homepage from a single URL into a dict

Right now the metadata.json has a single key to specify the homepage. While most people use this to specify the github repo URL, others such as the bazel-lib link to the docs or boost linking to their websites.
Looking at other package sources such as pypi, there is the option to specify multiple project links such as the repositry, the docs, or the release notes. To me, this seems to be a nice feature for BCR as well.
This issue is related to https://github.com/bazelbuild/bazel-central-registry/issues/131.

@Wyverald FYI we discussed about this on the last Build Meetup.


Archive resource history

Fixes #2491
What is being addressed

Creation of a new container name ResourceHistory, with partition key of "resourceId"
Creation of ResourceHistoryRepository class contains query history for resourceId  and create history for resourceId
Save each history item in the new container
Migration script to transform the old model to the new one
Add a new route to get history for each resource
Change the way UI fetch history
Note - These changes are not touching airlock just yet

/test-extended

/tre-destroy

/test-destroy-env

https://github.com/microsoft/AzureTRE/actions/runs/3896064292 ran successfully. force approving

/test-force-approve


[Feature Request] Apply codecs to Failure.encodedAttributes

Recently added Payload to the Failure message, needs to be run through the payload codecs.

This is waiting on #164


Add support for multiple Organisations in SaaS Boilerplate web app

Description
Currently a user cannot be a member of multiple organisations, nor is there really a concept of grouping them and allowing to work on a common content.
Describe the solution you'd like

Organisation management:

Creating a new organisation: Allow users to sign up and create a new organisation instance with a unique organisation ID.
Editing organisation information: Enable users to modify their organisation information such as name, description, or custom branding.

User management within an organisation:

Inviting users: Allow the organisation admin to invite other users via email to join the organisation. Users should be able to accept or decline invitations
User roles and permissions: Provide different levels of access and control within a organisation based on user roles.
Removing users: Enable the organisation admin to remove users from the organisation.

Billing management:

Assigning billing information to an organisation: Handle billing information per organisation.
Subscription management: Allow the organisation admin to subscribe, upgrade, or downgrade their plan.
Invoice generation and payment history: Generate invoices for each billing cycle and allow users to view their past payments.

organisation-specific configurations:

Customizable settings: Allow organisation to set their settings like: preferred language, timezone, or other locale-specific settings.
Feature toggling: Allow the organisation admin to enable or disable certain features based on their plan or needs.

Data isolation and security:

Data separation: Ensure that each organisation's data is isolated from others
Security measures: Implement necessary security controls to protect the organisation's data, such as access control policies.

Additional context
Refer to discussion #334 for a complete list of requirements.
Validations

[X] Follow our Code of Conduct.
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

Hey is anyone working on this issue?

I've assigned the ticket to you as you asked so there are no conflicts. Let us know on Discord on how it's going.
Sorry it took so long!

I've assigned the ticket to you as you asked so there are no conflicts. Let us know on Discord on how it's going. Sorry it took so long!

Hey, Thank you for assigning the issue. I'm facing some problems in creating a new user. I tried it from both the admin panel and the front end. But I'm getting an error saying Either subscription or price must be defined. How can I resolve this? I tried to create a new entry in the Price model but I'm unsure what to put in those fields.

#387


Use static clusters instead of EDS

It appears that when a cluster is updated without a following endpoint update a cluster can lose its endpoint configuration.
I attempted to update endpoints on each cluster change to prevent this but it was still possible for the cluster update to happen after the endpoint update.
This seems related to https://github.com/envoyproxy/envoy/issues/13009
By using static clusters the endpoints are included in the cluster update. In testing this appears to resolve the issue where endpoints disappear since we no longer rely on EDS.

Missing test changes? 🙂


skeleton-typescript getting loads of typescript errors

Hi, I am trying to use the skeleton-typescript but I am getting loads of typescript errors. The application runs though.
Steps to reproduce

Download the skeleton
npm install
jspm install -y
typings install
gulp watch

I am using typings Version 1.8.10. Any idea what the problem is and how to resolve it? See log error below:
skeleton-typescript git:(master) ✗ sudo gulp watch
(node:47927) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
(node:47927) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
[21:52:29] Using gulpfile ~/path/skeleton-typescript/gulpfile.js
[21:52:29] Starting 'build'...
[21:52:29] Starting 'unbundle'...
[21:52:29] Finished 'unbundle' after 6.38 ms
[21:52:29] Starting 'clean'...
[21:52:29] Finished 'clean' after 32 ms
[21:52:29] Starting 'build-system'...
[21:52:29] Starting 'build-html'...
[21:52:29] Starting 'build-css'...
[21:52:29] Finished 'build-css' after 8.29 ms
[21:52:29] Finished 'build-html' after 151 ms
src/blur-image.ts(1,9): error TS2305: Module ''aurelia-framework'' has no exported member 'autoinject'.
[21:52:31] gulp-notify: [Error running Gulp] Error: src/blur-image.ts(1,9): error TS2305: Module ''aurelia-framework'' has no exported member 'autoinject'.
src/users.ts(1,9): error TS2305: Module ''aurelia-framework'' has no exported member 'autoinject'.
[21:52:31] gulp-notify: [Error running Gulp] Error: src/users.ts(1,9): error TS2305: Module ''aurelia-framework'' has no exported member 'autoinject'.
typings/modules/aurelia-fetch-client/index.d.ts(20,23): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(20,23): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(20,35): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(20,35): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(20,45): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(20,45): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(20,64): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(20,64): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(20,74): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(20,74): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(30,34): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(30,34): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(30,44): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(30,44): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(30,63): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(30,63): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(30,73): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(30,73): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(39,25): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(39,25): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(39,45): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(39,45): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(39,57): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(39,57): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(39,76): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(39,76): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(50,42): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(50,42): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(50,54): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(50,73): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-fetch-client/index.d.ts(71,13): error TS2304: Cannot find name 'Headers'.
typings/modules/aurelia-fetch-client/index.d.ts(76,43): error TS2304: Cannot find name 'URLSearchParams'.
typings/modules/aurelia-fetch-client/index.d.ts(261,16): error TS2304: Cannot find name 'Request'.
typings/modules/aurelia-fetch-client/index.d.ts(261,63): error TS2304: Cannot find name 'Response'.
typings/modules/aurelia-framework/index.d.ts(230,15): error TS2498: Module ''aurelia-dependency-injection'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(231,15): error TS2498: Module ''aurelia-binding'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(232,15): error TS2498: Module ''aurelia-metadata'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(233,15): error TS2498: Module ''aurelia-templating'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(234,15): error TS2498: Module ''aurelia-loader'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(235,15): error TS2498: Module ''aurelia-task-queue'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(236,15): error TS2498: Module ''aurelia-path'' uses 'export =' and cannot be used with 'export *'.
typings/modules/aurelia-framework/index.d.ts(237,15): error TS2498: Module ''aurelia-pal'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(50,54): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(50,73): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(71,13): error TS2304: Cannot find name 'Headers'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(76,43): error TS2304: Cannot find name 'URLSearchParams'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(261,16): error TS2304: Cannot find name 'Request'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-fetch-client/index.d.ts(261,63): error TS2304: Cannot find name 'Response'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(230,15): error TS2498: Module ''aurelia-dependency-injection'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(231,15): error TS2498: Module ''aurelia-binding'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(232,15): error TS2498: Module ''aurelia-metadata'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(233,15): error TS2498: Module ''aurelia-templating'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(234,15): error TS2498: Module ''aurelia-loader'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(235,15): error TS2498: Module ''aurelia-task-queue'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(236,15): error TS2498: Module ''aurelia-path'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] gulp-notify: [Error running Gulp] Error: typings/modules/aurelia-framework/index.d.ts(237,15): error TS2498: Module ''aurelia-pal'' uses 'export =' and cannot be used with 'export *'.
[21:52:31] TypeScript: 30 semantic errors
[21:52:31] TypeScript: emit succeeded (with errors)
[21:52:31] Finished 'build-system' after 2.45 s
[21:52:31] Finished 'build' after 2.5 s
[21:52:31] Starting 'serve'...
[BS] Access URLs:
 ----------------------------
 Local: http://localhost:9000
 ----------------------------
    UI: http://localhost:3001
 ----------------------------
[BS] Serving files from: .
[21:52:31] Finished 'serve' after 202 ms
[21:52:31] Starting 'watch'...
[21:52:31] Finished 'watch' after 18 ms

Yes I downloaded the ZIP file from the skeleton and performed the steps I explained in the OP.

@dtaalbers Are you using the master branch or a release branch? You should be using a release, not the master branch if that is the case. The master is development and not guaranteed stable, releases are meant to be stable.

@Vheissu if it's the case that makes sense. I pull the code from master, I thought it's already a stable one since it's master. :disappointed:

@Vheissu Yes I pulled it from the master. I had the same thoughts as @martindavid. I will try to pull it from a release build a.s.a.p and test if the same typescript error occurs.

Same issue here. Loads of errors

@Vheissu I just tried the latest release 1.0.0-beta.1.2.6 and worked just fine. Thanks!

npm install
jspm install -y
typings install
gulp watch

(node:62724) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
[21:11:56] Using gulpfile ~/path/skeleton-typescript/gulpfile.js
[21:11:56] Starting 'build'...
[21:11:56] Starting 'unbundle'...
[21:11:56] Finished 'unbundle' after 5.46 ms
[21:11:56] Starting 'clean'...
[21:11:56] Finished 'clean' after 13 ms
[21:11:56] Starting 'build-system'...
[21:11:56] Starting 'build-html'...
[21:11:56] Starting 'build-css'...
[21:11:56] Finished 'build-css' after 12 ms
[21:11:57] Finished 'build-html' after 69 ms
[21:11:57] Finished 'build-system' after 965 ms
[21:11:57] Finished 'build' after 987 ms
[21:11:57] Starting 'serve'...
[BS] Local URL: http://localhost:9000
[BS] Serving files from: .
[21:11:58] Finished 'serve' after 94 ms
[21:11:58] Starting 'watch'...
[21:11:58] Finished 'watch' after 13 ms

did this get reverted or something? aurelia-fetch-client^1.0.0 via (a somewhat butchered version of the skeleton) webpack blows up:
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:17:22
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:17:34
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:17:44
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:17:63
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:17:73
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:27:33
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:27:43
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:27:62
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:27:72
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:36:24
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:36:44
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:36:56
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:36:75
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:47:41
Cannot find name 'Request'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:47:53
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:47:72
Cannot find name 'Response'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:68:12
Cannot find name 'Headers'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:73:42
Cannot find name 'URLSearchParams'.
ERROR in [default] D:\Code\Node\aurelia-express-webpack\node_modules\aurelia-fetch-client\dist\aurelia-fetch-client.d.ts:258:15
Cannot find name 'Request'.

I'll reopen this and we'll have a look.

Sorry, I was missing the custom typings in my code (I'd copied everything bar the isomorphic typings). I suspect this isn't an issue.

Do you have these typings installed? https://github.com/aurelia/skeleton-navigation/blob/master/skeleton-typescript/typings.json

I'm using these typings: https://github.com/aurelia/skeleton-navigation/blob/master/skeleton-typescript/typings.json
But I'm still getting these errors. I have no idea what custom typings or isomorphic typings are. So if that is the solution what do I need to do?
(I am not using the full skeleton, but basing my project on it, so I might have missed something).


Add test coverage for various filename validation related bits

This time hopefully with correct license headers and without typos. :)
There are some small code changes - added null check, method made package private to enable testing, moving NewPackageHandler from field injection to constructor injection (as is already done for NewProjectHandler) and reusing DefaultNewResourceHandler.getPackage().
Related BZs:

1006506 - File name validation broken
1062289 - Create new Package dialog displays no warning when using " in package name

(part n+1 in 'Moving tests to community', soon in your theaters)

+1 to merge (minor white-space formatting issues)
@zkrejcov Are you using our normal code formatter? Normally we have spaces after and before opening and closing paranthesis, for example: https://github.com/uberfire/uberfire/pull/384/files#diff-dd15a9d33e5f49a71942785f3b8cbf60R64

@manstis is this what you mean by "your normal formatter"? https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/tree/master/ide-configuration

@yurloc Yes I do mean that... but now I fear I've walked into a trap!?!? ;)

@manstis well, for us folks on netbeans, those idea and eclipse code style settings are not that useful. So I've been using what is written in the README (number of spaces, file headers, license) and what I know of general java code style conventions. Besides that, I try to keep the style of the code I'm changing (sometimes with those spaces sometimes without), as having several code style in one class makes it harder to read. If I'm adding a brand new class, I don't use those additional spaces, as I wasn't aware of them being required by any code style conventions.
Hmmm, funny thing, the formatters @yurloc linked don't seem to set the space after brackets, braces, parentheses... ;) I might be looking wrong of course.

I can of course add those spaces, if you want. It shouldn't be too much hassle.

@zkrejcov I knew I was walking into a trap when @yurloc asked... it's not worth procrastinating over minor formatting differences - I did however link to another commit of yours that had spaces, whereas this PR contains some files with the spaces and others without... :)
+1 to merge.

@manstis ah yes, that one. Well it also only keeps the spaces style just in places where I change some bit. The tests are without again. :-D
Thanks.


-bakFolder and -licenseFile do not work together

Describe the issue
I recently added the -bakFolder parameter to our build scripts since this was advertised to speed up things a bit by a blog post of freddy. This worked good so far but today i had an issue with publishing an app which after quite some of investigation turned out to be a license issue.

Container was using an old license

So now i discovered that when using -bakFolder the -licenseFile paramter is ignored.
While i can see that sometimes you want to use the license that is in the database you restore, i do not see why an explicit -licenseFile parameter should be skiped.
https://github.com/microsoft/navcontainerhelper/blob/master/ContainerHandling/New-NavContainer.ps1#L912
In my opinion the -licenseFile parameter should import the license in any case.

I resolved the failing build by deleteing the bakfolder

Scripts used to create container and cause the issue
New-BcContainer `
    -bakFolder <somefolder> `
    -licenseFile <somefile>

Full output of scripts
2020-05-05T09:34:59.3181352Z Host is Microsoft Windows Server 2019 Standard - ltsc2019
2020-05-05T09:34:59.6761073Z Docker Client Version is 18.09.5
2020-05-05T09:34:59.8598321Z Docker Server Version is 18.09.5
2020-05-05T09:34:59.9117755Z Pulling image mcr.microsoft.com/businesscentral/sandbox:14.0.29537.31096-ch-ltsc2019
2020-05-05T09:35:00.5027152Z 14.0.29537.31096-ch-ltsc2019: Pulling from businesscentral/sandbox
2020-05-05T09:35:00.5097261Z Using image mcr.microsoft.com/businesscentral/sandbox:14.0.29537.31096-ch-ltsc2019
2020-05-05T09:35:01.4448783Z Creating Container LOGBUILD02-1
2020-05-05T09:35:01.6396149Z Version: 14.0.29537.31096-CH
2020-05-05T09:35:01.6396149Z Style: sandbox
2020-05-05T09:35:01.8273229Z Platform: 14.0.29530.29573
2020-05-05T09:35:02.0031642Z Generic Tag: <IP_ADDRESS>
2020-05-05T09:35:02.1825881Z Container OS Version: 10.0.17763.379 (ltsc2019)
2020-05-05T09:35:02.1835917Z Host OS Version: 10.0.17763.168 (ltsc2019)
2020-05-05T09:35:02.1856340Z WARNING: The container operating system matches the host operating system, but the revision is different.
2020-05-05T09:35:02.1856340Z If you encounter issues, you might want to specify -isolation hyperv
2020-05-05T09:35:02.1856340Z Using locale de-CH
2020-05-05T09:35:02.1856340Z Using process isolation
2020-05-05T09:35:02.1856340Z Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
2020-05-05T09:35:02.2325218Z Files in C:\ProgramData\NavContainerHelper\Extensions\LOGBUILD02-1\my:
2020-05-05T09:35:02.2481428Z - AdditionalOutput.ps1
2020-05-05T09:35:02.2481428Z - MainLoop.ps1
2020-05-05T09:35:02.2481428Z - SetupVariables.ps1
2020-05-05T09:35:02.2481428Z - SetupWebClient.ps1
2020-05-05T09:35:02.2481428Z - updatehosts.ps1
2020-05-05T09:35:02.2481428Z Creating container LOGBUILD02-1 from image mcr.microsoft.com/businesscentral/sandbox:14.0.29537.31096-ch-ltsc2019
2020-05-05T09:35:02.4807659Z 65d5d45db0166fed86f3a303e728767502864a3a55b203dcdb1d6446bd74cd55
2020-05-05T09:35:04.3593022Z Waiting for container LOGBUILD02-1 to be ready
2020-05-05T09:35:10.4494890Z Initializing...
2020-05-05T09:35:10.4494890Z Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
2020-05-05T09:35:10.4494890Z Starting Container
2020-05-05T09:35:10.4494890Z Hostname is LOGBUILD02-1
2020-05-05T09:35:11.6534541Z PublicDnsName is LOGBUILD02-1
2020-05-05T09:35:14.0429368Z Using NavUserPassword Authentication
2020-05-05T09:35:16.4430583Z Starting Local SQL Server
2020-05-05T09:35:17.6463218Z Starting Internet Information Server
2020-05-05T09:35:29.6733065Z Using Database .bak file 'C:\ProgramData\NavContainerHelper\sandbox-14.0.29537.31096-CH-bakFolders\mcr.microsoft.com_businesscentral_sandbox_14.0.29537.31096-ch\database.bak'
2020-05-05T09:35:30.8595410Z Creating Self Signed Certificate
2020-05-05T09:35:30.8595410Z Self Signed Certificate Thumbprint 8B32158348EAEB061C15EE54D9319D583FC5F6DD
2020-05-05T09:35:32.0569930Z Modifying Service Tier Config File with Instance Specific Settings
2020-05-05T09:35:37.1362597Z Starting Service Tier
2020-05-05T09:35:38.3964505Z Registering event sources
2020-05-05T09:35:46.8379680Z Creating DotNetCore Web Server Instance
2020-05-05T09:35:46.8379680Z Enabling Financials User Experience
2020-05-05T09:35:46.8379680Z Creating http download site
2020-05-05T09:35:46.8379680Z Creating Windows user build
2020-05-05T09:35:48.0876452Z Setting SA Password and enabling SA
2020-05-05T09:36:11.3273850Z Creating build as SQL User and add to sysadmin
2020-05-05T09:36:11.3273850Z Container IP Address: <IP_ADDRESS>
2020-05-05T09:36:11.3273850Z Container Hostname  : LOGBUILD02-1
2020-05-05T09:36:11.3273850Z Container Dns Name  : LOGBUILD02-1
2020-05-05T09:36:11.3273850Z Web Client          : http://LOGBUILD02-1/NAV/
2020-05-05T09:36:11.3273850Z Dev. Server         : http://LOGBUILD02-1
2020-05-05T09:36:11.3273850Z Dev. ServerInstance : NAV
2020-05-05T09:36:11.3273850Z Setting LOGBUILD02-1 to <IP_ADDRESS> in host hosts file
2020-05-05T09:36:11.3273850Z
2020-05-05T09:36:11.3273850Z Files:
2020-05-05T09:36:11.3273850Z http://LOGBUILD02-1:8080/al-3.0.106655.vsix
2020-05-05T09:36:11.3273850Z
2020-05-05T09:36:11.3273850Z WARNING: You are running a container which is 404 days old.
2020-05-05T09:36:11.3273850Z Microsoft recommends that you always run the latest version of our containers.
2020-05-05T09:36:11.3273850Z
2020-05-05T09:36:11.3273850Z Initialization took 61 seconds
2020-05-05T09:36:11.3283863Z Ready for connections!
2020-05-05T09:36:11.3303841Z Reading CustomSettings.config from LOGBUILD02-1
2020-05-05T09:36:16.6538901Z Container LOGBUILD02-1 successfully created
...

Screenshots
Additional context

You could also just use Import-BCContainerLicense after new-bccontainer, that should work as well.
Not sure why licensefile is ignored with bakfolder - but I am afraid that changing this now will cause more problems than solutions.

Yes that is what i will do. I just wanted to share and maybe have an insight on the reason behind it.


Autocomplete reimplementation

One of the most problematic components so far is the Autocomplete. The most important problem is that the control logic and state is delegated to the component internals which makes very difficult to maintain the improve the component. Also, it's not fully customizable: the rendering of internal options cannot be easily changed, there cannot be separators, Chips are always rendered in the same place, you cannot control rendering inside the cursor... etc. Also you have to control how many options are passed because children rendering is delegated,
All of this point to a reimplementation more than fixes. I'm closing issues related to the Autocomplete, they are going to be fixed here. Fixes #174 #1065

Hey, just curious, is this already being worked on somewhere? Or is it just at the ideation stage for now?

Just to clarify that this change will add the scrollbars to the dropdown if there are options hidden from the view? Also when can we expect this to be released?

Is there any update/progress on this? We have a use case for an ajax-based autocomplete and would love to use this. Happy to help out if needed.

To get the ball rolling/randomly suggest a feature:
We have a need to:

Allow users to type data into a field
Perform an ajax request to provide a list of possible results based on the text typed in (after a delay in activity)
Provide a list of options based on the result of that request
Allow users to select data from the dropdown or submit their own data as it is.

We're currently performing steps 1 & 4 via an Input and an element like the Chip you have created, but an autocomplete would be incredibly useful for 2 & 3. I'm happy to work on this if it sounds good, or if there are other ideas, I'm happy to hear those as well.

Looking for a way to sort by property value instead of property name.

@joelzimmer For the record, you can use this component with AJAX. I did this today using this HOC (Full disclosure: that I made) https://www.npmjs.com/package/react-redux-ui-state
Here is the example I got working, hopefully someone can use it:
import React from 'react';
import { withApollo, compose } from 'react-apollo';
import { pick } from 'lodash';
import Autocomplete from 'react-toolbox/lib/autocomplete';
import { uiState } from 'react-redux-ui-state';
import { injectIntl } from 'react-intl';
import industryAutocompleteQuery from './queries/suggestionQuery.graphql';

export function MyComponent({ client, intl, setUiState, uiSelections, uiSource }) {
    const fmt = intl.formatMessage;

    function slugify(str) {
        return `${str.split(' ').join('_')}`;
    }

    function loadSuggestions(query) {
        setUiState({
            uiSource: { [slugify(query)]: query, ...pick(uiSource, uiSelections) },
        });

        return client
            .query({
                query: suggestionQuery,
                variables: {
                    text: query,
                },
            })
            .then(({ data: { taxonomy: { items } } }) => {
                // we want to update the source with the results from the server
                const results = items.reduce((acc, item) => {
                    return {
                        [slugify(item.label)]: item.label,
                        ...acc,
                    };
                }, {});

                const merged = { [slugify(query)]: query, ...results, ...uiSource };

                return setUiState({
                    uiSource: merged,
                });
            });
    }

    return (
        <div>
            <Autocomplete
                direction="down"
                selectedPosition="above"
                label="your label"
                multiple
                onChange={value => setUiState({ uiSelections: value })}
                onQueryChange={loadCategorySuggestions}
                onFocus={() =>
                    setUiState({
                        uiSource: pick(uiSource, uiSelections),
                    })}
                source={uiSource}
                suggestionMatch="anywhere"
                value={uiSelections}
            />
        </div>
    );
}

const uiStateConfig = {
    name: 'MyComponent',
    state: () => ({
        uiSelections: [],
        uiSource: {},
    }),
};

const wrapper = compose(withApollo, uiState(uiStateConfig), injectIntl);

export default wrapper(MyComponent);

+1 bug:
When Autocomplete is placed in the end of a Card, its options are clipped away by Card's 'overflow: hidden'.
The only real fix for it is to render options in document.body, not as a child of input element.


Branch 2

Alphabetical sort of the lists contents.
Replaced repository icon with something more appropiate (git icon), the old icon (open lock) was the open source initiative's icon. Just because a project has a code repository doesn't mean it's open source.
Used  the open source initiative's icon to mark the open source compliant projects. The criteria used is that in the code repository, the license (or licenses) should be one of the registered in the open source initiative's list without third party or special clauses exceptions: https://opensource.org/licenses/alphabetical
Added code repository for some projects i.e. Firefox, Mozilla Thunderbird...
Crossed out some abandoned and non working projects whose link do not work anymore.

Is there a version that doesn't sort the lists? I think it looks a bit messy. Sorry, I just want to sort README section by heading.

Yeah, I will un-sort the lists. Are you ok with the other changes? If yes, I will work on un-doing the sorting and do a new commit with the other changes in the following days (sorry for the mess, I will try to do it in one commit)

Yeah, I will un-sort the lists. Are you ok with the other changes? If yes, I will work on un-doing the sorting and do a new commit with the other changes in the following days (sorry for the mess, I will try to do it in one commit)

OK. No need to change anything else. Thanks a lot.


feat: target ES2019 and enable ES2020 features

Adonis requires at least Node.js 12. That version fully supports ES2019
and has support for some ES2020 library features.

Thanks :)