Grafana e2e test has issues

••••I0720 02:42:51.811544 2510057 grafana_test.go:314] Get grafana path:v1/provisioning/alert-rules
I0720 02:42:51.811561 2510057 grafana_test.go:320] Sending request: http://:3001/api/v1/provisioning/alert-rules
E0720 02:42:52.191961 2510057 client.go:134] Output:Unable to use a TTY - input is not a terminal or the right kind of file
curl: (3) URL using bad/illegal format or missing URL
command terminated with exit code 3
, err:exit status 3
E0720 02:42:52.191987 2510057 grafana_test.go:338] responseBody: , err: exit status 3
E0720 02:42:52.191992 2510057 grafana_test.go:270] Get grafana resource error:exit status 3
I0720 02:42:53.197732 2510057 grafana_test.go:314] Get grafana path:v1/provisioning/alert-rules
I0720 02:42:53.197758 2510057 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/v1/provisioning/alert-rules
E0720 02:42:53.497064 2510057 client.go:134] Output:Unable to use a TTY - input is not a terminal or the right kind of file
error: Internal error occurred: error executing command in container: failed to exec in container: failed to create exec "66f3691d79a2ccef31c40fbe48db236659dcf8899354f611af5f1f1325bf0dc1": task 1a1f32c28ac8414873d9cc8a9cee36e68481be44dbddafe398a38e920f59a3f9 not found: not found

/assign @ldpliu

