Update testcontainers-scala-postgresql to 0.39.6

Updates com.dimafeng:testcontainers-scala-postgresql from 0.39.5 to 0.39.6.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.dimafeng", artifactId = "testcontainers-scala-postgresql" } ]

labels: test-library-update, semver-patch

Superseded by #442.


Clean up doctests to make cargo test work

Fixes compilation, removes unnecessary extern crates, and adds no_run to all doctests to ensure they build without running them.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @therealprof (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

bors r+


Machine String / Identifier

Add a property field to return the "machine string" for the device. i.e. "iPhone9,1" for iPhone 7.  This would be useful for the case where the code is running on a newer platform that is not yet recognized by DeviceKit.

IIUC you are looking for the associated value in the .unknown case.
Assume there is no iPhone10,1 support in DeviceKit and you're running on such a phone,
switch device {
case let .unknown(identifier): print(identifier)
default: break
}

would give you what you want right?

Looking closer at the code it seems the code is already designed to return the identifier property if the platform type is unknown. Also I found I could access the platform identifier value directly this way: Device.identifier so I will close this.


Add custom rendering example

This is a rebased and cleaned up version of #389.

There was a performance regression uncovered by the benchmark so I reverted the changes tp pbr.frag which resolved it. I will try to reduce the duplication later on but this works for now.


Check for untracked and staged files in check-diff

Signed-off-by: hasheddan<EMAIL_ADDRESS>
Description of your changes

Currently check-diff will miss untracked and staged files. This can be a problem if new types are added and newly generated files (e.g. CRDs) are not checked in. See https://github.com/crossplane/crossplane/pull/1490 for implementation in c/c.
Checklist

I have:

[x] Run make reviewable to ensure this PR is ready for review.
[x] Ensured this PR contains a neat, self documenting set of commits.
[ ] Updated any relevant documentation, examples, or release notes.
[ ] Updated the dependencies in app.yaml to include any new role permissions.
[ ] Updated the package resources documentation to include any new managed resources or classes.

@negz can you merge this one?

@hasheddan Let me do the merge for you :)

@hongchaodeng thank you!


Feature/enhanced detail preview

I've tried to implement an enhanced media field.
I used the MediaPreview component to bring video and audio previews into the component.
I also showed the File name and creation date.

Nice Media Field! Maybe will become the standard one in the future 😸!


Cherry-pick into r0.10 cuda configure fix and gif.BUILD missing headers

Doh, I squashed them instead of cherry-picking them individually.  Oh well :/


Night vision fade effect starts too early

