high cpu

Required information

Distribution: Ubuntu
Distribution version: 18.04
The output of "lxc info":
config:
core.https_address: '[::]:8443'
core.trust_password: true
api_extensions:

storage_zfs_remove_snapshots
container_host_shutdown_timeout
container_stop_priority
container_syscall_filtering
auth_pki
container_last_used_at
etag
patch
usb_devices
https_allowed_credentials
image_compression_algorithm
directory_manipulation
container_cpu_time
storage_zfs_use_refquota
storage_lvm_mount_options
network
profile_usedby
container_push
container_exec_recording
certificate_update
container_exec_signal_handling
gpu_devices
container_image_properties
migration_progress
id_map
migration_progress                                                                                [62/133]
id_map
network_firewall_filtering
network_routes
storage
file_delete
file_append
network_dhcp_expiry
storage_lvm_vg_rename
storage_lvm_thinpool_rename
network_vlan
image_create_aliases
container_stateless_copy
container_only_migration
storage_zfs_clone_copy
unix_device_rename
storage_lvm_use_thinpool
storage_rsync_bwlimit
network_vxlan_interface
storage_btrfs_mount_options
entity_description
image_force_refresh
storage_lvm_lv_resizing
id_map_base
file_symlinks
container_push_target
network_vlan_physical
storage_images_delete
container_edit_metadata
container_snapshot_stateful_migration
storage_driver_ceph
storage_ceph_user_name
resource_limits
storage_volatile_initial_source
storage_ceph_force_osd_reuse
storage_block_filesystem_btrfs
resources
kernel_limits
storage_api_volume_rename
macaroon_authentication
network_sriov
console
restrict_devlxd
migration_pre_copy
infiniband
maas_network
devlxd_events
proxy
network_dhcp_gateway
file_get_symlink
network_leases
unix_device_hotplug
storage_api_local_volume_handling
operation_description
clustering
event_lifecycle
storage_api_remote_volume_handling
nvidia_runtime
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
tls
environment:
addresses:

<IP_ADDRESS>:8443
<IP_ADDRESS>:8443
<IP_ADDRESS>:8443
'[fd42:3e5d:4809:a392::1]:8443'
<IP_ADDRESS>:8443
'[fd42:53c4:b2bf:ad77::1]:8443'
architectures:
x86_64
i686
certificate: |
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
certificate_fingerprint: 53354dec8258fc4bb2870659c6f5a2a07ef0c9a8a7f561cc1c6584daf80ff05c
driver: lxc
driver_version: 3.0.0
kernel: Linux
kernel_architecture: x86_64
kernel_version: 4.15.0-23-generic
server: lxd
server_pid: 2007
server_version: 3.0.0
storage: zfs
storage_version: 0.7.5-1ubuntu15
server_clustered: false
server_name: BIURO

Issue description
On start of LXD i found in kern.log
Jun 18 11:57:05 BIURO kernel: [ 2476.937284] VERIFY(rs == NULL) failed
Jun 18 11:57:05 BIURO kernel: [ 2476.937287] PANIC at range_tree.c:179:range_tree_add()
Jun 18 11:57:05 BIURO kernel: [ 2476.937288] Showing stack for process 4690
Jun 18 11:57:05 BIURO kernel: [ 2476.937290] CPU: 0 PID: 4690 Comm: z_wr_int_7 Tainted: P           OE    4.15.0-23-generic #25-Ubuntu
Jun 18 11:57:05 BIURO kernel: [ 2476.937291] Hardware name: MSI MS-7996/H110M PRO-VD (MS-7996), BIOS 2.A0 10/19/2016
Jun 18 11:57:05 BIURO kernel: [ 2476.937291] Call Trace:
Jun 18 11:57:05 BIURO kernel: [ 2476.937297]  dump_stack+0x63/0x8b
Jun 18 11:57:05 BIURO kernel: [ 2476.937303]  spl_dumpstack+0x42/0x50 [spl]
Jun 18 11:57:05 BIURO kernel: [ 2476.937305]  spl_panic+0xc8/0x110 [spl]
Jun 18 11:57:05 BIURO kernel: [ 2476.937308]  ? multi_transaction_read+0x34/0xa0
Jun 18 11:57:05 BIURO kernel: [ 2476.937310]  ? ata_qc_issue+0x128/0x240
Jun 18 11:57:05 BIURO kernel: [ 2476.937311]  ? ata_scsi_translate+0xda/0x1b0
Jun 18 11:57:05 BIURO kernel: [ 2476.937312]  ? ktime_get+0x43/0xa0
Jun 18 11:57:05 BIURO kernel: [ 2476.937314]  ? cfq_dispatch_requests+0x36/0xc30
Jun 18 11:57:05 BIURO kernel: [ 2476.937315]  ? blk_peek_request+0x1c7/0x2c0
Jun 18 11:57:05 BIURO kernel: [ 2476.937317]  ? _cond_resched+0x19/0x40
Jun 18 11:57:05 BIURO kernel: [ 2476.937319]  ? kmem_cache_alloc+0x158/0x1b0
Jun 18 11:57:05 BIURO kernel: [ 2476.937321]  ? spl_kmem_cache_alloc+0x64/0x140 [spl]
Jun 18 11:57:05 BIURO kernel: [ 2476.937360]  range_tree_add+0x90/0x300 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937381]  metaslab_free_dva+0x12b/0x400 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937400]  metaslab_free+0xdd/0xf0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937422]  zio_dva_free+0x1c/0x30 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937442]  zio_wait+0xb2/0x1b0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937462]  zio_free+0x9a/0xe0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937480]  dsl_free+0x11/0x20 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937496]  dsl_dataset_block_kill+0x27e/0x460 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937509]  dbuf_write_done+0x182/0x1b0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937521]  arc_write_done+0x86/0x3f0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937541]  zio_done+0x449/0xdf0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937561]  zio_execute+0x90/0xf0 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937565]  taskq_thread+0x2ab/0x4e0 [spl]
Jun 18 11:57:05 BIURO kernel: [ 2476.937567]  ? wake_up_q+0x80/0x80
Jun 18 11:57:05 BIURO kernel: [ 2476.937586]  ? zio_reexecute+0x390/0x390 [zfs]
Jun 18 11:57:05 BIURO kernel: [ 2476.937588]  kthread+0x121/0x140
Jun 18 11:57:05 BIURO kernel: [ 2476.937591]  ? taskq_thread_should_stop+0x70/0x70 [spl]
Jun 18 11:57:05 BIURO kernel: [ 2476.937593]  ? kthread_create_worker_on_cpu+0x70/0x70
Jun 18 11:57:05 BIURO kernel: [ 2476.937595]  ret_from_fork+0x35/0x40
then multiple
INFO: task z_upgrade:1459 blocked for more than 120 seconds
in /var/log/lxd/lxd.log
lvl=eror msg="Failed to start the daemon: failed to create raft factory: failed to create bolt store for raft logs: timeout" t=2018-06-18T12:09:01+0200
then:

constant high cpu 80-100%
host becomes slowly unresponsive
sometimes some commands works - for example lxc - but after some minutes they hang

Steps to reproduce
1.migration from 17.10 to 18.04
Conclusion
I believe it is something with ZFS pools that i use, but host with zfs datasets work flawlessly with disabled LXD.
I missed some update steps ?
What is the proper way to migrate to snap enabled LXD? Is it automatic?
What is the proper way to completely disable/enable/restart snap LXD with systemd?
regards

That's a kernel bug in any case and unrelated to LXD.
Other questions are best answered by @stgraber.

Ok but it happens only when LXD start

What's your storage configuration for LXD?
Are the ZFS pool(s) backed by physical disks or are they loop disks?
The trace above could easily be explained if you're using loop disks and the parent disk is full.
If you're using physical partitions or disks to back your zpool, then that'd suggest a zfs/kernel bug instead.

I am affraid thats not the case, I already run scrub, disks are not full
zpool status -v
pool: lxd
state: ONLINE
scan: scrub repaired 0B in 0h1m with 0 errors on Thu Jun 14 18:50:20 2018
config:
    NAME                          STATE     READ WRITE CKSUM
    lxd                           ONLINE       0     0     0
      /var/lib/lxd/disks/lxd.img  ONLINE       0     0     0

errors: No known data errors
pool: pool
state: ONLINE
scan: scrub repaired 0B in 2h36m with 0 errors on Fri Jun 15 16:15:40 2018
config:
    NAME        STATE     READ WRITE CKSUM
    pool        ONLINE       0     0     0
      sdb3      ONLINE       0     0     0

errors: No known data errors
pool: pool-backup
state: ONLINE
scan: scrub repaired 0B in 0h0m with 0 errors on Fri Jun 15 16:24:15 2018
config:
    NAME                           STATE     READ WRITE CKSUM
    pool-backup                    ONLINE       0     0     0
      /var/lib/lxd/disks/lxd2.img  ONLINE       0     0     0

errors: No known data errors
pool: pool-root
state: ONLINE
scan: scrub repaired 0B in 5h1m with 0 errors on Fri Jun 15 00:15:19 2018
config:
    NAME        STATE     READ WRITE CKSUM
    pool-root   ONLINE       0     0     0
      sdc       ONLINE       0     0     0

errors: No known data errors

Is there any migration guide from 2 to 3 LXD, apt vs snap LXD ?
I've got some old config directives in profiles/configs but I cannot change them because LXD
cannot run lxc edit commands. I doubt thats responsible for high cpu.
lxc-containers[3660]: lxc-autostart: confile.c: parse_line: 2340 Unknown configuration key "lxc.rootfs" lxc-containers[3660]: lxc-autostart: parse.c: lxc_file_for_each_line_mmap: 102 Failed to parse config: lxc.rootfs = /var/lib/lxc/debian821-lxc_default_1485873998388_15074/rootfs lxc-containers[3660]: Failed to load config for debian821-lxc_default_1485873998388_15074 lxc-containers[3660]: lxc-autostart: confile.c: set_config_net: 334 lxc.net must not have a value lxc-containers[3660]: lxc-autostart: parse.c: lxc_file_for_each_line_mmap: 102 Failed to parse config: lxc.network.type = veth lxc-containers[3660]: Failed to load config for mydebianvm lxc-containers[3660]: lxc-autostart: confile.c: parse_line: 2340 Unknown configuration key "lxc.rootfs" lxc-containers[3660]: lxc-autostart: parse.c: lxc_file_for_each_line_mmap: 102 Failed to parse config: lxc.rootfs = /var/lib/lxc/ubu/rootfs lxc-containers[3660]: Failed to load config for ubu

Those last errors are about LXC containers, not LXD (lxc-containers and paths in /var/lib/lxc). lxc-update-config should let you fix those.

Can you post zfs list -t all?

I re-read the error earlier and it certainly points at a zfs/spl bug, so we're unlikely to be able to do much to help you here, reporting a bug against zfsonlinux is more likely to get you an answer.
But we can try to help you narrow down what dataset may be the problem which should help with a subsequent bugreport against zfs.

but how I can run lxc-update-config when lxd is not running/not responding ?