@clyang82
I can not reproduce this issue.
I try to create a pr and run the default e2e, It looks grafana e2e works fine.
Could you share the link if you meet this issue?
•SSSI0722 07:18:30.741586 106735 grafana_test.go:314] Get grafana path:v1/provisioning/alert-rules
I0722 07:18:30.741613 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/v1/provisioning/alert-rules
•I0722 07:18:31.338198 106735 client.go:132] Output:[{"id":4,"uid":"globalhub_data_retention_job","orgID":1,"folderUID":"cdsi000zqx5hcd","ruleGroup":"Cron Job Failed","title":"Data Retention Job Failed","condition":"B","data":[{"refId":"A","queryType":"","relativeTimeRange":{"from":604800,"to":0},"datasourceUid":"P244538DD76A4C61D","model":{"editorMode":"code","format":"table","hide":false,"intervalMs":1000,"maxDataPoints":43200,"rawQuery":true,"rawSql":"SELECT \ntable_name,\n1 AS value,\nerror\nFROM event.data_retention_job_log\nWHERE error != 'none' and $__timeFilter(end_at)","refId":"A","sql":{"columns":[{"parameters":[],"type":"function"}],"groupBy":[{"property":{"type":"string"},"type":"groupBy"}],"limit":50}}},{"refId":"B","queryType":"","relativeTimeRange":{"from":600,"to":0},"datasourceUid":"__expr__","model":{"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A"]},"reducer":{"params":[],"type":"max"},"type":"query"}],"datasource":{"...
I0722 07:18:31.366186 106735 grafana_test.go:314] Get grafana path:dashboards/uid/pAqtIGj4k
I0722 07:18:31.366223 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/pAqtIGj4k
I0722 07:18:31.692050 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-ad-hoc-policy-investigation","url":"/d/pAqtIGj4k/global-hub-ad-hoc-policy-investigation","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:10Z","updated":"2024-07-22T07:08:10Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-adhoc-investigation/acm-global-adhoc-investigation.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":false,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Aler...
I0722 07:18:31.702635 106735 grafana_test.go:314] Get grafana path:dashboards/uid/868845a4d1334958bd62303c5ccb4c19
I0722 07:18:31.702657 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/868845a4d1334958bd62303c5ccb4c19
I0722 07:18:31.926596 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-cluster-group-compliancy-overview","url":"/d/868845a4d1334958bd62303c5ccb4c19/global-hub-cluster-group-compliancy-overview","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:09Z","updated":"2024-07-22T07:08:09Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-cluster-group-compliancy-overview/acm-global-cluster-group-compliancy-overview.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":true,"hide":true,"ico...
I0722 07:18:31.941897 106735 grafana_test.go:314] Get grafana path:dashboards/uid/0e0ddb7f16b946f99d96a483a4a3f95f
I0722 07:18:31.941922 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/0e0ddb7f16b946f99d96a483a4a3f95f
I0722 07:18:32.255488 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-offending-clusters","url":"/d/0e0ddb7f16b946f99d96a483a4a3f95f/global-hub-offending-clusters","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:09Z","updated":"2024-07-22T07:08:09Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-offending-clusters/acm-global-offending-clusters.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Al...
I0722 07:18:32.279913 106735 grafana_test.go:314] Get grafana path:dashboards/uid/b67e0727891f4121ae2dde09671520ae
I0722 07:18:32.279938 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/b67e0727891f4121ae2dde09671520ae
I0722 07:18:32.864502 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-offending-policies","url":"/d/b67e0727891f4121ae2dde09671520ae/global-hub-offending-policies","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:09Z","updated":"2024-07-22T07:08:09Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-offending-policies/acm-global-offending-policies.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Al...
I0722 07:18:32.909653 106735 grafana_test.go:314] Get grafana path:dashboards/uid/fbf66c88-ba14-4553-90b7-55ea5870faab
I0722 07:18:32.909675 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/fbf66c88-ba14-4553-90b7-55ea5870faab
I0722 07:18:33.478963 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-overview","url":"/d/fbf66c88-ba14-4553-90b7-55ea5870faab/global-hub-overview","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:10Z","updated":"2024-07-22T07:08:10Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-overview/acm-global-overview.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"grafana","uid":"-- Grafana --"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Annotations \u0026 Alerts","type":"dashboard"}]},"desc...
I0722 07:18:33.492574 106735 grafana_test.go:314] Get grafana path:dashboards/uid/9bb3bee6a17e47f9a231f6d77f2408fa
I0722 07:18:33.492615 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/9bb3bee6a17e47f9a231f6d77f2408fa
I0722 07:18:34.322157 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-policy-group-compliancy-overview","url":"/d/9bb3bee6a17e47f9a231f6d77f2408fa/global-hub-policy-group-compliancy-overview","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:10Z","updated":"2024-07-22T07:08:10Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-policy-group-compliancy-overview/acm-global-policy-group-compliancy-overview.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":true,"hide":true,"iconCol...
I0722 07:18:34.336406 106735 grafana_test.go:314] Get grafana path:dashboards/uid/5a3a577af7894943aa6e7ca8408502fb
I0722 07:18:34.336447 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/5a3a577af7894943aa6e7ca8408502fb
I0722 07:18:34.739554 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-what-s-changed-clusters","url":"/d/5a3a577af7894943aa6e7ca8408502fb/global-hub-what-s-changed-clusters","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:10Z","updated":"2024-07-22T07:08:10Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-whats-changed-clusters/acm-global-whats-changed-clusters.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":true,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"Ann...
I0722 07:18:34.749454 106735 grafana_test.go:314] Get grafana path:dashboards/uid/5a3a577af7894943aa6e7ca8408502fa
I0722 07:18:34.749488 106735 grafana_test.go:320] Sending request: http://<IP_ADDRESS>:3001/api/dashboards/uid/5a3a577af7894943aa6e7ca8408502fa
I0722 07:18:35.131219 106735 client.go:132] Output:{"meta":{"type":"db","canSave":true,"canEdit":true,"canAdmin":true,"canStar":true,"canDelete":true,"slug":"global-hub-what-s-changed-policies","url":"/d/5a3a577af7894943aa6e7ca8408502fa/global-hub-what-s-changed-policies","expires":"0001-01-01T00:00:00Z","created":"2024-07-22T07:08:10Z","updated":"2024-07-22T07:08:10Z","updatedBy":"Anonymous","createdBy":"Anonymous","version":1,"hasAcl":false,"isFolder":false,"folderId":1,"folderUid":"cdsi000zqx5hcd","folderTitle":"Policy","folderUrl":"/dashboards/f/cdsi000zqx5hcd/policy","provisioned":true,"provisionedExternalId":"acm-global-whats-changed-policies/acm-global-whats-changed-policies.json","annotationsPermissions":{"dashboard":{"canAdd":true,"canEdit":true,"canDelete":true},"organization":{"canAdd":true,"canEdit":true,"canDelete":true}}},"dashboard":{"annotations":{"list":[{"builtIn":1,"datasource":{"type":"datasource","uid":"grafana"},"enable":false,"hide":true,"iconColor":"rgba(0, 211, 255, 1)","name":"An...
•I0722 07:20:31.876011 106735 client.go:132] Output:namespace/local-policy-namespace created
policy.policy.open-cluster-management.io/policy-limitrange created


dirPagination: multiple instances with ng-repeat broken

After the last update (0.9.0), multiple instacens with ng-repeat seems to be broken and throw an error. Here is part of my code:

   Sample Content

I could set up a fiddle but I guess that the problem is easier to spot directly from the last release diffs in the code, since these changes are quite few

Hi,
Thanks for the report. What is the exact error? A fiddle would be helpful - the main change is a pretty complex regex that is beyond my mental abilities to debug just by looking at a diff ;)

http://jsfiddle.net/2ZzZB/2342/
Before I need some help to make your directive work in a fiddle... (injections problems)

I have the same issue, the problem is that pagination Id attribute is not binded in dir-paginate directive, this one is taken statically
                 line:70 var rawId = tAttrs.paginationId || DEFAULT_ID;

Thanks for the pointer. I won't have time to write a patch until later in the week.

Okay, I've had time to look into this this morning. (Un)fortunately I cannot reproduce any error - it would really help to know what error your console gives, by the way.
To make a demo of the issue, try modifying the demo plunker (sorry I should have linked to this before) http://plnkr.co/edit/Wtkv71LIqUR4OhzhgpqL?p=preview
@jarvigames - the reason the id is not binded on that line is that this is the compile function, where we don't yet have access to a "scope" object with which to interpolate a value. A few lines down from there, within the link function you can see that we are now able to parse the literal string value of the pagination-id.
I've just double checked this is working okay with a couple of new tests, and as far as I can tell it is working ok. Again, if you are able to reproduce the error in a way I can take a look at, I'll do so.

Here you go with the plunker:
http://plnkr.co/edit/PyseR8qCfUkkjuHG6zya?p=preview
If I use the following expression:
 | itemsPerPage:eventsCtrl.eventsFilters.sharedTasksFilters.eventsPerPage
It does break, if I use some other expressions, like:
 | itemsPerPage:eventsCtrl.eventsPerPage
It doesn't

I suspect that the regexp var filterPattern = /\|\s*itemsPerPage\s*:\s*(.*\(\s*\w*\)|([^\)]*?(?=as))|[^\)]*)/;`` instead of var filterPattern = /|\sitemsPerPage\s:[^|)]*/;``` messed up something for my specific field names

@LeleDev Great, thanks for the plunker. Really weird issue. Hope to get some time tomorrow to fix.

Any news?

Not yet. Hopefully later this week. Since I have to work on this stuff out of work hours, it can be difficult to find the time.

Ok! ;)

Hi, you are totally correct that the regex was to blame. Specifically the part (?=as), which is there to match the "alias" syntax, but was also matching the string "as" in the word "sharedTasksFilters".
The fix was simply to make sure there is a space around the "as" in the regex. Pushing a fix to master now, and if you use the bower/npm version, I'll probably do a patch release today or tomorrow (depending on how many of the other issues I manage to get fixed).

Great!!


Met incomplete json while decompressing from SplittableBzip2ReadBuffer

Backend
CH (ClickHouse)
Bug description
query: d_7557_0.sql
related logs:
2024-10-28 18:24:49.284 <Information> FormatFile: Reading File path: hdfs://bigocluster/data/apps/imo_us/imo_data_logs_etl/data/imo_data_logs/Room.leave_room_event/day=2024-10-09/part-00000.bz2, format: kJson, range: 805306368-1073741824, partition_index: 1852, partition_values: [day=2024-10-09, ]
2024-10-28 18:24:49.381 <Debug> ReadBufferBuilder: File read start and end position adjusted from 805306368,1073741824 to 805306368,1073900813
org.apache.gluten.exception.GlutenException: org.apache.gluten.exception.GlutenException: Cannot parse JSON string: expected closing quote: (at row 2541277)

Spark version
None
Spark configurations
No response
System information
No response
Relevant logs
No response

Reason: The last line in current split spreads across the last 2 blocks, but we only disgards part of the last line in last block, another part of the last line is reserved and output to json reader, which is obviously an incomplete line.


Arrow Keys aren't working for GetInputDevices > IsKeyDown

Open HowTo Get Mouse Keyboard... helppatch
Change Space in the dropdown to any arrow key, like Up
Doesn't work

See #89


Skip delegate capture when doing LogLevel mapping for Serilog + NLog

System.Linq + delegate-capture generates allocation, and unnecessary overhead.
See #259 as example of code-change.
Btw. if performance is really important, then a switch-statement is much faster than an array-lookup.

As discussed this is going to require proper benchmarking before proceeding. In future remember to not to discuss on a already closed PR code changes, just open a issue so we can be on a common approach.

I will await your benchmarks then.

I will be benchmarking the following scenarios:

Delegate capture approach with Linq
foreach approach
ImmutableDictionary
Dictionary (not a fan of this one because by their nature they are mutable and code maintainers could mis-use in the future)

Please also add a simple switch on the enum-value.

Sure..

Might not be today with the benchmarks btw. Because we use Msbuild.Sdk.Extras just making some alterations to the BenchmarkDotNet project.

Both of those should be addressed in recent PR's.
Thanks snakefoot for your input.

Don't believe the int casting is required in this case. Since ImmutableDictionary does not use GetHashCode() for it's implementation, instead is implemented using a Avl tree.

Fixed by #263 and #262


[GDP] Create new feature flag for moving Grant Details from a modal to an independent page

Why is this issue important?
First step in the new Grant Details work
Current State
No intended behavior changes
Expected State
No intended behavior changes
Implementation Plan
No response
Relevant Code Snippets
No response

@adele-usdr could you please add the name of the feature flag for grant details here: https://www.notion.so/usdr/Feature-flags-63d7131522d0446288e081b4b0493b6a
CC @jsandlund

@adele-usdr could you please add the name of the feature flag for grant details here: https://www.notion.so/usdr/Feature-flags-63d7131522d0446288e081b4b0493b6a
CC @jsandlund

done!

confirmed that feature flag is working in staging and prod, closing issue


Enable source link support

See https://github.com/GoogleCloudPlatform/google-cloud-dotnet/issues/923 for how this was done in the Google Cloud .NET repo.

Fixed in #1206


About the pre-trained model

Could you please release the pre-trained ViT-S  based on MAE?

I'm sorry for not getting back to you sooner, since I left the company, it has been hard for me to access the checkpoint on their service.


KSG bangla

[READ] Guidelines
When filing a feature request please make sure the issue title starts with "FR:".
A good feature request ideally

is either immediately obvious (i.e. "Add Sign in with Apple support"), or
starts with a use case that is not achievable with the existing Firebase API and
includes an API proposal that would make the use case possible. The proposed API
change does not need to be very specific.

Once you've read this section, please delete it and fill out the rest of the template.
Feature proposal

Firebase Component: _____ (Auth, Core, Database, Firestore, Messaging, Storage, etc)

Describe your use case and/or feature request here.

@rohanmoni7 This FR looks empty, could you please fill in the request?

Close for now as this issue seems invalid.


[feat] Add test API methods for skipping tests

This PR adds two RegressionTest methods that allow users to skip tests dynamically:

skip(msg=None): Skip test uncondintionally.
skip_if(cond, msg=None): Skip test if cond is true.

A test can be skipped anywhere during its lifetime, except during the cleanup stage.
NOTE: If a test is skipped after its stage directory is created, it will not be cleaned up.
Fixes #1474.

Codecov Report

Merging #1875 (5a46cde) into master (1c9b188) will increase coverage by 0.08%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1875      +/-   ##
==========================================
+ Coverage   87.83%   87.92%   +0.08%
==========================================
  Files          49       49
  Lines        8395     8448      +53
==========================================
+ Hits         7374     7428      +54
+ Misses       1021     1020       -1

Impacted Files
Coverage Δ

reframe/core/decorators.py
97.05% <100.00%> (-0.03%)
:arrow_down:

reframe/core/exceptions.py
94.24% <100.00%> (+0.04%)
:arrow_up:

reframe/core/pipeline.py
92.03% <100.00%> (+0.06%)
:arrow_up:

reframe/frontend/executors/__init__.py
98.30% <100.00%> (+0.09%)
:arrow_up:

reframe/frontend/executors/policies.py
99.69% <100.00%> (+0.02%)
:arrow_up:

reframe/frontend/statistics.py
95.45% <100.00%> (+0.14%)
:arrow_up:

reframe/frontend/printer.py
95.65% <0.00%> (+2.17%)
:arrow_up:

Continue to review full report at Codecov.

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


feat: 🎸 DICOM SR STOW on MeasurementAPI

User cases
As an user:

I should be able to add measurements and store as DICOM Structured Report
I should see a visual feedback after saving with success
I should see a visual feedback after saving with error (e.g. saving without any measurement)
I should be able to retrieve saved measurements from DICOM Structured Report
I should be able to see the retrieved measurements into the measurement table
I should be able to see the retrieved measurements drawn into the viewport
I should be able to see warnings on measurements of tools that are not supported by DICOMSR
I should be able to refresh the page and get all measurements saved restored
If I am not using a server type DICOMWeb, I shoulod not be able to see the save button neither retrieve measurements saved on DICOM Structured Report

Limitations

As an user, I can only save/restore measurements of LenghTool as a limitation on DCMJS, all other tools are going to get a warning into the measurement table
As an user, I can not save an empty list of measurements, as a limitation on DCMJS, I should see a error feedback
As an user, I can only use this feature if my server is a DICOMWeb server.

Screenshot

Closes: #758

Generally seems to work. I observed three obstacles though:

Deleting the last remaining measurement causes errors
Not all measurement types are being supported (by dcmjs library)
Seems to generate a new SR for each measurement instead of one SR for all measurements

1. Deleting the last remaining measurement causes errors
There seem to be some problems when deleting the only remaining measurement using the context menu (right mouse click on measurement).
2. Not all measurement types are being supported (by dcmjs library)
Furthermore, as already mentioned by #988 it does not support saving measurements such as ArrowAnnotate or angle but throws an error:
Unhandled Promise Rejection: Error: TypeError: undefined is not an object (evaluating 'toolClass.getTID300RepresentationArguments')
This is mainly due to the fact that the dcmjs library only supports Length, Polyline and Bidirectional.   Is there a way to edit the dcmjs library to also accept other types of measurements. I would like to prevent adding a database to store some measurements there, and others using the SR documents.  It would be much better to deal with them in a unified manner.
3. Seems to generate a new SR for each measurement instead of one SR for all measurements
During my tests I have added quite some measurements. Each measurement added seems to have generated a separate SR document. These are not being deleted when you remove the measurements. Hence, I end up with a series consisting of about 200 SR documents (which I cannot delete in the client itself).
Currently, point 2. seems to the be the most important issue to be addressed. I would be happy to support you.

@tiimoS, number two is interesting. I'm sure we intend to eventually cover the tools from cornerstone tool's we include, but I'm not sure of the progress, or how to extend dcmjs to support other tools. @JamesAPetts would probably be the best person to weigh in at this time.

@JamesAPetts would probably be the best person to weigh in at this time.

Its simply an issue of adding definitions for how we translate the current measurements to/from SR. The SR implementation in dcmjs is certainly not exhaustive yet, but as Danny says, we will make sure to cover the core tools in due course in dcmjs.

I would be happy to support you.

If you want to help the effort by working on support for any other cornerstone SR adapters in dcmjs I'll be happy to review a PR!

Steps to recreate:

Draw X annotations on image
Expand Measurements Panel
Save
Full page refresh
Only first measurement shows (no value)
Interacting with the measurements adds the value, and next saved measurements is rendered
Repeat until all show

@galelis can you resolve conflicts? Are you waiting on updated reviews from @JamesAPetts and myself?

Happy to review this one conflicts are resolved.

This looks good to me. Other than my minor comments, my only last request is that if a user tries to save any measurements which currently aren't supported by dcmjs, a cleaner error is thrown. Something like "XYZ measurements aren't supported at this time". Also the presence of an ellipse (for example) anywhere in the toolState shouldn't prevent the saving of supported measurements (i.e. just length at this time).

I agree with you, but this would be a dcmJS feedback. Mostly beucase only dcmJS knows which tool it supports, same for saving an empty SR, it breaks and does not give back a good feedback about it.
We can create issues/feature-requests on dcmJS
What you think?

We can create issues/feature-requests on dcmJS
What you think?

Can you suggest a better API for dcmjs could declare which conversion types are supported?  Currently you could do toolName in dcmjs.adapters.Cornerstone and know whether or not it's supported.  Or are you saying something lower level breaks?

I agree with you, but this would be a dcmJS feedback. Mostly becuause only dcmJS knows which tool it supports

Either way we go about this, I don't think we can merge this until there are either useful error messages, or only the lengths are consumed.
There are a few ways we could go about this at this time:

Filter the toolState so we are only passing the length measurements to dcmjs for now, expand this filter as we get more support in dcmjs. (quick)
Add a filter to dcmjs. (better)

At some level we need to do filtering anyway, as we could always have plugin anotation tools that could have arbitrary toolData shape. It makes sense to do it in dcmjs if you'd like to spike it.
I think you'll just need to return here if toolClass is undefined. You shouldn't have to change too much. Ping Steve or I when you want a review and I'm sure one of us will be able to check and merge it.

same for saving an empty SR, it breaks and does not give back a good feedback about it.

If you look here, this throws an error message : "No measurements provided.".
So you can catch this message and use the error message to populate the UI:
// Example:

try {
  MeasurementReport.generateReport(toolState, cornerstone.metaData);
 // Other code
} catch (error) {
 const errorMessage = error.message;
 // Do something with this message.
}

@galelis, do you have clear enough direction from James on this? What can we do to help push this PR forward?

@galelis, do you have clear enough direction from James on this? What can we do to help push this PR forward?

Yes Danny, working to get the errors better logged and filtering the tools that we support on dcmjs.

I have updated the error treatment.

handle no measurements provided
show a different message when we have unsupported tools in the measurement table.
log in the console a more detailed statuses

Most CI is failing here:

OHIF Study Viewer Page "before all" hook for "checks if series thumbnails are being displayed":
Uncaught ReferenceError: withSnackbar is not defined

I'm interested in testing out this MeasurementAPI, can someone point me to any details on how to use it, please? I'm interested in using it mostly with Bidirectional Tool, and probably not with a Dicomweb server (I'm thinking storing in json somewhere maybe). With some guidance on getting started, I may be able to design an alternative that works for all tools.  Alternatively, I could look at dcmjs and expanding it's capability to store data from other tools, unless that's already been ruled out?

Hi -
The plan is definitely to expand dcmjs to handle all the measurement types.  We plan to follow the pattern put forth in the white paper linked below.  Any help on that would be much appreciated.  It will be great once it's implemented but we also understand some one-off json is much more convenient sometimes.
https://docs.google.com/document/d/1bR6m7foTCzofoZKeIRN5YreBrkjgMcBfNA7r9wXEGR4/edit#heading=h.fgs65rsvrdy3
You might also be interested in this draft standard for simplifying the creation of SR documents:
ftp://medical.nema.org/medical/dicom/supps/Frozen/sup219_fz_JSONSR.pdf

@sctkndl Hi,
Working on DCMJS and adding support for more tools would be fantastic and for that we have another issue created and a big discussion happening around it. #1215
If your issue is just to store measurements on OHIF, we use cornerstoneTools and you can access all measurements by doing grouped by ImageId and MeasurementTool:
cornerstoneTools.globalImageIdSpecificToolStateManager.toolState;
If you want to work with the measurementAPI together with the MeasurementTable, on OHIF v1.x we had an implementation that we used to export measurementAPI data into a CSV file. You can see the implementation here:
https://github.com/OHIF/Viewers/blob/v1.x/Packages/ohif-measurements/client/reports/reportMeasurementData.js


databricks : FetchError due to Premature close!

not able to run more than 5 queries concurrently with single connection with databricks as maxSockets restricted to 5 .
encountered with below error:
FetchError: Invalid response body while trying to fetch https://adb-3873161049304136.16.azuredatabricks.net/sql/1.0/warehouses/f7742e7aa96f91a6: Premature close","stack":""}

Hi @kumarav16! Thank you for reporting this. Do you have anything else that may help with debugging (e.g. stack traces or other additional output, or maybe you managed to find a workaround, or even patch the library and it helped)? Thank you!

Thanks for the quick response @kravets-levko !

Facing the same issue
LanguageWorkerConsoleLog[error] Worker uncaught exception (learn more: https://go.microsoft.com/fwlink/?linkid=2097909 ): FetchError: Invalid response body while trying to fetch https://adb-xxxxxx.10.azuredatabricks.net/sql/1.0/warehouses/xxxxxx: Premature close at PassThrough. (C:\home\site\wwwroot\node_modules\node-fetch\lib\index.js:217:52) at PassThrough.emit (node:events:513:28) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21)


Re-use working tunnel for kubectl

SSH tunnel will now also attempt to use the server address in the kubeconfig. If it fails it wll create a new tunnel.
fixes #728
Re-use existing SSH tunnels to Kubernetes API server if they exist.

/assign @simonswine

/lgtm


TypeScript rules for Webpack are ignored when building Angular

Describe the bug
If you have a rule { test: '/\.ts$/ for example, the corresponding loaders will run, but they have no impact on the output of what Angular builds.
To Reproduce
One way to reproduce this is to use babel-loader with TypeScript to make some meaningful update to a TypeScript file in the Angular source.
// test-source.ts
export const NAME = process.env.NAME;

Then for your webpack configuration, you can do something like:
// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: {
          loader: 'babel-loader',
          options: {
            babelrc: false,
            presets: [
              '@babel/preset-env',
              '@babel/preset-typescript',
            ],
            plugins: [
              'babel-plugin-static-fs',
              ['@babel/plugin-proposal-decorators', { legacy: true }],
              '@babel/plugin-proposal-class-properties',
            ],
          },
        },
      },
    ],
  },
};

You can see an example here: https://github.com/ajcrites/rxjs-visualize/tree/v7-upgrade -- running ng build or ng serve won't actually replace fs.readFileSync even though running babel directly on the TypeScript files works.
Expected behavior
The TypeScript files in the source should be transformed by babel-loader before Angular compilation completes
Builder:

custom-webpack

Libraries

angular-devkit/build-angular: 0.11

You can get this to work via mergeStrategies: { "module": "prepend" }


Hi, i have some idea's :

Hi, i have some idea's :

Adding Shadow color (#ffc83d) same as the light theme toggle button :-

changing the scroll-bar / scroll-bar thumb :-
Light- theme :

Dark- theme :

And some more , which i am designing in figma and adobe xd, then testing in the code
Originally posted by @Rudresh-pandey in https://github.com/aditya-singh9/kekfinder/issues/21#issuecomment-1264218678

hello , you can assign it to me


Licence ? (cool game btw!)

Hi Danprince,
I think you have a very cool game here :).  (Just got through the second time - first time I won due to a bug, I was killed but continued to play :P).
Anyway, I wanted to know what licence / if you are offering this under a certain licence? I think this is a game worth keeping around, maybe changing and adding to! (And a licence would be necessary to do that with clear terms).
Thanks for your time,
Sean
P.S. Did you ever happen to play the Stronghold "demo"?

Thanks Sean. Added the license in https://github.com/danprince/js13k-2022/commit/1986b980daacbaf64d5101f9ad47f20edd9170cb.

Cool, thank you very much :) !


ddc should provide a top level method to invoke main on a library using its uri

@vsmenon @sigmundch
Today you have to do something like this to start a ddc app:
require(["web__main", "dart_sdk"], function(web__main, dart_sdk) {
  // Required setup code before calling main
  dart_sdk._isolate_helper.startRootIsolate(() => {}, []);
  dart_sdk._debugger.registerDevtoolsFormatter();
  if (window.\$dartStackTraceUtility && !window.\$dartStackTraceUtility.ready) {
    window.\$dartStackTraceUtility.ready = true;
    let dart = dart_sdk.dart;
    window.\$dartStackTraceUtility.setSourceMapProvider(
      function(url) {
        var module = window.\$dartLoader.urlToModuleId.get(url);
        if (!module) return null;
        return dart.getSourceMap(module);
      });
  }
  window.postMessage({ type: "DDC_STATE_CHANGE", state: "start" }, "*");

  // Actually call main, using {moduleName}.{libraryName}.main().
  web__main.main.main();
});
})();

I myself have duplicated this code in at least 3 places, and they all rely on various things that aren't guaranteed to be stable. In addition to that any time it changes we have to update it all 3 places.
I propose a new top level js method startLibrary or similar. It would take two arguments, a module object and the uri for the library in that module to call main on, roughly:
function bootstrapLibrary(module, libraryUri) {
  // Add magic bootstrapping code here
  ...
  // Actually invoke main
  var libraryName = computeLibraryName(libraryUri);
  module[libraryName].main();
}

It would be used like this:
require(["main"], function(main) {
  bootstrapLibrary(main, "web/main.dart");
})();

This would mean that users of ddc no longer have to rely on the library naming scheme for ddc (its handled internally with computeLibraryName), and they don't have to know all the magic incantations to bootstrap apps either.

@jmesserly

I'm working on this.
@jakemac53 how do you feel about something like this:
// Assume main module file was compiled as `index.js`
//
// The entry point library can be provided to DDC via the command line.
// By default DDC will pick the first `main()` from the libraries it was
// asked to compile.

// ES6
import index from "index";
index.main();

// AMD
require(["index"], function(index) {
  index.main();
})();

// Alternatively, if I want to call a particular `main()` method in a library,
// rather than the one DDC picked.
import index from "index";
let web_main = index["web/main.dart"];
web_main.main();

// Notes:
// - web_main can be used to access anything in that library
// - DDC will start the root isolate in `main()` if needed.

The idea is to have a default main directly on the module. I think that'd be super convenient, as it would free the user from needing to know the correctly library URI at runtime. Calls via the library URI would still be possible.
Some of this is implemented in CL 42885 (removes library-root flag) some of it I'm still working on and will upload to that CL once ready.

This sounds great to me!


CheckAll/UncheckAll option only works when clicking on the actual text, not on the list item.

This should work just like the normal items, when you click on the list item, so next to the actual 'check all' text, then it also should do the check all function.

I cannot reproduce this, the click event is on the anchor, which will cover the width of the item:


memory_bram: Fix multiclock make_transp

See discussion in #846

Will not make transparent logic if read & write clock domains differ
When both make_outreg and make_transp are in affect, register is put on the address port (and data left unregistered), and transparent bypass logic is not created.

yosys-tests PR will be arriving shortly


How to create a custom route that doesn't care of query params

I've test these 3 ways
"/test1": "/result"
"/test2\\?*": "/result",
"/test3(\?.*)?": "/result"

/test1 works but not /test1?xxxxx
/test2 didn't works but /test2?xxxxx works
/test3 and /test3?xxxxx works together, but it is a mess to write
I don't understand why we're forced to do it, while "/test3/:id": "/result?:id" works in all cases
Any idea ?

You can use middleware.
const jsonServer = require('json-server');
const app = jsonServer.create();
const router = jsonServer.router(config.filePath);  // db.json
app.use(jsonServer.defaults());
app.use((req, res, next) => {
    req.query = {};
    next();
});
app.use(router);
app.listen(config.port, () => {
  console.log(`JSON Server is running on port: ${config.port}`);
});

@paztis did you find a way around this? Your test2 and test3 examples fail with an Uncaught exception and deleting the query params in middleware has no effect in 404 being returned it route includes query params

For now in my custom middleware I'm stripping params before they get to json-server:
req.url = req.url.split('?')[0]

Why are we forced to add custom middleware for so basic things ? Why the défaut management is not correctly supporting it ?


On some Computers show Direct messages crash mikutter.

Hello
I have the following Problem on my Laptop.
If I try to show Direct Messages by doubleclicking on the User in the list mikutter crashes.
mikutter --debug
/usr/share/mikutter/core/plugin/user_detail_view/user_detail_view.rb:277:in `profile_head': uninitialized constant Pango::Weight (NameError)
Did you mean?  Pango::WEIGHT_BOLD
        from /usr/share/mikutter/core/plugin/user_detail_view/user_detail_view.rb:49:in `show_profile'
        from /usr/share/mikutter/core/plugin/user_detail_view/user_detail_view.rb:9:in `block (2 levels) in <top (required)>'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/listener.rb:21:in `call'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/event.rb:95:in `block (2 levels) in call_all_listeners'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/event.rb:94:in `each'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/event.rb:94:in `block in call_all_listeners'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/event.rb:93:in `catch'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/event.rb:93:in `call_all_listeners'
        from /usr/lib/ruby/vendor_ruby/pluggaloid/event.rb:39:in `block in call'
        from /usr/lib/ruby/vendor_ruby/delayer/procedure.rb:24:in `run'
        from /usr/lib/ruby/vendor_ruby/delayer/extend.rb:58:in `run_once'
        from /usr/lib/ruby/vendor_ruby/delayer/extend.rb:30:in `run'
        from /usr/lib/ruby/vendor_ruby/delayer.rb:43:in `method_missing'
        from /usr/share/mikutter/core/plugin/gtk/delayer.rb:10:in `block in boot'
        from /usr/share/mikutter/core/plugin/gtk/mainloop.rb:10:in `main'
        from /usr/share/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop'
        from /usr/share/mikutter/mikutter.rb:68:in `boot!'
        from /usr/share/mikutter/mikutter.rb:97:in `<main>'

mikutter -v
mikutter 3.6.0-develop
How can I make it work?

What is the version of your using pango gem?
Perhaps, this bug caused by dependent gems.
Recently, pango gem had been migrated into gobject-introspection based binding from original C extension.

gem list | grep "^pango"
pango (3.1.6, 3.1.1, 3.1.0, 3.0.9, 3.0.8)

mikutter develop branch assumes to use pango 3.1.6.
irb> require "pango"
# => true
irb> [Pango::Version::MAJOR, Pango::Version::MINOR, Pango::Version::MICRO]

will return [3, 1, 6] ?

No
irb> require "pango"
=> true
irb> [Pango::Version::MAJOR, Pango::Version::MINOR, Pango::Version::MICRO]
Returns nothing.

Umm, what Pango::Version::STRING returns?

The Same

Umm..., it's curious.
Does only using pango 3.1.6 solve this issue?

I have tried
sudo -H gem uninstall pango
sudo -H gem install pango
now
gem list | grep "^pango" says only 3.1.6
killall mikutter
mikutter
But the Problem prsists.
irb still the same too.
What makes it more curious is that it works on other PC`s.