👋
Just running off of SevTech here, it looks like the night vision fade effect starts at around 10 seconds. When using 1-3 enderman totem heads, it produces a really noticeable and distracting fade, then flashes back to full brightness every few seconds.
Would it be possible to use something like cubic easing, or to simply just lower the time before it starts fading?
With a screen at a reduced brightness level, you only really get about 5-7 seconds of this buff on a larger stacked totem :(

Usually the effect should refresh soon enough that no fade should be visible if you stay close to the Totem pole. But if the TPS drops low it might no longer be the case. I'm afraid there is no good way for us to fix that, I would suggest using a "no night vision flashing" mod.


Update and fix SSO setup on foundu-tutorial.md

Step 5 of "Configure Azure AD SSO" has an error where it should set up Logout URL, not Sign-on URL

#sign-off

@jeevansd
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@fluxodesign, creating separate PR for your changes in our private repo for better content validation.
#please-close


Fixing EKS GA changes to work with Rancher

When EKS GA was released the cloud formation templates that Rancher
relied on were removed.  This change updates the eks_driver logic to use
the latest version of the templates from AWS.  It also updates the eks
cluster object so that it can be properly marshalled and unmarshalled.
Issue:
rancher/rancher#13857

LGTM


Compilation Error with freeRTOS

Hi, I am attempting to compile the library using the Arduino Nano 33 BLE. When compiling, I am getting an error that it cannot find FreeRTOS.h. I installed FreeRTOS through the library manager, but the error remains. Do I need to place freeRTOS elsewhere or should it be automatically installed when NimBLE is installed? Thanks

Hi @gktval, sorry but at the moment this library only supports the esp32 arduino core.
I have a nearly ready core for arm processors that I started months ago and have not had time to complete it yet but hope to soon.
It will be announced here when its available.

Ah. That's good to hear.  I will close this then.

@gktval Since you asked about this I thought I'd let you know that the core is now available if you're interested. Please see #314


Add k  command-line flag to allow user specify the module option on their  tsconfig.json file at build time.

🔍 Search Terms
flag, options,module
✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
would love PR https://github.com/microsoft/TypeScript/pull/58868 to be reviewed and merged.
📃 Motivating Example
-It  a bad practice manually editing the tsconfig,json file ,however sometimes situations can force one to do so when they need to change the module option from maybe module to commonJs or whichever. So why not give developers power to decide their module option at build time?
💻 Use Cases

What do you want to use this for?
-Specify module option within the tsconfig,json file at build time.
What shortcomings exist with current approaches?
-current approach of manually editing tsconfig.json file is prone to error and fails to adhere to best practise.
What workarounds are you using in the meantime?
-have a -k flag used alongside the tsc init command e.g tsc init -k cm  to specify commonJs or whichever other module option to be used within the project.

You can write tsc -p tsconfig.json --module commonjs, etc.. Commandline-provided flags will override those in the tsconfig.

Well noted, though this one just modifies the module option at build time, unlike tsc -p tsconfig.json --module commonjs which has to be entered after tsconfig.json has already been generated.
lastly, just a clarification which tsconfig are you referring to is it this repositories tsconfig or users' tsconfig while they use typescript?

If you want to modify the tsconfig JSON before running, I'm sure there are ways to accomplish that programmatically that don't need to involve tsc itself doing that modification.


cilium-dbg: fix status commands for cluster connectivity health

This commit fixes serveral issues that were
reported in the status commands of cilium-dbg.

Fix the issue where not up to 10 unreachable nodes were shown in the status command.
Fix the issue where --all-nodes didn't return all nodes regardless of their status.
--all-health now returns the health of all modules regardless of their status. This can be paired with --all-nodes to get the health of all nodes.
--verbose now shows the latency to nodes and endpoints.

Fixes: https://github.com/cilium/cilium/issues/33697

Converted back to draft as I work on adding tests for the FormatHealthStatusResponse function.

@derailed I pushed the changes you've requested. I will rebase once you're OK with the changes.

/test

@darox seems like some tests are failing, would you mind rebasing PR, hopefully it fixes it :smiley: ?

@darox seems like some tests are failing, would you mind rebasing PR, hopefully it fixes it 😃 ?

I need a bit more time, because there's now a conflict:
+++ b/pkg/health/client/client.go
@@@ -325,29 -315,8 +325,34 @@@ func formatNodeStatus(w io.Writer, nod
        if localhost {
                localStr = " (localhost)"
        }
++<<<<<<< HEAD
 +      if succinct {
 +              if printAll || !nodeIsHealthy(node) {
 +                      ips := []string{getPrimaryAddressIP(node)}
 +                      for _, addr := range GetHostSecondaryAddresses(node) {
 +                              if addr == nil {
 +                                      continue
 +                              }
 +                              ips = append(ips, addr.IP)
 +                      }
 +                      hostStatuses := SummarizePathConnectivityStatusType(GetAllHostAddresses(node))
 +                      endpointStatuses := SummarizePathConnectivityStatusType(GetAllEndpointAddresses(node))
 +
 +                      fmt.Fprintf(w, "  %s%s\t%s\t%d/%d", node.Name, localStr, strings.Join(ips, ","), hostStatuses[ConnStatusReachable], len(GetAllHostAddresses(node)))
 +                      if hostStatuses[ConnStatusUnknown] > 0 {
 +                              fmt.Fprintf(w, " (%d unknown)", hostStatuses[ConnStatusUnknown])
 +                      }
 +                      fmt.Fprintf(w, "\t%d/%d", endpointStatuses[ConnStatusReachable], len(GetAllEndpointAddresses(node)))
 +                      if endpointStatuses[ConnStatusUnknown] > 0 {
 +                              fmt.Fprintf(w, " (%d unknown)", endpointStatuses[ConnStatusUnknown])
 +                      }
 +                      fmt.Fprintf(w, "\n")
 +              }
 +      } else {
++=======
+

I rebased and fixed the conflicts.

/test

I've re-requested  @ldelossa review due to the conflicts you mentioned.

I did a bit more testing and noticed the following:

With the current solution (main branch), we're not outputting the secondary IP health status:

Cluster health:	3/4 reachable	(2023-04-01T12:00:00Z)
Name	IP	Node	Endpoints
  node0:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:	OK, RTT=10ms
      HTTP to agent:	OK, RTT=10ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:	OK, RTT=10ms
      HTTP to agent:	OK, RTT=10ms
  node1:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:	OK, RTT=10ms
      HTTP to agent:	OK, RTT=10ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:	OK, RTT=10ms
      HTTP to agent:	OK, RTT=10ms
  node2:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:	OK, RTT=10ms
      HTTP to agent:	OK, RTT=10ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:	OK, RTT=10ms
      HTTP to agent:	OK, RTT=10ms
  node3:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:	failed
      HTTP to agent:	failed
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:	failed
      HTTP to agent:	failed

But with my PR it will be:
Name              IP              Node   Endpoints
  clustermesh2/clustermesh2-worker (localhost):
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.52943ms
      HTTP to agent:   OK, RTT=64.135µs
      Secondary connectivity to fc00:c111::5:
        ICMP to stack:   OK, RTT=1.66545ms
        HTTP to agent:   OK, RTT=66.384µs
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.648948ms
      HTTP to agent:   OK, RTT=166.983µs
      Secondary connectivity to fd00:10:2:1::2e07:
        ICMP to stack:   OK, RTT=1.600523ms
        HTTP to agent:   OK, RTT=139.687µs
  clustermesh1/clustermesh1-control-plane:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.630403ms
      HTTP to agent:   OK, RTT=318.88µs
      Secondary connectivity to fc00:c111::2:
        ICMP to stack:   OK, RTT=1.614359ms
        HTTP to agent:   OK, RTT=233.326µs
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=2.948719ms
      HTTP to agent:   OK, RTT=621.549µs
      Secondary connectivity to fd00:10:1::7394:
        ICMP to stack:   OK, RTT=1.62011ms
        HTTP to agent:   OK, RTT=349.884µs
  clustermesh1/clustermesh1-worker:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=2.978723ms
      HTTP to agent:   OK, RTT=154.272µs
      Secondary connectivity to fc00:c111::3:
        ICMP to stack:   OK, RTT=1.671075ms
        HTTP to agent:   OK, RTT=113.725µs
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.595981ms
      HTTP to agent:   OK, RTT=262.663µs
      Secondary connectivity to fd00:10:1:1::dcc9:
        ICMP to stack:   OK, RTT=1.617026ms
        HTTP to agent:   OK, RTT=352.343µs
  clustermesh2/clustermesh2-control-plane:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=2.956429ms
      HTTP to agent:   OK, RTT=135.436µs
      Secondary connectivity to fc00:c111::4:
        ICMP to stack:   OK, RTT=1.68337ms
        HTTP to agent:   OK, RTT=112.933µs
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.631987ms
      HTTP to agent:   OK, RTT=306.67µs
      Secondary connectivity to fd00:10:2::85f:
        ICMP to stack:   OK, RTT=1.578645ms
        HTTP to agent:   OK, RTT=271.414µs

Does that make sense?

I don't see how this PR would affect the failing CI task.

I've rerun test, let's see if it was just a flake (probably)

I've rerun test, let's see if it was just a flake (probably)

passed

@ldelossa can we get it merged?

/test

/test

/test

@ldelossa would you mind taking a look or should we reassign?

What are the steps I have to take, to get this backported to v1.16?


Wildcards in Filenames

[x] I'm sure this issue is not a duplicate?

Is it possible to entertain the idea of allowing wildcards in file or folder names for icon matching, especially in overrides at the local level? For example ... I would love to be able to put this into my settings.json file. The ability to customize the icons alone has been so wonderful.
{ "icon": "node", "extensions: [ ".node" ], match: [ "*Node" ], format: "svg", extends: "node" }

This is highly request from us, but so far vscode hasn't this feature(I don't even know wether they work on it.)...
I'm sorry, but unfortunately we can't do that.

Thank you for responding! I'm really glad to know you're open to the idea if Microsoft makes such behavior possible.
I just learned last night that I can customize the icons at a user level, and a workspace level, and I REALLY enjoy it. You've done an amazing job with this extension.

Thank you very much!

I guess this prevents something like a customization in the lines of

give all .tex files in the tables folder only icon mjml

right?

@Gliptal Yeah, that's true.

If using wildcard is not possible, is matching against the beginning of a filename achievable? In my case, I wish to associate all i18n_<lang_code>.properties files with icon locale. Because otherwise, there is no way to tell a locale file from a config file which use .properties extension.
Atm, I have to add every language manually to the list.

No news about?
Thanks

Unfortunately, no.

Very very bad news! :-(
Thanks for quick reply @robertohuertasm .

No way to expand the suffix too I assume? It's very common for go tests to be named myfunction_test.go, so if I could just match "ahead" of the period e.g. *_test.go

No luck

Any update ?

For reference, this is a VS Code API limitation. It would be nice for users interested in this feature to open an issue in the vscode repo itself.


queue-monitor does not update list of plans

Using the queue-monitor on v0.0.11 and notice that the list of plans available in the editor does not change when the environment is re-opened after editing the underlying Python source code for the available plans (add a new plan, rename, ...).  Even when the queueserver updates its file of existing pland and devices, per the --update-existing-plans-devices ENVIRONMENT_OPEN option, such as:
start-re-manager \
    --startup-dir ./  \
    --update-existing-plans-devices ENVIRONMENT_OPEN \
    --zmq-publish-console ON \
    --databroker-config bdp2022

Expected Behavior
Expect the list of available plans and the type of items in the argument list will be recaptured from the qserver when the environment is opened.
Current Behavior
Presently, must quit the queue-monitor application and restart to get the revised list of plans.

Not seeing any related unit tests (https://github.com/bluesky/bluesky-widgets/search?q=ENVIRONMENT_OPEN).

@prjemian Unfortunately there are no unit tests for the control widgets. Control widgets were implemented as a quick projects with strict deadline and then I made a few passes to fix obvious bugs. If it is decided that overall design of the widgets is acceptable for production, then we will have to go over the code and write unit tests. I am also planning to change the widgets so that they use bluesky-queueserver-api package to communicate with the server.

I will take a look at the problem. It could be a minor issue.

Addressed in PR https://github.com/bluesky/bluesky-widgets/pull/172


Chrome/karma is started before the webpack dev server is ready to serve

🐞 Bug report
Command (mark with an x)

[ ] new
[ ] build
[ ] serve
[x] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?

 Yes, the previous version in which this bug was not present was: ....
No, AFAIK, this has always been present
Description
 A clear and concise description of the problem...
There is this issue in Karma: https://github.com/karma-runner/karma/issues/3745
What happens is that Angular CLI is starting karma and the webpack dev server at the same time. On large Angular projects, like ours, Angular + webpack is very slow (1-2 minutes to start ng serve for example, separate issue we really need to address somehow).
What seems to occur is that chrome (or ChromeHeadless) gives up trying to load the page (it would see the problem that the server is not responding). Karma then kills the browser and restarts it (triggering issue https://github.com/karma-runner/karma/issues/3745). Eventually the webpack dev server starts responding, and the tests run. Once the tests complete, the coverage report (and potentially other reporters) fail to write their reports.
While there is a bug in Karma that needs to be fixed, it does not seem to make sense to start the test framework until the webpack dev server is ready to serve the application. When it is ready, we see the Browser application bundle generation complete printed to the terminal.
Ideally karma would be started after a 200 HTTP response could be obtained from the webpack dev server
🔬 Minimal Reproduction

Only thing that is required is to run ng test on an Angular project. The problem to reproduce is that the application has to have enough code to cause webpack dev server to be too slow to start before chrome gives up loading the page.
🔥 Exception or Error

🌍 Your Environment

Angular CLI: 13.1.2
Node: 14.17.1
Package Manager: npm 6.14.13
OS: darwin x64

Angular: 13.1.1
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1301.2
@angular-devkit/build-angular   13.1.2
@angular-devkit/core            13.1.2
@angular-devkit/schematics      13.1.2
@angular/cli                    13.1.2
@ngtools/webpack                13.1.2
@schematics/angular             13.1.2
ng-packagr                      13.1.2
rxjs                            6.6.7
typescript                      4.5.4
webpack                         5.65.0

Anything else relevant?

In this case you can configure and increase Karma's captureTimeout option. This option represents the maximum boot-up time allowed for a browser to start and connect which by default is 60_000ms.
In the Angular CLI, Karma is initialized prior to Webpack. The rational for this is that Webpack needs to run in Karma context in order for it to notify Karma about file changes and complication errors.

The problem is not Karma waiting long enough, the problem is that chrome itself gives up. Karma has a bug as mentioned that many reports will not work when this happens. As a result, changing any timeouts has no effect on the issue. This is currently really breaking us as all our code coverage metrics in our branch builds for PRs fail due to no coverage reports being generated.
That is why we are requesting that karma not be started until after the webpack has started.
I'd LOVE to get rid of webpack since it is extremely slow, but this would be a temporary fix

@arobinson,
I am a bit confused when you say Chrome itself gives up, the logs in https://github.com/karma-runner/karma/issues/3745 (pasted below), show that actually Karma terminated Chrome because the capture timeout has elapsed (Chrome has not captured in 120000 ms, killing.).
START:
 12 01 2022 20:32:01.145:INFO [karma-server]: Karma v6.3.9 server started at http://localhost:9876/
 12 01 2022 20:32:01.145:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
 12 01 2022 20:32:01.152:INFO [launcher]: Starting browser Chrome
 12 01 2022 20:34:01.547:WARN [launcher]: Chrome has not captured in 120000 ms, killing.
 12 01 2022 20:34:04.784:WARN [launcher]: Chrome was not killed in 2000 ms, sending SIGKILL.
 12 01 2022 20:34:13.076:INFO [launcher]: Trying to start Chrome again (1/2).
 ✔ Browser application bundle generation complete.

I tried to replicate this locally and I did a couple of things.
I firstly forcefully slowed down the build to take 500_000 ms (8.33333333 mins), and I started getting ChromeHeadless has not captured in 60000 ms, killing error message and the test failed due to retries limit.
I then, increased the captureTimeout to 300_000 ms (5 mins), and I saw the below logs
ng t --code-coverage
⠙ Generating browser application bundles (phase: setup)...
14 01 2022 14:26:01.437:INFO [karma-server]: Karma v6.3.11 server started at http://<IP_ADDRESS>:9876/
14 01 2022 14:26:01.439:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
14 01 2022 14:26:01.462:INFO [launcher]: Starting browser Chrome
✔ Browser application bundle generation complete.
14 01 2022 14:31:01.452:WARN [launcher]: Chrome has not captured in 300000 ms, killing.
14 01 2022 14:31:01.473:INFO [launcher]: Trying to start Chrome again (1/2).
14 01 2022 14:34:24.735:INFO [Chrome 97.0.4692.71 (Mac OS 10.15.7)]: Connected on socket Dy1k5mK-qbhvm-vhAAAB with id 91452449

Based on the comments this should have not have generated a coverage report, but in my case it did 😑.
Then, I tried to increase captureTimeout to 600_000 ms (10 mins) which is greater than the 8 mins that the build takes.
ng t --code-coverage
⠙ Generating browser application bundles (phase: setup)...
14 01 2022 12:15:46.349:INFO [karma-server]: Karma v6.3.11 server started at http://<IP_ADDRESS>:9876/
14 01 2022 12:15:46.350:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
14 01 2022 12:15:46.360:INFO [launcher]: Starting browser Chrome
✔ Browser application bundle generation complete.
14 01 2022 12:24:11.163:INFO [Chrome 97.0.4692.71 (Mac OS 10.15.7)]: Connected on socket sJB3ecLXT8gOlIXkAAAB with id 28198237
Chrome Headless 97.0.4692.71 (Mac OS 10.15.7): Executed 3 of 3 SUCCESS (0.132 secs / 0.108 secs)
TOTAL: 3 SUCCESS

In the later case, from the logs we see that Chrome was not killed and again the coverage report was generated.

I'll try tweaking our karma settings and see if that helps and I'll report back.

Increasing the timeout just makes it longer before chrome is killed.
The process just "hangs" here now until the timeout is reached:
 11:25:37  Running unit tests
11:25:40  - Generating browser application bundles (phase: setup)...
11:25:43  Test results are being saved to: /tmp/workspace/Client/nw-client-sonar-pull-request/development/nw-client/client-source/test-results
11:25:43  14 01 2022 18:25:43.240:INFO [karma-server]: Writing browser console to file: /tmp/workspace/Client/nw-client-sonar-pull-request/development/nw-client/client-source/test-results/console.log
11:25:43
11:25:43  START:
11:25:43  14 01 2022 18:25:43.261:INFO [karma-server]: Karma v6.3.9 server started at http://localhost:9876/
11:25:43  14 01 2022 18:25:43.262:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
11:25:43  14 01 2022 18:25:43.269:INFO [launcher]: Starting browser Chrome
11:29:19  ✔ Browser application bundle generation complete.

As mentioned, I believe the issue to be that chrome gave up trying to load the page since webpack is such a slow beast.
As you can see, webpack is taking 216 seconds to bring up the server.

11 minutes in and the test still have not started, so increasing the timeout is making the issue worse, not better, unfortunately:
11:25:37  Running unit tests
11:25:40  - Generating browser application bundles (phase: setup)...
11:25:43  Test results are being saved to: /tmp/workspace/Client/nw-client-sonar-pull-request/development/nw-client/client-source/test-results
11:25:43  14 01 2022 18:25:43.240:INFO [karma-server]: Writing browser console to file: /tmp/workspace/Client/nw-client-sonar-pull-request/development/nw-client/client-source/test-results/console.log
11:25:43
11:25:43  START:
11:25:43  14 01 2022 18:25:43.261:INFO [karma-server]: Karma v6.3.9 server started at http://localhost:9876/
11:25:43  14 01 2022 18:25:43.262:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
11:25:43  14 01 2022 18:25:43.269:INFO [launcher]: Starting browser Chrome
11:29:19  ✔ Browser application bundle generation complete.
11:35:56  14 01 2022 18:35:43.271:WARN [launcher]: Chrome has not captured in 600000 ms, killing.
11:35:56  14 01 2022 18:35:43.304:INFO [launcher]: Trying to start Chrome again (1/2).
11:35:56  14 01 2022 18:35:43.693:INFO [Chrome Headless 92.0.4515.159 (Linux x86_64)]: Connected on socket SttuODUtr-pfY8a7AAAB with id 39733937
11:36:22  14 01 2022 18:36:21.169:WARN [Chrome Headless 92.0.4515.159 (Linux x86_64)]: Disconnected (0 times) reconnect failed before timeout of 7500ms (ping timeout)
11:36:22  Chrome Headless 92.0.4515.159 (Linux x86_64) ERROR
11:36:22    Disconnected reconnect failed before timeout of 7500ms (ping timeout)
11:36:22  Chrome Headless 92.0.4515.159 (Linux x86_64) ERROR
11:36:22    Disconnected reconnect failed before timeout of 7500ms (ping timeout)
11:36:22  14 01 2022 18:36:21.173:INFO [karma-server]: Restarting Chrome Headless 92.0.4515.159 (Linux x86_64) (1 of 5 attempts)
11:36:22  14 01 2022 18:36:22.621:INFO [Chrome Headless 92.0.4515.159 (Linux x86_64)]: Disconnected browser returned on socket Fi9_tK7cfD_BqojkAAAF with id 39733937.

Can you please share your karma configuration?

Let it go for a long time, and it eventually started the tests:
11:54:54  START:
11:54:54  14 01 2022 18:54:53.719:INFO [karma-server]: Karma v6.3.9 server started at http://localhost:9876/
11:54:54  14 01 2022 18:54:53.719:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
11:54:54  14 01 2022 18:54:53.727:INFO [launcher]: Starting browser Chrome
11:58:30  ✔ Browser application bundle generation complete.
12:05:07  14 01 2022 19:04:53.728:WARN [launcher]: Chrome has not captured in 600000 ms, killing.
12:05:07  14 01 2022 19:04:53.768:INFO [launcher]: Trying to start Chrome again (1/2).
12:05:07  14 01 2022 19:04:54.289:INFO [Chrome Headless 92.0.4515.159 (Linux x86_64)]: Connected on socket SJ87vV8RTTKYvPVgAAAB with id 66991885
12:05:33    AppComponent Test Suite

karma.coverage.ts:
import { all as merge } from 'deepmerge';
import * as karma from 'karma';
import * as karmaCoverage from 'karma-coverage';
import * as path from 'path';
import { buildKarmaConfig, getLogDirectory } from './karma';

// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html

module.exports = function (config: karma.Config): void {
  // With source maps and coverage enabled, we may have browser timeouts, so increase the numbers to prevent this
  const coverageSettings: any = {
    captureTimeout: 600000
  };

  const logDir = getLogDirectory();
  const projectDirectory = path.normalize(path.join(logDir, '..', '..'));

  const customConfig = merge([
    buildKarmaConfig(config, { nwOptions: {}, customConfiguration: coverageSettings, reporters: ['coverage'] }),
    <Partial<karma.Config>>{
      plugins: [karmaCoverage],
      coverageReporter: {
        type: 'html',
        dir: path.join(logDir, 'coverage'),
        subdir: '.',
        reporters: [
          { type: 'html', subdir: '.', includeAllSources: true },
          { type: 'lcov', projectRoot: projectDirectory }
        ]
      }
    }
  ]);

  config.set(customConfig);
};

and karma.ts:
import { all as merge } from 'deepmerge';
import * as fs from 'fs';
import * as karma from 'karma';
import * as karmaChromeLauncher from 'karma-chrome-launcher';
import * as karmaJasmine from 'karma-jasmine';
import * as karmaJasmineHtmlReporter from 'karma-jasmine-html-reporter';
import * as karmaJunitReporter from 'karma-junit-reporter';
import * as karmaMochaReporter from 'karma-mocha-reporter';
import * as karmaParallel from 'karma-parallel';
import * as path from 'path';

export interface NwKarmaOptions {
  username?: string;
  password?: string;
  parallel?: boolean;
}

export interface NwKarmaConfig {
  customConfiguration: Partial<karma.ConfigOptions>;
  nwOptions: NwKarmaOptions;
  reporters?: Array<string>;
}

export const getLogDirectory = (): string => {
  const logDir = path.join(__filename, '../../../test-results');
  if (!fs.existsSync(logDir)) {
    fs.mkdirSync(logDir, { recursive: true });
  }
  return logDir;
};

export const buildKarmaConfig = (config: karma.Config, nwConfig: NwKarmaConfig): karma.ConfigOptions => {
  const username = process.env.TEST_USERNAME || nwConfig.nwOptions.username ||<EMAIL_ADDRESS>  const password = process.env.TEST_PASSWORD || nwConfig.nwOptions.password || 'Test201^';

  const logDir = getLogDirectory();
  // eslint-disable-next-line no-console
  console.log('Test results are being saved to: %s', logDir);

  const frameworks = ['jasmine', '@angular-devkit/build-angular'];
  const reporters: Array<string> = ['junit'];
  const plugins = [];

  if (nwConfig.nwOptions.parallel) {
    frameworks.unshift('parallel');
    reporters.push('progress');
    plugins.push(karmaParallel);
  } else {
    reporters.push('kjhtml', 'mocha');
    plugins.push(karmaMochaReporter, karmaJasmineHtmlReporter);
  }

  if (nwConfig.reporters) {
    reporters.push(...nwConfig.reporters);
  }

  const karmaConfig = merge([
    <Partial<karma.ConfigOptions>>{
      basePath: './',
      frameworks: frameworks,
      plugins: [karmaJasmine, karmaChromeLauncher, '@angular-devkit/build-angular/plugins/karma', karmaJunitReporter, ...plugins],
      client: {
        clearContext: false, // Leave Jasmine Spec Runner output visible in browser
        args: [username, password],
        jasmine: { random: false }
      },
      browserConsoleLogOptions: {
        level: 'debug',
        format: '%b %t: %m',
        terminal: false,
        path: path.join(logDir, 'console.log')
      },
      mochaReporter: {
        ignoreSkipped: true
      },
      jasmineHtmlReporter: {
        suppressAll: true // Removes the duplicated traces
      },
      junitReporter: {
        outputDir: path.join(logDir, 'junit'), // Results will be saved as $outputDir/$browserName.xml
        suite: 'core', // Suite will become the package name attribute in xml testsuite element
        useBrowserName: true, // Add browser name to report and classes names
        nameFormatter: undefined, // Function (browser, result) to customize the name attribute in xml testcase element
        classNameFormatter: undefined, // Function (browser, result) to customize the classname attribute in xml testcase element
        properties: {} // Key value pair of properties to add to the <properties> section of the report
      },
      reporters: reporters,
      port: 9876,
      colors: true,
      logLevel: config.LOG_INFO,
      autoWatch: true,
      browsers: ['ChromeHeadless'],
      customLaunchers: {
        ChromeCanaryHeadless: {
          base: 'ChromeCanary',
          flags: ['--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9225']
        },
        ChromeHeadless: {
          base: 'Chrome',
          flags: ['--no-sandbox', '--headless', '--disable-web-security', '--remote-debugging-port=9225']
        }
      },
      singleRun: true,
      restartOnFileChange: false
    },
    nwConfig.customConfiguration
  ]);

  return karmaConfig;
};

Looking at output again and I noticed is that after the bundle generation is complete at 11:58:30 Karma launcher outputted Chrome has not captured at 12:05:07 that is almost 7 mins of waiting for something.
11:54:54  START:
11:54:54  14 01 2022 18:54:53.719:INFO [karma-server]: Karma v6.3.9 server started at http://localhost:9876/
11:54:54  14 01 2022 18:54:53.719:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
11:54:54  14 01 2022 18:54:53.727:INFO [launcher]: Starting browser Chrome
11:58:30  ✔ Browser application bundle generation complete.
12:05:07  14 01 2022 19:04:53.728:WARN [launcher]: Chrome has not captured in 600000 ms, killing.

From the logs of a previous post I also noticed some ping timeouts and these are all post the bundle is generated and Karma server is read to take on requests.
11:25:43  14 01 2022 18:25:43.269:INFO [launcher]: Starting browser Chrome
11:29:19  ✔ Browser application bundle generation complete.
11:35:56  14 01 2022 18:35:43.271:WARN [launcher]: Chrome has not captured in 600000 ms, killing.
11:35:56  14 01 2022 18:35:43.304:INFO [launcher]: Trying to start Chrome again (1/2).
11:35:56  14 01 2022 18:35:43.693:INFO [Chrome Headless 92.0.4515.159 (Linux x86_64)]: Connected on socket SttuODUtr-pfY8a7AAAB with id 39733937
11:36:22  14 01 2022 18:36:21.169:WARN [Chrome Headless 92.0.4515.159 (Linux x86_64)]: Disconnected (0 times) reconnect failed before timeout of 7500ms (ping timeout)

I wonder if bundle sizes and the fact that coverage is enabled (which incurs additional XHR requests) are actually overloading the Karma dev-server.
I did try your config locally, but I was still unable to replicate the issue when I slow down the build to 500_000ms (8.333 minutes), Chrome was not killed.
⠙ Generating browser application bundles (phase: setup)...19 01 2022 09:58:49.444:INFO [karma-server]: Karma v6.3.11 server started at http://localhost:9876/
19 01 2022 09:58:49.444:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
19 01 2022 09:58:49.450:INFO [launcher]: Starting browser Chrome
✔ Browser application bundle generation complete.
19 01 2022 10:07:12.416:INFO [Chrome Headless 97.0.4692.71 (Mac OS 10.15.7)]: Connected on socket viFjYq-s4aaU79DkAAAB with id 96898333
Finished in 0.143 secs / 0.127 secs @ 10:07:12 GMT+0100 (Central European Standard Time)

Forgot to mention this in my previous post, but for Karma, we actually don't use  webpack-dev-server. We use Karma's own dev-server, so the setup is more of Karma invokes Webpack to generate the bundle. Karma waits for Webpack to finish generating the bundle prior to doing any requests, such requests will be redirect to Webpack through an additional middleware.
I do see ways to run Webpack and wait for it to finish prior to invoking Karma, but this would likely require a number of major changes.

Does this happen in local environments or only in CI?, Do you have caching disabled?

Has this been addressed through https://github.com/karma-runner/karma-coverage/issues/434#issuecomment-1030468479?

@alan-agius4 - no I don't believe it is a fix
We finally got some improvement by using the code in this comment:
https://github.com/karma-runner/karma-chrome-launcher/issues/154#issuecomment-986661937
I only had to tweak the code for webpack 5 (afterDone to done for example). Our builds seem more stable, but we just made the change. The work-around causes karma to not start the tests/browser until webpack issues a done compilation callback.

@arobinson, thanks for sharing that. That is interesting approach.
I think we should be able to integrate that in our Karma plugin quite easily.


If a VMLease returns null for its attributes, fenzo silently fails to assign tasks

It'd be great if the (I assume) NPE was logged or bubbled up somewhere.

There must be something else going on here. Null attributes by themselves don't cause trouble. For example, see null attribute usage in unit test here.
Do you have any constraints defined in this setup?

I think that the issue is this line: https://github.com/Netflix/Fenzo/blob/master/fenzo-core/src/main/java/com/netflix/fenzo/TaskScheduler.java#L541
Essentially, I expect that Fenzo will report me errors so that I can handle/debug them, but if it's not an expected type of error, then I have to know to check the log.
What do you think about always rethrowing those errors?

Fenzo 0.8.5 now has support for returning exceptions caught during calls to user provided plugins and aborting the scheduler run. See details here: http://netflix.github.io/Fenzo/fenzo-core/com/netflix/fenzo/TaskScheduler.html#scheduleOnce-java.util.List-java.util.List-

Thank you!
On Mon, Nov 23, 2015 at 8:55 PM spodila<EMAIL_ADDRESS>wrote:

Fenzo 0.8.5 now has support for returning exceptions caught during calls
to user provided plugins and aborting the scheduler run. See details here:
http://netflix.github.io/Fenzo/fenzo-core/com/netflix/fenzo/TaskScheduler.html#scheduleOnce-java.util.List-java.util.List-
—
Reply to this email directly or view it on GitHub
https://github.com/Netflix/Fenzo/issues/61#issuecomment-159128698.


Build breaks if tsickle is removed from dev dependencies

🐞 Bug report
Command (mark with an x)

[ ] new
[x] build
[ ] serve
[ ] test
[ ] e2e
[ ] generate
[ ] add
[ ] update
[ ] lint
[ ] extract-i18n
[ ] run
[ ] config
[ ] help
[ ] version
[ ] doc

Is this a regression?

 Yes, the previous version in which this bug was not present was: ....
New projects are not supposed to have a dependency on tsickle. However, my project fails if I try to remove it.
Description
 A clear and concise description of the problem...
Please follow the ticket over on tsickle's issue page for more details
https://github.com/angular/tsickle/issues/1190

Hi @bjornharvold,

What is the error you are receiving?
Did you run ng update when updating Angular CLI? We do have migrations that remove tsickle and the related settings.
Do you have some left over annotateForClosureCompiler settings in your tsconfig file?

Hi @bjornharvold,

What is the error you are receiving?
Did you run ng update when updating Angular CLI? We do have migrations that remove tsickle and the related settings.
Do you have some left over annotateForClosureCompiler settings in your tsconfig file?

Hi @alan-agius4

The error is on the tsickle issue.
Yes, I do run ng update on every major version update
Yes, I do have this in my libraries:

"angularCompilerOptions": {
    "annotateForClosureCompiler": true,
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true,
    "enableResourceInlining": true
  }

Hi @alan-agius4

The error is on the tsickle issue.
Yes, I do run ng update on every major version update
Yes, I do have this in my libraries:

"angularCompilerOptions": {
    "annotateForClosureCompiler": true,
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true,
    "enableResourceInlining": true
  }

I've updated these settings with the new ones:
"angularCompilerOptions": {
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "enableResourceInlining": true
  },

Re-compiling all 100+ libraries in monorepo now without tsickle dependency to see if that does the trick. Will close this ticket upon success.

I've updated these settings with the new ones:
"angularCompilerOptions": {
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "enableResourceInlining": true
  },

Re-compiling all 100+ libraries in monorepo now without tsickle dependency to see if that does the trick. Will close this ticket upon success.

That did the trick. Thank you for pointing out that compiler option @alan-agius4

That did the trick. Thank you for pointing out that compiler option @alan-agius4


settings_panel_menu.js: Add code to hide Change user info and roles form

This code will hide the Change user info and roles form when navigating
to new tab in case the form is visible.
Before:

After:

@2208Abhinav any news on this investigation?

@timabbott to be honest I just forgot about it. I tried for about a week back then but I wasn't able to find solution other than the one I proposed in my pr. I will try to solve it now :)

Closing as I'm pretty sure this category of issue was fixed with work on our dialog widget framework.


Use --live-restore,stop container can not show exited,after restart docker daemon

Output of docker version:
Client:
 Version:      1.12.0-rc1
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   1f136c1
 Built:
 OS/Arch:      linux/amd64
 Experimental: true

Server:
 Version:      1.12.0-rc1
 API version:  1.24
 Go version:   go1.6.2
 Git commit:   1f136c1
 Built:
 OS/Arch:      linux/amd64
 Experimental: true

Output of docker info:
Containers: 270
 Running: 1
 Paused: 0
 Stopped: 269
Images: 56
Server Version: 1.12.0-rc1
Storage Driver: devicemapper
 Pool Name: docker-253:17-1441795-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 107.4 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 4.847 GB
 Data Space Total: 107.4 GB
 Data Space Available: 47.67 GB
 Metadata Space Used: 26.08 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.121 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /data/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
 Metadata loop file: /data/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-12-01)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null overlay
Swarm: inactive
Runtimes: default
Default Runtime: default
Kernel Version: 3.10.0-229.11.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 15.51 GiB
Name: vpcs-testos-2.vm
ID: ZVXC:P2QU:NF2S:YAGX:Q3IM:7AH7:LGA5:KGMM:57JO:YXD4:E265:MR7O
Docker Root Dir: /data/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: true
Insecure Registries:
 docker-registry.tools.elenet.me:5000
 <IP_ADDRESS>/8

Steps to reproduce the issue:
my docker daemon add OPTIONS='--live-restore'
1.docker run a container(healthcheck status is healthy)
2.systemctl stop docker
3.systemctl start docker
4.docker stop $containerId
Describe the results you received:
docker ps
the container become  no healthcheck
Describe the results you expected:
docker ps
the container become exited

The healthchecks were changed I think to not exit the containers but just generate an event initially, actions on health status will be added later I think. cc @talex5

@justincormack that's correct - we don't automatically terminate containers with failing health checks.
A container that previously had a healthcheck will become "no healthcheck" in the period after you asked it to shut down and before it actually exits. I'd expect it to become "exited" after about 10s (when Docker will kill -9 it).

Also this could be related to an issue with systemd and live restore.  My patch for changing the KillMode in systemd should make it into rc2. I would try that when it is release or you can add KillMode=process to your service file and see if that makes things exit properly after reloading your daemon.

It is released https://github.com/docker/docker/releases/tag/v1.12.0-rc2

LGTM @crosbymichael


ARROW-8147: [C++] Add google-cloud-cpp to ThirdpartyToolchain

I'm hoping to work on parts of the GCS filesystem implementation, and this is a prerequisite.

Running the cmake autoformatter heavily modifies the touched cmake files; should I be doing that?

Running the cmake autoformatter heavily modifies the touched cmake files; should I be doing that?

Maybe you have a different version of that installed and that formats differently? You can also summon the autoformatter with @github-actions<space>autotune on the PR.

I'll take a look! Didn't know I could do that.

@github-actions autotune

@xhochy I can't seem summon the bot. But I read what the action did, and saw that it required a very specific version of the cmake autoformatter, as you suggested. It works now! Thanks for your help!

@xhochy I can't seem to summon the bot. But I read what the action did, and saw that it required a very specific version of the cmake autoformatter, as you suggested. It works now! Thanks for your help!

The bot did run but didn't make any changes to your CMake files: https://github.com/apache/arrow/runs/1450988053?check_suite_focus=true#step:10:11

Oh, I know why! The CI queue was full (my test runs were taking hours to go through). By the time the runner got to my PR (Wed, 25 Nov 2020 02:15:47 GMT), my final commit had gone in.

@github-actions rebase

Hi @josiahyan, apologies for the delay here. Could you please rebase this? Hopefully we can get this reviewed and merged soon after.

Hi @josiahyan, apologies for the delay here. Could you please rebase this? Hopefully we can get this reviewed and merged soon after.

Whoops no problem; I’ll rebase it tonight or over the weekend. Thanks for
picking this up again!
On Fri, Jan 29, 2021 at 12:30 PM Neal Richardson<EMAIL_ADDRESS>wrote:

Hi @josiahyan https://github.com/josiahyan, apologies for the delay
here. Could you please rebase this? Hopefully we can get this reviewed and
merged soon after.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow/pull/8757#issuecomment-769942171, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPH2DGRRPB7VG6QSWOYL4DS4LWCVANCNFSM4UA73NKQ
.

Whoops no problem; I’ll rebase it tonight or over the weekend. Thanks for
picking this up again!
On Fri, Jan 29, 2021 at 12:30 PM Neal Richardson<EMAIL_ADDRESS>wrote:

Hi @josiahyan https://github.com/josiahyan, apologies for the delay
here. Could you please rebase this? Hopefully we can get this reviewed and
merged soon after.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow/pull/8757#issuecomment-769942171, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPH2DGRRPB7VG6QSWOYL4DS4LWCVANCNFSM4UA73NKQ
.

Sorry about the delay! I've rebased the commits and manually merged in the changes made in master.

What's the status of this PR?

What's the status of this PR?

Sorry, but I lost track of following up on this PR! I believed it was ready to merge in Feb, but assumed people had lost interest in pursuing (native) GCS support, or that this change was not quite worth making for now. Is there still a need for this? If so, I can attempt to rebase it again.

What's the status of this PR?

Sorry, but I lost track of following up on this PR! I believed it was ready to merge in Feb, but assumed people had lost interest in pursuing (native) GCS support, or that this change was not quite worth making for now. Is there still a need for this? If so, I can attempt to rebase it again.

I think there's interest (I'm interested, at least). I'd like to see someone more skilled in cmake than I to review and approve: @kou @pitrou @xhochy ?

Could you rebase on the master? Then I'll review this.

Will rebase!
On Sun, Aug 1, 2021 at 1:46 PM Sutou Kouhei @.***>
wrote:

Could you rebase on the master? Then I'll review this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/arrow/pull/8757#issuecomment-890584090, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPH2DGIQYWZJBQFOK4RMNLT2WXCDANCNFSM4UA73NKQ
.

@josiahyan do you think you will have time to rebase?  Otherwise I can see how difficult this might be.

@josiahyan do you think you will have time to rebase? Otherwise I can see how difficult this might be.

Whoops sorry, I lost track of this. I’ll be trying to rebase this - I don’t see any major changes (so far) that should result in conflicts.

I’ve discussed this PR with @coryan , and we think its better to start over, given the need to upgrade dependencies, and handle the Abseil libraries (which I believe, when used with gRPC are causing the build to fail on some platforms) with more scripting. He will be taking over this work.


[STORM-1631] - Storm CGroup bugs 1) when launching workers as the user that submitted the topology 2) when initial cleanup of cgroup fails

It looks good to me, +1

+1

is any one using cgroup to limit the cpu usage? these days i found the system will be halt when the pressure is growing up, and i found that much of the cpu was wasted by the system, above 25%
CentOS 6.5
64 bit
128 G
32 core
31 workers

@caishize too many threads will cause high sys cpu usage. much worse situation, the node will be halt.
I see there are 31 workers in your machine, what's the total thread number? reducing the number of threads should bring a improvement.

i want to know if there is a rule about workers num and threads num. In production, i always set the thread num is 10 times than worker num.  oh, i use storm 0.9.5.

@yegortokmakov in general, for one topology:
i:woker number
worker number < cluster node number
worker/per node
ii:thread number
this depends on your logic. for example, the parallelism of KafkaSpout should be equal to the number of partitions, in order to get a good performance.
btw, I really recommend you to upgrade your storm to 1.0.1.

At yahoo, cgroups are used to limit both memory and cpu of every worker so
that topologies can have more resource isolation
On Saturday, May 21, 2016, Xin Wang<EMAIL_ADDRESS>wrote:

@yegortokmakov https://github.com/yegortokmakov in general, for one
topology:
i:woker number
worker number < cluster node number
worker/per node
ii:thread number
this depends on your logic. for example, the parallelism of KafkaSpout
should be equal to the number of partitions, in order to get a good
performance.
btw, I really recommend you to upgrade your storm to 1.0.1.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/apache/storm/pull/1216#issuecomment-220783029

I’ve found that the system will be halt when there are some workers are reboot frequently, this may be a bug of the OS，and i found this https://bugs.centos.org/view.php?id=7538 may be the reason, i hadn’t  confirm this yet..
Darwin
On May 21, 2016, at 11:25 PM, Boyang Jerry Peng <notifications<EMAIL_ADDRESS>wrote:
At yahoo, cgroups are used to limit both memory and cpu of every worker so
that topologies can have more resource isolation
On Saturday, May 21, 2016, Xin Wang <notifications<EMAIL_ADDRESS>wrote:

@yegortokmakov https://github.com/yegortokmakov in general, for one
topology:
i:woker number
worker number < cluster node number
worker/per node
ii:thread number
this depends on your logic. for example, the parallelism of KafkaSpout
should be equal to the number of partitions, in order to get a good
performance.
btw, I really recommend you to upgrade your storm to 1.0.1.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/apache/storm/pull/1216#issuecomment-220783029

—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHubhttps://github.com/apache/storm/pull/1216#issuecomment-220783660


Cow: Watch vidi-corp.com

Cow requests the watch of the watch_keyword vidi-corp\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

vidi-corp\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Frankenphp is using the wrong php.ini file

The documentation does not explicitly states where the php.ini file in use is located.
If I log into the frankenphp Docker container and echo $PHP_INI_DIR I see /usr/local/etc/php.
But modifications of /usr/local/etc/php/php.ini are not picked by PHP behind Caddy, even though they can be seen by running php -r "phpinfo();" | grep memory.
Then if I run find / -name "php.ini" I see files in
/app/docker/php/php.ini
/app/php.ini

And modifying the /app/php.ini file works as intended.
The Config page in the docs probably needs to say a bit more about that topic.
I would do a PR but not quite sure what to say.

I wouldn't say that it is misleading, as it should, theoretically, be using the php.ini file from $PHP_INI_DIR and more likely a bug or misconfiguration somewhere.
I just pulled dunglas/frankphp:latest, started the container with bash, copied the production php.ini to php.ini, edited $PHP_INI_DIR/php.ini, changed a variable (memory), started frankenphp -c /etc/caddy/Caddyfile start, then curl -k https://localhost and verified my changes were there, and they are.
Can you provide a Dockerfile or some way to reproduce the issue you are seeing? I'm unable to reproduce it using the steps I provided.

Yes indeed the issue was probably misworded.
I managed to make a reproduction there.

Ah, I think the issue is this line: https://github.com/121593/repro-frankenphp-386/blob/57ab0bec39f10ec4cc65c68c9821382396ce3a6b/Dockerfile#L12
RUN sed -i "s/128/512/" /usr/local/etc/php/php.ini

sed runs on the entire line, otherwise it would replace all instances of 128 with 512, which is probably not what you intend by default. This is probably closer to what you want:
RUN sed -i "s/memory_limit = 128M/memory_limit = 512M/" $PHP_INI_DIR/php.ini

Sure this statement has a broad impact and I'd never use it that way in a real life app but it is not relevant to the issue.
Here the reproduction shows that the config file read by SAPI (or whatever is behind Caddy) is different that the one picked up by the CLI ; regardless to the content of this file.

Each SAPI may have it's own php.ini. This is the default in ubuntu installations, if I recall. At least on my machine I have /etc/php/8.3/cli/php.ini and /etc/php/8.3/fpm/php.ini. That's not a bug, but by design.
I looked in $PHP_INI_DIR/php.ini and saw the 512mb limit, and saw it on https://localhost.

I do not have an /app/php.ini
docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED         STATUS                   PORTS                                                              NAMES
da5732d1439c   repro-frankenphp-386-frank   "docker-php-entrypoi…"   3 minutes ago   Up 3 minutes (healthy)   80/tcp, 2019/tcp, 443/udp, <IP_ADDRESS>:443->443/tcp, :::443->443/tcp   repro-frankenphp-386-frank-1

docker compose exec frank bash
root@da5732d1439c:/app# ls
Dockerfile  LICENSE  README.md	bin  composer.json  composer.lock  config  docker-compose.yaml	public	src  symfony.lock  var	vendor

I can't reproduce the issue you are seeing.

Just tried the whole thing again and I am seeing the expected value on localhost.
I don't understand where I mixed up things so I'll just close the issue and reopen it if I understand what is going on.
Thx for the attention tho.

Is it possible that you had another container running on the same port? Docker will sometimes silently continue without letting you know that the ports couldn't be forwarded.


Fix vcs percent leaks

This fixes #1202. At least on next. The original Issue aims at master.

LGTM

Thx @Syphdias


changed chameleon ssd optimizer download link to a stable official link

changed chameleon ssd optimizer download link to a stable official link

LGTM, thanks!


NullPointer in  ClasspathConfig  from  master branch.

The following code calls the super class "assignDefaults()"  prior to creating an "m_properties" object to hold those defaults.  So there is a null pointer exception within the setProperty() method.
assignDefaults();
        try {
            confParser.parse(configReader);
        } catch (ParseException pex) {
            LOG.warn("An error occurred in parsing configuration, fallback on default configuration", sex);
        }
        m_properties = confParser.getProperties();

In general the ConfigurationParse is not setup to be able to take some "default" values as might be assigned by  "assignDefaults()".
So either two Properties need to be merged ( instead of overwritten in "m_properties = confParser.getProperties();")   OR,  the ConfigurationParser should take a default Properties object on it's constructor.

So "Properties" objects have a "defaults" sub Properties object.  Perhaps this could be used to implement.
However, if the value of a property is null, then the default property is used.  I know that setting "PORT" to null is being used to turn off particular listeners.  So if we attempted to use the "defaults" sub Properties object, then we'd need to move away from the null ===  do not listen configuration technique.
This would indicate that perhaps we should NOT use the "defaults"  sub property, and instead do the "merge the properties" way of fixing this.

A third approach is to write the three Configuration classes, so that their local properties object is assigned BEFORE the "parse()"  function is called. e.g.
        ConfigurationParser confParser = new ConfigurationParser();         m_properties = confParser.getProperties();         assignDefaults();
This is a bit convoluted, but involves the least code change, and preserves the notion of null being "turn off"  instead of null being "use the default"

@andsel  happy to submit a PR on this as soon as you indicate the approach you'd like me to take.

The rationale of default properties is "they are properties mandatory to startup". So the flow should be load default properties and then overwrite with the ones rad by the configuration provided by the caller.
If you intend to create a PR please create a unit test to cover the ClasspathConfig construction. I've to admit that this part isn't well designed so in future should be rethinked.

Here is some inspiration for configuration loading refactoring in Moquette.
https://github.com/nemecec/moquette/commit/f7de45894c214f45cc2a410abfdb5672424b9d97
Sorry, no unit tests.
Basic idea was to separate parsing from resource loading, so I could load also ACL and password config files from classpath. I tried to keep things as backwards-compatible as possible. If backwards compatibility is not much of a concern, it could be even prettier.

Included commit from nemecec and that fixes the NPE in ResourceLoaderConfig class


Fix typos

Hey,
This huge PR will fix :

1 typo in docs/data-model.md
3 typos in lib/apis/v3/felixconfig.go
1 typo in lib/backend/compat/compat.go
1 typo in lib/backend/etcd/syncer.go
2 typos in lib/backend/etcdv3/etcdv3.go
1 typo in lib/backend/k8s/k8s_test.go
1 typo in lib/backend/k8s/resources/networkpolicy.go
1 typo in lib/backend/k8s/resources/profile.go
1 typo in lib/backend/k8s/resources/resources.go
1 typo in lib/client/client_test.go
1 typo in lib/errors/errors.go
2 typos in lib/health/health.go
1 typo in lib/ipam/ipam_block_reader_writer.go
4 typos in lib/upgrade/migrator/clients/v1/compat/compat.go
1 typo in lib/upgrade/migrator/migrate.go
1 typo in lib/upgrade/migrator/migrate_test.go

Cheers! :robot:

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


[FeatrueRequest] new switch operator, which different from switchAll

currently we have switchAll operator which implemented by switchMap with the project function as x=>x.
the switchAll operator, would switch to the next observable directly evenif the observable is not emit any value:
observable A: -----a0----a1-----a2-----
observable B:-----------------b0-----b1-----b2-----
switchAll operator
output:-------------a0--------b0-----b1-----b2-----
Note: a1 is not output.
observable A: -----a0----a1-----a2-----
observable B:-----------------b0-----b1-----b2-----
switch operator
output:-------------a0----a1--b0-----b1-----b2-----
Note: a1 is outputed
the difference is switch operator is switched when new observable emit item, while switchAll operator switched when new observable available.
maybe the operator name should be switchIfEmit,

Interesting. So, you're saying that this operator would:

Subscribe to the first observable
Subscribe to every incoming observable, BUT only switch to it if it outputs a value

I'm not sure what the use cases would be here.
For now: I'd suggest implementing this operator in your own library, since it's just a function. If the need comes up frequently in the community, or people file a lot of issues looking to add this operator to the core library, we'll add it to the core library.

You'll have to figure out a lot of semantics about this though, like:

What happens when more than one inner observable arrive, but neither emit values? wait for both, or just the most recent one?
What happens when the outer completes, and the inner completes, but there's another waiting to emit a value?
What happens if the second inner never emits a value, but instead errors while you're waiting for it's first value?

... and so many more questions.

here is my implementation:
import { Observable, Subscription } from 'rxjs';
export const switchIfEmit = () => <T>(source: Observable<Observable<T>>) =>
  new Observable<T>(observer => {
    const subscription = new Subscription();
    let lastInnerObservable: Observable<T>;
    const sourceSubscription = source.subscribe(
      innerObservable => {
        const innerSubscription = innerObservable.subscribe(item => {
          if (lastInnerObservable && lastInnerObservable !== innerObservable) {
            const sourceSubscription = (<any>lastInnerObservable).subscription;
            subscription.remove(sourceSubscription);
            sourceSubscription.unsubscribe();
            (<any>lastInnerObservable).subscription = undefined;
          }
          lastInnerObservable = innerObservable;
          observer.next(item);
        });
        (<any>innerObservable).subscription = innerSubscription;
        subscription.add(innerSubscription);
      },
      err => observer.error(err)
    );
    subscription.add(sourceSubscription);
    return subscription;
  });

the semantics:

it will wait all the inner observables, any one that emit a value will be switch to the outer output.
if another inner observable emmit a value, then the outer would switch to it. the original inner observable would be unsubscribed.
if the outer complete, all the active(emiting or waiting) inner observables would be unsubscribed.
if one inner observable, it will continue waiting other inner observables.
any inner observable error would be tramsmit to the ourter observable.

Cool! I hope you open source it and others find it useful! It's an interesting operator, I hadn't thought of it.  If a lot of people start using this, we'll talk about adding it to core. :)


When swiping bottom sheet in iOS the event not generated

I have a following composable function
@Composable
fun PickFile(
    type: String,
    afterPick: (PlatformFile?) -> Unit
) {
    val launcher = rememberFilePickerLauncher(
        type =
        when (type) {
            SELECT_FILE_CLICKED -> PickerType.Image
            SELECT_VIDEO -> PickerType.Video
            else -> PickerType.File(listOf("pdf"))
        },
        mode = PickerMode.Single,
        title = Strings.getString("pic_a_file")
    ) { file -> afterPick(file) }
    launcher.launch()
}

in my viemodel I check if the file is selected I'm starting to upload it. If the selection dialog is dismissed I clear the state of viewmodel to unblock the selectButton
private fun startFileUpload(platformFile: PlatformFile?) {
    Napier.i(tag = "FileSelect", message = "Starting upload")
    platformFile?.let {
        uploadFile(
            profileRepo = profileRepo,
            scope = scope,
            platformFile = it,
            type = PROCESSING_DOCUMENTS,
        )
    } ?: errorsShown()
}

It works fine in Android. But in iOS if I swipe down file selection dialog insead of pressing Cancel button nothing happens. Event is not generated so the code in viewModel is not called.
Again if I dismiss by pressing Cancel in selection dialog everything works fine.
In Android all ways of dialog dismiss work fine.
The problem exists in both simulator and physical devices on iOS18 and earlier versions.

I also found out that when picking a document, not photo everything works fine.
The problem seems to be in PHPickerViewControllerDelegateProtocol which doesn't have
   override fun documentPickerWasCancelled(controller: UIDocumentPickerViewController) {         onPickerCancelled()     }
as UIDocumentPickerDelegateProtocol does. So it seems to be the problem is in netive iOS component.
Also I googled this problem and found some kind of solution here:
https://forums.developer.apple.com/forums/thread/704315
But I don't understand at all how to implement it as I'm very weak in Swift.

Hi @derynia! Thanks for reporting this issue! I'm going to take a look.

I asked this question on Apple Developers forum and they answered I should use picker.presentationController.delegate
So I took code from you library and modified it this way:
    val pickerResults: List<PHPickerResult> = suspendCoroutine { continuation ->         // Create a picker delegate         val phPickerDelegate = PhPickerDelegate(             onFilesPicked = continuation::resume         )         val phPickerDismissDelegate = PhPickerDismissDelegate(             onFilesPicked = continuation::resume         )
As you see I added
 val phPickerDismissDelegate = PhPickerDismissDelegate(
than I modified this part:
        val controller = PHPickerViewController(configuration = configuration)         controller.delegate = phPickerDelegate         controller.presentationController?.delegate = phPickerDismissDelegate
And also this is the delegate code:
internal class PhPickerDismissDelegate(     private val onFilesPicked: (List<PHPickerResult>) -> Unit ) : NSObject(),     UIAdaptivePresentationControllerDelegateProtocol {         override fun presentationControllerDidDismiss(presentationController: UIPresentationController) {             Napier.i(tag = "Picker worked", message = "Picker dismissed")             onFilesPicked(listOf())         } }
And I had INFO Picker worked - Picker dismissed - text in my log.

Thank you! Your suggestions are very helpful! I'm going to push a fix soon 👌


shape incompatible error

Hi there, I think the packaage is terrific . I have CuDA 11 on my Windows 10 system and recently upgraded to tf 2.5.0
I needed to do this sinc I recently had some 'protobuf ' error message that i couldn't resolve, at least for now that is gone, however now another error pops up :
ValueError: Cannot assign to variable fc_12/kernel:0 due to variable shape (256, 42) and value shape (256, 37) are incompatible
I have tf 2.5.0-dev20201126 and keras 2.3.4. Here is the complete error :

ValueError                                Traceback (most recent call last)
 in
5 # keras-ocr will automatically download pretrained
6 # weights for the detector and recognizer.
----> 7 pipeline = keras_ocr.pipeline.Pipeline()
8
9 # Get a set of three example images
~\Anaconda3\envs\keras_ocr_conda\lib\site-packages\keras_ocr\pipeline.py in init(self, detector, recognizer, scale, max_size)
19             detector = detection.Detector()
20         if recognizer is None:
---> 21             recognizer = recognition.Recognizer()
22         self.scale = scale
23         self.detector = detector
~\Anaconda3\envs\keras_ocr_conda\lib\site-packages\keras_ocr\recognition.py in init(self, alphabet, weights, build_params)
330                     tools.download_and_verify(url=weights_dict['weights']['top']['url'],
331                                               filename=weights_dict['weights']['top']['filename'],
--> 332                                               sha256=weights_dict['weights']['top']['sha256']))
333             else:
334                 print('Provided alphabet does not match pretrained alphabet. '
~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\keras\engine\training.py in load_weights(self, filepath, by_name, skip_mismatch, options)
2278             f, self.layers, skip_mismatch=skip_mismatch)
2279       else:
-> 2280         hdf5_format.load_weights_from_hdf5_group(f, self.layers)
2281
2282   def _updated_config(self):
~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\keras\saving\hdf5_format.py in load_weights_from_hdf5_group(f, layers)
708                        str(len(weight_values)) + ' elements.')
709     weight_value_tuples += zip(symbolic_weights, weight_values)
--> 710   K.batch_set_value(weight_value_tuples)
711
712
~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\util\dispatch.py in wrapper(*args, **kwargs)
204     """Call target, and fall back on dispatchers if there is a TypeError."""
205     try:
--> 206       return target(*args, **kwargs)
207     except (TypeError, ValueError):
208       # Note: convert_to_eager_tensor currently raises a ValueError, not a
~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\keras\backend.py in batch_set_value(tuples)
3811   if ops.executing_eagerly_outside_functions():
3812     for x, value in tuples:
-> 3813       x.assign(np.asarray(value, dtype=dtype(x)))
3814   else:
3815     with get_graph().as_default():
~\AppData\Roaming\Python\Python37\site-packages\tensorflow\python\ops\resource_variable_ops.py in assign(self, value, use_locking, name, read_value)
889             ("Cannot assign to variable%s due to variable shape %s and value "
890              "shape %s are incompatible") %
--> 891             (tensor_name, self._shape, value_tensor.shape))
892       assign_op = gen_resource_variable_ops.assign_variable_op(
893           self.handle, value_tensor, name=name)
ValueError: Cannot assign to variable fc_12/kernel:0 due to variable shape (256, 42) and value shape (256, 37) are incompatible

this occurs on the same code from the Git website:

import matplotlib.pyplot as plt
import keras_ocr
keras-ocr will automatically download pretrained
weights for the detector and recognizer.
pipeline = keras_ocr.pipeline.Pipeline()
Get a set of three example images
images = [
keras_ocr.tools.read(url) for url in [
'https://upload.wikimedia.org/wikipedia/commons/b/bd/Army_Reserves_Recruitment_Banner_MOD_45156284.jpg',
'https://upload.wikimedia.org/wikipedia/commons/e/e8/FseeG2QeLXo.jpg',
'https://upload.wikimedia.org/wikipedia/commons/b/b4/EUBanana-500x112.jpg'
]
]
Each list of predictions in prediction_groups is a list of
(word, box) tuples.
prediction_groups = pipeline.recognize(images)
Plot the predictions
fig, axs = plt.subplots(nrows=len(images), figsize=(20, 20))
for ax, image, predictions in zip(axs, images, prediction_groups):
keras_ocr.tools.drawAnnotations(image=image, predictions=predictions, ax=ax)

Thanks and happy holidays!
Cheers,E

Stupid mistake on my behalf, I created two environments and tried to change the alphabet in one , thought i switched but didn't , apologies


testing image inclusion in reports

set up a report that includes images from inside the application, from the static resources of the application, and from an external source
added a unit test to validate that the HTML export includes img tags with not-empty src attributes
added endpoints for PDF and XLSX output
added an application-wide HTML file resource handler to deal with storing the images in a temp folder
setup and tear down the temp folder and any files in it with the application lifecycle
added a REST endpoint to serve images from the temp directory for HTML reports

Signed-off-by:Nathan Erwin<EMAIL_ADDRESS>

@melloware marking this up as ready for review, but the native build is failing because...  I didn't do something, but not sure what.

Working on fixing the native image now!


Fix invalid check in gdip_metafile_Arc

Extracted from https://github.com/mono/libgdiplus/pull/28

@hughbe,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

@hughbe re #28, would you be interested in taking a pass over it and extracting more valuable pieces?


Change order  cell / population phenotype sections

I think I preferred seeing the population phenotype section before the cell phenotype section.
If the gene is well curated then the population phenotype section is more likely to contain fewer and more 'general' annotations e.g. cdc2
Or maybe it's just because I'm used to it...thoughts?

I prefer population first too.

no preference, so no objection to switching back

I've swapped the section order.  As usual, you'll need to reload to see the change.


Refresh 'center' coordinates for nipple

Hiya. I'm working with nipplejs and have a function that builds nipples from a configuration json file. My web app uses shapeshift to make things draggable. So, essentially all my of modules (including my nipples) get built in a div like this:

And then the shapeshift function is called to sort everything to look like this:

However, there's one small issue. Since the nipples first rendered as in the first photo, the createNipple function set the 'center' (I guess x,y position) there, so when shapeshift moves everything around, the nipples still think the 'center' x,y positions are originally where they were created.
I made a fix for this by just creating the container div's for the nipples, calling shapeshift, and then having the nipples be created after the fact so that they work properly (as in the second photo). I was wondering if there was a way to update the x, y position for a certain nipple, or all nipples, whenever the location of their div moves around?
Let me know if you want to see my code or if I need to explain things better. Thanks!
Gonzo

One solution I was thinking of was rebuilding the nipples everytime the page moves as a result of shapeshift. But am having a hard time implementing the .destroy() function, unsure whether I should be calling nipplejs.destroy('#NippleID');. Any tips? @yoannmoinet

Hi,
see if you could do something similar to the built-in resize event handler, here.

Keep me posted if you have any issue.
Cheers.

Hello again,
Storing nipple objects in an array and just iterating the .destroy() function did the trick. Thanks for the help!
Daniel


getMockHandlerInput and contracts strange behaviour with the anyOf option

Describe the bug
I have a contract that use the anyOf option in the query strings parameters schema, and the getMockHandlerInput faker algorithm works differently depending on how i call the query strings. It looks like the schema filler / faker works on the order of the contracts that i used in the queryStringParametersSchema.
If i use the schema i defined first (in this case byNumberSchema), the faker will fill up the second schema as well. If i use the second schema (byStationSchema) it works as intended.
The expected behaviour should be (at least for me): The faker won't fill up the other schema in the anyOf option.
Reproduction
Contract schema
const byNumberSchema = {
  type: 'object',
  properties: {
    carNumber: { type: 'number' },
    trainCode: { type: 'string' },
  },
  required: ['carNumber', 'trainCode'],
} as const;

const byStationSchema = {
  type: 'object',
  properties: {
    departureStation: { type: 'string' },
    arrivalStation: { type: 'string' },
  },
  required: ['departureStation', 'arrivalStation'],
} as const;

const queryStrParamSchema = {
  type: 'object',
  anyOf: [byNumberSchema, byStationSchema],
} as const;

export const getTrainStatusContract = new ApiGatewayContract({
  id: 'get-train-status',
  path: '/trainStatus',
  method: 'GET',
  integrationType: 'restApi',
  outputSchemas: {
    [HttpStatusCodes.OK]: {},
  },
  queryStringParametersSchema: queryStrParamSchema,
});

Test cases

case:
I called the getMockHandlerInput with the carNumber and trainCode params

 const event = {
      queryStringParameters: { carNumber: 5, trainCode: 'NK' },
    };
    const eventData = getMockHandlerInput(getTrainStatusContract, event);

And the result is
EventData [
  {
    pathParameters: undefined,
    queryStringParameters: {
      departureStation: 'consectetur Lorem ut voluptate',
      arrivalStation: 'cupidatat consectetur ea occaecat',
      carNumber: 5,
      trainCode: 'NK5W'
    },
    headers: undefined,
    body: undefined,
    requestContext: {
      accountId: '',
      apiId: '',
      authorizer: undefined,
      protocol: '',
      httpMethod: '',
      identity: [Object],
      path: '',
      stage: '',
      requestId: '',
      requestTimeEpoch: 0,
      resourceId: '',
      resourcePath: ''
    }
  },
  {
    callbackWaitsForEmptyEventLoop: false,
    functionName: '',
    functionVersion: '',
    invokedFunctionArn: '',
    memoryLimitInMB: '',
    awsRequestId: '',
    logGroupName: '',
    logStreamName: ''
  },
  [Function (anonymous)]
]

case:
I called the getMockHandlerInput with the departureStation and arrivalStation params

 const event = {
      queryStringParameters: { departureStation: 'BPK', arrivalStation: 'NK' },
    };
    const eventData = getMockHandlerInput(getTrainStatusContract, event);

The result:
EventData [
  {
    pathParameters: undefined,
    queryStringParameters: { departureStation: 'BPK', arrivalStation: 'NK' },
    headers: undefined,
    body: undefined,
    requestContext: {
      accountId: '',
      apiId: '',
      authorizer: undefined,
      protocol: '',
      httpMethod: '',
      identity: [Object],
      path: '',
      stage: '',
      requestId: '',
      requestTimeEpoch: 0,
      resourceId: '',
      resourcePath: ''
    }
  },
  {
    callbackWaitsForEmptyEventLoop: false,
    functionName: '',
    functionVersion: '',
    invokedFunctionArn: '',
    memoryLimitInMB: '',
    awsRequestId: '',
    logGroupName: '',
    logStreamName: ''
  },
  [Function (anonymous)]
]

System Info

  System:
    OS: macOS 13.2.1
    CPU: (8) arm64 Apple M1
    Memory: 98.30 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v18.12.1/bin/yarn
    npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm
  Browsers:
    Chrome: 112.0.5615.137
    Firefox: 112.0.2
    Safari: 16.3
  npmPackages:
    @swarmion/serverless-contracts: 0.28.1 => 0.28.1
    @swarmion/serverless-helpers: 0.28.1 => 0.28.1

Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] The provided reproduction is a minimal reproducible example of the bug.

