[Feature] - Raise Exception on failing pulse replacement

When performing pulse replacement, this is according to the logged messages of L1Q, not possible:
Pulse replacement on pulses that allow compression not allowed.
This notification is only logged, but not actually raised. As this behavior will lead to wrong experiments this case should raise a real exception in Python.
L1Q: 2.17

Hi @GlaserN , thanks for reporting, this feature will be deployed with the next release

Closing this ticket, please let us know if any issues appear with the feature


Copy + Paste automatically open file in new tab

VS Code Version: 1.53.2 (user setup)
Commit: 622cb03f7e070a9670c94bae1a45d78d7181fbd4
Date: 2021-02-11T11:48:04.245Z
Electron: 11.2.1
Chrome: 87.0.4280.141
Node.js: 12.18.3
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041

OS Version: Windows 10 Pro 2004

Steps to Reproduce:

Select files in the folder
Ctrl + C to copy the files
Open another folder
Ctrl + V to paste the files
Files open in new tabs

Expected:
Files were just copied to the folder and did not open in new tabs.

Another topic has already been opened on this issue. The last message says that the files are no longer opened after copying, and the issue is already closed.
But the problem still exists. Files continue to open in new tabs after copying. We checked with friends on several computers with Windows 10 and Mac OS.
Maybe I was looking crookedly, but I could not find where to disable this function. Can anyone please help?

Does this issue occur when all extensions are disabled?: Yes

I have changed it that we no longer open files when they are pasted.
Let's see if somebody will complain since we actually behaved like this for ages. But I do think that the new behaviour is nicer.
fyi @bpasero

After recieveing negative feedback from users regarding this change I had to revert it.
More about the feedback can be found here https://github.com/microsoft/vscode/issues/120882
Reopening this as a feature request, and if enough users are interested I will add a setting.


fix: update vis-data; fixes #2

Oh, my approval doesn't matter here. Sorry about the noise.

Oh, my approval doesn't matter here.

Your opinion DOES matter, also here! :-)
Feel free to open an issue because of the missing package-lcok.json. I also think it should be removed from .gitignore.

#lol
duplicate of #6


Remove dart:js from dart2wasm

This library was added to support allowInterop. All of the methods throw and importing dart:js returns a static error. However, doing conditional imports e.g. if (dart.library.js) succeeds in dart2wasm, because the library still exists in libraries.json. Since allowInterop is now no longer defined in dart:js, we should just remove this library altogether from the platform.

/cc @osa1 Could we disallow importing dart:js just like we (after cl/368343) disallow importing dart:ffi (until we remove dart:js entirely)?

There's already a static error we've added to disallow importing dart:js in dart2wasm: https://github.com/dart-lang/sdk/blob/2250404330cb0483f7650fee55b95c8a29030616/pkg/_js_interop_checks/lib/js_interop_checks.dart#L541.

Do we need to make any changes in Flutter for this? I've created an SDK CL to remove dart:js from the platform: https://dart-review.googlesource.com/c/sdk/+/368642.

Do we need to make any changes in Flutter for this? I've created an SDK CL to remove dart:js from the platform: https://dart-review.googlesource.com/c/sdk/+/368642.

Maybe this issue also includes dart:js_util (which we currently use internally in the implementation of dart:js_interop)

I don't think Flutter uses dart:js anywhere. I'm not sure why your CL results in package:js complaining about exporting dart:_js_annotations now. That should be tangential but I'll have to take a deeper look.

Maybe this issue also includes dart:js_util (which we currently use internally in the implementation of dart:js_interop)

There are a few migrations that need to happen in Flutter and elsewhere (as well as migrating our own implementation of dart:js_interop like you note) before package:js and dart:js_util can be removed from dart2wasm. I'd expect it to be harder than removing dart:js.

@sigmundch I don't remember what the problem was. I think I was busy with other things and didn't want to spent too much time on this at the time and stopped after seeing the test failures.

Some Dart programs rely on detecting the compiler in conditional imports (to e.g. switch implementations depending on whether we have 64bit ints).
Dropping dart:js support from dart2wasm gives us a way to uniquely identify DDC and dart2js by checking for dart.library.js, which is great.
However, the 3.5 release announcement also described plans to eventually discontinue all of the SDK web bindings (including dart:js) in favor of package:web and dart:js_interop. I'm worried that this will bring back the problem of not being able to identify dart2wasm in conditional imports - will this be considered or is there a proper way to set up conditional imports now that avoids this future problem?

Some Dart programs rely on detecting the compiler in conditional imports (to e.g. switch implementations depending on whether we have 64bit ints).
Dropping dart:js support from dart2wasm gives us a way to uniquely identify DDC and dart2js by checking for dart.library.js, which is great.
However, the 3.5 release announcement also described plans to eventually discontinue all of the legacy SDK web bindings (including dart:js) in favor of package:web and dart:js_interop. I'm worried that this will bring back the problem of not being able to identify dart2wasm in conditional imports - will this be considered or is there a proper way to set up conditional imports now that avoids this future problem?

/cc @dart-lang/language-team Maybe it's time to allow more than dart.library.* in conditional imports ( https://github.com/dart-lang/sdk/issues/54785)?

Good observation @simolus3, indeed!
@mkustermann - I agree, I made a similar suggestion in https://github.com/dart-lang/crypto/issues/180#issuecomment-2289802897 :smile: - We need to start using tests that directly correspond to what developers want to know. For example, if you want to condition on a platform, then use a variable that describes the platform, like dart.tool.dart2wasm, rather than an indirect observation, like whether a library is available.

IIRC the bazel support is implemented as a fixed list of platforms and what variables they correspond to, so adding variables like dart.tool.dart2wasm might be aligned. Whatever we do with configurable imports we should plan to get input about the bazel implementation.


[retirement] PDF receipt not rendering properly

As reported by Dionysus, the PDF receipt download is not rendering properly.

Can use this as an example: https://www.klimadao.finance/retirements/brice.klima/8
Also include an actual PDF.
retirement_8_0xea4d28f8218f44c84c8d7cbae5deac41acf66ced.pdf

#803 here is where I did some experimentation (unsuccessful)

@0xAeterno @Atmosfearful this appears to be resolved. Is the pdf page now using the new code or did we uncover why the production version of the pdf started working again pre-merge of this fix?

@jabby09

@0xAeterno @Atmosfearful this appears to be resolved. Is the pdf page now using the new code or did we uncover why the production version of the pdf started working again pre-merge of this fix?