What is the following command output?
$  pkg-config --modversion pango

If this command outputs the following string, it might have to install libpango.
Package pango was not found in the pkg-config search path.
Perhaps you should add the directory containing `pango.pc'
to the PKG_CONFIG_PATH environment variable
No package 'pango' found

FYI: In my environment, I got the following outputs:
% pkg-config --modversion pango
1.40.6

% bundle exec irb
irb(main):001:0> require "pango"
=> true
irb(main):002:0> Pango::Version::STRING
=> "1.40.6"
irb(main):003:0>

pkg-config --modversion pango
1.38.1

bundle exec irb
Could not locate Gemfile or .bundle/ directory

Umm..., how about the following output?
$ ls /usr/local/lib/girepository-1.0/ | grep Pango
$ ls /usr/lib/girepository-1.0/ | grep Pango

My environment output is:
% ls /usr/local/lib/girepository-1.0/ | grep Pango
CoglPango-1.0.typelib
CoglPango-2.0.typelib
Pango-1.0.typelib
PangoCairo-1.0.typelib
PangoFT2-1.0.typelib

ls /usr/local/lib/girepository-1.0/ | grep Pango
There is no directory "girepository-1.0"
ls /usr/lib/girepository-1.0/ | grep Pango
nothing

Oh my god! :cold_sweat:
pango 3.1.6 gem should work with gir1.2-pango-1.0 like package.
Could you install gobject-introspection package for pango?

Pango-1.0.typelib
PangoCairo-1.0.typelib
PangoFT2-1.0.typelib
PangoXft-1.0.typelib

Umm..., it seems that gi-based pango cannot handle gobject-introspection definition file for pango.
But I have no idea to fix this issue for now. :<

It seems that you're using old pango gem. I think that the following command doesn't output [3, 1, 6]:
% ruby -r pango -e 'p GLib::BINDING_VERSION'

I think that your system has ruby-pango apt package.

[2, 2, 5]

I have purged ruby-pango
now it shows
[3, 1, 6]
But now I cannot start mikutter anymore it says
/var/lib/gems/2.3.0/gems/memoist-0.16.0/lib/memoist.rb:142:in `block (2 levels) in memoize': undefined local variable or method `memoized_methods' for ConfigLoader:Module (NameError)
Did you mean?  unmemoized_method
        from /var/lib/gems/2.3.0/gems/memoist-0.16.0/lib/memoist.rb:56:in `class_eval'
        from /var/lib/gems/2.3.0/gems/memoist-0.16.0/lib/memoist.rb:56:in `memoist_eval'
        from /var/lib/gems/2.3.0/gems/memoist-0.16.0/lib/memoist.rb:132:in `block in memoize'
        from /var/lib/gems/2.3.0/gems/memoist-0.16.0/lib/memoist.rb:128:in `each'
        from /var/lib/gems/2.3.0/gems/memoist-0.16.0/lib/memoist.rb:128:in `memoize'
        from /root/mikutter/core/configloader.rb:116:in `<module:ConfigLoader>'
        from /root/mikutter/core/configloader.rb:20:in `<top (required)>'
        from /root/mikutter/core/miquire.rb:98:in `require'
        from /root/mikutter/core/miquire.rb:98:in `miquire_original_require'
        from /root/mikutter/core/miquire.rb:95:in `file_or_directory_require'
        from /root/mikutter/core/miquire.rb:76:in `block in miquire'
        from /root/mikutter/core/miquire.rb:75:in `each'
        from /root/mikutter/core/miquire.rb:75:in `miquire'
        from /root/mikutter/core/miquire.rb:18:in `miquire'
        from /root/mikutter/core/service.rb:5:in `<top (required)>'
        from /root/mikutter/core/miquire.rb:98:in `require'
        from /root/mikutter/core/miquire.rb:98:in `miquire_original_require'
        from /root/mikutter/core/miquire.rb:95:in `file_or_directory_require'
        from /root/mikutter/core/miquire.rb:76:in `block in miquire'
        from /root/mikutter/core/miquire.rb:75:in `each'
        from /root/mikutter/core/miquire.rb:75:in `miquire'
        from /root/mikutter/core/miquire.rb:18:in `miquire'
        from ./mikutter.rb:40:in `<main>'

This is an another issue for memoist gem.
Using topic/1051-memoist-1.16 branch or remove memoist 1.16 and installing memoist 1.15 should solve above issue.
Or you can cheery-pick https://dev.mikutter.hachune.net/projects/mikutter/repository/revisions/a40cc99a89acf115443136e60bc9d119acb3b4e1 commit into a branch which is derived from develop.

OK This works, Thanks.


add support to calculate hash of first or last nkb of the file

how about adding support to calculate hash of specific part of the file?
Something like hash of first or last 64 KB of a file, can be useful when using API like SubDB where they require hash of first and last 64 KB of a file.

Can you show an example of the API would look like?

How about something like this:
hasha.fromFile('unicorn.png', {algorithm: 'md5', calc: '64'}).then(function (hash) {
});

here calc: 'n' means first n KB, to get last n KB's hash we can use calc: -n

I've considered this, but decided not to add it here. I've never needed something like this. You can easily achieve it by using read-chunk:
var readChunk = require('read-chunk');
var hasha = require('hasha');

hash(readChunk.sync('unicorn.png', 0, 64));


Leadspace

Related Ticket(s)
https://github.com/carbon-design-system/ibm-dotcom-library/issues/1115
Description
Consolidates LeadSpace and LeadSpace centered into a single component

@andysherman2121 Has LeadSpaceCentered been deleted as part of this PR?
@annawen1 can you take a look at this PR when you get a chance?

@andysherman2121 didn't you resolve this already?

@andysherman2121 didn't you resolve this already?

yupp, it's fixed in the other PR that's upcoming

@annawen1 @andysherman2121 the README needs updating for the Leadspace (update variations, remove the feature flag, etc).
I also noticed the latest deploy preview isn't rendering the ButtonGroup.


IOS 13 breaking change with input boxes

IOS 13 new update no longer allows you to edit an input box, or element with an input box in it, without disabling the input box. You can still drag the input box, but it is no longer editable. Draggable text boxes are fundamental to our product, so this is a major breaking change across all IOS devices that have upgraded. Could you please investigate a fix?
Thank you!

Hi - this is not a common use case. I think you may be on your own to
investigate it. This is free software and we do not provide support.
On Mon, Sep 23, 2019, 1:09 AM mikegamaroff<EMAIL_ADDRESS>wrote:

IOS 13 new update no longer allows you to edit an input box, or element
with an input box in it, without disabling the input box. You can still
drag the input box, but it is no longer editable. Draggable text boxes are
fundamental to our product, so this is a major breaking change across all
IOS devices that have upgraded. Could you please investigate a fix?
Thank you!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mzabriskie/react-draggable/issues/432?email_source=notifications&email_token=AAJEKP743ZEGXP2PVDYUKOLQLBFPRA5CNFSM4IZGNLP2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HM6BSZQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJEKP6BAUZPKZJ4IOE3EQTQLBFPRANCNFSM4IZGNLPQ
.

This may have been fixed with #470 which was released at Draggable 4.3.0. Please give it a shot.


Fix explicit assignment to zero offset in python 3.9

Description
Python 3.9 doesn't use the deprecated ast.Index node anymore leading to errors when using assignments like
field[0, 0, 0] = 1

Requirements
Before submitting this PR, please make sure:

[ ] The code builds cleanly without new errors or warnings
[ ] The code passes all the existing tests
[x] If this PR adds a new feature, new tests have been added to test these
new features
[x] All relevant documentation has been updated or added

Additionally, if this PR contains code authored by new contributors:

[x] All the authors are covered by a valid contributor assignment agreement,
signed by the employer if needed, provided to ETH Zurich
[ ] The names of all the new contributors have been added to an updated
version of the AUTHORS.rst file included in the PR

bors try

Blocked by unstructured tests failing on 3.9. Will be fixed as soon as icon_hackathon_cleanup is merged.

bors try

bors try

tests can be made to pass with
diff --git a/tests/eve_tests/unit_tests/test_iterators.py b/tests/eve_tests/unit_tests/test_iterators.py
index 54e58f97..599b987e 100644
--- a/tests/eve_tests/unit_tests/test_iterators.py
+++ b/tests/eve_tests/unit_tests/test_iterators.py
@@ -30,6 +30,7 @@ class Tree(eve.Node):

 def _make_tree(values_list):
     children = [_make_tree(item) if isinstance(item, list) else item for item in values_list]
+    Tree.update_forward_refs()
     return Tree(children=children)

that doesn't seem like neither a nice solution nor a py39 issue though. @egparedes  do you understand what's going on?

bors try

bors try


Move the nodeset generation out of the app

remove need for bluepy
add tests; output is the same as when using bluepy

I further tested on the proj83/circuits/Bio_M/20200805/ circuit, which has targets.yaml:
targets:
  atlas_based:
    S1HL_Column: central_columns/S1HL_Column
    S1FL_Column: central_columns/S1FL_Column
    S1Sh_Column: central_columns/S1Sh_Column
    S1Tr_Column: central_columns/S1Tr_Column
    S1ULp_Column: central_columns/S1ULp_Column
    S1J_Column: central_columns/S1J_Column
    S1DZ_Column: central_columns/S1DZ_Column
    S1DZO_Column: central_columns/S1DZO_Column
    central_column_4_region_700um: central_columns/central_column_4_region_700um
  query_based:
    Layer1: {'layer': 1}
    Layer2: {'layer': 2}
    Layer3: {'layer': 3}
    Layer4: {'layer': 4}
    Layer5: {'layer': 5}
    Layer6: {'layer': 6}

And the outputs where the same as before.


Report non-XML formated error details

This avoids hiding further error context in the case when it is coming from a layer, which is not necessarily using the S3 XML error format.
Note: The separate commit also ensures an unrelated test case is called

@simonswine Seems like some formatting is required. Otherwise LGTM.

@simonswine Seems like some formatting is required. Otherwise LGTM.

should be good now


Added SelectionSort using Recursion.cpp

This algo implements selection sort using recursion.

Please follow the contributing guide


Unable to deploy managed private endpoints

I don't think this is a bug but I cannot find any documentation on how to do it and I am getting an error:
##[error]ADFT0010: Wrong path defined in config for object(path): managedPrivateEndpoint.pep-adf-dev-syn-dev(properties.name)
To Reproduce
In order to deploy the managed private endpoints that go into Synapse (adf->synapse with private access)
I change it in the config file like this:
type,name,path,value
managedPrivateEndpoint,"pep-adf-dev-syn-dev-sql","$.name", "pep-adf-uat-syn-uat-sql"
managedPrivateEndpoint,"pep-adf-dev-syn-dev-sql","$.properties", "{'privateLinkResourceId': '/subscriptions/guid/resourceGroups/rg-uat-001/providers/Microsoft.Synapse/workspaces/syn-uat-001','groupId': 'sql','fqdns': ['syn-uat.sql.azuresynapse.net']}"

This discussion can help: https://github.com/Azure-Player/azure.datafactory.tools/discussions/298


Update main.yml

@ritamganguli please close this PR as this cant be merged, you are exposing the username and accesskey in the workflow file
CC @abdullah-lt


[Feature] Loading

I have added loading and loadingText props for handle asynchronous case, such as AJAX requesting.
If you have any feedback or suggestions, please reply on this PR. 😁

Pull Request Test Coverage Report for Build 73

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 69.388%

Totals

Change from base Build 38:
0.0%

Covered Lines:
47

Relevant Lines:
68

💛  - Coveralls

Hey all, I'm looking to revive this project, but I haven't been able to track down the author. So, I've forked it over to here: https://github.com/mattzollinhofer/vue-typeahead-bootstrap.
I'll try to take a look at this PR soon to see if it can be merged. In the meantime, chime in if this is still an issue for you.

Hi, @mattzollinhofer.
It was amazing to hear that this project will be revived, I have used for many projects. 😁
I will fix or update this issue as you want.
If you have any feedback or suggestion, please let me know. 😎


Upgrade com.google.apis:google-api-services-drive from v3-rev20240123…

…-2.0.0 to v3-rev20240327-2.0.0
Description

Target

[x] I checked that the commit is targeting the correct branch (note that Camel 3 uses camel-3.x, whereas Camel 4 uses the main branch)

Tracking

[ ] If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

[x] I checked that each commit in the pull request has a meaningful subject line and body.

[x] I have run mvn clean install -DskipTests locally and I have committed all auto-generated changes

/component-test google


toc permalinks icon - option to add a different icon

Looking at different internet sites like Wikipedia, Readthedocs, Github, etc.. the paragraph icon is no longer the standard for permalinks.
Either the "§" sign is used (wikipedia), or a link icon is used (Readthedocs & Github).

Is it possible to have a configuration option to change the paragraph icon to a different icon?
Is it possible to have configuration option to put the permalink in the beginning of the header, and not in the end? Again, the standard in both Github and Wikipedia.

Thanks.

I don't think the current extension allows that.  But the truth is, there is no standard for permalinks.  Some things catch on with certain groups and other things catch on with other groups.  I think this extension's implementation follows Python's documentation convention https://docs.python.org/3/whatsnew/3.4.html. I think it served the author's purpose as that was it's intent.
I think allowing the configuration of the link icon would be a good addition, but I don't know if the author is going to want to implement a whole new variation putting the link in front, but maybe.
I say, if you want something radically different, you can implement your own.  I have done so myself here: https://github.com/facelessuser/pymdown-extensions/blob/master/pymdownx/headeranchor.py.  This extension puts anchor links before headers like Github does (using the method that they used at the time of creating the extension; Github can't seem to stop tweaking their CSS, so it may not be exactly the same now, but it works the same).  Anyways, so it just generally formats the link header, and everything is aligned and styled via CSS. Documentation for the extension is here and the documentation is  generated with the extension mentioned: http://facelessuser.github.io/PyMdown/Extensions/HeaderAnchor.html.  The is currently compliant with changes made in 2.6.0 of Python Markdown.

As the documentation states regarding the 'permalink' option:

When set to True the paragraph symbol (¶ or “¶”) is used as the link text. When set to a string, the provided string is used as the link text.

Pay special attention to the second sentence. You can pass in whatever string you want and it will be used as the label. Therefore, you could pass in '§' if you wanted "§". Or if you wanted an icon like GitHub, pass in the appropriate character from your icon font of choice.
As far as the ability to place the link before the header, I'd prefer to avoid feature creep. As other third-party extensions exist that offer that feature, I see no need to add it here.

Thx,
I think that for future references, the documentation would be better if you give the examples you gave me:
you could pass in '§' if you wanted "§". Or if you wanted an icon like GitHub, pass in the appropriate character from your icon font of choice.


3.11.4

Native build like 3.12.2
Cross compilation add protoc native-build

https://github.com/mesonbuild/meson/issues/1531 is relevant.

Sorry for the lateness of the reply.
Any particular reason to add an older version when a wrap for 3.12.2 exists already? Why not add protoc-native and protoc_gen to that instead?

Sorry for the lateness of the reply.
Any particular reason to add an older version when a wrap for 3.12.2 exists already? Why not add protoc-native and protoc_gen to that instead?

The only difference is version. It's ok to use 3.12.2. I will to add these features to 3.12.2.


[4.0.0-beta.6] Multiple ion-select components incorrectly displayed

When I have multiple ion-select components on a page, for example:
<div>
    <ion-select interface="action-sheet" placeholder="Choose option A">
        <ion-select-option [value]="A1">A1</ion-select-option>
        <ion-select-option [value]="A2">A2</ion-select-option>
    </ion-select>
    <ion-select interface="action-sheet" placeholder="Choose option B">
        <ion-select-option [value]="B1">B1</ion-select-option>
        <ion-select-option [value]="B2">B2</ion-select-option>
    </ion-select>
</div>

and I click on either one of them, the last ion-select (in this case option B)  is always opened; so I cannot set a value for option A.
This happens with a interface types (alert, popover and action sheet).

This can be fixed by wrapping each ion-select in an ion-item.
Is this a requirement for ion-select?

I have the same issue. While checking the stylesheet I noticed that if you change the style of button.select-cover position from absolute to relative, everything works exactly as intended.
However, as this is an inherited style, I haven't yet found a way to change it in the shadow DOM.
Please let me know if you come up with an alternate solution!


how to set cache_size for every connection in connection pool?

How to set cache_size for  every connection in the connection pool while using database/sql to Open the sqlite?
Currently, below is the way I use the sqlite driver, and set connection size to 20.
db, err = sql.Open("sqlite3", "file:test.db")
db.SetMaxOpenConns(20)
db.Exec("PRAGMA cache_size = 4000")

Is that effective to exec "PRAGMA cache_size = 4000" once on initializing ?

What you have right now will only issue the PRAGMA on one of the 20 connections. Instead, you can register a custom driver with a ConnectHook to issue the PRAGMA. That will make sure it happens every time the standard library opens a new connection in its pool.

@rittneje Sorry, I'm not very understand for how to

register a custom driver

Can you explain it more clear or provide a piece of code ?

One way to do it:
func init() {
    sql.Register("sqlite3_cache_size", &sqlite3.SQLiteDriver{
        ConnectHook: func(c *sqlite3.SQLiteConn) error {
            _, err := c.Exec("PRAGMA cache_size = 4000", nil)
            return err
        }
    })
}

...

db, err := sql.Open("sqlite3_cache_size", "file:test.db")
...

It helped, Thanks : )


⚠ Redacted has degraded performance

In 5312929, Redacted ($RED) experienced degraded performance:

HTTP code: 200
Response time: 4747 ms

Resolved: Redacted performance has improved in f1e2d5c.


Review how node modules are kept up-to-date

What
We currently have the node modules below as dependencies in package.json that are not being upgraded when releasing the publishing components gem.

Node Module
Current version
After running yarn upgrade
Latest version
comments

axe-core
3.5.4 (2020-05-27)
3.5.6 (2021-06-16)
4.4.2 (2022-05-12)
Last updated by dependabot-preview

sortablejs
1.13.0 (2021-01-08)
1.15.0 (2022-03-20)
1.15.0 (2022-03-20)

@percy/cli
1.0.0-beta.73 (2022-01-13)
1.3.0 (2022-06-06)
1.3.0 (2022-06-06)

stylelint-config-gds
0.2.0 (2022-03-28)
0.2.0 (2022-03-28)
0.2.0 (2022-03-28)

postcss
8.4.14 (2022-03-16)
8.4.14 (2022-03-16)
8.4.14 (2022-03-16)
Stylelint depends on postcss, dependabot will also update postcss

The current guidance states that we should run the yarn install command, however this does not upgrade any of the modules listed as the versions are locked in the yarn.lock file.
Publish/release a new version of the gem documentation
https://github.com/alphagov/govuk_publishing_components/blob/main/docs/publishing-to-rubygems.md
Config
dependabot.yml
https://github.com/alphagov/govuk_publishing_components/blob/main/.github/dependabot.yml
package.json
https://github.com/alphagov/govuk_publishing_components/blob/main/package.json
How to upgrade
We would instead need to run yarn upgrade to upgrade the modules within the accepted ranges. When this command is run, it will also update the yarn.lock file which would need to be committed.
Note: this does not update the package.json file in the same way dependabot does.
For example:
dependabot also updates the package.json
Upgrading to version 4.1.0 of govuk-frontend
"govuk-frontend": "^4.1.0"
yarn upgrade does not update the package.json
Upgrading to version 4.1.0 of govuk-frontend
"govuk-frontend": "^4.0.1"
Questions

If we do run yarn upgrade, should we also update package.json to be consistent with the dependabot approach
How do we handle/monitor major version upgrades?

Thanks for putting together an issue 👍
In theory these shouldn't be upgraded at the point of issuing a release as we wouldn't have tested them. We'd want the upgrades to happen as a distinct part of repo management.
As you say we already have the dependabot process to keep dependencies up to-date. And for this repo we actively monitor dependencies for the following packages: stylelint-config-gds, jasmine-browser-runner, jasmine-core, stylelint and standardx and for other packages we'll just security updates. We may well want to revise that list, for example I'd imagine we'd very much like to stay up-to-date with percy. The argument against adding everything to the list is that it can be annoying to have lots of PRs, particularly if we don't need to be on the newest version - but it is indeed a risk if we never update things - a periodic yarn upgrade would probably be good.


Submit GPT: Productivity Coach with the R.I.D.E methodology

URL: https://chat.openai.com/g/g-btjDFsxrp-productivity-coach
As your Productivity Coach, I'm here to help you tackle your productivity challenges and guide you towards achieving your goals more effectively. Whether you're struggling with managing your time, prioritizing tasks, or finding motivation, we'll work together to identify and overcome these obstacles.
I've been trained with more than 1000 hours of coaching data.

Please raise a pull request for the same


Layout change transition

What problem does this feature solve?
When changing a layout, the second layout appears almost instantly and without a transition.
What does the proposed changes look like?
Add a layout-transition property to nuxt config.

This feature request is available on Nuxt community (#c9696)

Already there. https://nuxtjs.org/api/configuration-transition/


Alembic Categories relation log warning

Fix log warning
Stack trace:
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade f44cabeef963 -> 66cd6054c2d0, Add Categories tree
/usr/local/lib/python3.8/site-packages/SQLAlchemy-1.3.23-py3.8-linux-x86_64.egg/sqlalchemy/orm/relationships.py:2273: SAWarning: On Category.parent_id, 'passive_deletes' is normally configured on one-to-many, one-to-one, many-to-many relationships only.
  util.warn(
INFO:     Started server process [9]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:8080/ (Press CTRL+C to quit)

Warning is not reproducing on two different machines.
Probably, it's gone because of some further changes in project

Bug is not reproducing.
It is probably fixed because of several recent updates


PubNub native support

Fixes #1944

Seems one of the tests is a bit flaky so I'll work on fixing that.


Bug: App crashing when spamming Alt+I

Description
I'm just messing around with alt key combinations when I found out that spamming Alt+I to open Settings would cause the app to crash with a COMException 0x80000019.
Steps To Reproduce

Open Files
Spam Alt+I

Steps to fix

Prevent crash

Files Version
<IP_ADDRESS>
Windows Version
10.0.22623.875
Relevant Assets/Logs
2022-11-05 07:08:20.3237|ERROR|AppUnhandledException|An async operation was not properly started. (0x80000019)
	System.Runtime.InteropServices.COMException (0x80000019): An async operation was not properly started. (0x80000019)
   at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|20_0(Int32 hr)
   at ABI.Microsoft.UI.Xaml.Controls.IContentDialogMethods.ShowAsync(IObjectReference _obj)
   at Files.App.Dialogs.SettingsDialog.ShowAsync()
   at Files.App.ViewModels.MainPageViewModel.OpenSettings()
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at Microsoft.UI.Dispatching.DispatcherQueueSynchronizationContext.<>c__DisplayClass2_0.<Post>b__0()
--- End of stack trace from previous location ---
   at WinRT.ExceptionHelpers.<ThrowExceptionForHR>g__Throw|20_0(Int32 hr)
   at ABI.Windows.ApplicationModel.Core.IUnhandledErrorMethods.Propagate(IObjectReference _obj)
   at Microsoft.AppCenter.Utils.ApplicationLifecycleHelperWinUI.<.ctor>b__0_3(Object sender, UnhandledErrorDetectedEventArgs eventArgs)
--- End of stack trace from previous location ---
   at Microsoft.AppCenter.Utils.ApplicationLifecycleHelperWinUI.<.ctor>b__0_3(Object sender, UnhandledErrorDetectedEventArgs eventArgs)
   at ABI.System.EventHandler`1.Do_Abi_Invoke[TAbi](Void* thisPtr, IntPtr sender, TAbi args)