@adriencaccia I updated the description with the Swarmion package version.

The first thing I see is that you are using a number as a query string parameter
API gateway and Lambda only supports string parameters, as you can see in the aws-lambda source code:
export interface APIGatewayProxyEventQueryStringParameters {
    [name: string]: string | undefined;
}

This is why we implemented this type for the JSON Schema of query string parameters:
interface ConstrainedJSONSchemaProperty {
  readonly type?: 'string';
  readonly const?: string;
  readonly enum?: readonly string[];
  readonly [key: string]: unknown;
}

/**
 * A simplified version of the JSONSchema definition in order to constrain some definitions
 * to only contain string attributes. This is especially useful for path parameters, headers
 * and query parameters that will be stringified anyway.
 */
export interface ConstrainedJSONSchema {
  readonly type: 'object';
  readonly additionalProperties?: boolean;
  readonly properties?: {
    readonly [key: string]: ConstrainedJSONSchemaProperty;
  };
  readonly required?: readonly string[];
  readonly [key: string]: unknown;
}

My first question is: don't you have a type error in your schema definition ?
Anyway, from this code, we did not think about anyOf schemas for queryStringParametersSchema
We should look into it because they are valid (if any of the schema listed in the anyOf is valid)
Secondly, for your specific problem on the getMockHandlerInput, I think that this is an expected behaviour of the JSON Schema specs: https://json-schema.org/understanding-json-schema/reference/combining.html#anyof
You could try with oneOf keyword and it may fix your problem. I would love to have your feedback on this point.