I think how the certificates resolved itself is going to remain a mystery @jabby09. We may have updated some dependancy or maybe vercel updated fixed something in their deployment environments 🤷♂.
The PR for server rendering certificates via an api is still up (https://github.com/KlimaDAO/klimadao/pull/822)

@ShimonD-KlimaDAO did you have a chance to QA the PR #822?
 Tested in Chrome, FF, and Safari (I don't have Edge). Also worked well on my iPhone.
A nit pick on long project names, they are not wrapping and getting cut off but probably not a high priority (example)
Thumbs up from me to release to production.

@ShimonD-KlimaDAO see above, anything you want to add or are we good to release this?

@Atmosfearful this one is good to go to production

This looks good. Closing.


[EventRequest] Codeunit 1535 Approvals Mgmt. - Approval Administrators

In #2605 you added a subscriber. This was introduced in BC14, however missing in BC16. Please introduce this subscriber again in BC16. Please note ApprovalEntry is to be added as paramter to function CheckUserAsApprovalAdministrator.
LOCAL PROCEDURE CheckUserAsApprovalAdministrator@116(ApprovalEntry@1002 : Record 454);
VAR
  UserSetup@1000 : Record 91;
  IsHandled@1001 : Boolean;
BEGIN
  // --> START  (BC14 implementation)
  IsHandled := FALSE;
  OnBeforeCheckUserAsApprovalAdministrator(ApprovalEntry, VAR IsHandled);
  IF IsHandled THEN
    EXIT;
  // --> END (BC14 implementation)

  UserSetup.GET(USERID);
  UserSetup.TESTFIELD("Approval Administrator");
END;

Many thanks.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Hello ,
One of our customization extension is also using this event, it would be nice if we would not have to wait till next major release. We have upgraded that customer to BC16 but they will not be able to use that customization because of the missing events.
Thank you.

@pranav4186
The event is already available in the daily build, so it will be released next cummulative update. You dont have to wait for BC17.


Change Arduino Firmware Instructions Link

Linked to farmbot-arduino-firmware instead of farmbot-serial.

Thanks for the PR @gabrielburnworth!


Added service deployment to OpenShift

This is based on the template, but instead of creating templates to be used as "instant app", this actually creates the service. It ships with a default fixed admin and password, not a randomly generated password. We might either not specify the password, and let our wrapper.sh create and print it to the console (and add instructions on how to find it), or we make it consistent with the other services (like Jenkins). For now, I've chosen the "consistent" path.

@objectiser , this goes together with the MSA changes.

@jpkrohling Looks reasonable to me, but would it be possible to get someone from cloud enablement or openshift teams to review/advise?

@goldmann , would it be possible to review or assign someone to review this? Also, we talked on IRC some time ago about the most appropriate location for such files, and I just wanted to confirm that this is still the case :)

@jpkrohling Thanks!


Tes-compliance test failure -   TES api not returning GET tasks as tests expect

Describe the bug
This bug is related to tes passing tes compliance tests defined in the following repo: https://github.com/elixir-cloud-aai/openapi-test-runner that checks to see if TES meets the G4GH TES API specification. The test suite is run as part of the tes release integration test in ADO, it is run for every release so you can always go see its results. As of today's report the following test is failing:
There are 3 different tests that are failing but it seems that they may all be failing for the same reason. It seems that the TES api doesnt process query_parameters  that are meant to filter what the GET tasks api returns. Below are the examples of the failing tests as well as link to the actual tests and what calls they are making.
https://github.com/elixir-cloud-aai/openapi-test-runner/blob/dev/tests/list_tasks_page_token.yml
"test_name": "list_tasks",
2023-10-23T21:40:37.7197333Z                     "test_description": "Store the next_page_token",
2023-10-23T21:40:37.7201174Z                     "cases": [
2023-10-23T21:40:37.7201419Z                         {
2023-10-23T21:40:37.7201685Z                             "case_name": "status_code",
2023-10-23T21:40:37.7202157Z                             "case_description": "Check if response status code is 200",
2023-10-23T21:40:37.7202616Z                             "log_messages": [
2023-10-23T21:40:37.7202966Z                                 "No logs for success"
2023-10-23T21:40:37.7203298Z                             ],
2023-10-23T21:40:37.7203682Z                             "start_time": "2023-10-23T21:38:44Z",
2023-10-23T21:40:37.7204180Z                             "end_time": "2023-10-23T21:38:44Z",
2023-10-23T21:40:37.7204562Z                             "status": "PASS",
2023-10-23T21:40:37.7205880Z                             "message": "GET /tasks Successful Response status code"
2023-10-23T21:40:37.7206392Z                         },
2023-10-23T21:40:37.7206622Z                         {
2023-10-23T21:40:37.7207095Z                             "case_name": "response_schema_validation",
2023-10-23T21:40:37.7207903Z                             "case_description": "Check if response matches the model schema",
2023-10-23T21:40:37.7208399Z                             "log_messages": [
2023-10-23T21:40:37.7208746Z                                 "No logs for success"
2023-10-23T21:40:37.7209077Z                             ],
2023-10-23T21:40:37.7209520Z                             "start_time": "2023-10-23T21:38:44Z",
2023-10-23T21:40:37.7210188Z                             "end_time": "2023-10-23T21:38:44Z",
2023-10-23T21:40:37.7210825Z                             "status": "PASS",
2023-10-23T21:40:37.7211294Z                             "message": "Response Schema validation successful for GET /tasks"
2023-10-23T21:40:37.7211751Z                         },
2023-10-23T21:40:37.7212143Z                         {
2023-10-23T21:40:37.7212412Z                             "case_name": "Filter-1",
2023-10-23T21:40:37.7212946Z                             "case_description": "Validate the response against filter-1",
2023-10-23T21:40:37.7213417Z                             "log_messages": [
2023-10-23T21:40:37.7213728Z                                 ""
2023-10-23T21:40:37.7214001Z                             ],
2023-10-23T21:40:37.7214402Z                             "start_time": "2023-10-23T21:38:44Z",
2023-10-23T21:40:37.7214901Z                             "end_time": "2023-10-23T21:38:44Z",
2023-10-23T21:40:37.7215285Z                             "status": "FAIL",
2023-10-23T21:40:37.7215737Z                             "message": "Filter-1 failed for GET /tasks"
2023-10-23T21:40:37.7216268Z                         }
76869Z             "phase_name": "tests/filter_task_by_name.yml", https://github.com/elixir-cloud-aai/openapi-test-runner/blob/dev/tests/filter_task_by_name.yml
2023-10-23T21:40:37.7277382Z             "phase_description": "Job to test the filter task by name feature",
               "test_name": "list_tasks",

2023-10-23T21:40:37.7304861Z                     "test_description": "Retrieve the list of tasks tracked by the TES server",
2023-10-23T21:40:37.7305493Z                     "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7305967Z                     "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7306329Z                     "status": "FAIL",
2023-10-23T21:40:37.7306621Z                     "summary": {
2023-10-23T21:40:37.7306894Z                         "unknown": 0,
2023-10-23T21:40:37.7307185Z                         "passed": 2,
2023-10-23T21:40:37.7307472Z                         "warned": 0,
2023-10-23T21:40:37.7307769Z                         "failed": 1,
2023-10-23T21:40:37.7308129Z                         "skipped": 0
2023-10-23T21:40:37.7308408Z                     },
2023-10-23T21:40:37.7308688Z                     "message": "",
2023-10-23T21:40:37.7308960Z                     "cases": [
2023-10-23T21:40:37.7309208Z                         {
2023-10-23T21:40:37.7309475Z                             "case_name": "status_code",
2023-10-23T21:40:37.7309932Z                             "case_description": "Check if response status code is 200",
2023-10-23T21:40:37.7310389Z                             "log_messages": [
2023-10-23T21:40:37.7310752Z                                 "No logs for success"
2023-10-23T21:40:37.7311080Z                             ],
2023-10-23T21:40:37.7311467Z                             "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7311964Z                             "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7312349Z                             "status": "PASS",
2023-10-23T21:40:37.7312759Z                             "message": "GET /tasks Successful Response status code"
2023-10-23T21:40:37.7313175Z                         },
2023-10-23T21:40:37.7313404Z                         {
2023-10-23T21:40:37.7313703Z                             "case_name": "response_schema_validation",
2023-10-23T21:40:37.7314216Z                             "case_description": "Check if response matches the model schema",
2023-10-23T21:40:37.7314810Z                             "log_messages": [
2023-10-23T21:40:37.7315163Z                                 "No logs for success"
2023-10-23T21:40:37.7315494Z                             ],
2023-10-23T21:40:37.7315880Z                             "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7316381Z                             "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7316762Z                             "status": "PASS",
2023-10-23T21:40:37.7317656Z                             "message": "Response Schema validation successful for GET /tasks"
2023-10-23T21:40:37.7318227Z                         },
2023-10-23T21:40:37.7318505Z                         {
2023-10-23T21:40:37.7318831Z                             "case_name": "Filter-1",
2023-10-23T21:40:37.7319407Z                             "case_description": "Validate the response against filter-1",
2023-10-23T21:40:37.7319989Z                             "log_messages": [
2023-10-23T21:40:37.7320372Z                                 ""
2023-10-23T21:40:37.7320695Z                             ],
2023-10-23T21:40:37.7321169Z                             "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7321788Z                             "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7322260Z                             "status": "FAIL",
2023-10-23T21:40:37.7322814Z                             "message": "Filter-1 failed for GET /tasks"
2023-10-23T21:40:37.7323264Z                         }
2023-10-23T21:40:37.7323535Z                     ]
2023-10-23T21:40:37.7323783Z                 }
2023-10-23T21:40:37.7324014Z             ]
https://github.com/elixir-cloud-aai/openapi-test-runner/blob/dev/tests/list_tasks_page_size.yml
2023-10-23T21:40:37.7324724Z             "phase_name": "tests/list_tasks_page_size.yml",
2023-10-23T21:40:37.7325353Z             "phase_description": "Job to validate page size in list tasks",{
2023-10-23T21:40:37.7380423Z                     "test_name": "list_tasks",
2023-10-23T21:40:37.7380801Z                     "test_description": "Set page_size as 1",
2023-10-23T21:40:37.7384678Z                     "cases": [
2023-10-23T21:40:37.7384926Z                         {
2023-10-23T21:40:37.7385192Z                             "case_name": "status_code",
2023-10-23T21:40:37.7385646Z                             "case_description": "Check if response status code is 200",
2023-10-23T21:40:37.7386103Z                             "log_messages": [
2023-10-23T21:40:37.7386453Z                                 "No logs for success"
2023-10-23T21:40:37.7386818Z                             ],
2023-10-23T21:40:37.7387210Z                             "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7387726Z                             "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7388110Z                             "status": "PASS",
2023-10-23T21:40:37.7388525Z                             "message": "GET /tasks Successful Response status code"
2023-10-23T21:40:37.7388933Z                         },
2023-10-23T21:40:37.7389161Z                         {
2023-10-23T21:40:37.7389448Z                             "case_name": "response_schema_validation",
2023-10-23T21:40:37.7389959Z                             "case_description": "Check if response matches the model schema",
2023-10-23T21:40:37.7390442Z                             "log_messages": [
2023-10-23T21:40:37.7390806Z                                 "No logs for success"
2023-10-23T21:40:37.7391138Z                             ],
2023-10-23T21:40:37.7391519Z                             "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7392013Z                             "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7392470Z                             "status": "PASS",
2023-10-23T21:40:37.7392932Z                             "message": "Response Schema validation successful for GET /tasks"
2023-10-23T21:40:37.7393451Z                         },
2023-10-23T21:40:37.7393676Z                         {
2023-10-23T21:40:37.7393954Z                             "case_name": "Filter-1",
2023-10-23T21:40:37.7394419Z                             "case_description": "Validate the response against filter-1",
2023-10-23T21:40:37.7394987Z                             "log_messages": [
2023-10-23T21:40:37.7395302Z                                 ""
2023-10-23T21:40:37.7395566Z                             ],
2023-10-23T21:40:37.7395962Z                             "start_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7396456Z                             "end_time": "2023-10-23T21:38:45Z",
2023-10-23T21:40:37.7396837Z                             "status": "FAIL",
2023-10-23T21:40:37.7397292Z                             "message": "Filter-1 failed for GET /tasks"
2023-10-23T21:40:37.7397674Z                         }
2023-10-23T21:40:37.7397895Z                     ]
Expected behavior
For the first failing test in the list provided here, TES is giving a different output then the test is expected, the output the test is expecting is below:
name: list_tasks
description: Fetch response after sending stored next_page_token value
endpoint: /tasks
operation: GET
query_parameters:
- view: MINIMAL
- page_size: 1
- page_token: "{next_page_token}"
filter:
- path: $response.tasks <-- I believe the test is not getting this value correctly but may need to look at the test more closely to understand exactly what is going on.
type: array
size: 1
response:
200: {}

This seems like we are not filtering correctly.

if the issues is resolved, it should be good to close.


CI: test Padrino with Sinatra v3+ after it is known to be compatible

With #1465 we had to lock Sinatra to < 3 for our Padrino tests, as Padrino seems to want to modify the CALLERS_TO_IGNORE array which is now frozen with Sinatra 3.0.0.
After Padrino releases a new version of padrino-core beyond the current 0.15.1 version, we should check to see if we are able to revert the change that #1465 delivered. NOTE that a new version of padrino-core need not specifically solve the Sinatra v3.0.0 compatibility problem. It could also simply add a dependency on Sinatra < 3 so that we no longer have to do so manually.

NOTE: Padrino development is considered to be halted.

Filed padrino-framework#2258

Closing until Padrino lives again

The padrino-framework#2258 issue I filed has been completed. We should be set to test Padrino with Sinatra 3+ after a new version of Padrino (newer than 0.15.1) is released.

I've now deployed 0.15.2 with the fixes


More description about how to store webhooks

Overview/summary
from shopify-node-api/docs/usage/webhooks.md

Note: The webhooks you register with Shopify are saved in the Shopify platform, but your handlers need to be reloaded whenever your server restarts. It is recommended to store your Webhooks in a persistent manner (for example, in a database) so that you can reload previously registered webhooks when your app restarts.

So what is it that needs to be stored? the webhook object that's returned here?
  const response = await Shopify.Webhooks.Registry.register({
    shop: config.shop,
    accessToken: config.accessToken,
    path: "/webhooks",
    topic: 'APP_UNINSTALLED',
    webhookHandler: async (topic, shop, body) =>{
      appReducer(shop, {action: 'APP_UNINSTALLED'})
    },
  });

In digging i found response.result.data.webhookSubscriptionCreate.webhookSubscription.id
it will return something like gid://shopify/WebhookSubscription/12345678901234

What do we do with this result?

So we need to loop through all active shops and resend all webhook registrations every time the server starts?

Can you help update the documentation with a little more info about this?
...
Motivation

What inspired this enhancement?

learning more about webhooks
...
Area

[webhooks] Add any relevant Area: <area> labels to this issue
[documentation]

Checklist

[ x ] I have described this enhancement in a way that is actionable (if possible)

Hey @fotoflo, great catch here. After that documentation was added, the Shopify.Webhooks.Registry.register method was updated to actually check if the webhook hasn't already been installed for a shop, so it can safely be run whenever an OAuth flow completes.
That also means you don't necessarily need to store the webhooks you'll be using - you just need to make sure to perform an OAuth after a server restart to load up the handlers.
You can still store and load your handlers just to make sure that the webhook registry is aware of the handlers you're expecting as soon as the server is up, if that is your preference. Since the handlers are the same for all shops, you'd actually only need to re-register them once per topic for any shop, so it's actually easier to just perform an OAuth. The purpose of reloading is just to have your app tell the webhook registry which handlers it should be aware of.
Hope this helps, but we'll update that documentation to recommend performing an OAuth rather than storing and loading the webhooks. Thanks for pointing it out.

If we don't need to re-register webhook handlers between server restarts, since the local webhookRegistry won't be aware of any webhooks, won't it break the process flow?

Hey @justoneabhi, as I mentioned, you don't need to re-register every shop, just one shop is enough. All we need is for a single call to register to be made, so that the library's registry knows that it should handle that topic.
That's why I suggested going through OAuth once with a shop you own, just so that it loads everything right away (without needing to wait for the first merchant to do a 'real' OAuth).

Yes and no, like I said the only thing that needs to happen is calling register once per topic, no matter how it happens. Doing an OAuth manually will do the trick if you register your handlers after OAuth, but it's not the only way to do it.
For example, if you want, you can persist (or hardcode) which topics you're using and what handlers to use for them and load them automatically on server startup, which is where the original (not ideally worded) suggestion in the docs came from. All you need to do that is a valid access token.
All that said, that is what the library currently allows. If there is a valid use case for doing something differently, we can look into it!

First, I want to thank you @paulomarg for being so responsive and helpful in the discussions here on GitHub (not just this thread). I'm sure everyone greatly appreciates it 🙏
What's confusing to me about this whole webhooks business is that registering and handling of webhooks is tied to an app, however to actually register a handler, we need an OAuth token which is tied to a shop, and any shop at that. It would make much more sense if we could use the API key and secret to register webhook handlers, as those are tied to an app, not any particular shop.
FWIW, for now, I'm loading the offline token of my devshop from the database and using that to call register at every server (re)start, outside of any OAuth flow.

Hey @milancermak, that's a great point. I think we can extract the part of register that loads the handler function for a topic into a new method that does only that, so you can just load up your handlers without needing to actually hit Shopify.

Great discussion!
My question is also about webhook :)
is there any communication between webhook ['app/uninstalled'] and session?
Why Shopify.Utils.loadCurrentSession in '/webhook' ('app/uninstalled') route return undefined?