This appears to be a WinAppSdk issue, the alt shortcut should be disable when a content dialog is open.


ARTEMIS-2650 The delivering count is wrong after reconnecting an openwire client

Fix the conversion of the message id from the CORE messages.
Fix the credits acquired for acknowledges related to undelivered messages.

checkstyle


Feat/basic layout

Based on:

https://github.com/eliben/modlib
https://github.com/golang-standards/project-layout

Closes:

#37
#36
#35

I'm gonna take @smnws's comments on Mattermost as a second review and since I addressed his review comments, I will now merge this PR.


Alls files getting note as changed

Description
Hello, firstly thanks for the plugin. I tried to installed it following the readme file and when I restarted my neovim, all files of each files is getting noted as changed. See the linked screenshot.
Thank you for your interest in this issue
Neovim version
NVIM v0.6.0-dev+205-g9695691ee Build type: RelWithDebInfo LuaJIT 2.1.0-beta3 Compilé par runneradmin@fv-az152-120  Features: -acl +iconv +tui See ":help feature-compile"           fichier vimrc système : "$VIM\sysinit.vim"                $VIM par défaut : "C:/Program Files/nvim/share/nvim"  Run :checkhealth for more info
Operating system and version
Windows 10
Steps to reproduce
No special step, I followed the readme
Expected behavior
No response
Actual behavior