For the first one. I use string as a type in my query string parameter schema, i just mistyped in the example, sorry for that.
The second: I tried the oneOf keyword, but it looks like the behaviour of getMockHandlerInput is the same.

OK so maybe this is a,bug from the dependency we use for this matter, I will check it

OK I just investigated this issue
This might not be a bug
Indeed, for this schema:
const byNumberSchema = {
  type: 'object',
  properties: {
    carNumber: { type: 'string' },
    trainCode: { type: 'string' },
  },
  required: ['carNumber', 'trainCode'],
} as const;

const byStationSchema = {
  type: 'object',
  properties: {
    departureStation: { type: 'string' },
    arrivalStation: { type: 'string' },
  },
  required: ['departureStation', 'arrivalStation'],
} as const;

const queryStrParamSchema = {
  type: 'object',
  oneOf: [byNumberSchema, byStationSchema],
} as const;

This value is valid according to AJV:
queryStringParameters: {
  departureStation: 'consectetur Lorem ut voluptate',
  arrivalStation: 'cupidatat consectetur ea occaecat',
  carNumber: '5',
  trainCode: 'NK5W'
}

Indeed, because there is no additionalProperties: false in the byStationSchemaand thebyNumberSchema`, they both accept the keys from the other schema, and the lib we use for random generation recognize that and generate them because it is valid for it.
With oneOf and additionalProperties: false, I only had generated values with no intersection between the 2 schemas.
Could you tell me if it also fixes it for you ?
On another hand, I will push a little fix for the typing of the queryStringParamters schema, as it was too permissive.

I believe it is ok to use anyOf with additionalProperties: false. We don't necessarily want overlapping subschemas to fail
have you tried @Sc0ra ?

I am not sure about the combination of anyOf with additionalProperties: false regarding JSON Schema spec, but I could work indeed

Hello @itslorant
Just to keep you informed, there indeed is a problem with the dependency which generates random data from json schemas
We are going to open an issue on their repository, and maybe try to implement the fix as it is an open source project
We'll keep you informed on our advancement as soon as possible !

So we investigated a bit and indeed it is a problem from our tier lib
You can see in this screenshot:

That the lib generate a c and d key in the object while they should not be there.
Indeed, the generated value does not match against the schema when we test it with Ajv.
We opened an issue on the repository: https://github.com/json-schema-faker/json-schema-faker/issues/772
For now, what you could do is:

Define your schema with anyOf
Both subschemas should be defined with their keys but with additionalProperties: true
Explicitly set the keys to undefined in the subschema you don't want to test


IWTSVirtualChannelManager.CreateListener expects a string of type &u8, which might be a regression

#1939 changed IWTSVirtualChannelManager.CreateListener to take a &u8 instead of a *const u8. I was able to get a const u8 by simply calling as_ptr() on a null terminated string, but obviously that does no longer work. I can prepend & and that works, but it is not ideal. &u8 would suggest a reference to a single u8 value rather than to a null terminated string.
Originally posted by @leonardder in https://github.com/microsoft/windows-rs/issues/1939#issuecomment-1228746322

I took a look at the definition in the Windows SDK and it appears this really should just be a const PSTR in metadata. I'll transfer this to the win32 metadata repo for resolution.


Feature Request - Delete clip option

Would it be possible to have a delete clip option for the playback folder. Some people may have a small sd card installed and need the space in the field.
Maybe a double click of the ok button whilst the clip is selected to delete, then a further double click to confirm deletion? (A pop up or text line would be needed saying please double click to confirm, or single click to abort for example).

I'm not an experienced programmer and certainly not in C, but I am enthusiastic to learn :)
RIGHT_BUTTON_PRESS (for long click) was already implemented, I just added a function to delete the selected clip.
I will improve this with the following ideas:

add double click
delete confirmation
option to delete all clips at once

The files are based on the repo from yesterday with the option to delete clips by long-pressing the right button.
HDZGOGGLE.zip

I'm not an experienced programmer and certainly not in C, but I am enthusiastic to learn :)
RIGHT_BUTTON_PRESS (for long click) was already implemented, I just added a function to delete the selected clip.
I will improve this with the following ideas:

add double click
delete confirmation
option to delete all clips at once

The files are based on the repo from yesterday with the option to delete clips by long-pressing the right button. HDZGOGGLE.zip

Thanks for trying to contribute, please try to teach yourself how to submit a pull request.
Testing and distributing binaries is best taken care off once that is in place.


So my problem is that after I restart my pc taskbarx wont work properly even if I disable it in task scheduler and open it manually. The only way I can make it work again is by pressing TaskbarX configurator and doing all the configurations again and reopening taskbarx.

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. Windows 10]
Version [e.g. 1909]

Additional context
Add any other context about the problem here.

Hmm, this problem happens to me too.
So, it happens whenever I shut my laptop down or restart it.
Whenever I boot up my laptop again, TaskbarX will not start unless I click the TaskbarX Configurator. It used to work before, but now it does not.
I have tried uninstalling and reinstallongTaskbarX, yet it does not work.
I put the task schedule to 20 seconds instead of 15, but it still does not work.
I am running Windows 10 Version 1909 on a HP Pavilion G4.
Please fix this bug/issue soon, I am tired of starting TaskbarX manually.

Hmm, this problem happens to me too.
So, it happens whenever I shut my laptop down or restart it.
Whenever I boot up my laptop again, TaskbarX will not start unless I click the TaskbarX Configurator. It used to work before, but now it does not.
I have tried uninstalling and reinstallongTaskbarX, yet it does not work.
I put the task schedule to 20 seconds instead of 15, but it still does not work.
I am running Windows 10 Version 1909 on a HP Pavilion G4.
Please fix this bug/issue soon, I am tired of starting TaskbarX manually.

The only way TaskbarX won't run is because the delay is too short or some Antivirus software blocks the taskschedule.
in most cases (99%) a 6 second delay is fine.

The only way TaskbarX won't run is because the delay is too short or some Antivirus software blocks the taskschedule.
in most cases (99%) a 6 second delay is fine.

The only way TaskbarX won't run is because the delay is too short or some Antivirus software blocks the taskschedule.
in most cases (99%) a 6 second delay is fine.

I don't have any antivirus installed on my PC. Anyway, The TaskbarX app won't run on startup (maybe because my PC is old...) so I just installed the Rainmeter skin. It works perfectly.
Anyway, keep up the great work! I love TaskbarX so much.

The only way TaskbarX won't run is because the delay is too short or some Antivirus software blocks the taskschedule.
in most cases (99%) a 6 second delay is fine.

I don't have any antivirus installed on my PC. Anyway, The TaskbarX app won't run on startup (maybe because my PC is old...) so I just installed the Rainmeter skin. It works perfectly.
Anyway, keep up the great work! I love TaskbarX so much.

To be able to focus on major/current bugs I had to close all issues. The issues section has gotten very messy to a point that I couldn't follow it anymore. Most issues are duplicates, very old or are already fixed/solved. Feel free to reopen this issue if you still have this issue on the latest version of TaskbarX to get my attention. All feature requests have been put in a list here: 💡| Feature requests #870
I hope you understand ❤


Handled bkcharts compatibility

In bokeh 0.12.6 bokeh charts will move into their own repository. For the meantime we still depend on their box and whisker plot, aiming to replace it with our own implementation by holoviews 2.0. Since bokeh 0.12.6 will still require bkcharts this will buy us a bit more time. I did some extra refactoring creating a compute_plot_size utility so that hv.plotting.bokeh.renderer doesn't have to import various bokeh models and handle the conditional Chart import.

Splitting out bkcharts.py now (with the aim of removing it later one) makes sense as does splitting out a compute_plot_size utility. Happy to merge if you think it is ready.

Ready to merge.


Adding repo fails if no .forrest/config.ymlfile exists

This can happen on a new installation.

Fixed.


Clone the repo for a quickstart?

Do I need to clone this repo if I want to have the initial look-and-feel of the dashboard? And if yes, in which project do I need to add my pages and controllers?

You could install the server template at: https://github.com/sjefvanleeuwen/blazor-adminlte/tree/master/src/Templates
I will update the templates soon to also contain starters for WAM.

You could install the server template at: https://github.com/sjefvanleeuwen/blazor-adminlte/tree/master/src/Templates
I will update the templates soon to also contain starters for WAM.


CLI code base

Tasks Completed

Parse input files
Extract audio async from all the files
Get track status from VLC and issue commands to VLC
Code to communicate with the server has been created however it has not yet been integrated in main.py since server is not complete. This was tested using a dummy server and dummy functions have been created in main.py to fullfil the need.

TODO

Some code in server_comm.py will have to be changed as per the requirements of the server side code.
Functionality for changing items in playlists and our code needs to respond to that.
File upload should be done in the background and only when it is complete we should start the playback

I have put in PR to your fork improving some code fixes.
Please pay heed to those next time by running tests locally too.
Also, parse_logs is too complex according to the check, you will have to split it into sub-functions.

Cool guys, I will check this out and merge it.

@ankurshaswat are you planning to squash and merge all these commits?

No
Most of these look cool.
Few of them could be squashed using cli and pushed.

@ankurshaswat haan i would prefer if merge commits naa ho in mein. git history ajeeb ho jaegi