First, I want to thank you @paulomarg for being so responsive and helpful in the discussions here on GitHub (not just this thread). I'm sure everyone greatly appreciates it 🙏

Hi, I am developing my first Shopify app.  All the discussions I found on the issues of this repository were very useful to me. So thank you to @paulomarg for all the clarifications. And thanks also to all the app developers such as @milancermak who share the workarounds they come up with to bypass certain issues.

FWIW, for now, I'm loading the offline token of my devshop from the database and using that to call register at every server (re)start, outside of any OAuth flow.

I liked the trick suggested here. I also read the code of the function Shopify.Webhooks.Registry.register
My conclusion is:  if the webhook was previously registered on the Shopify side when calling register again for the same shop (mustRegister=== false), the only useful part of that function is the part that loads the hander. namely this line:
https://github.com/Shopify/shopify-node-api/blob/41e500bf865635ed92fbf7007afb52526564480b/src/webhooks/registry.ts#L223
By adding the following line, which does not require any token, at the beginning of my server file the handler seems to be loaded up properly when the server restarts and the events are correctly processed.
Shopify.Webhooks.Registry.webhookRegistry.push({path: "/webhooks", topic: "ORDERS_PAID", webhookHandler: ordersPaidHandler});

If there is a use case where this would fail, please let me know 😊
Otherwise, I would be happy to suggest a small PR that separates this line into a new "load" function that's exported from the module.