List of datasets without which use containers
`
zfs list -t all |grep containers
lxd/containers                                                                                13,7G  2,46G    19K  none
lxd/containers/docker                                                                              5,94G  2,46G  6,11G  /var/lib/lxd/storage-pools/lxd/containers/docker
lxd/containers/immortal-caiman                                                                      429M  2,46G   423M  /var/lib/lxd/storage-pools/lxd/containers/immortal-caiman
lxd/containers/immortal-caiman@snapshot-snap0                                                      6,08M      -   423M  -
lxd/containers/jessie                                                                              11,0M  2,46G   181M  /var/lib/lxd/storage-pools/lxd/containers/jessie
lxd/containers/mailer                                                                               429M  2,46G   422M  /var/lib/lxd/storage-pools/lxd/containers/mailer
lxd/containers/mailer@snapshot-snap0                                                                494K      -   422M  -
lxd/containers/mailer@syncoid_BIURO_2017-04-27:15:45:25                                             496K      -   422M  -
lxd/containers/mailer2                                                                              422M  2,46G   422M  /var/lib/lxd/storage-pools/lxd/containers/mailer2
lxd/containers/nextcloud                                                                            217M  2,46G   626M  /var/lib/lxd/storage-pools/lxd/containers/nextcloud
lxd/containers/stunning-buffalo                                                                     358M  2,46G   358M  /var/lib/lxd/storage-pools/lxd/containers/stunning-buffalo
lxd/containers/xen1                                                                                355M  2,46G   448M  /var/lib/lxd/storage-pools/lxd/containers/xen1
lxd/containers/xen1@snapshot-snap0                                                                    0B      -   374M  -
lxd/containers/xen1@snapshot-snap1                                                                    0B      -   374M  -
lxd/containers/xen1@copy-ce358638-6fba-4f9b-85bd-321935217130                                        74K      -   374M  -
lxd/containers/xen1@snapshot-snap2                                                                 96,3M      -   447M  -
lxd/containers/xen2                                                                                5,25G  2,46G  5,30G  /var/lib/lxd/storage-pools/lxd/containers/xen2
lxd/containers/xen2@snapshot-snap0                                                                  445K      -   339M  -
lxd/containers/xen2@snapshot-snap1                                                                  425K      -   376M  -
lxd/containers/xen2@snapshot-snap2                                                                 37,0M      -   416M  -
lxd/containers/xen2@syncoid_BIURO_2017-04-28:16:08:41                                               114K      -   376M  -
lxd/containers/xen2@autosnap_2017-04-28_16:15:36_daily                                                0B      -   376M  -
lxd/containers/xen2@autosnap_2017-04-28_16:15:36_monthly                                              0B      -   376M  -
lxd/containers/xen2@autosnap_2017-04-28_16:15:36_hourly                                               0B      -   376M  -
lxd/containers/xen2@autosnap_2017-04-28_20:01:51_hourly                                               0B      -   376M  -
lxd/containers/xen2@snapshot-snap3                                                                    0B      -   376M  -
lxd/containers/xen2@autosnap_2017-04-29_15:29:28_daily                                                0B      -   376M  -
lxd/containers/xen2@autosnap_2017-04-29_15:29:28_hourly                                               0B      -   376M  -
lxd/containers/xen2@autosnap_2017-05-01_15:19:18_hourly                                               0B      -   376M  -
lxd/containers/xen2@autosnap_2017-05-01_15:19:18_daily                                                0B      -   376M  -
lxd/containers/xen2@autosnap_2017-05-01_15:19:18_monthly                                              0B      -   376M  -
lxd/containers/zfs-copy2                                                                            379M  2,46G   379M  /var/lib/lxd/storage-pools/lxd/containers/zfs-copy2
pool-root/lxd/containers                                                                            584M  77,1G    19K  none
pool-root/lxd/containers/web10                                                                      584M  77,1G   584M  /var/lib/lxd/storage-pools/zfs-root/containers/web10
pool/lxd/containers                                                                                5,81G  51,7G    19K  none
pool/lxd/containers/dev                                                                             565M  51,7G   715M  /var/lib/lxd/storage-pools/zfs/containers/dev
pool/lxd/containers/dev@copy-ef1ba35d-194b-471f-89e5-1c6e7c29f1da                                  88,6M      -   706M  -
pool/lxd/containers/dev-ardvark                                                                     303M  51,7G   576M  /var/lib/lxd/storage-pools/zfs/containers/dev-ardvark
pool/lxd/containers/dev-firewalld                                                                  3,82G  51,7G  3,12G  /var/lib/lxd/storage-pools/zfs/containers/dev-firewalld
pool/lxd/containers/dev-firewalld@snapshot-before-fireqos                                          98,7M      -   755M  -
pool/lxd/containers/dev-firewalld@snapshot-before-update                                            160M      -  1003M  -
pool/lxd/containers/dev-firewalld@snapshot-before-piler                                             358M      -  1,38G  -
pool/lxd/containers/mail                                                                           1,14G  51,7G  1,14G  /var/lib/lxd/storage-pools/zfs/containers/mail
`

What do you have in grep /var/lib/lxd /proc/self/mountinfo?

`
184 29 0:80 / /var/lib/lxd/storage-pools/lxd/containers/docker rw shared:88 - zfs lxd/containers/docker rw,xattr,noacl
186 29 0:81 / /var/lib/lxd/storage-pools/lxd/containers/immortal-caiman rw shared:89 - zfs lxd/containers/immortal-caiman rw,xattr,noacl
188 29 0:82 / /var/lib/lxd/storage-pools/lxd/containers/jessie rw shared:90 - zfs lxd/containers/jessie rw,xattr,noacl
190 29 0:83 / /var/lib/lxd/storage-pools/lxd/containers/mailer rw shared:91 - zfs lxd/containers/mailer rw,xattr,noacl
192 29 0:84 / /var/lib/lxd/storage-pools/lxd/containers/mailer2 rw shared:92 - zfs lxd/containers/mailer2 rw,xattr,noacl
194 29 0:85 / /var/lib/lxd/storage-pools/lxd/containers/nextcloud rw shared:93 - zfs lxd/containers/nextcloud rw,xattr,noacl
196 29 0:86 / /var/lib/lxd/storage-pools/lxd/containers/stunning-buffalo rw shared:94 - zfs lxd/containers/stunning-buffalo rw,xattr,noacl
198 29 0:87 / /var/lib/lxd/storage-pools/lxd/containers/xen1 rw shared:95 - zfs lxd/containers/xen1 rw,xattr,noacl
200 29 0:88 / /var/lib/lxd/storage-pools/lxd/containers/xen2 rw shared:96 - zfs lxd/containers/xen2 rw,xattr,noacl
202 29 0:89 / /var/lib/lxd/storage-pools/lxd/containers/zfs-copy2 rw shared:97 - zfs lxd/containers/zfs-copy2 rw,xattr,noacl
204 29 0:90 / /var/lib/lxd/storage-pools/lxd/images/502736277 rw shared:98 - zfs lxd/images/dce25d63fe1c9e3ebe96fbda8f1fed75ca60ff60d23797673174173bac4bba01 rw,xattr,noacl
`

zfs destroy lxd/images/502736277
zfs mount pool-root/lxd/containers/web10
zfs mount pool/lxd/containers/dev
zfs mount pool/lxd/containers/dev-ardvark
zfs mount pool/lxd/containers/dev-firewalld
zfs mount pool/lxd/containers/mail

At which point all the mounts should be there, then run dmesg to confirm things look clean kernel wise.
Then try find /var/lib/lxd/storage-pools >/dev/null as a way to see if tickling zfs a bit triggers the issue.

whenever I start LXD with
systemctl start lxd.service lxd.socket
I think one container is trying to start
I attached

container config file
and 2 profiles

default
dev
Is there sth wrong/missing in those definitions?
Is there a way to disable autostart for all containers? sqlite?