Gitsigns debug messages
:Gitsigns debug_messages :
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsAdd is already defined
setup_highlight: Highlight GitSignsChange is already defined
run_job: git --no-pager --version
attach(1): Already attached
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
attach(1): Already attached
attach(1): Already attached
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsAdd is already defined
setup_highlight: Highlight GitSignsChange is already defined
run_job: git --no-pager --version
attach(1): Already attached
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsAdd is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsAdd is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsAdd is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsDelete is already defined
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsAdd is already defined
setup_highlight: Highlight GitSignsChange is already defined

:Gitsigns dump_cache :
{ {
    compare_file = "C:\\Users\\Cyprien\\AppData\\Local\\Temp\\nvimVj0Nwd\\1",
    compare_text = { "...",
      length = 0
    },
    file = "C:\\Users\\Cyprien\\AppData\\Local\\nvim\\minimal.lua",
    git_obj = {
      file = "C:\\Users\\Cyprien\\AppData\\Local\\nvim\\minimal.lua",
      has_conflicts = false,
      relpath = "minimal.lua",
      repo = {
        abbrev_head = "main",
        gitdir = "C:/Users/Cyprien/AppData/Local/nvim/.git",
        toplevel = "C:/Users/Cyprien/AppData/Local/nvim",
        username = "vzytoi"
      }
    },
    gitdir_watcher = <userdata 1>,
    hunks = { {
        added = {
          count = 42,
          lines = { "vim.cmd [[set runtimepath=$VIMRUNTIME]]\r", "vim.cmd [[set packpath=/tmp/nvim/site]]\r", "local package_root = '/tmp/nvim/site/pack'\r", "local install_path = package_root .. '/packer/start/packer.nvim'\r", "\r", "if vim.fn.isdirectory(install_path) ==
0 then\r", '  print("Installing Gitsigns and dependencies.")\r', "  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }\r", "end\r", "\r", "-- Load plugins\r", "require('packer').startup {\r", "  {\r", "    'wbthomason/packer.nvim',\r", "    {\r", "      'lewis6991/gitsigns.nvim',\r", "      requires = { 'nvim-lua/plenary.nvim' },\r", "    },\r", "    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE\r", "  },\r", "  config = {\r", "    package_root = package_root,\r", "    compile_path = install_path .. '/plugin/packer_compiled.lua',\r", "    display = { non_interactive = true },\r", "  },\r", "}\r", "\r", "_G.load_config = function()\r", "  require('gitsigns').setup{\r", "    debug_mode = true, -- You must add this to enable debug messages\r", "    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE\r", "  }\r", "\r", "  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE\r", "\r", "  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES\r", "  vim.cmd('Gitsigns debug_messages')\r", "end\r", "\r", "require('packer').sync()\r", "\r", 'vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]\r' },
          start = 1
        },
        dend = 42,
        head = "@@ -0 +1,42 @@",
        removed = {
          count = 0,
          lines = {},
          start = 0
        },
        start = 1,
        type = "add",
        vend = 42
      } },
    pending_signs = {},
    staged_diffs = {}
  } }