Thanks for sharing @shippinglob @paulomarg. Registering webhooks when a server starts using Shopify.Webhooks.Registry.webhookRegistry looks great. I'm wondering if we should still need to register webhooks with Shopify.Webhooks.Registry.register() whenever a new shop completes OAuth flow. I don't know what Shopify.Webhooks.Registry.register() does under the hood with the shop and accessToken. Don't they handled and forwarded by Shopify.Webhooks.Registry.process()?

Thanks for sharing @shippinglob @paulomarg. Registering webhooks when a server starts using Shopify.Webhooks.Registry.webhookRegistry looks great. I'm wondering if we should still need to register webhooks with Shopify.Webhooks.Registry.register() whenever a new shop completes OAuth flow. I don't know what Shopify.Webhooks.Registry.register() does under the hood with the shop and accessToken. Don't they handled and forwarded by Shopify.Webhooks.Registry.process()?

If this is going to take time to be incorporated into the next API version, it may be worth updating the docs to show the current accepted "hack" method of handling server restarts? (https://github.com/Shopify/shopify-node-api/issues/157#issuecomment-841172584)
The Webhooks usage doc suggestion is pretty ambiguous / unhelpful here, in that it doesn't actually include the method of easily reloading via pushing to webhookRegistry: https://github.com/Shopify/shopify-node-api/blob/main/docs/usage/webhooks.md#register-a-webhook
"Note: The webhooks you register with Shopify are saved in the Shopify platform, but your handlers need to be reloaded whenever your server restarts. It is recommended to store your Webhooks in a persistent manner (for example, in a database) so that you can reload previously registered webhooks when your app restarts."

I summarized this issue for me and someone who would be puzzled like me.
Before 2.0.0, Shopify.Webhooks.Registry.register api do two actions:

Register callback url to Shopify platform for shop & topic combination. (As far as I know, we cannot set a single static webhook url for all shops. Instead, we have to register webhook url for each shop. This setting is managed by Shopify.)
Dynamically register handler for the callback url to our server. Shopify.Webhooks.Registry.process uses this mapping to find the handler for a given topic. (this mapping is managed by our server.)

We have to keep {topic - handler} mapping across server reboot, but there is no public API for it and Shopify.Webhooks.Registry.webhookRegistry.push(...) is the only solution.
I found that as of 2.0.0, this issue is resolved by introducing Shopify.Webhooks.Registry.addHandler:

Shopify.Webhooks.Registry.register only registers callback url to Shopify platform. It does not require webhookHandler anymore.
programming has to register each handlers for topic using Shopify.Webhooks.Registry.addHandler when initializing the server.

2. A programmer has to register handlers for topic using Shopify.Webhooks.Registry.addHandler when initializing the server.

What is the difference between the new and the old approach? I don't see a fundamental difference

A programmer has to register handlers for topic using Shopify.Webhooks.Registry.addHandler when initializing the server.

What is the difference between the new and the old approach? I don't see a fundamental difference

@valorloff In the old approach, there was no public method to restore callback handler across server reboot.
Shopify.Webhooks.Registry.webhookRegistry.push(...) method is kind of hack exploiting internal implementation.


User permissions

Coverage decreased (-0.1%) to 92.982% when pulling 84508ea073064164c489f4c4689ecaeede88d0c9 on nikhila05:user_permissions into 375e4bf752545d54561cc6cddf99bfecd2cdc96d on MicroPyramid:master.


swagger-springmvc doesn't support @RepositoryRestResource

Potentially a duplicate of https://github.com/springfox/springfox/issues/445 which has since been closed,
although I didn't see any resolution to this question.
It would be very cool if Springfox could document the API that @RepositoryRestResource exposes.

Actually https://github.com/springfox/springfox/issues/699 is probably what you're looking for

Closing this as a duplicate of #699


[BUG] Recreate missing table rather than continuously trying to write to a deleted table

What is the bug?
PA should handle missing table gracefully.
PerformanceAnalyser is looking to write a deleted table can cause spike in cpu on the node. Ideally PA should recreate missing table instead of continuously trying to  write to a deleted table.
How can one reproduce the bug?
Steps to reproduce the behavior:

Delete PA tables manually.
Check CPU on the nodes and PA logs

What is the expected behavior?
Ideally PA should recreate missing table instead of continuously trying to  write to a deleted table.
What is your host/environment?

ES 7.9
Plugins

[Triage -- attendees 1, 2, 3, 4, 5, 6, 7]
Looks like a valid issue.


[Bug][Analyzer] Null safety not detected correctly

Not really sure if it's a bug or a feature request, nor how to categorize this better,
but I found a case where I'm getting errors on null safety even though it's clear the value can't be null at that point.
Example code:

class MyData {
  const MyData({required this.value});

  final int value;
}

typedef WidgetContainerBuilder = MyData Function(String key);

void foo(WidgetContainerBuilder? builder) {
  MyData? result = builder == null ? null : builder('first');

  // Attempt #1:
  if (result != null) {
    MyData oldResult = result;
    MyData result2 = builder('second'); // The function can't be unconditionally invoked because it can be 'null'
    // since builder return non-nullable MyData, if result isn't null the builder can't be null either
  }

  // Attempt #2:
  if (builder != null) {
    MyData oldResult = result; // The function can't be unconditionally invoked because it can be 'null'
    MyData result2 = builder('second');
    // since builder return non-nullable MyData, if builder isn't null result can't be null either
  }
}

The Dart type system and type promotion does not track dependencies between variables. It does not know that if result is non-null, then builder must be non-null too, which a human can derive from the way result was initialized.
All it sees is that result has a nullable type and builder has a nullable type.
What you can write is:
if (builder != null) {
  var oldResult = builder('first');
  var result2 = builder('second');
}

That doesn't help you if you want to do other things with result first.

@lrhn I'm aware of the method you wrote, but like you mentioned I have other things to do with it first. Specifically, I might even stop execution flow of the method. so like you said, that doesn't help me.
Regarding the logic behind: yeah I assumed that, I just thought it was a bug rather than a missing feature.
Is there a feature request issue about it then? or should I create one?

@stereotype441 Do we have any current requests (or ideas) about multi-variable based nullability poromotion?
I know we had some ideas about boolean values carrying information. Could the null-ness of another variable also do so?


Infostat -l throws odd values for vt and spin

Describe the bug
When running Infostat -l or Infostat -log /path/to/dir it will populate event.xml and lock.xml correctly, but throws frequent incorrect values for vtval and vtset in vt.xml and spinset and spinval in spin.xml. Running Infostat, Infostat -d, or showstat never shows incorrect values.
Additionally, Infostat -l doesn't automatically start with Infostat -port #### on Mercury/Inova consoles (does start on NMRS/DDR2).
Version of OpenVnmrJ you are using.
All built on RHEL 8

Mercury

MI #732

Inova

MI  #714

NMRS

#728

DDR2

#718

Messages and Logs
From the NMRS system regulated at 30 C and 20 Hz spinning.
vnmr1@nmrs500-01 logs]$ tail vt.xml
<vtval value="29.9 C" time="1693622325"/>
<vtset value=" 0.0 C" time="1693622336"/>
<vtval value="3274.5 C" time="1693622336"/>
<vtset value="1233.8 C" time="1693622337"/>
<vtval value="1310.6 C" time="1693622337"/>
<vtset value="30.0 C" time="1693622337"/>
<vtval value="3274.5 C" time="1693622337"/>
<vtval value="29.9 C" time="1693622337"/>
<vtval value="30.0 C" time="1693622337"/>
</statlog>

[vnmr1@nmrs500-01 logs]$ tail spin.xml
<spinset value="288 Hz" time="1693622366"/>
<spinset value="20 Hz" time="1693622366"/>
<spinval value="0 Hz" time="1693622367"/>
<spinset value="288 Hz" time="1693622373"/>
<spinset value="20 Hz" time="1693622373"/>
<spinval value="0 Hz" time="1693622373"/>
<spinset value="288 Hz" time="1693622376"/>
<spinset value="20 Hz" time="1693622377"/>
<spinval value="0 Hz" time="1693622377"/>
</statlog>