After a while I noticed those messages from
journalctl -u lxd.*
cze 18 18:31:07 BIURO dnsmasq[15268]: read /etc/hosts - 30 addresses
cze 18 18:31:07 BIURO dnsmasq-dhcp[15268]: read /var/lib/lxd/networks/testbr0/dnsmasq.hosts/dev-firewalld
cze 18 18:31:07 BIURO dnsmasq-dhcp[15268]: read /var/lib/lxd/networks/testbr0/dnsmasq.hosts/dev
cze 18 18:31:07 BIURO lxd[12490]: lvl=warn msg="Unable to update backup.yaml at this time." name=dev-firewalld t=2018-06-18T18:31:07+0200
cze 18 18:38:22 BIURO lxd[12490]: lvl=warn msg="Unable to update backup.yaml at this time." name=dev-firewalld t=2018-06-18T18:38:22+0200
cze 18 18:41:04 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: Start-post operation timed out. Stopping.
cze 18 18:41:35 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: State 'stop-sigterm' timed out. Killing.
cze 18 18:41:35 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: Killing process 12490 (lxd) with signal SIGKILL.
cze 18 18:42:05 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: Processes still around after SIGKILL. Ignoring.
cze 18 18:42:35 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: State 'stop-final-sigterm' timed out. Killing.
cze 18 18:42:35 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: Killing process 12490 (lxd) with signal SIGKILL.
cze 18 18:43:05 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: Processes still around after final SIGKILL. Entering failed mode.
cze 18 18:43:05 BIURO systemd[1]: ^[[0;1;39m^[[0;1;39mlxd.service: Failed with result 'timeout'.
cze 18 18:43:05 BIURO systemd[1]: ^[[0;1;39mFailed to start LXD - main daemon.
cze 18 18:43:06 BIURO systemd[1]: lxd.service: Service hold-off time over, scheduling restart.
cze 18 18:43:06 BIURO systemd[1]: lxd.service: Scheduled restart job, restart counter is at 1.
cze 18 18:43:06 BIURO systemd[1]: Stopped LXD - main daemon.

A container failing to start will not prevent LXD itself from starting.
Running the commands above would still be useful to identify the zfs problem.

Well with Your help I narrow down the problem
zfs mount pool/lxd/containers/dev-firewalld
gives errors
other containers mount without a problem.
Container dev-firewalld is different from the others:

has 3 snapshots
boot.autostart = true
it is possible that was the only running LXD container due host migration from Ubuntu 17.10 to 18.04
3-5 times host get hard reset with that container running

What else can I do to restore this container and/or resume normal LXD operations?

Well another success
I set in config container
boot.autostart = false
and now LXD start without errors.
I tested another container from same zfs spool and is working flawlessly.
I wonder what is the next step? How retrieve data from invalid container? or snapshots?

So when running zfs mount, you get kernel errors and your system eventually locks up?
If so, not sure what you can do, you can report a bug against zfsonlinux on Github, they may have some pointers on how to unstick things.

Closing as not a LXD issue, let us know how things go though.

[z_upgrade] kicking in with high CPU usage could be https://github.com/zfsonlinux/zfs/issues/9410

yeah, that's a kernel thread, not a lot we could do about that, though that's not one I remember seeing before (I usually see stuff coming from the various zfs tx threads).


README files are not valid Markdown

Although having a corresponding file suffix (i.e .md), the different README files in the project are actually not in Markdown format. This results in weird rendering on e.g. GitHub.

fixed the problem

Great work. Many thanks. However, for README.md the issue still persists.


Open Source Initiative Approved License

Introducing Pebble to enterprises is hard with custom license.
Any company who cares about their license usage usually allows only OSI Approved Licenses (https://opensource.org/licenses). This is mostly for legal reasons as the legal department knows those popular licenses and they pre-approve a subset of them. Getting something else approved is a nightmare.
Is it possible to change the license of Pebble to some popular and permissive license like Apache 2.0?

@gebezs Pebble's license is BSD-3 clauses, cf https://opensource.org/licenses/BSD-3-Clause
It's 100% OSI Approved and compatible with Apache 2.

Thanks for the prompt answer.
What puzzles me is the fact that type of license is not detected by Github. Meanwhile the pebble-example-spring repository's license is detected properly.
The https://github.com/PebbleTemplates/pebble repo:

The https://github.com/PebbleTemplates/pebble-example-spring repo:

As you can see the bottom right part of the image is different as pebble-example-spring shows the BSD-3 license type.
The difference between the the license are minimal:
https://raw.githubusercontent.com/PebbleTemplates/pebble/master/LICENSE
https://raw.githubusercontent.com/PebbleTemplates/pebble-example-spring/master/LICENSE
I assume there can be three issues:

The pebble repo's license file contains something which makes it incompatible with the BSD-3 license.
The license has some additional info in it or the formatting is not correct and for that it isn't detected.
Github's license detection has an issue.

The license detection page (https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository#detecting-a-license) states that

To have your license detected, simplify your LICENSE file and note the complexity somewhere else, such as your repository's README file.

Is it possible to change the LICENSE file to get detected by Github? It would probably make other users life simpler in the future.

I guess you could send a pull request to update the license file with the exact wording from the OSI website. I expect GitHub would recognize it then.

I started to experiment with it and the issue is the "Some rights reserved." part. When I change it to "All rights reserved." it gets recognized.
Can I change it to "All rights reserved."?

Can I change it to "All rights reserved."?

That’s for a maintainer of this project to say (I’m not one), hence my suggestion to send a PR.

The PR #623 should solve this.


created the user profile page

Fixes #1266
Pull Request: Redesign Profile Page
Overview
This pull request introduces a complete redesign of the profile page for our application. The new design enhances user experience by providing a more intuitive layout, improved visuals, and better accessibility.
Key Changes

Layout Improvements:

Implemented a responsive layout that adapts seamlessly across devices.
Organized user information into clearly defined sections for easier navigation.

Visual Enhancements:

Updated color scheme to align with our brand guidelines.
Introduced new typography for improved readability.
Added high-quality images and icons to enhance visual appeal.

User Interaction:

Enhanced buttons and interactive elements with hover effects for better feedback.
Simplified the process for updating user information, making it more user-friendly.

Accessibility:

Ensured all elements are keyboard navigable and screen-reader friendly.
Added ARIA labels where necessary to improve assistive technology support.

Performance Optimization:

Minimized image sizes and optimized assets to improve load times.
Refactored CSS for better performance and maintainability.

Screenshots

Profile Page Before

Profile Page After

@isamanverma Please resolve the conflicts in the mentioned files. Ensure you pull all the latest changes before pushing your feature/bug fixes to the main branch. After resolving the conflicts, please open a new PR for review.
Thank you!


onRowsSelect doesn't work with setState function inside

Expected Behavior

onRowsSelect must trigger when row was selected and mark row as selected.
Current Behavior

But if inside of callback function have this.setState({}), rows doesn't marks as selected,
Steps to Reproduce (for bugs)

https://codesandbox.io/embed/qql7mj9v84
Click on checkbox in first column

Your Environment

Tech
Version

Material-UI
3.0.0

MUI-datatables
2.0.0-beta-29

React
16.4.2

browser
Chrome

etc

Your example is just using the data constant you have defined, you aren't actually using this.state.data for display.  There are other issues there as well since you'd probably want to initialize your state.data in your constructor.  Even so, I think what you're trying to do is control what data is selected, is that right?  I don't think that your example is the right approach to accomplish that.

Exactly, I want to do is control what data is selected. For example I want push in state some data which contains in data const.
https://codesandbox.io/embed/qlq6p81nl9

Hello @vantsymbalenko! :)
The "problem" in your example is caused by the way react works. As you keep all the props that are sent to MUIDatatable inside the render() function, every time it gets called the references for those props change, causing MUIDatatable to re-render. And every time it re-renders, it loses the selections (because you're not telling it which rows to select through props). So basically, your setState is causing that re-render and clears the selection as a consequence.
I've updated your codesandbox to a working example: https://codesandbox.io/s/ry930pyywq
The solution was moving the columns, data and options variables to the scope of the component's instance. That way, a reference for them is created when React instantiate the object, and they never change, so MUIDatatable doesn't re-render.

I've updated your codesandbox to a working example: https://codesandbox.io/s/ry930pyywq

sorry, but codesandbox still not working. I don't see any changes in this codesandbox

@vantsymbalenko
I ran into this same issue. Seems that calling setState() any part of the call chain produced by options causes this issue.  I got around this issue (definitely not conventional IMO) by making a local variable on my component then saving my selected rows to that component. Basically, using the component variable as a "faux state". its probably not the "right" answer, but it works.

@vantsymbalenko
I ran into this same issue. Seems that calling setState() any part of the call chain produced by options causes this issue. I got around this issue (definitely not conventional IMO) by making a local variable on my component then saving my selected rows to that component. Basically, using the component variable as a "faux state". its probably not the "right" answer, but it works.

could you give me an example in codesandbox?

something like this:  https://codesandbox.io/s/lllojqp079
For some reason your version here does NOT have the selected checkboxes on like mines does in my environment. The idea is the same though.

something like this: https://codesandbox.io/s/lllojqp079
For some reason your version here does NOT have the selected checkboxes on like mines does in my environment. The idea is the same though.

oh I've understood, thanks) I think that @d-gubert  in the comment above told about the same.... Hmm I think that for now it's the best solve of my problem


rename "/image_info" API to "/version"

The "/version" API is standard.

Closed by pull request https://github.com/google/cluster-insight/pull/26 .


What does typographer actually do? How do I just get smart quotes, without any other stuff?

In the course of converting my site from Jekyll to 11ty, I've enabled typographer:true, in order to get smart quotes. However, I then found some random other stuff was converted, like (c) was converted to ©. The docs just say "Enable some language-neutral replacement + quotes beautification", but don't say what all the other replacements are. I find this unnerving, as I don't know what other undesirable substitutions it's making. I really just want to explicitly opt-in to any non-standard replacements like smart quotes.
So, Q1: what does typographer:true actually do?
And Q2: if I want to just get smart quotes, and none of the other stuff, how can I do that? Can I do it just with markdown-it, or would I have to post-process with a separate library?

OK, I managed to answer Q1, in this PR: https://github.com/markdown-it/markdown-it/pull/731

From looking at the source, I think the answer to Q2 is that, unfortunately, there's no way to just get smart quotes. The two separate features are enabled by a single flag typographer. Could someone confirm this?

use .enable()/.disable() for concrete hook

Thanks @puzrin, though I've had no luck with that:
> require('markdown-it')('zero').enable('smartquotes').render('Jim\'s "smart quotes"')
"
Jim's "smart quotes"
\n"
"
Jim’s “smart quotes”
\n"  // my expected output

Am I using it wrongly?

Ah, hm, so, this works:
> require('markdown-it')({typographer:true}).disable('replacements').render('Jim\'s "smart quotes" (c)')
'
Jim’s “smart quotes” (c)
\n'

It seems that even if you explicitly enable('smartquotes'), it still hits this line https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/smartquotes.js#L190 and then gives up. So the only way is to explicitly disable everything you don't want.
A better API IMO would be for typographer:true to mean .enable('replacements').enable('smartquotes'), which could then be individually enabled or disabled.
Either way - thanks for your help @puzrin; I think I can live with .disable('replacements'). Hopefully typographer:true doesn't introduce any other transforms in future versions, so I can trust that this just enables smart quotes.

So the only way is to explicitly disable everything you don't want.

You can use zero preset, and enable what you need. Just be careul, some features like lists use several rules.


[Task] Git Sync Tasks

Issues to fix

[ ] Clicking on “+” in the bottom bar should go to the Deploy section. (Hitting commit or merge is always landing on the connect tab instead of the deploy tab)
[ ] We should inform the user that the repo should be empty without a README
[ ] Validation in Git connection Form [remoteUrl, email] (No validation for https git URLs)
[ ] Use Default Profile [After connected ] (Blocker any API which saves isDefaultProfile)

The option Use default config is disabling the update button

[ ] Disabled Pushed and Committed Button (Blocker git status API)

Not yet done

[ ] Merge conflict Errors UI within the deploy tab
[ ] Mergeable status b/w branches: error and success message
[ ] Global config
[ ] Merge Tab
[ ] Improve UX (discuss with deb)

This is duplicate, hence closing it.


Auto complete for "real" text

I love the autocompletion for code, however when writing "real" text (comments, docs, a novel), suddenly I need to type every single character.
Basically I would like whatever the bing chat team uses for it's chat-box autocompletion in vscode.
See it in action:
https://github.com/microsoft/vscode/assets/46541492/d5701c89-2152-4832-a855-caac1b4d6140
Why?:
I'm not a native English speaker and for certain words I don't know the right spelling. I have often googled the spelling of words, which breaks my "flow". Right now I use "Code Spell Checker", which helps to keep track of the misspelled words. They can then be corrected in a second pass, however this is still a little awkward and sometimes I manage to misspell so thoroughly even the spell checker can't help.
Similarly would this help native speakers with dyslexia.
Also I'm just used to autocompletion/ fuzzy search everywhere, having to type whole words doesn't feel natural to me, especially when I'm fatigued.

This can be implemented via an extension using the CompletionItemProvider API

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Release notes for 3 July

@bensonlee5 anything to add?

@bensonlee5 anything to add?

I'm going to look; nothing super obvious from me, though I feel like there are a lot of agent updates that are worth calling out in greater detail which made it in either last week or this week.

@bensonlee5 anything to add?

I'm going to look; nothing super obvious from me, though I feel like there are a lot of agent updates that are worth calling out in greater detail which made it in either last week or this week.

This week had a number of agent bugfixes, I can update to add those. I wasn't sure how much of that we needed to communicate since I don't think there are many people who are driving agent updates from the release notes

It's helpful to know - I don't think everything gets flagged to us - and I
think folks end up referring to these notes as kinda the source of truth
for what happened - so definitely helpful
On Thu, Jul 4, 2024 at 8:40 AM Andy Caruso @.***> wrote:

@bensonlee5 https://github.com/bensonlee5 anything to add?
I'm going to look; nothing super obvious from me, though I feel like there
are a lot of agent updates that are worth calling out in greater detail
which made it in either last week or this week.
This week
https://docs.google.com/document/d/1HJqQx98vVR6dZuglNjfDvFGcSJ8_L6E57_Xk5DU9Tms/edit#heading=h.4zdf0qfxyxvj
had a number of agent bugfixes, I can update to add those. I wasn't sure
how much of that we needed to communicate since I don't think there are
many people who are driving agent updates from the release notes
—
Reply to this email directly, view it on GitHub
https://github.com/Ganymede-Bio/website-docusaurus/pull/281#issuecomment-2209252941,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABERWNWXRLA7DQVUEIOK773ZKVUFBAVCNFSM6AAAAABKKPEJOCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBZGI2TEOJUGE
.
You are receiving this because you were mentioned.Message ID:
@.***>

I also don't know if there's a better way to summarize all of the changes
that have gone in since 4.0.15 - for example, not sure if there is some
spot in code or doc around the logging that I can screenshot and describe
somewhere
On Thu, Jul 4, 2024 at 8:41 AM Benson @.***> wrote:

It's helpful to know - I don't think everything gets flagged to us - and I
think folks end up referring to these notes as kinda the source of truth
for what happened - so definitely helpful
On Thu, Jul 4, 2024 at 8:40 AM Andy Caruso @.***> wrote:

@bensonlee5 https://github.com/bensonlee5 anything to add?
I'm going to look; nothing super obvious from me, though I feel like
there
are a lot of agent updates that are worth calling out in greater detail
which made it in either last week or this week.
This week
<
https://docs.google.com/document/d/1HJqQx98vVR6dZuglNjfDvFGcSJ8_L6E57_Xk5DU9Tms/edit#heading=h.4zdf0qfxyxvj>

had a number of agent bugfixes, I can update to add those. I wasn't sure
how much of that we needed to communicate since I don't think there are
many people who are driving agent updates from the release notes
—
Reply to this email directly, view it on GitHub
<
https://github.com/Ganymede-Bio/website-docusaurus/pull/281#issuecomment-2209252941>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ABERWNWXRLA7DQVUEIOK773ZKVUFBAVCNFSM6AAAAABKKPEJOCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBZGI2TEOJUGE>

.
You are receiving this because you were mentioned.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/Ganymede-Bio/website-docusaurus/pull/281#issuecomment-2209256579,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABERWNVPJG4FL7QBUKU7HSLZKVUL5AVCNFSM6AAAAABKKPEJOCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBZGI2TMNJXHE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


meta-analysis app pathway needs changing

path is ShinyApps/meta-analysis-app/meta-analysis-app/ @AmyRFinnegan

made changes to a copy of app.R I placed in the first meta-analysis folder. please check out @AmyRFinnegan. added navbarpage.

@ericpgreen Something funky happened when you committed your changes.  It added a bunch of extra page breaks, I think.  See below.  It also repeated a few of the buttons.  Can you fix that on your end?
setup =======================================================================
library(dplyr)
library(magrittr)
library(ggplot2)
library(shiny)
library(meta)
<<<<<<< HEAD
library(shinydashboard)

origin/master

should be ok now

So, it's running now.  What's your idea for how we should do the apps going forward?  Are you thinking that each app will have a tab in the end and your "link to full browser app" will go to this website?  Or do you want to see how the navbarPage looks in the book?

@AmyRFinnegan I'd like to see the new navbarPage version on shinyapps.io so we can make adjustments for the book if needed.

NavbarPage looks great in book and is an easy way to include an "About" tab to give us credit, maybe add a video or more explanation, etc.
Multiple tabs in Navbar might be an alternative to the need for a separate miniUI version if we make an app that does not fit nicely on one small page.

Okay - check it out.  I changed the navparPage to be collapsible because it was taking up most of the window in the book. http://www.designsandmethods.com/ebook/literature.html#start-with-systematic-reviews-and-meta-analyses

@ericpgreen my only complaint/suggestion is to use align-left instead of align-center

collapse is nice. very good. align-left is my preference for the text, but not the buttons. can we set two different parameters?
ideally the text would not span the browser window, but i don't know how hard that is to change. looks fine in the book.

Pretty easy - I just created separate fluidRow calls - the instructions one is left-aligned and the buttons and plot are centered.

nice
From: Amy Finnegan<EMAIL_ADDRESS>Reply-To: ericpgreen/GHRbook<EMAIL_ADDRESS>Date: Sunday, January 15, 2017 at 4:16 PM
To: ericpgreen/GHRbook<EMAIL_ADDRESS>Cc: Eric Green<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [ericpgreen/GHRbook] meta-analysis app pathway needs changing (#5)
Pretty easy - I just created separate fluidRow calls - the instructions one is left-aligned and the buttons and plot are centered.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Now we just need some "About" text?
This app was created specifically for the Research & Methods book in collaboration with Amy Finnegan using R Shiny.

This app was created by Amy Finnegan (link to yourself if you’d like) and Eric Green for the online textbook Global Health Research: Designs and Methods (add this link http://www.designsandmethods.com/book/). It is based on the following systematic review:
Radeva-Petrova, D., Kayentao, K., ter Kuile, F. O., Sinclair, D., & Garner, P. (2014). Drugs for preventing malaria in pregnant women in endemic areas: any drug regimen versus placebo or no treatment. Cochrane Database Syst Rev, 10, CD000169.
(put link on Cochrane Database Syst Rev: http://onlinelibrary.wiley.com/doi/10.1002/14651858.CD000169.pub3/abstract)
You should be able to use this to make the logo in www appear in the top right:
img(src='logo.png', align = "right")
From: Amy Finnegan<EMAIL_ADDRESS>Reply-To: ericpgreen/GHRbook<EMAIL_ADDRESS>Date: Sunday, January 15, 2017 at 4:27 PM
To: ericpgreen/GHRbook<EMAIL_ADDRESS>Cc: Eric Green<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [ericpgreen/GHRbook] meta-analysis app pathway needs changing (#5)
Now we just need some "About" text?
This app was created specifically for the Research & Methods book in collaboration with Amy Finnegan using R Shiny.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I added to the page. Probably needs css fiddling to get more padding, but ok for now.

Okay - it's all pushed to shinyapps.io.  I'm going to create a new folder for the next app and get the shell ready - the navbarpage, etc.  What did you want to call it?  critical-appraisal?

selection-bias?

Selection bias, yeah

On Jan 16, 2017, at 6:52 PM, Amy Finnegan<EMAIL_ADDRESS>wrote:
selection-bias?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Add version: Spotify.Spotify version <IP_ADDRESS>4.gf42f9f0a

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.4 schema?

Microsoft Reviewers: Open in CodeFlow

Pipelines do not currently support Elevation prohibited. @stephengillie will need to manually review


Frontend: allow reading file input from stdin, like a REPL heredoc mode

When using the REPL, there is no convenient way to specify a design.  One can call read_verilog, read_blif, etc., but the Verilog or BLIF, etc. must exist in some file.
This PR enables recognition of "-" as a filename for Frontend passes, and when that is given, it reads from stdin just like it would read from a script file with a heredoc.  This means one can do something like the following:
yosys> read_verilog -dump_ast1 -
module top(input a, output reg q);
	always @*
		if (1'b1)
			q = !a;
endmodule
EOT
1. Executing Verilog-2005 frontend: <stdin>
Parsing Verilog input from `<stdin>' to AST representation.
Generating RTLIL representation for module `\top'.
Dumping AST before simplification:
    AST_MODULE <<stdin>:1.1-5.10> [0x1da4420] str='\top'
      AST_WIRE <<stdin>:1.18-1.19> [0x1da4c30] str='\a' input port=1
      AST_WIRE <<stdin>:1.32-1.33> [0x1da4d70] str='\q' output reg port=2
      AST_ALWAYS <<stdin>:2.2-4.11> [0x1da4eb0]
        AST_BLOCK <<stdin>:2.11-4.11> [0x1da4ff0]
          AST_CASE <<stdin>:3.3-4.11> [0x1da0290]
            AST_REDUCE_BOOL <<stdin>:0.0-0.0> [0x1da5630]
              AST_CONSTANT <<stdin>:0.0-0.0> [0x1d7ec60] bits='1'(1) range=[0:0] int=1
            AST_COND <<stdin>:3.7-3.11> [0x1da33c0]
              AST_CONSTANT <<stdin>:0.0-0.0> [0x1da5780] bits='1'(1) range=[0:0] int=1
              AST_BLOCK <<stdin>:4.4-4.11> [0x1da3540]
                AST_ASSIGN_EQ <<stdin>:4.4-4.10> [0x1da5cc0]
                  AST_IDENTIFIER <<stdin>:4.4-4.5> [0x1da54e0] str='\q'
                  AST_LOGIC_NOT <<stdin>:4.8-4.10> [0x1da5b70]
                    AST_IDENTIFIER <<stdin>:4.9-4.10> [0x1da5a20] str='\a'
--- END OF AST DUMP ---
Successfully finished Verilog frontend.

yosys> ls

1 modules:
  top

One deficiency of the current implementation:  The end marker is hardcoded as "EOT".  Ideally this somehow would be optionally specified by the user.

Traditional heredoc syntax (<<EOT) is supported in scripts already, e.g. https://github.com/YosysHQ/yosys/blob/master/tests/various/equiv_opt_multiclock.ys#L1, it would probably be worth using the same syntax in interactive mode.

You mean like instead of the filename "-" being the flag, a valid heredoc (like "<<EOT") as filename would be the flag?  I like it, but it does away with the convention that "-" is used as a placeholder filename for stdin.

I think it is more important to stick with the convention established for heredocs in scripts already than with the '-'-means-stdin convention.

Alright, fair enough.  Done.

@boqwxp Thanks for implementing this! It's something I wanted for a long time.

Sure, no problem.  I have wanted it before, too.  I was just hit with the need yet again, decided this time actually to see how complicated an implementation would be, and found it was actually dead simple.  :)


Adding to the webpack build chain

Would you consider offering the ability to add packages to augment the build process for a project? For example, say I needed postcss features for a particular site I'm developing, or image compression, it would be cool if the developer could npm install the requisite packages and have those update the Vapid's build process.
Perhaps, allow developers to create vapid specific packages that depend on useful node packages, a la what gatsby.js does.

What I think would be preferable for development would be to have someway to integrate different packages that augment the build setup, without having to manually add and configure them upstream. So, if my latest project would benefit from imagemin and a responsive image solution, I could add/develop a package that would hook in, something like npm install vapid-imagemin and have a corresponding config file to tweak the settings to my particular project.
My thought was to alleviate too much effort on your upstream part and allow each project to be customised based on its requirement. (e.g., not all projects require IE support, therefore, no reason to bake in certain cssnext plugins, and not every project requires responsive srcsets created on build and so on.)


Transparent mode failure: OSError(92, 'Protocol not available')

Problem Description
Transparent mode proxying does not work, clients cannot connect to internet; frequent messages in log:
Dec 08 10:26:33 scarif-gw python[1905]: <IP_ADDRESS>:49219: Transparent mode failure: OSError(92, 'Protocol not available')
Dec 08 10:26:33 scarif-gw python[1905]: <IP_ADDRESS>:49219: CONNECT :443
Dec 08 10:26:33 scarif-gw python[1905]:                << 502 Bad Gateway 198b
Q1) Is there any way to use transparent mode only on allow-listed URLs, like a hard bypass? I really only want to intercept a specific URL.
Q2) How do I run mitmproxy non-interactively? Is mitmdump the way to go?
Tried mitmproxy -k --mode transparent
Steps to reproduce the behavior:

mitmproxy -k --mode transparent
set server as default gateway in client
errors pop up when visiting any website

System Information
Mitmproxy: 7.0.4
Python:    3.9.1
OpenSSL:   OpenSSL 1.1.1d  10 Sep 2019
Platform:  Linux-5.10.63-v7l+-armv7l-with-glibc2.28

Any news on this one?

Transparent mode failure: OSError(92, 'Protocol not available')

This indicates that transparent mode options don't work on your system for some reason. Something in https://github.com/mitmproxy/mitmproxy/blob/main/mitmproxy/platform/linux.py is throwing that error. Given that this is system specific and this issue is quite old, I'll close it.

I'd like to reopen issue to understand what could be a problem, I see same message for transparent proxy
Transparent mode failure: OSError(92, 'Protocol not available')


feature.py  KeyError: 'pseudo_bias'

error: save: error compressing data element
error: called from
    plmDCA at line 165 column 5

/Users/mac/lab/guo/alphafold_pytorch
Traceback (most recent call last):
  File "feature.py", line 263, in <module>
    feature_generation(SEQ_FILE, OUT_FILE)
  File "feature.py", line 168, in feature_generation
    pseudo_bias = np.float32(mat['pseudo_bias'])
KeyError: 'pseudo_bias'

Can anyone help?

My girlfriend broke up with me, so i don't need to use this anymore and don't wanna see it ,so I will close this issue.


[ARCTIC-877] fix OrphanFilesCleanService get metadata files with recursive=false

Why are the changes needed?

fix OrphanFilesCleanService get metadata files with recursive=false
Brief change log
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before making a pull request

Documentation

Does this pull request introduces a new feature? (no)
If yes, how is the feature documented? (not documented)

I have cherry-picked it to 0.3.x


Display the rating

The new star system for the 2.0 beta 2 doesn't show the rating label (masterpiece - 10 ;
Awesome …)
Can you show it somewhere to see easily with rating I write? (And too when I want to change, I don't know if 4 stars = 8 or 7, etc)

The star rating system will get replaced by a simple numberpicker to make it easy to support MAL & AL #372


Support for Django > 3

Added new Django respective method replacements in case of Django > 3
These changes were also requested in the following mentioned issues:
Support for Django 3.2
Support for Django 4.0

+1 for a merge on this. I'm currently using @besarbertasholli's fork on a Wagtail 3.0.1 site (with Django 4.0.6) and it works fine.

fix for this has been merged into master, and will release soon

Integrated into our latest dev builds and works great! Thank you @unexceptable 🎉


setting to customize websocket url path

problem
I want to integrate some hd dashboards into pre-existing Django websites. I would host the hd apps on the same domain as the Djangos, and route them together using nginx.
When hosting many services on one domain, it's valuable to be able to route them into subfolders. With such a setting, it could be possible to host 2 or more hd apps on the same domain, e.g. /docs/ws is one server, /app/1/ws is another server, and so on.
This would also let you host all the demos in one single domain, by running one python process per demo.
This is not currently possible because the /ws path is hard-coded:

https://github.com/hyperdiv/hyperdiv/blob/53ebad23dfbf2926b77c4ceab76e38c2fdc5c0cf/frontend/src/websocket.js#L86
https://github.com/hyperdiv/hyperdiv/blob/53ebad23dfbf2926b77c4ceab76e38c2fdc5c0cf/hyperdiv/server.py#L138

The customization could be either only on the websocket path, or for all paths (example: grafana serve from subpath). Both solutions are OK, as all paths except websocket can be controlled from the app.
Fixing the python part is easy (just add some os.environ['HD_PREFIX_PATH']) - it's the javascript part that requires some finessing. We don't want to rebuild the javascript on changing the websocket/prefix path, and putting it in some kind of static asset /settings.json would also need to have its path customized.
Any suggestions on injecting this setting into the js?
workaround
The main workaround now is to host each hyperdiv site in its own subdomain e.g. docs.X and app.X and so on.
The other possibility is to do request rewriting and websocket traffic proxying (from the django) - certainly possible but not trivial.

Assuming your Django setup runs at http://foo:80, I wonder how requests from http://foo:80/app/1 are forwarded to Hyperdiv, since the Hyperdiv app presumably runs on some other port.
I think this is doable but I wonder if the Hyperdiv server needs any changes. Hyperdiv probably shouldn't be directly serving the path /app/1, since that's a Django route (or Nginx, etc.). The Hyperdiv frontend definitely needs to be aware of the prefix /app/1.

I don't think the server needs any change - just the frontend somehow.
With changing the frontend, we could do from nginx:

location /app/1/ws { proxy_pass http://hyperdiv-app-1:10001/app/1/ws, connection:upgrade, ... }
location /app/2/ws { proxy_pass http://hyperdiv-app-2:10002/app/2/ws, connection:upgrade, ... }
location /app/1 { proxy_pass http://hyperdiv-app-1:10001/app/1, ... }
location /app/2 { proxy_pass http://hyperdiv-app-2:10002/app/2, ... }
location / { proxy_pass http://django:80, ... }

Assuming your Django setup runs at http://foo:80, I wonder how requests from http://foo:80/app/1 are forwarded to Hyperdiv, since the Hyperdiv app presumably runs on some other port.

Yes it's all on different hostnames and ports (docker compose or similar).
In cases without being able to customize the ws path (or any other path), one would go about it this way:

give django the list of upstreams {'app1': 'http://hyperdiv-app-1:10001', 'app2': 'http://hyperdiv-app-2:10002' ...}
in the django front-end, for each app create an <iframe> preloaded with custom js that overrides fetch, xmlHTTP and relevant websocket primitives to include some custom HTTP header X_WHAT_APP_IS_THIS=app1
for non-websocket traffic, use streaming requests(stream=True) and django's StreamingHttpResponse to proxy the connections like this and drop the unwanted path prefix for each app. The correct app can be figured out by the Referer header if correct policy is set
define custom websocket route /ws that looks at headerX_WHAT_APP_IS_THIS and connects to the correct websocket upsteram and starts proxying messages. We can't use Referer header because browsers don't include it in WS traffic

Having done this for various non-cooperating apps, I can say it's a pain to set up and very brittle afterwards, but if it works it's not stupid

I think this setup is possible:
You have a Hyperdiv app with a router that serves  /a and /b on port 8888 and want to embed it, say using nginx, to run at https://foo.com/app/1.
Nginx forwards requests:

/app/1/index.html -> location:8888/index.html
/app/1/ws -> localhost:8888/ws
/app/1/a -> localhost:8888/a
/app/1/b -> localhost:8888/b
etc.

The Hyperdiv app is agnostic to the /app/1 prefix, it just knows about /a and /b. But the Hyperdiv frontend needs to know the prefix, so it can strip it from the path before it sends the path to the app, and prepend it to the path when the app sends a location change to the frontend.
That could be achieved with something like hd.run(main, index_page=hd.index_page(location_prefix="/app/1")). This would add something like <script>window.hyperdivLocationPrefix = "/app/1"</script> to index.html, and the frontend would need to be modified to strip/prepend this prefix.

It just forwards /app/1/(.*) to localhost:8888/$1.

That breaks all links generated in the app, for example hyperdiv generates a link to /page but it should actually be /app/1/page. Say you fix those - It also breaks in the same way fetches/ajax that are created dynamically, and lots other things like that.
This whole problem can be avoided by not doing anything to the urls. For example an app can have a custom X_URL_PREFIX env that it explicitly prepends to each url definition. In django you'd just do urlpatterns = [path(r'^prefix/', include(urlpatterns))] and hoist your whole path list under that prefix.
With Hyperdiv, i don't know if you can have a router to do regex match / prefix match, and if you can have one router (the prefix dropper) call another router (the actual app router) -- still, it's not a problem to replace the @router() decorators with custom code that injects whatever we want to the path.
The app cannot do this without also moving the /ws location - so the solution I see for thisa would be hd.run(main, ws_location='/whatever/ws'). I will look into your suggestion of doing script>window.hyperdivLocationWS = "/app/1"</script>

Good points.
The main problem I see with hardcoding the path /app/1 into the app, and you have code like @hd.router('/app/1/page') and hd.link('/app/1/page') in the app, is that now you can't easily embed the same app at another path, like /foo/bar/4.
I'm interested in having apps be "path-agnostic" by default, so you can take an existing app and serve it from any path. Like I should be able to take the note-taking demo app and serve it from https://hyperdiv.io/demo-apps/notes/ by just setting HD_SERVE_PATH to "/demo-apps/notes", without modifying the app. Then when you navigate to https://hyperdiv.io/demo-apps/notes/note/<note_id>, the Hyperdiv app sees "/note/<note_id>" in hd.location().path and works correctly.
Things would break only if an app makes explicit assumptions about where it's being served from, like assuming that it's being served from foo.com by linking to http://foo.com/foo/bar, etc.
I think the path rewriting can be done on either the backend or the frontend. And yes, I think custom plugin JS will need to be aware of the serve path. If a plugin wants to do an AJAX request to /assets/foo.txt it will need to prepend the serve path in either case. This could be done by calling a function window.hyperdiv.getPath("/assets/foo.txt") that prepends the serve path if there is one.
If we don't care about path-agnostic apps, and we hardcode the path prefix everywhere in the app and plugins, the situation gets a lot simpler. Then we just need to serve the static assets from the right paths and for the frontend to prepend the prefix to the websocket URL.
I'll do some experimenting and report back.


Incompatibility of litd 0.8.6-alpha with lnd 0.15.5-beta as remote

Actual behavior
I just updated my lnd and litd. They are seperate installations on the same host so I use the "remote" method.
When using litd 0.8.6-alpha with lnd 0.15.5-beta as remote I get
2023-02-26 20:20:43.178 [ERR] RPCS: [/lnrpc.Lightning/RegisterRPCMiddleware]: permission denied

When using litd 0.8.5-alpha it works. The version is the only think that changes the behaviour. All other config properties remained unchanged.
To reproduce
Install the versions above a connect from litd to (remote) lnd using rpc+macaroon auth.
System information
Debian bullseye, x86_64
I used the published release versions from github for both lnd and litd.
I used the factory "admin.macaroon" for authentication between litd and lnd
litd output:
$ sudo -u lndb /usr/local/bin/litd
2023-02-26 20:20:40.534 [INF] LITD: LiT version: 0.8.6-alpha commit=v0.8.6-alpha
2023-02-26 20:20:40.869 [INF] SESS: Checking for schema update: latest_version=0, db_version=0
2023-02-26 20:20:40.869 [INF] LITD: Dialing lnd gRPC server at <IP_ADDRESS>:10009
2023-02-26 20:20:40.870 [INF] LITD: Listening for http_tls on: <IP_ADDRESS>:8443
----------------------------------------------------------
 Lightning Terminal (LiT) by Lightning Labs

 LND Operating mode      remote
 LND Node status         online
 LND Alias               HeldenLight
 LND Version             0.15.5-beta commit=v0.15.5-beta
 LiT Version             0.8.6-alpha commit=v0.8.6-alpha
 Web interface           <IP_ADDRESS>:8443 (open https://<IP_ADDRESS>:8443 in your browser)
----------------------------------------------------------
2023-02-26 20:20:40.895 [INF] LITD: Connecting basic lnd client
2023-02-26 20:20:41.095 [INF] LITD: Connecting full lnd client
2023-02-26 20:20:41.095 [INF] LNDC: Creating lnd connection to <IP_ADDRESS>:10009
2023-02-26 20:20:41.096 [INF] LNDC: Connected to lnd
2023-02-26 20:20:41.097 [INF] LNDC: Waiting for lnd to unlock
2023-02-26 20:20:41.098 [INF] LNDC: Wallet state of lnd is now: Lnd main server is ready for requests
2023-02-26 20:20:41.118 [INF] LNDC: lnd version: v0.15.5-beta, build tags 'autopilotrpc,signrpc,walletrpc,chainrpc,invoicesrpc,watchtowerrpc,neutrinorpc,monitoring,peersrpc,kvdb_postgres,kvdb_etcd'
2023-02-26 20:20:41.118 [INF] LNDC: Using network mainnet
2023-02-26 20:20:41.118 [INF] LNDC: Waiting for lnd to be fully synced to its chain backend, this might take a while
2023-02-26 20:20:41.141 [INF] LNDC: lnd is now fully synced to its chain backend
2023-02-26 20:20:41.141 [INF] LITD: Starting integrated faraday daemon
2023-02-26 20:20:41.329 [INF] LITD: Starting integrated loop daemon
2023-02-26 20:20:41.329 [INF] LOOPD: Protocol version: Routing Plugin
2023-02-26 20:20:41.329 [INF] LOOPD: Swap server address: swap.lightning.today:11010
2023-02-26 20:20:41.429 [INF] STORE: Checking for schema update: latest_version=4, db_version=4
2023-02-26 20:20:41.654 [INF] LITD: Starting integrated pool daemon
2023-02-26 20:20:41.654 [INF] POOL: Version: 0.6.1-beta commit=v0.6.1-beta.0.20221202155747-aec0aee8d9a1
2023-02-26 20:20:41.654 [INF] LOOPD: Starting liquidity manager
2023-02-26 20:20:41.654 [INF] LOOPD: Starting swap client
2023-02-26 20:20:41.654 [INF] LOOP: Connected to lnd node 'HeldenLight' with pubkey 0290cc884704073b2b633f69f852e8ca2a37660bb359a1e861f2b48760c298ac53 (version v0.15.5-beta, build tags 'autopilotrpc,signrpc,walletrpc,chainrpc,invoicesrpc,watchtowerrpc,neutrinorpc,monitoring,peersrpc,kvdb_postgres,kvdb_etcd')
2023-02-26 20:20:41.654 [INF] LOOPD: Waiting for updates
2023-02-26 20:20:41.654 [INF] LOOP: Wait for first block ntfn
2023-02-26 20:20:41.655 [INF] LOOP: Starting event loop at height 778413
2023-02-26 20:20:41.859 [INF] POOL: Auction server address: pool.lightning.finance:12010
2023-02-26 20:20:41.891 [INF] CLDB: Checking for schema update: latest_version=1, db_version=1
2023-02-26 20:20:41.944 [INF] RPCS: Starting trader server
2023-02-26 20:20:41.965 [INF] RPCS: Connected to lnd node HeldenLight with pubkey 0290cc884704073b2b633f69f852e8ca2a37660bb359a1e861f2b48760c298ac53
2023-02-26 20:20:41.994 [INF] FNDG: Starting funding manager
2023-02-26 20:20:41.994 [INF] FNDG: Funding manager is now active
2023-02-26 20:20:41.994 [INF] RPCS: Trader server is now active
2023-02-26 20:20:42.105 [INF] LITD: Starting LiT macaroon service
2023-02-26 20:20:42.237 [INF] AUTO: Starting Autopilot Client
2023-02-26 20:20:43.153 [INF] LITD: Starting LiT session server
2023-02-26 20:20:43.153 [INF] LITD: Starting LiT account service
2023-02-26 20:20:43.178 [INF] LITD: Starting LiT middleware manager
2023-02-26 20:20:43.178 [ERR] LNDC: Could not receive from interceptor stream: rpc error: code = Unknown desc = permission denied
2023-02-26 20:20:43.179 [ERR] LITD: Could not start subservers: context canceled
2023-02-26 20:20:43.179 [INF] LOOPD: Stopping gRPC server
2023-02-26 20:20:43.179 [INF] LOOPD: Stopping REST server
2023-02-26 20:20:43.179 [INF] LOOPD: Liquidity manager stopped
2023-02-26 20:20:43.179 [INF] LOOP: Swap client terminating
2023-02-26 20:20:43.179 [INF] LOOP: Swap client terminated
2023-02-26 20:20:43.179 [INF] LOOPD: Swap client stopped
2023-02-26 20:20:43.179 [ERR] ACCT: Unable to receive block notification: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.179 [ERR] RPCS: Unable to receive block notification: channel acceptor receive failed: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.179 [INF] LOOPD: Daemon exited
2023-02-26 20:20:43.179 [INF] POOL: Received shutdown signal, stopping server
2023-02-26 20:20:43.179 [INF] AUCT: Shutting down auctioneer client
2023-02-26 20:20:43.179 [ERR] RPCS: Unable to receive block notification: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.179 [ERR] ACCT: Error in invoice subscription: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.179 [INF] RPCS: Trader server stopping
2023-02-26 20:20:43.179 [INF] AUCT: Shutting down auctioneer client
2023-02-26 20:20:43.179 [INF] FNDG: Funding manager stopping
2023-02-26 20:20:43.179 [INF] FNDG: Stopped funding manager
2023-02-26 20:20:43.179 [INF] RPCS: Stopped trader server
2023-02-26 20:20:43.179 [ERR] LNDC: Error closing lnd connection: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.179 [ERR] LNDC: Error closing lnd connection: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.180 [ERR] LITD: Error while stopping litd: rpc error: code = Canceled desc = grpc: the client connection is closing
2023-02-26 20:20:43.180 [ERR] LITD: Error shutting down: rpc error: code = Canceled desc = grpc: the client connection is closing
context canceled

lng.log:
...
2023-02-26 20:20:38.057 [ERR] HSWC: Unhandled error while reforwarding htlc settle/fail over htlcswitch: insufficient bandwidth to route htlc
2023-02-26 20:20:41.129 [WRN] HSWC: ChannelLink(48de9bc5430f960e9329f44be2f7b335f397e6de00b6de7b1f30fd75aee99143:1): insufficient bandwidth to route htlc: 100003001 mSAT is larger than 190022 mSAT
2023-02-26 20:20:41.130 [ERR] HSWC: insufficient bandwidth to route htlc
2023-02-26 20:20:41.130 [ERR] HSWC: Unhandled error while reforwarding htlc settle/fail over htlcswitch: insufficient bandwidth to route htlc
2023-02-26 20:20:41.654 [INF] NTFN: New block epoch subscription
2023-02-26 20:20:41.965 [INF] NTFN: New block epoch subscription
2023-02-26 20:20:41.965 [INF] NTFN: New block epoch subscription
2023-02-26 20:20:42.279 [WRN] HSWC: ChannelLink(48de9bc5430f960e9329f44be2f7b335f397e6de00b6de7b1f30fd75aee99143:1): insufficient bandwidth to route htlc: 69421249 mSAT is larger than 190022 mSAT
2023-02-26 20:20:42.279 [ERR] HSWC: insufficient bandwidth to route htlc
2023-02-26 20:20:42.279 [ERR] HSWC: Unhandled error while reforwarding htlc settle/fail over htlcswitch: insufficient bandwidth to route htlc
2023-02-26 20:20:43.154 [INF] INVC: New invoice subscription client: id=6
2023-02-26 20:20:43.178 [ERR] RPCS: [/lnrpc.Lightning/RegisterRPCMiddleware]: permission denied
2023-02-26 20:20:43.179 [INF] NTFN: Cancelling epoch notification, epoch_id=80
2023-02-26 20:20:43.179 [INF] INVC: Cancelling invoice subscription for client=6
2023-02-26 20:20:43.179 [ERR] CHAC: Received an error: rpc error: code = Canceled desc = context canceled, shutting down
2023-02-26 20:20:43.179 [ERR] RPCS: [/lnrpc.Lightning/ChannelAcceptor]: rpc error: code = Canceled desc = context canceled
2023-02-26 20:20:43.179 [INF] NTFN: Cancelling epoch notification, epoch_id=81
2023-02-26 20:20:43.179 [INF] NTFN: Cancelling epoch notification, epoch_id=82

...

I don't mind much about this. However, after having spent half an hour to debug this, at least the time feels less wasted to me if I let you know ;)

As of litd v0.8.6, you'll need to add the --rpcmiddleware.enable flag to your LND config in remote mode. See https://github.com/lightninglabs/lightning-terminal/issues/496

Haha! It happens to the best of us.


warnings "bugs"

Couple of trivial things with warnings
lxc warning show (without a UUID) causes a panic: runtime error: index out of range [0] with length 0
Also should the following help message read warning attributes instead of image attributes
https://github.com/lxc/lxd/blob/4e4590ee598edd58aaa4af80385b36264101bd2e/lxc/warning.go#L71

Thanks, will get these fixed.

@tomponline are you doing this now? Otherwise I was planning to send a PR in a few minutes, should be very trivial.

@stgraber I was going to take first thing tomoz, if you can do now that would be great thanks.


Demonstrate inconsistent WithExpectedExitCode behavior

I'm submitting this PR to demonstrate the problem I tried to explain in #4013
I have written a unit test that fails due to the problem I described. In short:

Cake script executes a command
The command's exit code is zero
The script is configured to expect a non-zero exit code

Given these facts, I expect Cake to throw an exception but my unit test highlights the fact that this is not happening.

As I have mentioned, my unit test fails (here):
[xUnit.net 00:00:06.59]     Cake.Common.Tests.Unit.Tools.Command.CommandRunnerTests.Exception_Thrown_when_command_exit_code_is_zero_and_expected_value_is_non_zero [FAIL]
  Failed Cake.Common.Tests.Unit.Tools.Command.CommandRunnerTests.Exception_Thrown_when_command_exit_code_is_zero_and_expected_value_is_non_zero [157 ms]
  Error Message:
   Assert.IsType() Failure
Expected: Cake.Core.CakeException
Actual:   (null)
  Stack Trace:
     at Cake.Common.Tests.Unit.Tools.Command.CommandRunnerTests.Exception_Thrown_when_command_exit_code_is_zero_and_expected_value_is_non_zero() in D:\a\cake\cake\src\Cake.Common.Tests\Unit\Tools\Command\CommandRunnerTests.cs:line 230


fix(package): changing pulish config

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Added support for enabling debug logs for okhttp

Support setting logging.level to debug to display okhttp detailed log, easy to locate & find issues.
logging.level.org.apache.shenyu.admin.utils.HttpUtils: debug
Make sure that:

[x] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[x] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #4976 (219df2e) into master (a6a56cf) will decrease coverage by 0.13%.
Report is 8 commits behind head on master.
The diff coverage is 57.14%.

@@             Coverage Diff              @@
##             master    #4976      +/-   ##
============================================
- Coverage     63.93%   63.81%   -0.13%
+ Complexity     8528     8527       -1
============================================
  Files          1208     1208
  Lines         35899    35906       +7
  Branches       3217     3213       -4
============================================
- Hits          22953    22913      -40
- Misses        11095    11140      +45
- Partials       1851     1853       +2

Files Changed
Coverage Δ

.../java/org/apache/shenyu/admin/utils/HttpUtils.java
37.50% <57.14%> (+0.77%)
:arrow_up:

... and 10 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

pls add license in shenyu-dist/shenyu-admin-dist

license not right


Issue about installation

Hi there,
I was trying to install this tool as follow:
git clone git@github.com:unique379r/strspy.git
cd strspy
bash setup/STRspy_setup.sh

However, I got the following error:
                                #### Welcome to the installation of third-party software for STRspy pipeline use ####
                                                        #### Before to Run this script ####

#Make sure internet connection works properly in your privileges.
# bash ./STRspy_setup.sh
Continue? (y/n) : y
checking if strspy_env is already present....

#conda appears to have already installed !
#attempting to make a conda env and install required packages..

EnvironmentFileNotFound: '/nfs/turbo/bin/strspy/environment.yml' file not found

#Installation may done, please verify it by restarting your terminal and --> conda info --envs | grep ^strspy_env | awk '{print }'

I did not see the environment.yml under strspy which was cloned from your repo.
Any advice on this matter would be appreciated.
Best,
Hsin

Hi
can you try
cd strspy/setup
bash STRspy_setup.sh

the setup dir has the "environment.yml"
hope this help.

Hi,
Thank you! That worked and the test data worked smoothly as well. I have some questions about the input files and output.

What distinguishes testset/all_regions/test.regions.sort.named.bed from testset/testCustomDB/FGA.bed or vWA.bed?

I'm curious about the meaning of the RawCounts in the FGA_cA_15-0.5-1.minimap.sorted.bam_Allele_freqs.txt file. For instance, does the value "92" indicate the presence of sequences like FGA_[GGAA]2_GGAG_[AAAG]13_AGAA_AAAA_[GAAA]3_21 or sequences containing "AAAG"? I may have misunderstood this.

STR     RawCounts       NormalizedCounts
FGA_[GGAA]2_GGAG_[AAAG]13_AGAA_AAAA_[GAAA]3_21  92      1
FGA_[GGAA]2_GGAG_[AAAG]15_AGAA_AAAA_[GAAA]3_23  74      0.804348
FGA_[GGAA]2_GGAG_[AAAG]14_AGAA_AAAA_[GAAA]3_22  40      0.434783
FGA_[GGAA]2_GGAG_AAAG_AAG_[AAAG]13_AGAA_AAAA_[GAAA]3_22.3       26      0.282609
FGA_[GGAA]2_GGAG_[AAAG]14_AA_AAAA_[GAAA]3_21.2  26      0.282609
FGA_[GGAA]2_GGAG_[AAAG]12_AGAA_AAAA_[GAAA]3_20  22      0.23913
FGA_[GGAA]2_GGAG_[AAAG]15_AA_AAAA_[GAAA]3_22.2  10      0.108696
FGA_[GGAA]2_GGAG_[AAAG]11_AG_[AAAG]4_AGAA_AAAA_[GAAA]3_23.2     10      0.108696
FGA_[GGAA]2_GGAG_[AAAG]10_AGAA_AAAA_[GAAA]3_18  8       0.0869565
FGA_[GGAA]2_GGAG_[AAAG]5_AAGG_[AAAG]9_AGAA_AAAA_[GAAA]3_23      6       0.0652174
FGA_[GGAA]2_GGAG_[AAAG]17_AGAA_AAAA_[GAAA]3_25  6       0.0652174
FGA_[GGAA]2_GGAG_[AAAG]13_AGAA_AAAA_GAAA_AAAA_GAAA_21   6       0.0652174
FGA_[GGAA]2_GGAG_[AAAG]11_AGAA_AAAA_[GAAA]3_19  6       0.0652174
FGA_[GGAA]2_GGAG_[AAAG]9__AA_AAAA_[GAAA]3_16.2  4       0.0434783
FGA_[GGAA]2_GGAG_[AAAG]18_AA_AAAA_[GAAA]3_25.2  4       0.0434783
FGA_[GGAA]2_GGAG_[AAAG]16_AGAA_AAAA_[GAAA]3_24  4       0.0434783
FGA_[GGAA]2_GGAG_[AAAG]11_AA_AAAA_[GAAA]3_18.2  4       0.0434783
FGA_[GGAA]4_GGAG_[AAAG]3_[GAAG]3_[AAAG]15_AA_AAAA_[GAAA]4_31.2  2       0.0217391
FGA_[GGAA]2_GGAG_[AAAG]5_AAGG_[AAAG]12_AGAA_AAAA_[GAAA]3_26     2       0.0217391
FGA_[GGAA]2_GGAG_[AAAG]20_AGAA_AAAA_[GAAA]3_28  2       0.0217391
FGA_[GGAA]2_GGAG_[AAAG]16_AA_AAAA_[GAAA]3_23.2  2       0.0217391

Best,
Hsin

I am glad that it worked for you. With reference to your questions, I encourage you to read our article (https://www.sciencedirect.com/science/article/abs/pii/S1872497321001654).

What distinguishes testset/all_regions/test.regions.sort.named.bed from testset/testCustomDB/FGA.bed or vWA.bed?
The file "test.regions.sort.named.bed" contains all regions from the STR bed files such as FGA.bed or vWA.bed that you want to verify for presence in your sample. It is used to provide overall coverage information in the STRspy output. Look for directory called "GenomicMappingStats".

The example shows the main output of STRpy. Raw counts indicate the coverage of corresponding sequences (STR repeats), such as FGA_[GGAA]2_GGAG_[AAAG]13_AGAA_AAAA_[GAAA]3_21 = 92.

In, this example highlights the top two repeats (FGA_[GGAA]2_GGAG_[AAAG]13_AGAA_AAAA_[GAAA]3_21 and FGA_[GGAA]2_GGAG_[AAAG]15_AGAA_AAAA_[GAAA]3_23) for the sample, which are likely the true genotype of the sample, indicating heterozygosity.
I hope it helps !
-best
Rupesh


Review 'epidermolytic ichthyosis' (MONDO:0007239)

'epidermolytic ichthyosis' (MONDO:0007239) = OMIM:113800
There is a new OMIMPS: 'epidermolytic hyperkeratosis' (MONDO:0957316)
According to the OMIMPS, 'epidermolytic ichthyosis' (MONDO:0007239) should be a child of 'epidermolytic hyperkeratosis' (MONDO:0957316). However the current record for MONDO:0957316 might include several concepts.
x-refs should be reviewed for (MONDO:0957316). There might be a term split/merge required

I agree this needs review...
OMIM 113800 does not seem to be a correct match to this term, so it probably needs to split out to its own entry that is a child of the Orpha:312 entry and also a child of MONDO:0957316 But i am not sure if the Orpha:312 is actually a direct child of the OMIM PS?
The synonyms from Orphanet suggest that the epidermolytic -hyperkeratosis and -ichthysosis concepts are interchangeable?

This is a complicated issue. I am adding my analysis in 3 different comments, including the to-do list.
@kanems, when you have a moment, could you take a look at my analysis and let me know if you agree/disagree? Thank you!

Comment 1: "epidermolytic hyperkeratosis 2"
The existing OMIM:620150 (currently referring to MONDO:0958184 'epidermolytic hyperkeratosis 2') was recently updated in OMIM (on 02/07/2024). 2 terms now represents 'epidermolytic hyperkeratosis 2'

OMIM:620707 - Epidermolytic hyperkeratosis 2B, autosomal recessive  (Gene affected = KRT10)
OMIM:620150 - Epidermolytic hyperkeratosis 2A, autosomal dominant  (Gene affected = KRT10)

I think we should keep MONDO:0958184 'epidermolytic hyperkeratosis 2 (Gene affected = KRT10) as a grouping term as it is used in other sources such as DOID:0081359 = epidermolytic hyperkeratosis 2 = gene affected KRT10.
TO DO:

[] update definition for MONDO:0958184 to include “epidermolytic hyperkeratosis and 'has material basis in germline mutation in' some KRT10)
[] remove x-ref OMIM:620707 from MONDO:0958184
[] add x-ref DOID:0081359 to MONDO:0958184
[] create 2 new terms corresponding to  OMIM:620707 and OMIM:620150

Comment 2: "general classification"
General classification should follow orphanet.
Parent term = Keratinopathic ichthyosis (ORDO:281103) = MONDO:0017266
Children:

Term names in orphanet
Orphanet ID
OMIM mappings according to Orphanet
Mondo ID corresponding to Orphanet (and OMIM when only 1 omim mapping)
Status in Mondo

Annular epidermolytic ichthyosis
ORDO:281139
OMIM:607602OMIM:620148
MONDO:0011870
OK. The Mondo term has 2 children corresponding to the 2 omimRemove the parentage to 'autosomal dominant epidermolytic ichthyosis' (MONDO:0020702)

Autosomal dominant epidermolytic ichthyosis
ORDO:312
OMIM:113800OMIM:607602
MONDO:0007239
The orphanet mapping to omim is incorrect now that omim split OMIM:607602 (see comment 1)Add ORDO:312 to the Mondo recordSee reclassification in comment 3

Autosomal recessive epidermolytic ichthyosis
ORDO:512103

MONDO:0044742
OKSee reclassification in comment 3

Congenital reticular ichthyosiform erythroderma
ORDO:281190
OMIM:609165
MONDO:0012208
Make this term a child of the parent term: MONDO:0017266

Epidermolytic nevus
ORDO:497737

MONDO:0044656
OK

Ichthyosis hystrix of Curth-Macklin
ORDO:79503
OMIM:146590
MONDO:0007808
Make this term a child of the parent term: MONDO:0017266

Superficial epidermolytic ichthyosis
ORDO:455
OMIM:146800
MONDO:0007813
OK

Comment 3: "Epidermolytic hyperkeratosis"
finding 1: From PMID:28815464
Epidermolytic ichthyosis is the major variant of keratinopathic ichthyosis, an umbrella term for ichthyosis caused mostly by dominant-negative mutations in the keratin genes KRT1, KRT2, or KRT10 [3]. Epidermolytic ichthyosis is characterized by hyperkeratosis, erythroderma, and superficial skin fragility.
Therefore 'Epidermolytic ichthyosis' should be a child of 'keratinopathic ichthyosis'
finding 2:
OMIMPS:113800 = MONDO:0957316 = Epidermolytic hyperkeratosis
This OMIMPS groups:

OMIM:113800 - Epidermolytic hyperkeratosis 1 - Gene = KRT1
OMIM:620707 - Epidermolytic hyperkeratosis 2B, autosomal recessive - Gene = KRT10 (created/updated in OMIM on 02/07/2024)
OMIM:620150 - Epidermolytic hyperkeratosis 2A, autosomal dominant - Gene = KRT10 = MONDO:0958184 (updated in OMIM on 02/07/2024)

To do
I think epidermolytic hyperkeratosis (MONDO:0957316) and epidermolytic ichthyosis (MONDO:0007239) represent the same concept (these names are synonyms in OMIM) and these terms should be merged. The term to keep would be ‘epidermolytic ichthyosis’ (MONDO:0007239) as it is the oldest one
‘epidermolytic ichthyosis’ would be

a child of Keratinopathic ichthyosis (ORDO:281103) = MONDO:0017266
the parent term for

new term corresponding to OMIM:113800 - Epidermolytic hyperkeratosis 1 - Gene = KRT1
MONDO:0958184 'epidermolytic hyperkeratosis 2 (see also comment 1)

The current x-ref should be updated as below:

Current MONDO:equivalentTo xref
status
To do

DOID:0081358
Represents KRT1 = epidermolytic hyperkeratosis 1
Move to new term corresponding to OMIM:113800

DOID:4603
Refers to epidermolytic hyperkeratosis
OK, stays

MESH:D017488
Refers to general Epidermolytic Ichthyosis
OK, stays

NCIT:C62569
The NCIT definition is: An autosomal dominant inherited skin disorder caused by mutations in the KRT1 and KRT10 genes. It is manifested at birth and is characterized by generalized erythema, skin blisters and skin fragility.
I think this should be move to Autosomal dominant epidermolytic ichthyosis (MONDO:0007239)

OMIM:113800
= EPIDERMOLYTIC HYPERKERATOSIS 1; EHK1 (Gene = KRT1)
Move to the new term

Orphanet:312
Autosomal dominant epidermolytic ichthyosis
move to Autosomal dominant epidermolytic ichthyosis (MONDO:0007239)

SCTID:254167000
Bullous ichthyosiform erythroderma, which is a synonym in omim
OK stays

Note that the new OMIM terms can be classified also under the existing "autosomal recessive/dominant" term

Comment 1: "epidermolytic hyperkeratosis 2"

Your plan sounds good. I suspect that Lynn + DO team will probably update their term to match OMIM, they may not be aware that OMIM split this into two terms. I'd be happy to check with them, and if they decide to split their term into two terms, we may not need to have the grouping class.

Comment 3: "Epidermolytic hyperkeratosis"

@sabrinatoro I may not be following your comment correctly but you suggested that epidermolytic hyperkeratosis (MONDO:0957316) and epidermolytic ichthyosis (MONDO:0007239) should be merged, but one of these is the OMIMPS (MONDO:0957316) and epidermolytic ichthyosis (MONDO:0007239) is part of the PS, so it should be a child of MONDO:0957316, not merged into it.

Comment 3: Epidermolytic hyperkeratosis
@nicolevasilevsky It looks like @sabrinatoro is suggesting a new Mondo term for the OMIM child concept, thus OMIM 113800 (EPIDERMOLYTIC HYPERKERATOSIS 1) and the DOID matching concept would a NEW record; the remaining equivalentTo items are either synonymous with epid. icthyosis OR need to move to a separate (existing) Mondo ID.  I agree with this reorganization approach.

All other comments/suggestions seem to be correct to me. And I think this  resolves my other request on #7141 .

thanks for clarifying @kanems, sounds good to me!

Left to do:

[ ] merge 'epidermolytic hyperkeratosis' (MONDO:0957316) into 'epidermolytic ichthyosis' (MONDO:0007239)
[ ] review that the classification and IDs are correct based on comment 3
[ ] add autosomal dominant/recessive parentage for 'epidermolytic hyperkeratosis 2' terms


[Addition]: Big sophisticated system of multiple wallets + Pisces hotspots in one city, witnessing only each other

Hotspot b58 Addresses
112DY7YkbqbNYeS684z9rQDWS6rK8jmAuuXJhD8HtHsP1nF7tgT1
11fdtH7GnAkBxDVZxcP16QNKLUhhX4RkGp2Sr87VvocLN6aZQit
112YgbcdxoRAaKtg4FbeHCEngZiqZ1BifJAn6Zp286PZ7REN4Fue
1123hmbck5U7KZWwzS2fYBiqBJqFkR7zXDxpv6VqSn9r25ukvHP9
11276YYTPqNHC5vVKncfAvGCGJeXtzrd14CnWRnGGvCZt4fYzv4d
112hSwVf19zVu8Ljst8DQ3x8tZiJnxHNXGqec9m36fTHfP4VWGWc
115hVXaBmmVEu5hD7aVuURL9ft4A8WZHTnoe3oJW3qFfHcJAyyH
11SFSS3DPYtNBpsr8tsyT9LVw6JGM4KpC2ZYc2JE3GLPd4RaS11
112gD7nnhEcZWrrE24CpvxQzuawMzC98Jawmp1hHgnKc96r1ZrsB
11KMA96JR5zVVyqgK8EM66hogieXFBp5oPNZXyjafBZvf4G7rWj
112c6LeCzmhovE3NfrWF5tGrtj18ZyME81VaRJBoTsf2cxGro9mX
112PJ4uPT8cx9FVCStx4s9edDyzuTiqp7g9xVCtsZ18V3sfgTH6C
11mVXZvmFjduCUaodDtzTmyKcpzVFZKxmEN6TN6tbC3neNhPq7J
11GtfeqLG7zp3iRLHWj8CKK7MNWaEq8c8SZB8My2EJ1QpmPVAdC
11QEVpfWDFuZ4hEY4CzB3pBmenPBAfZziWfL2Nz6PkN3csyhC4L
11bLTNhjiBK8WDuRUEabegyEyGjzd8Dvhgmz8pX3DdVSQBmNSjn
11zcRtsQideBBYjgB29v6NgYHjzLqKNdCBtFksaZFD6Md8XYWni
112r1S7sRw916c4xRxUYRWfQMMSrUA32KpNzMa2iJCz6zntWRA7e
112s8LAERVqFXm47TDNxbQG3GaoZY4vrhDV9FdVaCVXA3qUKgjib
11LxU4HqhtSRGu3kY4kEUq36wtckq8PutELjkoHtbzBGGH9JAcS
114arqNFQP3Tf2XxkWrsrypHbnqfBR3dA3aKQJd15LymU7xbybN
112Bn71XJD6RZ4KmouPXMXQJdMX4Nm3eNEGa2fz9EwNX7LdNAKdq
1121xbVMy5knVCim4dHHoP42TqsUj7R1e5WuPhwX4geCCaj8S9cm
1124Z7U8iVeo5a2MAUaYjrhUyRMMjE8Moy151mg2oggmS6Z1qWYZ
112NdTqRvUHXGdkWJUawRgaowoThKrEpjFSTMyTEhm7ms6gRq5hR
112KFNhN4inU9E67cqieRD3Aj4RpM2Le2wXpTfseQMxEbEDEr7kX
11n1MLihxr4tncKMajN9fXEJp7a6qTBFMqit9RNhMHTXWkHab6A
112g22GK3v93rbTukyrJqLk9tVoRJE3HZHZnFGDHduqx8UKVfJ9k
11f28Hd7wp7XVmgWAkDwck2zoSSunsWMqSFPQsFaEdmqfthjJEz
11YgxgztDXyzpZNCdrmCK5r6k2ZPFA2PDWzs6Nm1YBuo8gJ2c6C
112ZVg5Vt2mtEZ66w4kthLGvFPpY2dj525SRaf8jZ1o4SiLkNbhG
111SJQSP2ihKGd9BeqjDDa6oDmmR9S1DBN4LbQLukGn6vBdKm9o
112eJ8zjJ2cD3Nxchne9GwBVU8YXrfyyybyg1K4RowrvgpUkdTtA
112otcqQvPNKqV3vWSrMpS2JVsaidmrcmnwYEW1sytVybcPnBjqU
112MGrxmoRb1pmH9pnbZw9P3GyufWUkutyjW1h3HPHDwvxaEwVDo
EDIT (3 more):
112ZZr9uKHVAmuyttWRMgA1nvDgFqpUC4sUvoM3zjtnVJWSRS3Gh
11BYo7iBqCoEHQ3EWkdDumXUWDP3Eb4QssXFaQDs6vKjdzVyUhE
11GC1oq64CNYXfZ8HYQBoVCCtXYCj3ZsESrA6JXaQdt2wGjTr5s
Discord Handle
No response
Reason(s)
A large number of hotspots (all Pisces, all relayed) appeared in my city, divided between 9 (EDIT: 10) wallets (each wallet has 3-5 hotspots). They are claimed to be in different parts of the city but witness only each other and do not witness any local known hotspots. Very sophisticated system and would be difficult to discover for anyone who does not know the local Helium network situation. Since this farm consists of at least 35 (EDIT: 38) hotspots, they seem to have penetrated the local network, appearing as if they were normal. But they are ruining the transmit scales in this city :(
The wallets in question are:
13G7sBaPp3RNkuBNY6VxXVWsJEXj4T3W75LoaC1NKM4oGttdrNA
14Cy5C8Mx9AhGhQVH6amUJrNucz382kWyTLNav4FkqLS5vJeX2q
13CsCsDEbhqPtHyVH4TrHPCEWkypTjFMKQCRpB38TKJiAt3gbsf
14iBcX26TUMkczjC8kauUbAqGgR9HUjsZWcnFBhWxteL5AwCsA3
14pbhXHeD2R2vYvpK81uzv1v1P9NnoAde4Cf6jHvfxfEmYNqdPt
13CsbJqpCu72258LXt1YCXbWepPpAByqKKsfe7TmMTotXZxNbhD
14s53njdroFnbPaAksyZJ9UtUwAqP1KowcunP3GqwZHP6SocmV9
12x38gjwSmnWBDf9JJBzRzTasJaEDVit7AitfnQJKt1WSQT688Z
145TbthnchWrnKMSxHqhErdsZCHVyzgnw3AeWhsHZEtjJce9dta
EDIT (1 more) wallet:
14c316qePy5ZZjqaLQWBe6nDVSQVYiDFRMhymJR1CFgWVpxeWsL

I discovered 3 more hotspots of this system in one additional wallet, and added them to the list.

I found some more in the same system, and added them here: https://github.com/helium/denylist/issues/957

We have taken into account this addition request in the next iteration of the denylist. Some or all of the Hotspots listed may be added to the denylist. This is an automated comment due to the volume of addition and removal requests. A future tool is in the works to provide more insight into the analysis approach made by the Helium team and community members that maintain this list.


Publish on NuGet a version compatible with NetStandard 2.0 preview2

I am using .NET Core 2.0 preview 2 and I am trying to target netstandard2.0, however JSON.NET is not compatible. Please publish a version compatible with NetStandard 2.0 preview2.

Hi, I found that I misunderstood what the netstandard version means. This issue isn't actual.


Cannot use acutator internal service of Armeria-Spring integration if management.server.port is enabled

To use "actuator" internal service of Armeria, When I add "armeria-spring-boot3-actuator-starter" artifact and configure the both internal-services.port and management.server.port, java.net.BindException Address already in use occurred. FYI, If the management.server.port is not set or 1, no exception occurs. Below are my build.gradle and application.yml files.
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'

implementation "com.linecorp.armeria:armeria:1.23.1"
implementation "com.linecorp.armeria:armeria-spring-boot3-starter:1.23.1"
implementation "com.linecorp.armeria:armeria-spring-boot3-actuator-starter:1.23.1"
implementation "com.linecorp.armeria:armeria-tomcat10:1.23.1"

server.port: -1  # disable embedded tomcat service

armeria:
  ports:
    - port: 8000
      protocols:
        - HTTP
  internal-services:
    include: docs, metrics, health, actuator
    port: 8001

management:
  endpoints:
    web:
      exposure:
        include: env, health, metrics, prometheus
  server:
    port: 8002

In my opinion, I believe the Tomcat service is the cause. When the management.server.port is not null or -1, Spring automatically starts the Actuator services on the port. Subsequently, Armeria automatically starts its internal services to the management.server.port when the armeria-spring-boot3-actuator-starter artifact is added and the management.server.port is not null. However, since the Tomcat service of Spring has already bound to that port, a java.net.BindException Address already in use error occurs.
This kind of issue can also occur with the server.port. When using the Tomcat service with Armeria, it is necessary to set the port as -1 to avoid port collision between Tomcat and Armeria. Therefore, the solution I propose is to set the management.server.port as -1 and introduce the armeria.internal-services.actuator-port to serve legacy Actuator services. Alternatively, if the use case of serving both internal services and Actuator services on management.server.port and armeria.internal-services.port is not crucial, it is also possible to forcefully set management.server.port to -1. I would like to hear the opinion on whether the proposed changes I suggested are reasonable

Thanks for leaving an issue (I forgot about this 😅 )

However, since the Tomcat service of Spring has already bound to that port, a java.net.BindException Address already in use error occurs.

This matches my analysis 👍

the solution I propose is to set the management.server.port as -1 and introduce the armeria.internal-services.actuator-port to serve legacy Actuator services. Alternatively, if the use case of serving both internal services and Actuator services on management.server.port and armeria.internal-services.port is not crucial, it is also possible to forcefully set management.server.port to -1

For a bit of background, I think the original intention of the armeria's spring-boot[2|3]-actuator module was to service Spring's actuator services without Tomcat. For this reason, I think the behavior isn't very well defined when run with embedded tomcat like you mentioned.
If it is very important that Internal services and Actuator services are served on a different port, then I think introducing a separate armeria.internal-services.actuator-port could be useful like you mentioned 👍
For most cases, I think usually it's enough to use internal-services.port for both actuator/internal services though.
If you think dividing the ports is useful, I think it's reasonable to send over a PR though 😄

Thank you for checking! I agree with your opinion. 😄  I think it's not a important feature from a use case perspective. I don't have such use case because I discovered this bug while investigating various aspects for writing a document on Spring integration. I think it is ok to close the issue. Thanks!


[POC]: Classification notebook

Context
The purpose of this ticket is to set up a notebook allowing demcompare users to perform metric measurements, such as mean or NMAD, in specific areas using classification. This notebook can be included in examples and used as a tutorial notebook during the practical session.
Setup
For the tutorial, it would be helpful to use demcompare data along with the associated masks.

Proposed data:

DEM
Mask

Information

The masks will be treated as rasters using the GeoUtils tool. mask = gu.Raster('xdem_gironde_mask.tif')
The masks are binary masks stacked in different bands --> TODO: Convert the demcompare mask into this format.

Notebook Workflow

Opening the DEM
Opening the mask
Converting the mask into 4 Boolean masks
Adding a function to select one of the 4 masks and apply it to the DEM dem.set_mask(mask_single_band_boolean)
Providing a set of plots (slope, hillshade, etc.) to highlight the use of classification
Providing a set of metrics (NMAD, mean, etc.) to highlight the use of classification

Extras parts
In demcompare, it is possible to measure metrics based on grouped information; it would be useful to demonstrate in the notebook how to do this using the xdem API.
Examples:

Calculating the NMAD for different slope intervals (here, consider dividing the slope into masks according to the intervals)
Merging a segmentation mask with slope intervals to measure metrics

/estimation 4d

Here's the discussion I was mentioning about scalable classif (with raster-vector) extraction: https://discourse.pangeo.io/t/advice-for-scalable-raster-vector-extraction/4129.
If scalability becomes important, we probably want to either let geocube figure this out and use it in GeoUtils (via Xarray accessor), or use/inspire ourselves from rasterstats.

On the edited description: Sounds good!
One remark on the extras:

In demcompare, it is possible to measure metrics based on grouped information; it would be useful to demonstrate in the notebook how to do this using the xdem API.

By "grouped information", you mean performing data binning? (I see the translation is "groupement par classes" in French, I didn't know!)
We do this a lot. We have a helper function that is used both for uncertainty analysis and coregistration: nd_binning (see https://xdem-rhugonnet.readthedocs.io/en/towards_0.1/gen_modules/xdem.spatialstats.nd_binning.html#xdem.spatialstats.nd_binning), mostly a wrapper of https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.binned_statistic_dd.html#scipy.stats.binned_statistic_dd returning the results in a pd.DataFrame with properly defined intervals, and allowing to do this in N-D. We also have plotting for 1D/2D: https://xdem-rhugonnet.readthedocs.io/en/towards_0.1/gen_modules/xdem.spatialstats.plot_1d_binning.html#xdem.spatialstats.plot_1d_binning.
On future improvements:
The limitation right now is that those functions expect arrays, and not raster. For easier use in the future, we were thinking of moving these tools to a geoutils.stats module, and adding a method to Raster for performing nd_binning on a raster, with a list of other variables that could also be rasters (which would be inherited by the DEM class; or Xarray accessor). See  https://github.com/GlacioHack/xdem/issues/378.
Once we have the Xarray accessors, we could also potentially rely on groupby through flox for computational performance, see: https://xarray.dev/.blog/flox.


stdlib: Dictionary, Set: allow querying for a mismatched type when bridged

Swift's Dictionary and Set are typed, but when bridged to NSDictionary
and NSSet they should behave accordingly, that is, allow querying for
keys of arbitrary types.
rdar://problem/23679193

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    OS X platform               | @swift-ci Please test OS X platform
    Linux platform              | @swift-ci Please test Linux platform

Note: Only members of the Apple organization can trigger swift-ci.

@swift-ci Please test and merge


[vars] Add support for Prefers Reduced Motion in "animationGlobals"

Description
I'm interested in seeing support for Prefers Reduced Motion added to the variables that are exposed for animationGlobals. It's something that could be relatively neatly added to the current custom properties that are included like so:
:root {
  --spectrum-global-animation-duration-4000: 2000ms;
}

/* becomes */

:root {
  --spectrum-global-prefers-motion: 1;
  --spectrum-global-animation-duration-4000: calc(var(--spectrum-global-prefers-motion) * 2000ms);
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --spectrum-global-prefers-motion: 0;
    }
}

For actual "reduce" users it may make better sense to apply this as not absolute 0 so that some motion still occurs...
Why do you need this feature or component?

better support users who prefer reduced motion when interacting with a Spectrum based web application
allow the use of this custom property in visual regression testing to make capturing "in usage" screenshots more reliable. For example, the SWC implementation of the Dropdown patter has visual regression for the "closed" state, but it would be great to have the "opened" state coverage as well. Currently, the animation time for the dropdown to actually open makes this specific screenshot irregular, so while custom handling could be developed to capture it, having this setting would allow for this case to be addressed as if it were no different than any other.

Additional context
https://github.com/adobe/spectrum-css/blob/master/components/vars/css/globals/spectrum-animationGlobals.css#L2-L18
synced to jira: https://jira.corp.adobe.com/browse/CSS-129

Bump to review as part of the new 3.0 versions. A breaking change is a great moment to add a feature like this.

We will do a research spike on this

Closing this, it's tracked in Jira


Baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions

Follow https://github.com/opensearch-project/.github/issues/125 to baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions.
Close this issue when:

MAINTAINERS.md has the correct list of project maintainers.
CODEOWNERS exists and has the correct list of aliases.
Repo permissions only contain individual aliases as collaborators with maintain rights, admin, and triage teams.
All other teams are removed from repo permissions.

If this repo's permissions was already baselined, please confirm the above when closing this issue.

It's still public, let's reopen until either it's deprecated or maintainers/codeowners synced.

Verified permissions,

Closed via https://github.com/opensearch-project/piped-processing-language/pull/20.