Minimal config
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvim/site]]
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'

if vim.fn.isdirectory(install_path) == 0 then
  print("Installing Gitsigns and dependencies.")
  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }
end

-- Load plugins
require('packer').startup {
  {
    'wbthomason/packer.nvim',
    {
      'lewis6991/gitsigns.nvim',
      requires = { 'nvim-lua/plenary.nvim' },
    },
    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  },
  config = {
    package_root = package_root,
    compile_path = install_path .. '/plugin/packer_compiled.lua',
    display = { non_interactive = true },
  },
}

_G.load_config = function()
  require('gitsigns').setup{
    debug_mode = true, -- You must add this to enable debug messages
    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  }

  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE

  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES
  vim.cmd('Gitsigns debug_messages')
end

require('packer').sync()

vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]

You've not followed the issue template properly.
Will reopen when OP is updated with proper information. Let me know if you need help with any of the instructions in the template.

I think having change all that I could, the issue still occurs

The debug_messages output looks incomplete given that the cache looks fully populated. Can you double check the output?

Also I can see the problem in the cache:
    compare_text = { "...",
      length = 0
    },

Which says the output of git show :0:minimal.lua failed. This is probably due to slashes in some way.

Thank you for your feed back.
Here is a new output for :Gitsigns debug_messages:
setup_highlight: Deriving GitSignsDelete from DiffDelete
setup_highlight: Deriving GitSignsAdd from DiffAdd
setup_highlight: Deriving GitSignsChange from DiffChange
setup_highlight: Highlight GitSignsChange is already defined
setup_highlight: Highlight GitSignsDelete is already defined
run_job: git --no-pager --version
attach(1): Attaching (trigger=setup)
run_job: git --no-pager config user.name
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git ls-files --stage --others --exclude-standard C:\Users\Cyprien\AppData\Local\nvim\init.lua
watch_gitdir(1): Watching git dir
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:init.lua
update(1): updates: 1, jobs: 5
attach(2): Attaching (trigger=setup)
attach(2): Non-normal buffer
attach(3): Attaching (trigger=setup)
run_job: git --no-pager config user.name
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git ls-files --stage --others --exclude-standard C:\Users\Cyprien\AppData\Local\nvim\minimal.lua
watch_gitdir(3): Watching git dir
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua
update(3): updates: 2, jobs: 9
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
attach(3): Already attached
watcher_cb(1): Git dir update
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git ls-files --stage --others --exclude-standard C:\Users\Cyprien\AppData\Local\nvim\init.lua
watcher_cb(3): Git dir update
run_job: git --no-pager rev-parse --show-toplevel --absolute-git-dir --abbrev-ref HEAD
watcher_cb(1): File not changed
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git ls-files --stage --others --exclude-standard C:\Users\Cyprien\AppData\Local\nvim\minimal.lua
watcher_cb(3): File not changed
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua
update(3): updates: 3, jobs: 15
run_job: git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua
update(3): updates: 4, jobs: 16