Environment (please complete the following information):
All systems tested are the same:
           .MMM..:MMMMMMM                  vnmr1@nmrs500-01
          MMMMMMMMMMMMMMMMMM               ----------
          MMMMMMMMMMMMMMMMMMMM.            OS: Red Hat Enterprise Linux 8.8 (Ootpa) x86_64
         MMMMMMMMMMMMMMMMMMMMMM            Host: HP Z420 Workstation
        ,MMMMMMMMMMMMMMMMMMMMMM:           Kernel: 4.18.0-477.21.1.el8_8.x86_64
        MMMMMMMMMMMMMMMMMMMMMMMM           Uptime: 16 days, 10 hours, 19 mins
  .MMMM'  MMMMMMMMMMMMMMMMMMMMMM           Packages: 1926 (rpm), 27 (flatpak)
 MMMMMM    `MMMMMMMMMMMMMMMMMMMM.          Shell: bash 4.4.20
MMMMMMMM      MMMMMMMMMMMMMMMMMM .         Resolution: 1920x1200
MMMMMMMMM.       `MMMMMMMMMMMMM' MM.       DE: GNOME 3.32.2
MMMMMMMMMMM.                     MMMM      WM: Mutter
`MMMMMMMMMMMMM.                 ,MMMMM.    WM Theme: Adwaita
 `MMMMMMMMMMMMMMMMM.          ,MMMMMMMM.   Theme: Adwaita [GTK2/3]
    MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM   Icons: Adwaita [GTK2/3]
      MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:   Terminal: gnome-terminal
         MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM    CPU: Intel Xeon E5-1620 0 (8) @ 3.800GHz
            `MMMMMMMMMMMMMMMMMMMMMMMM:     GPU: NVIDIA Quadro 2000
                ``MMMMMMMMMMMMMMMMM'       Memory: 2531MiB / 7611MiB

Perhaps related to #296?

I'm not sure if it's related, but the user log (via the Status Charts) works unless you load the system log. Then the set point gets thrown off, but the actual value continues to register correctly. But the user log stops on operator logout, so I'd prefer using Infostat -l.

Hi Jessi,
I have been trying to reproduce this but have been unable to do so. It is curious that multiple values are recorded with the same time= value. Could you start the Infostat with
strace -o /vnmr/tmp/infobug -s 128 Infostat -l
After some of the bad values are recorded, kill the process and send me the /vnmr/tmp/infobug file.

infobug.txt
The attached file was created with an Inova system running PR build #714. VT was set to -18.8 with 20 Hz spinning and a lock level around 87.

Looks like a lot of missing libraries mentioned at the top.  All the mentioned libraries (libm.so.6, libtirpc.so.3, libc.so.6, libgssapi_krb5.so.2, libkrb5.so.3, libk5crypto.so.3, libcom_err.so.2, libpthread.so.0, libdl.so.2, libkeyutils.so.1, libcrypto.so.1.1, libresolv.so.2, libselinux.so.1, libz.so.1, libpcre2-8.so.0) are present in both /lib and /lib64.

Should be fixed with PR #824


Keys conflicts with inherited props

Hi, this is a feature request, PR is incoming soon.
I suggest to add dict option to make lib produce cache objects without prototype, so you can safely use cache object for storing/checking arbitrary keys without risk of conflicts (e.g. prop 'constructor' will be function in empty cache)
Here is some article about topic problem for reference: https://2ality.com/2013/10/dict-pattern.html
I suggest this feature to be optional, and keep using normal objects by default to keep backward compat.

PR #4


Hardware decoding support

Please correct me if I am wrong, but AFAIK there is no support for hardware decoding. This is especially interesting for mobile devices, as hardware decoding usually uses significantly less power. So having support for DXVA(2), VA-API, VDPAU, ... would be cool

As a software codec, openh264 only provides the encode & decode functions. You can call related hardware decoding API on the specific platform, such as Apple iOS, etc.


Are there any multiple cameras code examples with python language?

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
D435&D435i

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win10

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC

SDK Version
2.25.0

Language
python

Segment
Robot

Issue Description
I have read the python wrapper examples here (https://github.com/IntelRealSense/librealsense/tree/development/wrappers/python#python-wrapper) and the python wrapper here (https://intelrealsense.github.io/librealsense/python_docs/_generated/pyrealsense2.html#module-pyrealsense2), but I still don't know how to deal with my cameras...
Are there any multiple cameras code examples with python language?

There is a Python example called **'box_dimensioner_multicam' that supports multiple cameras for the purpose of measuring the volume of objects placed upon a chessboard image.
https://github.com/IntelRealSense/librealsense/tree/master/wrappers/python/examples/box_dimensioner_multicam

Grazie!


device address problems examples

Hello,
Trying
tacx_trainer_control_example.py
and using
discover_devices_example.py
to get the device address gives a problem:
The device address in tacx_trainer_control_example.py is EAAA3D1F-6760-4D77-961E-8DDAC1CC9AE which I assume is just an example.
With discover_devices_example.py I get:
C2:9D:1D:49:A9:C7: Tacx Neo 2 01760
which is in a complete different form, and is also not recognized by  the 'tacx trainer' example:
bleak.exc.BleakError: Device with address C2:9D:1D:49:A9:C7 was not found.
What is going wrong here?
Regards,
Rob

Hi Rob,
The device address is correct, the format is slightly different just due to the way Bluetooth implementations differ between Mac/Windows/Linux.
Please can you try increasing the timeout used when connecting to the turbo trainer?
In tacx_trainer_control_example.py change
async with BleakClient(address) as client:

to
async with BleakClient(address, timeout=30.0) as client:

The timeout is how many seconds to attempt to connect to the device for, you can try with a few different values to see if you have any success.
Also please ensure no other device/software is attempting to connect to the trainer, as I think the turbo can only handle one connection at a time.
Let me know how it goes,
Zachary

I can at least throw my 2 cents in here and confirm that on Windows 10, using a device address of the format EB:14:11:DB:2A:86 lets me successfully connect to my Tacx Neo 2T.

I have successfully connected to Wahoo Kickr V5 using address format as above

I have successfully connected to Wahoo Kickr V5 using address format as above

That's great, which protocols did you manage to get working with the Kickr @unicornis-pl?

I've connected using
trainer = CyclingPowerService(client)
From Wahoo Kickr I get:
CyclingPowerMeasurement(instantaneous_power=106, accumulated_energy=None, pedal_power_balance=None, accumulated_torque=46740, cumulative_wheel_revs=16341, last_wheel_event_time=7986, cumulative_crank_revs=5526, last_crank_event_time=44923, maximum_force_magnitude=None, minimum_force_magnitude=None, maximum_torque_magnitude=None, minimum_torque_magnitude=None, top_dead_spot_angle=None, bottom_dead_spot_angle=None)

Similar success connecting to Favero Assioma Duo. Both pedals discovered during scanning, conneting to the left provides all the data:
CyclingPowerMeasurement(instantaneous_power=122, accumulated_energy=None, pedal_power_balance=200, accumulated_torque=None, cumulative_wheel_revs=None, last_wheel_event_time=None, cumulative_crank_revs=15, last_crank_event_time=14928, maximum_force_magnitude=None, minimum_force_magnitude=None, maximum_torque_magnitude=None, minimum_torque_magnitude=None, top_dead_spot_angle=None, bottom_dead_spot_angle=None)
Pedal_power_balance = 200 -> 100% Left
Pedal_power_balance = 0 ->  100% Right
Pedal_power_balance = 100 -> 50/50 Left/Right balance

I have successfully connected to Wahoo Kickr V5 using address format as above

That's great, which protocols did you manage to get working with the Kickr @unicornis-pl?

Same result for InPeak crank power sernsor ;-)
CyclingPowerMeasurement(instantaneous_power=7, accumulated_energy=None, pedal_power_balance=None, accumulated_torque=None, cumulative_wheel_revs=None, last_wheel_event_time=None, cumulative_crank_revs=2, last_crank_event_time=7168, maximum_force_magnitude=None, minimum_force_magnitude=None, maximum_torque_magnitude=None, minimum_torque_magnitude=None, top_dead_spot_angle=None, bottom_dead_spot_angle=None)
Anything else worth testing?

I have successfully connected to Wahoo Kickr V5 using address format as above

That's great, which protocols did you manage to get working with the Kickr @unicornis-pl?

Same result for InPeak crank power sernsor ;-) CyclingPowerMeasurement(instantaneous_power=7, accumulated_energy=None, pedal_power_balance=None, accumulated_torque=None, cumulative_wheel_revs=None, last_wheel_event_time=None, cumulative_crank_revs=2, last_crank_event_time=7168, maximum_force_magnitude=None, minimum_force_magnitude=None, maximum_torque_magnitude=None, minimum_torque_magnitude=None, top_dead_spot_angle=None, bottom_dead_spot_angle=None)
Anything else worth testing?

No that's great thanks, the reason I ask is because there is an open issue (#13) asking if it already works with the Kickr, and it seems that it does!


Unable to complete SSL/TLS handshake:

When i run the 02-hello-world-https.php example, it does work (seeing "hello world" in a browser).
But I am also seeing this error:
php examples/02-hello-world-https.php
Listening on https://<IP_ADDRESS>:8443
exception 'UnexpectedValueException' with message 'Unable to complete SSL/TLS handshake: ' in /Users/*********/Projects/http/vendor/react/socket/src/StreamEncryption.php:112
Stack trace:
#0 /Users/*********/Projects/http/vendor/react/socket/src/StreamEncryption.php(78): React\Socket\StreamEncryption->toggleCrypto(Resource id #28, Object(React\Promise\Deferred), true)
#1 [internal function]: React\Socket\StreamEncryption->React\Socket\{closure}(Resource id #28, Object(React\EventLoop\StreamSelectLoop))
#2 /Users/*********/Projects/http/vendor/react/event-loop/src/StreamSelectLoop.php(232): call_user_func(Object(Closure), Resource id #28, Object(React\EventLoop\StreamSelectLoop))
#3 /Users/*********/Projects/http/vendor/react/event-loop/src/StreamSelectLoop.php(201): React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
#4 /Users/*********/Projects/http/examples/02-hello-world-https.php(29): React\EventLoop\StreamSelectLoop->run()
#5 {main}exception 'UnexpectedValueException' with message 'Unable to complete SSL/TLS handshake: ' in /Users/*********/Projects/http/vendor/react/socket/src/StreamEncryption.php:112
Stack trace:
#0 /Users/*********/Projects/http/vendor/react/socket/src/StreamEncryption.php(78): React\Socket\StreamEncryption->toggleCrypto(Resource id #55, Object(React\Promise\Deferred), true)
#1 [internal function]: React\Socket\StreamEncryption->React\Socket\{closure}(Resource id #55, Object(React\EventLoop\StreamSelectLoop))
#2 /Users/*********/Projects/http/vendor/react/event-loop/src/StreamSelectLoop.php(232): call_user_func(Object(Closure), Resource id #55, Object(React\EventLoop\StreamSelectLoop))
#3 /Users/*********/Projects/http/vendor/react/event-loop/src/StreamSelectLoop.php(201): React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
#4 /Users/*********/Projects/http/examples/02-hello-world-https.php(29): React\EventLoop\StreamSelectLoop->run()
#5 {main}

Also I think the response time might be low side.
I did have to include a cafile in the example code
$loop = Factory::create();
$socket = new Server(isset($argv[1]) ? $argv[1] : '<IP_ADDRESS>:8443', $loop);
$socket = new SecureServer($socket, $loop, array(
    'local_cert' => $argv[2]. '/bin/combined.pem',
    'cafile' => $argv[2]. '/bin/intermediate.pem',
));

Unfortunately, I can't reproduce this locally.
Can you provide a gist to reproduce this? Such as, where does this error come from, why is this printed to your console, which client are you using?

I could try setting up a gist I guess.
The error is displayed on the console when unqouting this line:
https://github.com/reactphp/http/blob/master/examples/02-hello-world-https.php#L23
and running 'php examples/02-hello-world-https.php <IP_ADDRESS>:8443 /path/to/certificates'
Which client I am using? What do you mean exactly?

Which client I am using? What do you mean exactly?

What browser and which version are you using to connect to the HTTPS server?

Yes! I only get the error by using:
Google Chrome Version 56.0.2924.87 (64-bit)
Cannot repro on firefox, safari. Response time in these browsers seem better also

Not sure what's going on here as the TLS handshake appears to fail but the error message is apparently empty. Could your browser perhaps be terminating the connection before the TLS handshake completes?
Can others reproduce this or does this only happen on certain configurations?
Also, is there really anything that we should fix here? The error event is emitted by the Socket component which means that an incoming TLS connection did not succeed (this is documented and expected behavior). Does this really cause any issues here?

Ok, I have tested again on my chrome with using charles web debugging proxy (allowing it to be man in the middle). If i load page once, I am seeing 4 requests in charles. first 2 attempts fail, 3 succeeds, and 4th fails again.
Including some screenshot of charles:

Safari and Firefox only need 1 request to see the 'Hello World' text

So i have simillar issue. Chrome is unable to finish handshake. MS Edge too. Only FireFox is working great

@akadlec @bassim Do you use "local_cert" with key + certificate + certificate chain in one file?

@kelunik sorry for the late reply. The answer is no.
I am using this:
'local_cert' => __DIR__ . '/combined.pem',
'cafile' => __DIR__ . '/intermediate.pem',

Where combined contains the private key + certificate

So far we've not been able to reproduce this (afaict).
Can anybody provide us with a simple gist on how to reproduce this and what your certificate setup look like, possibly with the required openssl commands etc.? Thanks!

@bassim All intermediates should be appended to combined.pem then, "cafile" is used for peer verification.

I am using certificate generated by LetsEncrypt this way:

Ping @bassim and @akadlec, can you update the status here, does the problem persist or did you mange to resolve this in the meantime?
So far we've not been able to reproduce this (afaict).
If this problem persists, can anybody provide us with a simple gist on how to reproduce this and what your certificate setup look like, possibly with the required openssl commands etc.? Thanks!

For me i fixed it with proxy. Mabye it is a lets encrypt issue, right now i'm without time to more dig into this problem.

@akadlec Could you give local_cert => fullchain.pem / local_pk => key.pem a try without further digging?

Closing this due to a lack of feedback, as we can not reproduce this. Please come back with more details if this problem persists and we can reopen this :+1:

I have exactly same problem with Chrome and solution was adding verify_peer and verify_peer_name set to false in tls context.
$socket = new \React\Socket\Server('tls://<IP_ADDRESS>:8080', $loop, array(
	'tls' => array(
		'local_cert' => 'fullchain.pem',
		'local_pk' => 'privkey.pem',
		'verify_peer' => false,
		'verify_peer_name' => false
	)
));

Both verify_... are used when using client certificate authentication. In most TLS server like standard HTTPS server it is not used. So I suggest adding this parameters to SecureServer examples.

@woytam we are always to PR's so feel free to create one addressing that

PR #333 adds SSL context with verify_peer and verify_peer_name disabled in examples and code comments.


Feedback

This is very easy to understand and useful document  for the beginners. Good Work !!!

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

ID: 5f412c4c-d759-6260-e59b-80923d6372df
Version Independent ID: 94be3497-80cf-25ee-1741-bd9f49ca560e
Content
Content Source
Service: unspecified

Thank you very much!


use non default scheme

currently NewClientsetFromConfig use and mutate the global scheme.Scheme. This is problematic, as if other parts of the program use it as well a data race will occur.
we need to be able to use a different scheme

I believe this is an instance of https://github.com/solo-io/gloo/issues/5860, and has been resolved in gloo recently


16-bit images cannot be loaded

A recent interaction with a user that we have an ongoing project with recently highlighted an issue with 16-bit images. If the image is 16-bit, ADS tries to read it as an 8-bit image and the input is messed up (Looks like it reads the 8 LSBs? Loaded image looks like white noise). We somewhat discussed this during PR #669 but decided to deal with this in a separate PR and it slipped through the cracks. I wasn't aware that the default imread mishandled 16-bit images this badly. The user that reported this encountered it while performing annotations with fsleyes and the plugin. He said some of their samples were saved as 16-bit, so this is something that is likely to happen again.
To fix this, I'm not sure what we should do. We could look for the bitdepth of the image we are trying to load and pass it to imageio's imread?
Loosely related to #668 but this issue is higher priority IMO

Did/can the user provide a sample image / output?

@mathieuboudreau I asked him for an example image but they said that converting the image to 8-bit before loading it in fsleyes solved the problem so they did not provide anything. To reproduce, you can try to load the 16b image from our test files in fsleyes. We sadly obtain this :sweat_smile:

Looking at what the image is supposed to look like, it seems imread indeed reads the 8 less significant bits...

Thanks!
It's likely cutting off the values after the 8 bits rather than doing a conversion. We could look into offering the option to converting to 8bit prior to processing (which I thought we were already doing, but I guess not?)

So this all felt very familiar, and yes, it appears that this was a previous issues (twice!) that was resolved in a PR.
Issue 1: https://github.com/axondeepseg/axondeepseg/issues/166
PR: https://github.com/axondeepseg/axondeepseg/pull/243
Issue 2: https://github.com/axondeepseg/axondeepseg/issues/617
So, first step should be seeing when/where/why this behaviour changed from working to broken.

Ok, so it seems like originally we did the conversion this way,
https://github.com/axondeepseg/axondeepseg/blob/fbbb03c44dc9e4b0409364b49265f453ac80d3c0/AxonDeepSeg/ads_utils.py#L265
but then recently changed to this way,
https://github.com/axondeepseg/axondeepseg/blob/f83a84241062ff8b56739d8ca694b6509540fad1/AxonDeepSeg/ads_utils.py#L283
This was done in this commit of PR #669
https://github.com/axondeepseg/axondeepseg/pull/669/commits/99748d23ac1f61e2a013d6d62c56f1f125163072
implicitely because I was removing the 8 bit "option" for the imread arg. But this new way seems to be cutting off the image's bits, instead of doing the proper conversion.
Changing the line to this,
img = imageio.core.image_as_uint(raw_img, bitdepth=8)
Appears to fix the issue while maintaining the 8bit conversion. The image now loads correctly in FSLeyes,

However, it reintroduces this warning "Lossy conversion from uint16 to uint8. Losing 8 bits of resolution. Convert image to uint8 prior to saving to suppress this warning.", but better to have a warning than a bug.
I'll make a PR with this quick fix and assign you @hermancollin


suggestion textStyle

can you add custom field ?  - > suggestionTextStyle : ,

Hi @Shahmirzali-Huseynov I intentionally removed it since you could define a widget yourself
SearchFieldListItem<Country>(
        e.name,
        item: e,
       child: Text(e.name, style: YourTextStyle())
    ),


Build Failure:  CodeQL detected code written in Java/Kotlin but could not process any of it.

E.g. https://github.com/google/android-fhir/actions/runs/6653530183/job/18079682920?pr=2309 (for #2309) failed with:
/opt/hostedtoolcache/CodeQL/2.15.1/x64/codeql/codeql database finalize --finalize-dataset --threads=8 --ram=29865 /home/runner/work/_temp/codeql_databases/java
  CodeQL detected code written in Java/Kotlin but could not process any of it. Review our troubleshooting guide at https://gh.io/troubleshooting-code-scanning/no-source-code-seen-during-build.
  Error: Encountered a fatal error while running "/opt/hostedtoolcache/CodeQL/2.15.1/x64/codeql/codeql database finalize --finalize-dataset --threads=8 --ram=29[86](https://github.com/google/android-fhir/actions/runs/6653530183/job/18079682920?pr=2309#step:7:87)5 /home/runner/work/_temp/codeql_databases/java". Exit code was 32 and last log line was: CodeQL detected code written in Java/Kotlin but could not process any of it. Review our troubleshooting guide at https://gh.io/troubleshooting-code-scanning/no-source-code-seen-during-build. See the logs for more details.

This seems to be caused since #2307 was just merged, and GitHub appears to get a bit confused... 😭
...  because it still wants to run the old (now deleted) CodeQL related action (which doesn't exist anymore now).
I had hoped that a git rebase from master (locally, or by clicking that Update branch button) would fix this...
... but apparently that is not so?! Hm.

I raised #2311 to re-create PR #2309 to see if that helps, but it does not - exact same problem.
Apparently GitHub is somehow "hard-coded"?! Just for the record, the exact problem is that:

The Build Action, which WORKED in #2307, now for new PRs fails, with:

Run github/codeql-action/analyze@v2
/opt/hostedtoolcache/CodeQL/2.15.1/x64/codeql/codeql version --format=json
{
  "productName" : "CodeQL",
  "vendor" : "GitHub",
  "version" : "2.15.1",
  "sha" : "9e282a764bc1d84cc6bf2902fd2048[63](https://github.com/google/android-fhir/actions/runs/6653690139/job/18080196026?pr=2311#step:7:64)d1a[64](https://github.com/google/android-fhir/actions/runs/6653690139/job/18080196026?pr=2311#step:7:65)6e5",
  "branches" : [
    "codeql-cli-2.15.1"
  ],
  "copyright" : "Copyright (C) 2019-2023 GitHub, Inc.",
  "unpackedLocation" : "/opt/hostedtoolcache/CodeQL/2.15.1/x64/codeql",
  "configFileLocation" : "/home/runner/.config/codeql/config",
  "configFileFound" : false,
  "features" : {
    "featuresInVersionResult" : true,
    "indirectTracingSupportsStaticBinaries" : false,
    "supportsPython312" : true,
    "mrvaPackCreate" : true
  }
}
Finalizing java
  /opt/hostedtoolcache/CodeQL/2.15.1/x64/codeql/codeql database finalize --finalize-dataset --threads=8 --ram=298[65](https://github.com/google/android-fhir/actions/runs/6653690139/job/18080196026?pr=2311#step:7:66) /home/runner/work/_temp/codeql_databases/java
  CodeQL detected code written in Java/Kotlin but could not process any of it. Review our troubleshooting guide at https://gh.io/troubleshooting-code-scanning/no-source-code-seen-during-build.
  Error: Encountered a fatal error while running "/opt/hostedtoolcache/CodeQL/2.15.1/x64/codeql/codeql database finalize --finalize-dataset --threads=8 --ram=29[86](https://github.com/google/android-fhir/actions/runs/6653690139/job/18080196026?pr=2311#step:7:87)5 /home/runner/work/_temp/codeql_databases/java". Exit code was 32 and last log line was: CodeQL detected code written in Java/Kotlin but could not process any of it. Review our troubleshooting guide at https://gh.io/troubleshooting-code-scanning/no-source-code-seen-during-build. See the logs for more details.

GitHub still tries to run the "Code scanning results / CodeQL" Action, and fails to with:

Error when processing the SARIF file
This check concluded as neutral.

even though .github/workflows/codeql.yaml was deleted in #2307. This is weird!
I'm going to revert #2307...

#2312 "fixed" this, and e.g. #2298 and #2309 are building normally again now, so I'm going to close this bug again now.

FTR: I'm tetrying this in https://github.com/google/android-fhir/pull/2314 (but a little bit differently; hoping I now better understood the problem).


Not work with installing from Package Control

Crashes after reloading with log
reloading plugin SVG Viewer.svg-viewer
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 125, in reload_plugin
    m = importlib.import_module(modulename)
  File "./python3.3/importlib/__init__.py", line 90, in import_module
  File "<frozen importlib._bootstrap>", line 1584, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1565, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1532, in _find_and_load_unlocked
  File "/opt/sublime_text/sublime_plugin.py", line 1199, in load_module
    exec(compile(source, source_path, 'exec'), mod.__dict__)
  File "/home/yaroslav/.config/sublime-text-3/Installed Packages/SVG Viewer.sublime-package/svg-viewer.py", line 31, in <module>
  File "/home/yaroslav/.config/sublime-text-3/Installed Packages/SVG Viewer.sublime-package/svg-viewer.py", line 34, in SvgViewerViewSvgCommand
NotADirectoryError: [Errno 20] Not a directory: '/home/yaroslav/.config/sublime-text-3/Installed Packages/SVG Viewer.sublime-package/converters.json'

I suppose I should use sublime.load_resource instead of raw open().read(). Will be patched in SVG Viewer 1.0.1

I suppose I should use sublime.load_resource instead of raw open().read(). Will be patched in SVG Viewer 1.0.1

It was a bad idea to use raw open().read(), because by default, sublime sets the package as packed (zipped) and you can't just get a file from it, so I changed this to sublime.load_resource. It is also not possible to edit converters.json, so I create 2 versions: Packages/SVG Viewer/converter.json (default converters), Packages/User/converters.json (custom converters). Patched in 1.0.1

It was a bad idea to use raw open().read(), because by default, sublime sets the package as packed (zipped) and you can't just get a file from it, so I changed this to sublime.load_resource. It is also not possible to edit converters.json, so I create 2 versions: Packages/SVG Viewer/converter.json (default converters), Packages/User/converters.json (custom converters). Patched in 1.0.1

This error still appeared and I decided to just add the file .no-sublime-package

This error still appeared and I decided to just add the file .no-sublime-package


Make design system for Form Groups

Make and awesome design system for Form Groups Component.
See the Form Groups and make one.
Refer to : Button Design System for any reference
Tip :
You can use Tailwind Playground

Same for this as well. But I am giving points as this a valid issue and we will work on this in future.


NDRS-898: Add ProtocolVersion to the block header.

https://casperlabs.atlassian.net/browse/NDRS-898
NOTE: we still populate the header with the hardcoded version 1.0.0. Once #918 is merged, I will create a follow-up PR that uses BlockExecutor's protocol version when creating new blocks.

@momipsl @zie1ony Heads-up: we're adding a protocol_version field to the BlockHeader.

bors merge


Apps: Firefox 103.0 -> 104.0.1

Version 104.0.1 released August 30

Apologies, I haven't been keeping good track of GitHub notifications and I hadn't noticed this PR before making the same change myself.
I will try to keep a closer eye on this repo in the future.
Glad to see people are actually using the package : )


[KFNBC]: UI - Use environment variables of the notebooks in a different way

Feature description
When we create the environment variable files (secrets, configmaps), we don't need to refer to them in the NotebookControllerState, instead, we should set them as the env reference in the container of the notebook when we create them.
here is an example:
- name: ODH_EXAMPLE_CM
  valueFrom:
    configMapKeyRef:
      key: ODH_EXAMPLE_CM
      name: jupyterhub-singleuser-profile-htpasswd-2dcluster-2dadmin-2duser-envs
- name: ODH_EXAMPLE_SECRET
  valueFrom:
    secretKeyRef:
      key: ODH_EXAMPLE_SECRET
      name: jupyterhub-singleuser-profile-htpasswd-2dcluster-2dadmin-2duser-envs

Describe alternatives you've considered
No response
Anything else?
No response

Looks like a great idea to me... more deduplicating and properly organizing the settings the better.
Kube docs: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data


Kaggle ndsb reproducible results. Windows binary build.

Hello I was playing with mxnet and a cool architecture for the kaggle ndsb 2.
At the moment I'm 3rd (with 1 single model) so there is a possibility of a prize now I was reading into what it took to win.
Results need to be reproducible.
I seeded as much random things as possible but I still am having some problems.
mx.random.seed(1301)
random.seed(1301)
numpy.random.seed(1301)

Data input seems stable and reproducible
When learnrate == 0 everything is stable and reproducible with and without dropout
When I turn up the learnrate I get results that start to differ between runs.

I read about cudnn being non-deterministic (I'm on cudnn 3). Could that be the culprit ?
However.. I would expect weight updates to be deterministic.
Could anyone help me with this ?
Here are my test runs.
FIRST PREDICTIONS
RUN 1
array([[ 0.51068872,  0.49524814,  0.49289984, ...,  0.51171762,
0.51438618,  0.50896013],
[ 0.50962675,  0.48513001,  0.49781802, ...,  0.50200063,
0.51084083,  0.50719506]], dtype=float32)
RUN 2
array([[ 0.51068872,  0.49524814,  0.49289984, ...,  0.51171762,
0.51438618,  0.50896013],
[ 0.50962675,  0.48513001,  0.49781802, ...,  0.50200063,
0.51084083,  0.50719506]], dtype=float32)
LEARN RATE 0.00 NO DROPOUT
RUN 1
INFO:root:Epoch[0] Train-rmsecustom=0.505793
INFO:root:Epoch[0] Time cost=6.480
INFO:root:Epoch[0] Validation-rmsecustom=0.507493
INFO:root:Saved checkpoint to "model180_v2fold1-0001.params"
INFO:root:Epoch[1] Train-rmsecustom=0.505858
INFO:root:Epoch[1] Time cost=6.427
INFO:root:Epoch[1] Validation-rmsecustom=0.507927
INFO:root:Saved checkpoint to "model180_v2fold1-0002.params"
RUN 2
INFO:root:Epoch[0] Train-rmsecustom=0.505793
INFO:root:Epoch[0] Time cost=7.448
INFO:root:Epoch[0] Validation-rmsecustom=0.507493
INFO:root:Saved checkpoint to "model180_v2fold1-0001.params"
INFO:root:Epoch[1] Train-rmsecustom=0.505858
INFO:root:Epoch[1] Time cost=6.976
INFO:root:Epoch[1] Validation-rmsecustom=0.507927
INFO:root:Saved checkpoint to "model180_v2fold1-0002.params"
LEARN RATE 0.00 WITH DROPOUT
RUN 1
INFO:root:Epoch[0] Train-rmsecustom=0.505775
INFO:root:Epoch[0] Time cost=7.505
INFO:root:Epoch[0] Validation-rmsecustom=0.504496
INFO:root:Saved checkpoint to "model180_v2fold1-0001.params"
INFO:root:Epoch[1] Train-rmsecustom=0.505857
INFO:root:Epoch[1] Time cost=6.792
INFO:root:Epoch[1] Validation-rmsecustom=0.504597
INFO:root:Saved checkpoint to "model180_v2fold1-0002.params"
RUN 2
INFO:root:Epoch[0] Train-rmsecustom=0.505775
INFO:root:Epoch[0] Time cost=7.745
INFO:root:Epoch[0] Validation-rmsecustom=0.504496
INFO:root:Saved checkpoint to "model180_v2fold1-0001.params"
INFO:root:Epoch[1] Train-rmsecustom=0.505857
INFO:root:Epoch[1] Time cost=6.974
INFO:root:Epoch[1] Validation-rmsecustom=0.504597
INFO:root:Saved checkpoint to "model180_v2fold1-0002.params"
LEARN RATE 0.01 WITH DROPOUT
RUN 1
INFO:root:Epoch[0] Train-rmsecustom=0.224680
INFO:root:Epoch[0] Time cost=7.455
INFO:root:Epoch[0] Validation-rmsecustom=0.170506
INFO:root:Saved checkpoint to "model180_v2fold1-0001.params"
INFO:root:Epoch[1] Train-rmsecustom=0.174495
INFO:root:Epoch[1] Time cost=6.874
INFO:root:Epoch[1] Validation-rmsecustom=0.215817
INFO:root:Saved checkpoint to "model180_v2fold1-0002.params"
RUN 2
INFO:root:Epoch[0] Train-rmsecustom=0.224966
INFO:root:Epoch[0] Time cost=7.566
INFO:root:Epoch[0] Validation-rmsecustom=0.170954
INFO:root:Saved checkpoint to "model180_v2fold1-0001.params"
INFO:root:Epoch[1] Train-rmsecustom=0.173524
INFO:root:Epoch[1] Time cost=6.765
INFO:root:Epoch[1] Validation-rmsecustom=0.260330
INFO:root:Saved checkpoint to "model180_v2fold1-0002.params"

@juliandewit  The CUDNN is indeterministic, which means the gradient can vary a bit during runs and results in not reproducible weights. However, I feel this can be true for all libraries using CuDNN.
One way to try is to turn off CuDNN, but I hope the rule won't interpret in that way :)  and the good model architecture and similar results should mean reproducibility

@tqchen
Thanks for the fast reaction.
Would that mean rebuilding or is it a runtime option ?
I was using the windows binary release. This was very conveinient until now..
Yeah.. I don't think they can really hold this requirement esp. since in the future things will be more and more distributed and possibly "brain-like".
Anyway.. we'll see.
Thanks for mxnet by the way.. It was a breeze to work with.

Unfortunately currently this need a rebuild, but I think we can go with CuDNN as every other deep learners do

Hello I rebuilt it without cudnn.
It cost me my last hairs but in the end it was all quite doable.. :)
The 1st epoch gives exactly the same results between runs so I think I'm good.
So thanks again for this great framework esp for targetting so many platforms.
The prebuilt binaries etc are golden.
Perhaps after this comp is done I can make a contribution to your examples directory of my solution.

cool! good luck on the comp!