So basically the command git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua isn't working for whatever reason. My guess is that it doesn't like the / and might require \ instead.
I don't use or have access to a Windows machine, so you will need to debug this yourself. Let me know if you need any help.

I tried using / and \ and I have this error :
fatal: path 'minimal.lua' exists on disk, but not in the index

I solved this problem, using a stackoverflow question and this command now works perfectly find : git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua (it output the file content). But my issue still occures, I guess it wasn't the reason. If you have others idea it would be really nice, have a good day (:

Here is a new output for :Gitsigns dump_cache, I reallized that different slashes "format" are used : somethimes / and sometimes \\ (like for compare_file). Could it be the reason?
I checked the output for cd C:\\Users\\Cyprien\\AppData\\Local\\nvim\\minimal.lua and it does not work unlike cd C:/Users/Cyprien/AppData/Local/nvim/minimal.lua which works perfectly fine, so this is what let me think that using \\ could make the issue happen
{ {
    compare_file = "C:\\Users\\Cyprien\\AppData\\Local\\Temp\\nvimKA4HoE\\1",
    compare_text = { "...",
      length = 0
    },
    file = "C:\\Users\\Cyprien\\AppData\\Local\\nvim\\minimal.lua",
    git_obj = {
      file = "C:\\Users\\Cyprien\\AppData\\Local\\nvim\\minimal.lua",
      has_conflicts = false,
      relpath = "minimal.lua",
      repo = {
        abbrev_head = "main",
        gitdir = "C:/Users/Cyprien/AppData/Local/nvim/.git",
        toplevel = "C:/Users/Cyprien/AppData/Local/nvim",
        username = "vzytoi"
      }
    },
    gitdir_watcher = <userdata 1>,
    hunks = { {
        added = {
          count = 42,
          lines = { "vim.cmd [[set runtimepath=$VIMRUNTIME]]\r", "vim.cmd [[set packpath=/tmp/nvim/site]]\r", "local package_root = '/tmp/nvim/site/pack'\r", "local install_path = package_root .. '/packer/start/packer.nvim'\r", "\r", "if vim.fn.isdirectory(install_path) ==
0 then\r", '  print("Installing Gitsigns and dependencies.")\r', "  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }\r", "end\r", "\r", "-- Load plugins\r", "require('packer').startup {\r", "  {\r", "    'wbthomason/packer.nvim',\r", "    {\r", "      'lewis6991/gitsigns.nvim',\r", "      requires = { 'nvim-lua/plenary.nvim' },\r", "    },\r", "    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE\r", "  },\r", "  config = {\r", "    package_root = package_root,\r", "    compile_path = install_path .. '/plugin/packer_compiled.lua',\r", "    display = { non_interactive = true },\r", "  },\r", "}\r", "\r", "_G.load_config = function()\r", "  require('gitsigns').setup{\r", "    debug_mode = true, -- You must add this to enable debug messages\r", "    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE\r", "  }\r", "\r", "  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE\r", "\r", "  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES\r", "  vim.cmd('Gitsigns debug_messages')\r", "end\r", "\r", "require('packer').sync()\r", "\r", 'vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]\r' },
          start = 1
        },
        dend = 42,
        head = "@@ -0 +1,42 @@",
        removed = {
          count = 0,
          lines = {},
          start = 0
        },
        start = 1,
        type = "add",
        vend = 42
      } },
    pending_signs = {},
    staged_diffs = {}
  } }

But my issue still occures, I guess it wasn't the reason.

Are you saying you modified Gitsigns to add the --no-pager option and it didn't fix the problem?
And to confirm git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua outputs the file contents?

Yes, it correctly output the file content.
input :  git --no-pager --git-dir=C:/Users/Cyprien/AppData/Local/nvim/.git show :0:minimal.lua
output :
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvim/site]]
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'

if vim.fn.isdirectory(install_path) == 0 then
  print("Installing Gitsigns and dependencies.")
  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }
end

-- Load plugins
require('packer').startup {
  {
    'wbthomason/packer.nvim',
    {
      'lewis6991/gitsigns.nvim',
      requires = { 'nvim-lua/plenary.nvim' },
    },
    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  },
  config = {
    package_root = package_root,
    compile_path = install_path .. '/plugin/packer_compiled.lua',
    display = { non_interactive = true },
  },
}

_G.load_config = function()
  require('gitsigns').setup{
    debug_mode = true, -- You must add this to enable debug messages
    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  }

  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE

  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES
  vim.cmd('Gitsigns debug_messages')
end

require('packer').sync()

vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]

Ok, so we know the git show command does work. That's something.
Couple of things to try.
Make sure we can run subprocesses.
Open a file named test.lua and add the contents:
require('gitsigns.subprocess').run_job({
  command = 'echo',
  args = {'hello'}
}, function(_, _, stdout, _)
    print(stdout)
end)

Then open in Neovim and run :source % | messages
You should see hello in the output.
Next run the same thing but run git show:
local gitdir = 'C:/Users/Cyprien/AppData/Local/nvim/.git'
local gitobj = ':0:minimal.lua'

require('gitsigns.subprocess').run_job({
  command = 'git',
  args = {
    '--no-pager',
    '--git-dir='..gitdir,
    'show',
    gitobj,
  }
}, function(code, signal, stdout, stderr)
    print('CODE: '..code)
    print('SIGNAL: '..signal)
    if stderr then print('STDERR: '..stderr) end
    if stdout then print('STDOUT: '..stdout) end
end)

What output do you get?

Thanks for your feed back.
I used this configuration :
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvim/site]]
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'

if vim.fn.isdirectory(install_path) == 0 then
  print("Installing Gitsigns and dependencies.")
  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }
end

-- Load plugins
require('packer').startup {
  {
    'wbthomason/packer.nvim',
    {
      'lewis6991/gitsigns.nvim',
      requires = { 'nvim-lua/plenary.nvim' },
    },
    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  },
  config = {
    package_root = package_root,
    compile_path = install_path .. '/plugin/packer_compiled.lua',
    display = { non_interactive = true },
  },
}

_G.load_config = function()
  require('gitsigns').setup{
    debug_mode = true, -- You must add this to enable debug messages
    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  }

  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE

  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES
  vim.cmd('Gitsigns debug_messages')
end

require('packer').sync()

vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]

require('gitsigns.subprocess').run_job({
  command = 'echo',
  args = {'hello'}
}, function(_, _, stdout, _)
    print(stdout)
end)

local gitdir = 'C:/Users/Cyprien/AppData/Local/nvim/.git'
local gitobj = ':0:minimal.lua'

require('gitsigns.subprocess').run_job({
  command = 'git',
  args = {
    '--no-pager',
    '--git-dir='..gitdir,
    'show',
    gitobj,
  }
}, function(code, signal, stdout, stderr)
    print('CODE: '..code)
    print('SIGNAL: '..signal)
    if stderr then print('STDERR: '..stderr) end
    if stdout then print('STDOUT: '..stdout) end
end)

And got this output :
hello
CODE: 0
SIGNAL: 0
STDOUT: vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvim/site]]
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'
if vim.fn.isdirectory(install_path) == 0 then
  print("Installing Gitsigns and dependencies.")
  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }
end
-- Load plugins
require('packer').startup {
  {
    'wbthomason/packer.nvim',
    {
      'lewis6991/gitsigns.nvim',
      requires = { 'nvim-lua/plenary.nvim' },
    },
    -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  },
  config = {
    package_root = package_root,
    compile_path = install_path .. '/plugin/packer_compiled.lua',
    display = { non_interactive = true },
  },
}
_G.load_config = function()
  require('gitsigns').setup{
    debug_mode = true, -- You must add this to enable debug messages
    -- GITSIGNS CONFIG THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  }
  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
  -- ALSO INCLUDE GITSIGNS DEBUG MESSAGES
  vim.cmd('Gitsigns debug_messages')
end
require('packer').sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]

Have a good day! (:

Ok so it seems the git show is working but isn't being placed in the cache for whatever reason.
You'll have to debug this yourself.
The main line to look it is teal/gitsigns/manager.tl:243
  if not bcache.compare_text or config._refresh_staged_on_update then
    bcache.compare_text = git_obj.repo:get_show_text(compare_object)
  end

and teal/gitsigns/git.tl:246:
--- Run git command the with the objects gitdir and toplevel
Repo.command = function(self: Repo, args: {string}, spec: GJobSpec): {string}, string
  spec = spec or {}
  spec.cwd = self.toplevel
  return M.command({'--git-dir='..self.gitdir, unpack(args)}, spec)
end

...

Repo.get_show_text = function(self: Repo, object: string): {string}, string
  return self:command({'show', object}, {supress_stderr = true})
end

Was getting this behaviour on my Windows machine with Neovim nightly but, downgrading to 0.5.1 seems to fix the issue.
Could this be related to something being introduce in the newer versions?
Will try to debug, since I've updated to neovim 0.6, and this error occurs.

The biggest different between 0.5.* and 0.6+ is the inclusion of vim.diff.
Can you try:
require('gitsigns').setup{
  ... -- your config
  diff_opts = {
    internal = false
  }
}

This will cause Gitsigns to use git diff via a subprocess as opposed to using vim.diff internally.
I'm thinking this might just be a CRLF issue.

I have the same issue and the point, that something between 0.5.* and 0.6+ has changed, is a good hint. I update neovim nightly regularly and have noticed this issue coming up sometime ago, but did not remember when. This is why I failed to bisect this issue in https://github.com/lewis6991/gitsigns.nvim/issues/410, because I did not change the neovim version.

What would be the best solution?

Can you give #417 a try? Not sure if it will fix the issue but worth a shot.

I try #417 with fileformat=dos (without turning off internal diff) and it fixes the issue on my Windows machine.

  diff_opts = {
    internal = false
  }

I can confirm that turning this off solved it for me too.

I've tested #417 in a Linux machine with ff=dos and the issue persisted. But if you stripped the \r of the lines instead of adding one, the issue is resolved.
Here is the solution I've got it to work:
local function get_lines(bufnr)

   local buftext = api.nvim_buf_get_lines(bufnr, 0, -1, false)
   if util.is_unix and api.nvim_buf_get_option(bufnr, 'fileformat') == 'dos' then
      for i = 1, #buftext do
         buftext[i] = string.gsub(buftext[i], '\r', '')
      end
   end
   return buftext
end

Hope it helps!

Well that's interesting as such a change would make the issue appear for me.
This tells me that your output from git show is stripping \r. Would you be able to confirm this is the case? If so the fix is likely to pass an extra option to git show.

I've updated #417 to set core.autocrlf=false instead. Maybe that fixes the issue?

Ok worked on this some more. Can people give #417 another try?

Ok worked on this some more. Can people give #417 another try?

I am having the same issue in my windows machine. #417 resolved it for me.

Should be fixed in #417


reset node_modules when current node version is different from the last version used

it skips it if the last version is unknown, and just assume the current version is the last version used.

Coverage decreased (-0.07%) to 20.39% when pulling ed93b6a519b143f5750e9e15d3c3f48d8ea4c925 on issue-219 into 878068b478a11dd4c86f7445b573439edcb5189e on master.

Thinking about this more, we should definitely prompt to ask if they want to wipe the folder, but don't require a separate flag to trigger the behaviour - in most instances this is what people will want to happen (unlike some of the other things we have put behind flags).
If you switch node versions in .nvmrc it's highly likely the app won't work at all.

@cliftonc node 8 is moving towards NAPI which should not require native module rebuilds anymore:
https://github.com/nodejs/abi-stable-node

Coverage decreased (-0.1%) to 20.335% when pulling efcfa2b74095a90cf1998fb381ff4374a44d6805 on issue-219 into 5e5da9d6ded62727ce680a86d53f5d3ef62bd395 on master.

lgtm

Why didn't we do a npm rebuilt? We should also do it only with node versions that don't have the standard NPAPI.

An npm rebuild is a fine solution if you don't have connectivity, but if you've changed npm versions, we should really re-install the whole tree, because it can be significantly different.


使用官方的Dockerfile：https://github.com/swoole/phpy/blob/main/Dockerfile.alpine
`FROM php:8.2.13-cli-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
RUN apk add python3
RUN apk add autoconf gcc g++ make python3-dev
WORKDIR /work
COPY . /work/phpy
RUN docker-php-source extract &&
cd /work/phpy && phpize &&
./configure --with-python-config=/usr/bin/python3-config &&
make clean && make -j $(nproc)
FROM php:8.2.13-cli-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
RUN apk add python3 bash
COPY --from=0 /work/phpy/modules/phpy.so /tmp
RUN cp /tmp/phpy.so $(php-config --extension-dir) &&
docker-php-ext-enable phpy &&
docker-php-source delete
RUN php --ri phpy
CMD ["bash"]`

https://hub.docker.com/repository/docker/phpswoole/phpy/general
直接使用官方提供的镜像
docker pull phpswoole/phpy:1.0.5

我手动去php:8.2.13-cli-alpine容器里去构建出phpy.so，加载提示：
PHP         : /usr/local/bin/php  Warning: PHP Startup: Unable to load dynamic library 'phpy.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20220829/phpy.so (Error relocating /usr/local/lib/php/extensions/no-debug-non-zts-20220829/phpy.so: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv: symbol not found), /usr/local/lib/php/extensions/no-debug-non-zts-20220829/phpy.so.so (Error loading shared library /usr/local/lib/php/extensions/no-debug-non-zts-20220829/phpy.so.so: No such file or directory)) in Unknown on line 0


Chat message new lines

When you send a message with multiple lines from a client, the other clients get the full message. But SyncPlay clients only displays the first line only. Is this a bug or is it intentional?

Like the original Syncplay client gets the packet. But doesn't display the other 3 lines
{"Chat": {"message": "Line 1\nLine 2\nLine 3", "username": "User 2"}}

User interface of standard Syncplay client doesn't really allow you to send multiline messages in first place, so the case of displaying them was never really a consideration. Just as a side note - those messages are also displayed by media players in their own windows and those might behave differently.
IMHO best option would be to simply not allow multiline messages to be sent in your client. Only other alternative would be to implement proper handling of multiline messages everywhere, which would be a larger undertaking. And it would warrant some discussion about how to handle it all in contest of user experience. One immediate concern that was already noticed years ago is that long messages can disrupt the video viewing - whether multiline messages make this problem worse is probably a question worth asking.

One immediate concern that was already noticed years ago is that long messages can disrupt the video viewing

That's actually a good point. I didn't think about that. I'll just add a toggle for that in my client and disable it by default.
Thanks


Terrminals not changing on recreation (not reevaluate)

The creation of the schematic does not check for if there is an existing schematic view. Because of this it appends to existing schematic. This can lead to updates to yml config file to not apply.
Proposed solutions:
Check and delete existing
Pros:
simple to implement
easily understood
Cons:
User generated data is lost without warning
Delete all morpheus created terminals
Pros:
Does not delete user created data
Cons:
May cause errors with placing new terminals

Python Maestro is given option "build" which controls if old testbench is overwritten:

In maestro view it can overwrite the old maestro view:

And the schematic:

This should be:

[ ] Added as a config option to both schematic/maestro config
[ ] Separated between Schematic and Maestro (ex: overwrite maestro but not schematic or overwrite schematic but not maestro)
Other actions and options:
[ ] Add ability to tag morpheus generated content, anything tagged will be deleted on reevaluate
[ ] Schematic should not have to be autogenerated for maestro generation (read existing schematic)


Changes on [governance-my stats & cancel vote]:

press the voted item to cancel the previous vote, confirm the action by the pops up
add item [can clear xxx KSM] underneath the [lock period]


Would it be possible to add phone codes of each country?

Self-explanatory title :)

@kalvn It's out of scope of this project.
Maybe a new one based on https://github.com/umpirsky/list-generator.
If anyone wants to crate one I would be happy to help. :)