Camera controls rework

Rewrote orbit camera to use pointer events
Changed right click to orbit around camera (instead of focal point)
Changed pan to be middle mouse button/holding shift and right click to drag
Added smoothing to flying, orbiting, zooming and panning (frame rate invariant)

https://github.com/playcanvas/model-viewer/assets/48248865/802e5c91-164a-49de-8da3-5d2eb4f1b11e
I confirm I have signed the Contributor License Agreement.

Did a quick local test and have a few comments:

i personally don't like having to switch between the two camera types (and not sure what the win is compared to before)
orbit camera has no smoothing
orbit camera right mouse button should pan the camera (currently both left and right buttons orbit the camera).
mouse scroll zoom is inverted
frame function resets the camera orientation. it should just move the camera (not rotate it) to frame the current selection. should also have smoothing.
fly camera rotation isn't smoothed
i much prefer the distance-based zooming, with smoothing

Did a quick local test and have a few comments:

i personally don't like having to switch between the two camera types (and not sure what the win is compared to before)
orbit camera has no smoothing
orbit camera right mouse button should pan the camera (currently both left and right buttons orbit the camera).
mouse scroll zoom is inverted
frame function resets the camera orientation. it should just move the camera (not rotate it) to frame the current selection. should also have smoothing.
fly camera rotation isn't smoothed
i much prefer the distance-based zooming, with smoothing

Added all changes!

Did another quick test:

'F' to frame doesn't frame meshes correctly
dragging any slider on setting popup rotates the camera (check FOV, for example)
panning the camera doesn't seem to go perpendicular to screen
panning sensitivity doesn't seem to follow orbit distance (zooming closer in should result in less sensitive panning)
zooming all the way in to focus point seems to go too far (goes through the target surface)
zoom button is now very sensitive on my mouse


Updated elgohr/Publish-Docker-Github-Action to a supported version (v5)

elgohr/Publish-Docker-Github-Action@master is not supported anymore

Thank you for taking the time to make this pull request! ⭐


⚠ Tukarcoid has degraded performance

In 0ff0d63, Tukarcoid (https://tukar.co.id) experienced degraded performance:

HTTP code: 200
Response time: 5861 ms

Resolved: Tukarcoid performance has improved in 5973bef after 12 minutes.


Support Kira's Clocks

See https://tesselode.github.io/kira/clocks.html

I need to leverage clocks for my use case. I had started manually depending on kira directly in order to gain access to them but it would be great to have it upstreamed rather than duplicating that effort.
Would you be open to discussing how these would ideally be integrated to bevy_kira_audio so that I could start implementing a PR with clock support? Otherwise I'll just do my own implementation locally

I have a fork that has basic suport added in this commit: https://github.com/NiklasEi/bevy_kira_audio/commit/9ecedf9a68dc9487ae9b8a3e95af24b3a6e354e4
Missing docs and dynamic clock support but appears to work as expected.

Has there been any progress in the backround on the Clocks support?
I am trying to implement a simple "metronome" in Bevy and am wondering whether it's possible with this plugin (or kira directly?) to do some sort of "looping"...
So that the repetition of Clock-ed sounds is done by kira/bevy_kira_audio/bevy, and external synchronization is not needed every "tact" to re-execute playback of beats...

I have not worked on clocks, but I am certainly open to contributions concerning them. What @james-j-obrien did looks good as a starting point.
It would be nice to add an example to the repository using the new API, so I can see a use case and what the user code would look like.

Would you be open to discussing how these would ideally be integrated to bevy_kira_audio so that I could start implementing a PR with clock support?

I am not sure about the API because I have never used clocks before and don't really know how one would want to ise them. If you are still interested in getting this upstreamed, I would be interested in how you use them.

I have not worked on clocks, but I am certainly open to contributions concerning them. What @james-j-obrien did looks good as a starting point.
It would be nice to add an example to the repository using the new API, so I can see a use case and what the user code would look like.

Would you be open to discussing how these would ideally be integrated to bevy_kira_audio so that I could start implementing a PR with clock support?

I am not sure about the API because I have never used clocks before and don't really know how one would want to ise them. If you are still interested in getting this upstreamed, I would be interested in how you use them.


Flat-fielding and Background subtraction of exaspim data

Do this as part of the OME-Zarr conversion step, I think.

Closing, as this will be implemented in a separate library.


Fix build process

Changes Unknown when pulling 4c3085ced2c448cd70f1db5d669206d5248d187a on fix-build-process into ** on master**.


Groups missing

I am consistently missing a Group that is defined in Google Home.  When I restart Aircast it comes back but then goes away in a few hours.

Same here... my Chromecasts have been acting strange ever since I installed this.  It works for a while but then certain ones (and groups as described above) disappear randomly.  During the time they are unreachable, when I look in the Google Home app, the settings page for the individual Chromecast says "some settings are unavailable right now".  The only thing that fixes it is to reboot the Chromecast.
I'm seeing this on multiple 2nd gen Chromecasts, a Chromecast Audio, and a (wired) Chromecast Ultra.
When Aircast isn't running, this behavior stops happening.
This is the only issue I could find that seemed close to what I'm seeing.  Groups also disappear and reappear randomly.
When it works, it works great!  But it's bugging out my network.

Same here... my Chromecasts have been acting strange ever since I installed this.  It works for a while but then certain ones (and groups as described above) disappear randomly.  During the time they are unreachable, when I look in the Google Home app, the settings page for the individual Chromecast says "some settings are unavailable right now".  The only thing that fixes it is to reboot the Chromecast.
I'm seeing this on multiple 2nd gen Chromecasts, a Chromecast Audio, and a (wired) Chromecast Ultra.
When Aircast isn't running, this behavior stops happening.
This is the only issue I could find that seemed close to what I'm seeing.  Groups also disappear and reappear randomly.
When it works, it works great!  But it's bugging out my network.


Update cmd description

I don't see a reason in the action.yml why version is mandatory to use cmd.

Suppose that the user adds a cmd of the form CompatHelper.main(; foo = ...). Since the user has not specified the version, it will use the default version = '3'.
Now suppose that I release CompatHelper 4.0.0, which removed the foo kwarg, which is perfectly fine to do in a major release.
Now, here's the tricky part. I want to be able to easily upgrade the Julia ecosystem to CompatHelper v4, so I edit the action.yml file in this repo to change the default from version = '3' to version = '4'. But, I don't want everyone to have to edit their CompatHelper.yml files, so I make this change in the v1 tag of this repo.
But now the action is broken for the user that was doing a custom cmd.
So most users don't need to set version. But if a user sets cmd, they must set version to prevent the action from suddenly breaking.

You're right


[Issue] Image not showing on new tab

Issue:

I put an imgur link in the 'New Tab' section in 'Style Settings' but the image is not showing. I have tried restarting Obsidian but no luck.

Steps to Replicate:

Copy an image link.
Go to settings of 'Style Settings' plugin → Components → New Tab
Paste the url into 'customize new tab image' block.

Extra Info:

The image format is png.
The background of the image has been removed.

Could you provide a URL for me to test?

https://imgur.com/gallery/0efLLu1

Ok, thank you. Can you access the URL and then right-click on the image to click the "Copy image link" option?

That worked! Thanks! The 'Copy image link' option gave me a link with '.png' at the end of it.


Add tap-ask-nicely

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2814
Originally created by @tayloramurphy on 2021-06-23 21:46:24

View 3 previous comments from the original issue on GitLab


Ensure set_actor signal disconnection

Mainly added sender kwarg to pre_save.disconnect, because the signal wasn't getting disconnected for me without it.
Timestamped the request and used that to connect/disconnect the signal, since the request could be modified by another middleware, which would prevent correct match on disconnect.
Added process_exception too.

For me the signal is disconnected too soon it seems. IT works when I override __call__ and don't trigger process_response`. Could this be bug ?


OrderHistory - Fatal error in JsonConvert. Failed to map the JSON object to the JavaScript class "OrderData" because of a type error.

Seeing this error when listing certain markets:
  pathname: '/account/getorderhistory',
  data: { market: 'BTC-NEO' },
  error: Error: Fatal error in JsonConvert. Failed to map the JSON object to the JavaScript class "OrderData" because of a type error.

	Class property:
		OrderType

	Expected type:
		undefined

	JSON property:
		OrderType

	JSON type:
		string

	JSON value:
		"LIMIT_BUY"

	Reason: Expected type is unknown. There might be multiple reasons for this:
	- You are missing the decorator @JsonObject (for object mapping)
	- You are missing the decorator @JsonConverter (for custom mapping) before your class definition
	- Your given class is undefined in the decorator because of circular dependencies

    at JsonConvert.deserializeObject_loopProperty (/api/node_modules/json2typescript/src/json2typescript/json-convert.js:220:19)
    at JsonConvert.deserializeObject (/api/node_modules/json2typescript/src/json2typescript/json-convert.js:132:18)
    at JsonConvert.deserializeArray /api/node_modules/json2typescript/src/json2typescript/json-convert.js:157:29)
    at JsonConvert.deserialize (/api/node_modules/json2typescript/src/json2typescript/json-convert.js:109:25)
    at Promise (/api/node_modules/bittrex-typescript/src/Transport.js:43:53)
    at new Promise (<anonymous>)
    at Transport.handleResponse (/api/node_modules/bittrex-typescript/src/Transport.js:39:16)
    at got.then (/api/node_modules/bittrex-typescript/src/Transport.js:29:25)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:228:7) }

Any ideas? The response looks totally normal, every OrderType is either LIMIT_BUY or LIMIT_SELL

Hi @AndrewBarba,
Thanks for the report. It seems to be an issue with the deserialization. Looking at the code though, it seems like that property is there:
https://github.com/lookfirst/bittrex-typescript/blob/master/src/model/OrderData.ts#L15
I am at a bit of a loss myself!

Yeah really strange, I've never used a mapper like this before in js land, this line confused me:
@JsonProperty('OrderType', undefined, true)

That undefined seems strange, I feel like it should be String, but I don't really know...

The mappers save a lot of typing for populating models with raw json data. They also help in catching errors like this. If bittrex changes their api randomly, you want your code to fail fast and with an error.
You are probably correct. Looks like a copy/paste error. Can you edit the code in your node_modules folder and try it as String? If that works, submit a PR and I'll merge it straight in.


Ratio load balancing method not set for pools with weighted members

Agent Version
9.3.0
Operating System
Any
OpenStack Release
Mitaka
Description
Creating pool members with weights does not change the pool's lb-method from round robin to ratio. The lb-method for pools with weighted members should be changed to ratio. Weights (ratios) for members are correctly set, but the pool lb-method is not changed. Note that OpenStack LBaaS does not have a ratio lb-alogrithm, but the agent should ignore the lb-algorithm setting when a member weight is specified.
To re-create:

Create pool:
lbaas-pool-create --name pool1 --protocol HTTP --listener l1 --lb-algorithm ROUND_ROBIN
Create members:
lbaas-member-create --protocol-port 8080 --address <IP_ADDRESS> --subnet mgmt_v4_subnet --weight 1 pool1
lbaas-member-create --protocol-port 8080 --address <IP_ADDRESS> --subnet mgmt_v4_subnet --weight 10 pool1

After creating pool, pool's lb-method will be round robin. After creating members, pool's lb-method should be ratio (member) but remains as round robin.
Deployment
LBaaS v2, Mitaka

@pjbreaux I tested 9.3.1b1 this issue didn't fix, but the change log said this issue fixed.

@Sinan828: looking now. Will update.

@Sinan828: I just tested this with 9.3.1.b1 agent and driver release and BIG-IP 12.1.1, and I ran through these steps:
(neutron) lbaas-listener-create --name vs1 --protocol HTTP  --protocol-port 80 --loadbalancer lb1
Created a new listener:
+---------------------------+------------------------------------------------+
| Field                     | Value                                          |
+---------------------------+------------------------------------------------+
| admin_state_up            | True                                           |
| connection_limit          | -1                                             |
| default_pool_id           |                                                |
| default_tls_container_ref |                                                |
| description               |                                                |
| id                        | 62984698-6e42-46c0-839b-1cb4cd89ca44           |
| loadbalancers             | {"id": "64c4c450-592e-40ba-88e8-7743ad933045"} |
| name                      | vs1                                            |
| protocol                  | HTTP                                           |
| protocol_port             | 80                                             |
| sni_container_refs        |                                                |
| tenant_id                 | ea4501874a5343b18a5ebeb5f8393d97               |
+---------------------------+------------------------------------------------+
(neutron) lbaas-pool-create --name pool1 --protocol HTTP --listener vs1 --lb-algorithm ROUND_ROBIN
Created a new pool:
+---------------------+------------------------------------------------+
| Field               | Value                                          |
+---------------------+------------------------------------------------+
| admin_state_up      | True                                           |
| description         |                                                |
| healthmonitor_id    |                                                |
| id                  | a9cc7c03-c1b0-4923-b150-bc921efea8d6           |
| lb_algorithm        | ROUND_ROBIN                                    |
| listeners           | {"id": "62984698-6e42-46c0-839b-1cb4cd89ca44"} |
| loadbalancers       | {"id": "64c4c450-592e-40ba-88e8-7743ad933045"} |
| members             |                                                |
| name                | pool1                                          |
| protocol            | HTTP                                           |
| session_persistence |                                                |
| tenant_id           | ea4501874a5343b18a5ebeb5f8393d97               |
+---------------------+------------------------------------------------+
(neutron) exit
[testlab@host-168 ~(keystone_testlab)]$ pip list | grep f5
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
f5-icontrol-rest (1.3.0)
f5-openstack-agent (9.3.1b1)
f5-openstack-lbaasv2-driver (9.3.1b1)
f5-sdk (2.3.2)
[testlab@host-168 ~(keystone_testlab)]$ neutron
(neutron) subnet-list
+--------------------------------------+----------------+---------------+------------------------------------------------+
| id                                   | name           | cidr          | allocation_pools                               |
+--------------------------------------+----------------+---------------+------------------------------------------------+
| dfb2a31d-1bf1-4512-b2e4-57b8aaae9b50 | public_subnet  | <IP_ADDRESS>/21 | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
|                                      |                |               | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"} |
| f31938d8-5a23-409c-9030-47d5f43bb2be | mgmt_v4_subnet | <IP_ADDRESS>/24   | {"start": "<IP_ADDRESS>", "end": "<IP_ADDRESS>"}   |
+--------------------------------------+----------------+---------------+------------------------------------------------+
(neutron) lbaas-member-create --protocol-port 8080 --address <IP_ADDRESS> --subnet mgmt_v4_subnet --weight 1 pool1
Created a new member:
+----------------+--------------------------------------+
| Field          | Value                                |
+----------------+--------------------------------------+
| address        | <IP_ADDRESS>                           |
| admin_state_up | True                                 |
| id             | 240791b6-6fec-4c0b-9702-29e443c4ffdd |
| name           |                                      |
| protocol_port  | 8080                                 |
| subnet_id      | f31938d8-5a23-409c-9030-47d5f43bb2be |
| tenant_id      | ea4501874a5343b18a5ebeb5f8393d97     |
| weight         | 1                                    |
+----------------+--------------------------------------+
(neutron) lbaas-member-create --protocol-port 8080 --address <IP_ADDRESS> --subnet mgmt_v4_subnet --weight 10 pool1
Created a new member:
+----------------+--------------------------------------+
| Field          | Value                                |
+----------------+--------------------------------------+
| address        | <IP_ADDRESS>                           |
| admin_state_up | True                                 |
| id             | f629c7fe-18ff-4f00-b04e-3430281a6de1 |
| name           |                                      |
| protocol_port  | 8080                                 |
| subnet_id      | f31938d8-5a23-409c-9030-47d5f43bb2be |
| tenant_id      | ea4501874a5343b18a5ebeb5f8393d97     |
| weight         | 10                                   |
+----------------+--------------------------------------+
(neutron)

Now, if I look at my BIG-IP device, I see a Load Balancing Method of Ratio (member). Are these similar steps to how you are creating your pool and members? Thanks.

@pjbreaux my test steps as same as yours, but the load balancing method isn't Ratio(member). i'll update my logs later.

@Sinan828: could you also provide the output of lbaas-loadbalancer-status <lb_name>? Thanks.

@Sinan828: We usually do a pip install of those packages when we are testing, but I went and installed the released RPM packages for the 9.3.1.b1 release and tested against that. My results looks like the fix is working. Let me know if you see any oddities in there that I'm missing. I'd like to ensure that you do have the new package and it is running, and what your config is. Also, what BIG-IP version are you using?
(neutron) lbaas-loadbalancer-create --name lb1 bb406324-d06c-4721-866d-5435ed82d45a
Created a new loadbalancer:
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| admin_state_up      | True                                 |
| description         |                                      |
| id                  | 9b40ca7e-adf8-41eb-ac6d-8f19f74b3245 |
| listeners           |                                      |
| name                | lb1                                  |
| operating_status    | OFFLINE                              |
| pools               |                                      |
| provider            | f5networks                           |
| provisioning_status | PENDING_CREATE                       |
| tenant_id           | e382b7aa2bc149819159506e1c6c5651     |
| vip_address         | <IP_ADDRESS>                           |
| vip_port_id         | 8c053727-ab7b-4bc0-a7f1-a979a0db996f |
| vip_subnet_id       | bb406324-d06c-4721-866d-5435ed82d45a |
+---------------------+--------------------------------------+
(neutron) lbaas-loadbalancer-list
+--------------------------------------+------+-------------+---------------------+------------+
| id                                   | name | vip_address | provisioning_status | provider   |
+--------------------------------------+------+-------------+---------------------+------------+
| 9b40ca7e-adf8-41eb-ac6d-8f19f74b3245 | lb1  | <IP_ADDRESS>  | ACTIVE              | f5networks |
+--------------------------------------+------+-------------+---------------------+------------+
(neutron) lbaas-listener-create --name l1 --protocol HTTP --protocol-port 80
Either --default-pool or --loadbalancer must be specified.
(neutron) lbaas-listener-create --name l1 --protocol HTTP --protocol-port 80 --loadbalancer lb1
Created a new listener:
+---------------------------+------------------------------------------------+
| Field                     | Value                                          |
+---------------------------+------------------------------------------------+
| admin_state_up            | True                                           |
| connection_limit          | -1                                             |
| default_pool_id           |                                                |
| default_tls_container_ref |                                                |
| description               |                                                |
| id                        | 170d413a-cac4-4e6e-9e1a-1127480d64b9           |
| loadbalancers             | {"id": "9b40ca7e-adf8-41eb-ac6d-8f19f74b3245"} |
| name                      | l1                                             |
| protocol                  | HTTP                                           |
| protocol_port             | 80                                             |
| sni_container_refs        |                                                |
| tenant_id                 | e382b7aa2bc149819159506e1c6c5651               |
+---------------------------+------------------------------------------------+
(neutron) lbaas-pool-create --name pool1 --protocol HTTP --listener l1 --lb-algorithm ROUND_ROBIN
Created a new pool:
+---------------------+------------------------------------------------+
| Field               | Value                                          |
+---------------------+------------------------------------------------+
| admin_state_up      | True                                           |
| description         |                                                |
| healthmonitor_id    |                                                |
| id                  | ea84f6d1-522d-44be-a349-f55f3b83c910           |
| lb_algorithm        | ROUND_ROBIN                                    |
| listeners           | {"id": "170d413a-cac4-4e6e-9e1a-1127480d64b9"} |
| loadbalancers       | {"id": "9b40ca7e-adf8-41eb-ac6d-8f19f74b3245"} |
| members             |                                                |
| name                | pool1                                          |
| protocol            | HTTP                                           |
| session_persistence |                                                |
| tenant_id           | e382b7aa2bc149819159506e1c6c5651               |
+---------------------+------------------------------------------------+
(neutron) lbaas-member-create --protocol-port 8080 --address <IP_ADDRESS> --subnet mgmt_v4_subnet --weight 1 pool1
Created a new member:
+----------------+--------------------------------------+
| Field          | Value                                |
+----------------+--------------------------------------+
| address        | <IP_ADDRESS>                           |
| admin_state_up | True                                 |
| id             | 0827b357-df32-4cff-ae29-0a4fe838acc2 |
| name           |                                      |
| protocol_port  | 8080                                 |
| subnet_id      | bb406324-d06c-4721-866d-5435ed82d45a |
| tenant_id      | e382b7aa2bc149819159506e1c6c5651     |
| weight         | 1                                    |
+----------------+--------------------------------------+
(neutron) lbaas-member-create --protocol-port 8080 --address <IP_ADDRESS> --subnet mgmt_v4_subnet --weight 10 pool1
Created a new member:
+----------------+--------------------------------------+
| Field          | Value                                |
+----------------+--------------------------------------+
| address        | <IP_ADDRESS>                           |
| admin_state_up | True                                 |
| id             | b40e0334-2142-40de-8660-873aaa2d55ad |
| name           |                                      |
| protocol_port  | 8080                                 |
| subnet_id      | bb406324-d06c-4721-866d-5435ed82d45a |
| tenant_id      | e382b7aa2bc149819159506e1c6c5651     |
| weight         | 10                                   |
+----------------+--------------------------------------+
(neutron) exit
[testlab@host-149 ~(keystone_testlab)]$ cat ve_mgmt_ip
<IP_ADDRESS>
[testlab@host-149 ~(keystone_testlab)]$ ssh<EMAIL_ADDRESS>Password:
Password:
Last login: Thu May 18 09:33:40 2017 from <IP_ADDRESS>
[root@host-10:Active:Standalone] config # tmsh
root@(host-10)(cfg-sync Standalone)(Active)(/Common)(tmos)# cd /Project_e382b7aa2bc149819159506e1c6c5651/
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos)# ltm
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos.ltm)# list po
Components:
  policy            policy-strategy   pool
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos.ltm)# list pool
Options:
  all                                            all-properties                                 non-default-properties                         one-line                                       recursive                                      |
Properties:
  allow-nat                                      gateway-failsafe-device                        link-qos-to-server                             min-up-members                                 profiles                                       service-down-action
  allow-snat                                     ignore-persisted-weight                        load-balancing-mode                            min-up-members-action                          queue-depth-limit                              slow-ramp-time
  app-service                                    ip-tos-to-client                               members                                        min-up-members-checking                        queue-on-connection-limit                      {
  autoscale-group-id                             ip-tos-to-server                               metadata                                       monitor                                        queue-time-limit
  description                                    link-qos-to-client                             min-active-members                             partition                                      reselect-tries
Configuration Items:
  Project_ea84f6d1-522d-44be-a349-f55f3b83c910
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos.ltm)# list pool Pro
Properties:
  profiles
Configuration Items:
  Project_ea84f6d1-522d-44be-a349-f55f3b83c910
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos.ltm)# list pool Project_ea84f6d1-522d-44be-a349-f55f3b83c910
ltm pool Project_ea84f6d1-522d-44be-a349-f55f3b83c910 {
    description Project_ea84f6d1-522d-44be-a349-f55f3b83c910:
    load-balancing-mode ratio-member
    members {
        <IP_ADDRESS>%0:webcache {
            address <IP_ADDRESS>
        }
        <IP_ADDRESS>%0:webcache {
            address <IP_ADDRESS>
            ratio 10
        }
    }
    partition Project_e382b7aa2bc149819159506e1c6c5651
}
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos.ltm)# exit
root@(host-10)(cfg-sync Standalone)(Active)(/Project_e382b7aa2bc149819159506e1c6c5651)(tmos)# ^D
[root@host-10:Active:Standalone] config # exit
logout
Connection to <IP_ADDRESS> closed.
[testlab@host-149 ~(keystone_testlab)]$ rpm -qa | grep f5-openstack-agent
f5-openstack-agent-9.3.1.b1-1.noarch
[testlab@host-149 ~(keystone_testlab)]$

@pjbreaux I tested again and again, the Load Balancing Method of Ratio (member), sorry about that.

@Sinan828: so it worked for you? Just checking to be sure. Thanks.

@pjbreaux if pool lb_algorithm is SOURCE_IP, the lb_algorithm not change to ratio member if add member with weight.

@pjbreaux Load Balancing Method of Ratio (member) worked in pool lb_algorithm ROUND_ROBIN and LEAST_CONNECTIONS

@Sinan828: Ok excellent. So this issue will close by tomorrow. Let us know if you need any further assistance.

@pjbreaux it's design for Ratio member not working in lb_algorithm SOURCE_IP?

@Sinan828: It is my understanding that when the lb-algorithm is set as 'SOURCE_IP', the BIG-IP's loadbalancing mode will be set to 'least-connections-node'. This is the same logic as in our lbaasv1 code. I'll check with the other members of our team to ensure that this is what we intended.
@jlongstaf and @richbrowne ---^ see above comment

@Sinan828, @pjbreaux: The new implementation is correct. By design, we do not use ratios when the load balancing algorithm is SOURCE_IP. With SOURCE_IP load balancing, all connections from the same source IP address must be handled by the same pool member.

Merge into Master did not reference this issue. https://github.com/F5Networks/f5-openstack-agent/commit/6c010022f183192412373d4241bd5284dd2fc6fd


Improve Ballerina Standard Library Daily Build

Background
At the moment each standard library module has it is own repository and the health of the each module is tested by running daily builds against the master. This daily build get triggered on a preconfigured cron expression.
Further, since there are standard libraries which depends on other standard libraries, each module must be built in certain order. Therefore, in order to decide When to build What, we have come up with a level system. Each module belongs to certain level starting from 0 to N.
Problem
Even though this allows us to check the status of the each module, this has some drawbacks such as,

In case something goes wrong, we don't really get updated instantly.
Build order of standard library modules is ignored as all the modules get triggered at the same time. Of course, this can be fixed by changing the trigger time of each module but that is not the ideal solution.

The short term solution
As the short term, it was decided to move from cron based daily builds to pub-sub style of builds. Idea is quite simple,

Each standard library module allows interested parties to get notified every time a build is completed on master.
Each module that depends on a certain module, need to subscribe to this build event.

What this means in terms of github actions is each module needs to have a final step which triggers a build on interested parties. Each interested party needs to have configured repository_dispatch event in their daily build workflow.
Note: Since all the modules depends the ballerina-lang, all the modules are required to subscribe for build events on ballerina-lang
Issues with the short term solution
Even though this solves the aforementioned problems, it does have it is own problems such as,

Each module is responsible for subscribing in every module it depends on.
This could trigger redundant builds. For instance, some of the language changes require standard libraries to be built level by level. But in the propose solution ignores the level each module belongs to.

The long term solution
Centralized build pipeline is needed to solve this problem properly. Something similar to the release pipeline. Following is the high level idea,

Each module needs to updated an entry in the centralized build pipeline with all the dependencies.
Each time a module is built, that particular module notifies the centralized build pipeline. Then the centralized build pipeline triggers a list of builds based on dependencies.

Note: This centralized build pipeline can be made smarter and smarter. For instance, it can be improved to automatically update the dependency entry of each modules by walking each repo.
This solution is complex compared to the the short term solution but has no drawbacks.

@ThisaruGuruge @Maninda @BuddhiWathsala @niveathika do let me know if I have missed anything.

Note: Since all the modules depends the ballerina-lang, all the modules are required to subscribe for build events on ballerina-lang

We don't need to subscribe all the modules to the ballerina-lang, but the level 0 and the level 1 modules. Then the subsequent builds will trigger automatically right? Or am I missing something here?

Yeah, you are right. Just wanted to keep it simple at the expense of redundant builds due to two reasons.

Each module owner do not need to worry about the level their module belongs to.
Centralize the responsibility to each module owner. In case their module didn't get triggered, it is simply because (s)he didn't subscribe to it. Other module owners has nothing to do with it.

The long term solution can address all these things in a better way.

With the PR #26083 we are now at the following state:

ballerina-lang is now publishing the SNAPSHOT artifacts to the Github on an event of pushing a commit to the master branch. (This is done via Publish Ballerina Snapshot workflow in ballerina-lang).
When the ballerina-lang SNAPSHOT is published to the Github, another workflow will be triggered to publish all the standard library module SNAPSHOT artifacts to the Github. (This is done via Publish Stdlid Snapshots workflow in ballerina-lang).
This standard library module publishing will be done sequentially, from the basic modules which aren't depending on any other standard library module, to the modules depending on them, and so on.
Additionally, on an event of a commit to the master branch of a stdlib module, the module will be built, and the SNAPSHOT artifact will be published to the respective repository.
After a stdlib module is built and the artifacts published, it will trigger a workflow to build and publish all the dependent modules of that particular module to the Github. (This is also done via Publish Stdlid Snapshots workflow in ballerina-lang).


Fix hamcore access: Correcting path separator for hamcore.

Changes proposed in this pull request:

VPN Server can not install the drivers below due to the incorrect path separator
C:\Windows\System32\drivers\pxwfp.sys
C:\Windows\System32\drivers\SeLow_x64.sys

How to reproduce
①delete the driver if it exists.
delete C:\Windows\System32\drivers\pxwfp.sys
delete C:\Windows\System32\drivers\SeLow_x64.sys
②run VPN Server
③confirm that IPSEC and local bridge function do not work.

Change the path separator from \ to / for hamcore access
IPSEC and local bridge function will work.

Refer to
https://www.vpnusers.com/viewtopic.php?f=7&t=68333&p=99266&hilit=hamcore#p99266

thank you for contribution.
do you have maybe an idea how to check that automatically during CI/CD ?
(as a separate PR, I do not want to block contribution)

@hiura2023 , I checked stable edition and I do not see similar fix in it
https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/blob/master/src/Mayaqua/FileIO.c#L2916
can you please verify whether that bug applies to stable branch as well ? if so, we'll ask Daiyuu Nobori to apply to stable branch also

This does not apply to the stable version because it does not rely on libhamcore.

@hiura2023 , I checked stable edition and I do not see similar fix in it
https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/blob/master/src/Mayaqua/FileIO.c#L2916
can you please verify whether that bug applies to stable branch as well ? if so, we'll ask Daiyuu Nobori to apply to stable branch also

My VPN Server works fine.
My environment
SE:VPN Server of VPN4.0 (VER4.38, BUILD 9760)
OS:Win11

As to the hamcore archive specification

Path separator is diffrent between two editions.
Stable Edition:
The path separator of "hamcore.se2" for VPN4.0 (VER4.38, BUILD 9760) is \ .
Developer Edition:
The path separator of "hamcore.se2" for VPN5.02 is /.
You can check the separator of "hamcore.se2" using editor notepad.
Maybe developer made a mistake in trying to change the path separator from \ to /.

It is indeed a mistake. The idea was to use / on all platforms, for consistency, but unfortunately a few paths were missed when accounting for the change.
#1351

Thank you very much for your contribution!

do you have maybe an idea how to check that automatically during CI/CD ?

No, I haven't.
I need to learn more about CI/CD.

@hiura2023 , I decided to make a release with your fix https://github.com/SoftEtherVPN/SoftEtherVPN/releases/tag/5.02.5182
there are several issues which looks to be resolved by your patch, we'll ask them to try new release

Thank you for letting us know what action you intend to take.


Use modern Datadog integration in Lambda template

Hmmm we actually set ours up slightly differently. Let me bring it up


ArmadaErrors unit test is flaky

https://github.com/armadaproject/armada/pull/2817
If you pull that branch, you can replicate those unit test failures.  These should be fixed before the upgrade to GRPC to 1.57.

Heyy @kannon92 I would like to work on this issue

So I found some more info on this:
https://github.com/armadaproject/armada/pull/2817
if you pull that branch you’ll get test failures. Feel free to take the change.

Hi @YashPimple :wave: Any updates on this ? We can help you if you are stuck.

/assign

Heyy @kannon92 I would like to work on this issue

any updates?

@sarthaksarthak9 feel free to take it

Hi @YashPimple :wave: Any updates on this ? We can help you if you are stuck.

Hello @Mo-Fatah I am making progress on the issue and will soom draft a PR on it 👍🏻
Thanks for checking in


Click event is not working in Kendo Grid - Facing issue with IE 11 browser, It works fine in Chrome

Hi,
When we write test automation script for one of the functionality where Kendo grid is used.  Through this test script we are clicking on Row value in Kendo grid and We are able to run this script in Chrome browser but not in IE 11 Browser.
Can you please suggest if we need any additional configuration for IE ?  Or Do we have any known issues with Protractor for Kendo Grid control click event
Thanks,
Shriram

Have you tried getting grid cell values using protractor ? Can you help me on this ?


list who voted in Timeline

incorrect!
It does not display in the window list of voters
answer undefined

The issue was fixed here #2375 I cannot reproduce it on the latest version.


story like function does not show that the user has viewed the story and does not show he liked it

# here is my code
client = Client()
client.load_settings('files/dumps.json')
client.login(username='', password='')
client.get_timeline_feed()
print('logged in')
user = 'useraccount'
id = client.user_id_from_username(user)
user_story = client.user_stories(user_id=id)
print(user_story)
for story in user_story :
info = client.story_info_v1(story_pk=story.pk)
story = client.story_seen(story_pks=[info.pk])
print('done')

By any chance where you able to figure this out? I am trying to use the story_seen() object as well and it seems not to be working.


Cannot change the gid of nginx user

I am trying to change the gid to 1001 as described in Permissions' section of https://hub.docker.com/r/tiredofit/alpine. I copy from the documentation:

If you enable DEBUG_PERMISSIONS=TRUE all the users and groups have been modified in accordance with environment variables will be displayed in output. e.g. If you add USER_NGINX=1000 it will reset the containers nginx user id from 82 to 1000 - Hint, also change the Group ID to your local development users UID & GID and avoid Docker permission issues when developing.

As @tiredofit says at https://github.com/tiredofit/docker-nginx-php-fpm/issues/11#issuecomment-712334578 i tried ENABLE_PERMISSIONS=TRUE and comment # - DEBUG_PERMISSIONS=TRUE.
I tried every combination i could think but the same result. The gid is "stuck" to 33.
My configuration is the following
version: '3.9'
services:
        nginx-php-fpm:
                image: tiredofit/nginx-php-fpm:5.6
                restart: unless-stopped
                container_name: example.com
                volumes:
                - ./html:/www/html
                - ./logs:/www/logs
                environment:
                - VIRTUAL_HOST=example.com
                - VIRTUAL_NETWORK=proxy_default
                - VIRTUAL_PORT=80
                - DEBUG_PERMISSIONS=TRUE
                - ENABLE_PERMISSIONS=TRUE
                - USER_NGINX=1000
                - GROUP_WWW-DATA=1001
networks:
        default:
                external:
                        name: proxy_default

Closing due fix in upstream


chore(avm): add bytecode size metrics

#7042  👈
master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @fcarreiro and the rest of your teammates on  Graphite

Merge activity

Jun 13, 9:47 AM EDT: @fcarreiro merged this pull request with Graphite.


Implementation address prefixed with 0s

I was running the proxy detection on the whole Sourcify database and found some anomalies.
One thing is that I saw some FixedProxies for which the implementation address is prefixed with 0s.
See this contract on Sepolia as an example: https://sepolia.etherscan.io/address/0x2f4eeccbe817e2b9f66e8123387aa81bae08dfec
I got this proxy resolver for it:
  FixedProxyResolver {
    name: 'FixedProxy',
    resolvedAddress: '0x0000000000000000000000000000000000f7a60f1c88f317f369e3d8679c6689'
  }

The actual address should be 0x0000000000f7a60f1c88f317f369e3d8679c6689.
Might open more issues while I check the data :)

Good find, thank you!
I ran into something similar while working on #129, I'll see if I can fix it in the process too. Ran into some regressions unfortunately so haven't had a chance to merge that PR yet.

Just did a quick release of v0.15.3 that includes this fix, let me know if you run into anything else. :) https://github.com/shazow/whatsabi/releases


Plese Add gamedb fixed into build and FPS control hack

See this not update long time wonder move so hack for Netersx2 Patch to Netersx2 Classic like able used in order run it most game work batter on 3668 like Urban Reign and sly cooper games. Or reason why not be added at all

@Trixarian never going update this ver most games work batter on this build they 4248 and like used gamedb patch and Fps control hack itself don't understand why 4248 so used way whost come fps.

I am planning to update this when I release 1.9 of NetherSX2-patch, including porting over features back to Classic. Learn some patience.


help center: Create documentation for read receipts.

This PR adds documentation for the new read receipts feature.
Other changes:

Cross-links on related articles
Added privacy settings to instructions for configuring default settings for new users.

Questions to consider:

Is this article in the right place in the sidebar, or would somewhere else be better?
Are there any intro/guide pages where this feature should be mentioned?

Screenshots:

Read receipts

Configure default settings for new users (exerpt)
Current: http://zulip.com/help/configure-default-new-user-settings

@timabbott this should be ready for your review.

Merged, thanks @alya!
The one outstanding thing on my checking list is deciding where we want to add the ? style help link widgets; do we want them in the "Read receipts" popover, in the settings UI, or both?

Let's add a link in the settings for sure -- @sahil839, perhaps you could put up a quick PR?

I'm less sure about the popover, where clutter would be more of a problem. Probably not; outside of settings, we don't generally link to help pages throughout the UI.

The reason I was thinking we should have it in the read receipts modal is that we currently don't advertise there in any way that a user might have selected the privacy setting to not be displayed there.
We could potentially address that issue with a phrase inside the modal instead.

A phrase would be more clutter. ;)
People might be able to guess to look under "Account & privacy" in the settings?


Repeat . not working for Toperator

Steps to reproduce
E.g., try to repleat a delete dT<char> . . Last capital T action won't be triggered when using repeat.
Expected behaviour
Repeat works like it does with other operators like  F
Version of Vim
several
Environment
Linux several
Logs and stack traces
No response

FWIW, it is triggered and deletes nothing as cursor stays just before the <char> so there is nothing to delete.

The repeat does the same again, thus if the cursor is just after  then nothing happens.
You need to move the cursor, the the repeat with dot works.


Proposed Recipes for NOAA World Ocean Atlas

Source Dataset: NOAA World Ocean Atlas

Link to the website / online documentation for the data: https://www.ncei.noaa.gov/access/world-ocean-atlas-2018/bin/woa18.pl
The file format (e.g. netCDF, csv): netCDF
How are the source files organized? (e.g. one file per day): one file per field per month
How are the source files accessed: HTTP

provide an example link if possible: https://www.ncei.noaa.gov/thredds-ocean/fileServer/ncei/woa/temperature/decav/5deg/woa18_decav_t01_5d.nc

Any special steps required to access the data (e.g. password required): None

Transformation / Alignment / Merging

Concat the data in time across seasons
Merge the different variables

Output Dataset
Single Zarr

There is a complete tutorial for this recipe here: https://pangeo-forge.readthedocs.io/en/latest/tutorials/xarray_zarr/multi_variable_recipe.html

First attempt in https://github.com/pangeo-forge/staged-recipes/pull/122
Issue not solved because the dataset has many options, with different dimension sizes.

In addition to these options https://www.ncei.noaa.gov/sites/default/files/2020-04/woa18documentation.pdf, there are options on resolution, on time averaging periods etc.
Wondering if this would all be part of 1 recipe or few separate recipes.


Pool.getAmountOut returns strange numbers

When I want to trade 350 ADA for C4 on miniswap it shows me that price impact is 18.72%.
But when I try to use the getAmountOut method it returns strange numbers
const pool = await this.api.getPoolById({ id: "64c84332705ee884c881219d380349b038e85afe77578ade923107ee1e36da2a"});
const { priceImpact, amountOut } = pool.getAmountOut(       pool.assetA,       BigInt(350), );
console.log(priceImpact.toString(), amountOut.toString());
Output for this will be "0.00002304559479445564 0"
So the question is how to calculate price impact by myself or how to use the returned numbers?

it should be 350_000_000 because ADA has 6 decimals

Yeap, it works. Thanks and sorry for newbie question


User should see dollar value generate in claim page

total money generated today is
price of g$ in reserve token (from reserve smart contract on mainnet) * g$ pool (from ubi contract on sidechain) * reserve token price in $ (from coinmarket cap or other api)
Definition of Done

[ ] total money generated

no longer relevant


⚠ Bofrost.nl has degraded performance

In afa4f1a, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 929 ms

Resolved: Bofrost.nl performance has improved in 71a1e82.


Fix urinorm - return plain sub delimiters in path

Reduce the strictness of percent encoding in path of urinorm as reported in #41

Codecov Report

Merging #43 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #43   +/-   ##
=======================================
  Coverage   89.48%   89.49%
=======================================
  Files          93       93
  Lines       12015    12019    +4
  Branches     1084     1084
=======================================
+ Hits        10752    10756    +4
  Misses       1094     1094
  Partials      169      169

Impacted Files
Coverage Δ

openid/test/test_urinorm.py
100.00% <100.00%> (ø)

openid/urinorm.py
91.20% <100.00%> (ø)

Continue to review full report at Codecov.

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

LGTM, so waiting for confirmation from #41.

Thanks!  Can this be merged now?


Live object detection example, confidence is very low

Hi,
I'm trying the example given in this repo live_object_detection_ssd_mobilenet but the confidence of what the camera see is very low (less than 0.5).
Is there a way to improve that? What are the variable that make the confidence that low?
I'm using a Oppo Reno 7Z
(I've downloaded the model using the script)
No errors in the debug console
Thanks

Can you please provide some screenshots? Maybe look at the label.txt. The model does not recognise that many things.

Hi, I'm using the default label.txt downloaded from the script (so there is like 96 entries).
I've the same setup as in the example gif so like a bottle of water / coffee cup / laptop :) the only thing he recognize with a high score of confidence is my table when I put the phone camera face down on it.
https://github.com/tensorflow/flutter-tflite/assets/6494791/fd784851-e7d9-4c2e-bfbe-db5a98962e38
If I change the confidence under 0.5 (I didn't change anything else in the code), you'll start to see some square detection but not fantastic as the confidence is very low :)
The object detection ssd mobile net example works well, if I take a picture of my laptop he recognize it.
So I'm not sure if the model is the issue in fact. The phone? Is there a list of compatible phone?

im facing the same issue, on colab everything works fine, did anyone find any solution

Hi everyone,
I believe I have found a bug. Changing ResolutionPreset from medium to low may improve accuracy. (I have only tested this on my Android device.)

Well this is shocking but using an older phone the example detect correctly ... a bug with Oppo Reno 7 ? -_-

I have the same issue.

I start using flutter_vision which under the hood use tflite and obviously , have the same issue.
I've created another issue there with more detail in the hope someone have an idea why it's doing that or guide me through idea :)
https://github.com/vladiH/flutter_vision/issues/36

I have a different problem, I created a model using yolov5 and converted it to tflite. when I try my model, the detection process doesn't work, but in colab everything works normally.

Anyone would have an hint on what could be done to fix that issue?
I've tried another implementation (https://github.com/Pawandeep-prog/realtime_object_detection android only) on my Oppo Reno 7Z and that works perfectly, they use under the hood tflite also but it's a bit different from what is done in this project.
Unfortunately, it wasn't working on multiples phones so we had to find another solution with a webview but it would be nice to come back to a native solution (for performance reason).

For those having the same issue, i did the following to fix it:

Add this image utils file into the project: https://github.com/zezo357/pytorch_lite/blob/694cb50523e6803441b4ded074909543e130c75e/lib/image_utils.dart

in detector_service.dart

instead of :
void _convertCameraImage(CameraImage cameraImage) {
   var preConversionTime = DateTime.now().millisecondsSinceEpoch;

   convertCameraImageToImage(cameraImage).then((image) {
     if (image != null) {
       if (Platform.isAndroid) {
         image = image_lib.copyRotate(image, angle: 90);
       }

       final results = analyseImage(image, preConversionTime);
       _sendPort.send(_Command(_Codes.result, args: [results]));
     }
   });
 }

I do
 void _convertCameraImage(CameraImage cameraImage) async {
    var preConversionTime = DateTime.now().millisecondsSinceEpoch;

    // var image = await ImageUtilsIsolate.convertCameraImage(cameraImage);
    var image = ImageUtils.convertCameraImage(cameraImage);
    if (image != null) {
      if (Platform.isAndroid) {
        image = image_lib.copyRotate(image, angle: 90);
      }

      // print("Image $image");
      final results = analyseImage(image, preConversionTime);
      _sendPort.send(_Command(_Codes.result, args: [results]));
    }
  }

I didn't test on many phone (2) but my phone which wasn't "detecting" anything can now detect without any issue at the speed of light :P
thanks a lot to the Pytorch Library which works wonderfully but unfortunately is not performant enough overall.


Schema dump issues

Using the gem, all migrations work and the columns are being updated to Enum columns. (using mysql)
When I migrate the DB, the schema does not get dumped correctly and I get a warning that the table can't be dumped.
Once I change the field back to string, everything goes back to normal.
Using Ruby 1.9.2, Rails 3.0.9

This is the error I am seeing in the Schema.rb file.
# Could not dump table "user_ext_friends" because of following StandardError
#   Unknown type 'enum('Facebook','Twitter','Foursquare')' for column 'ext_app_type'

There was some discussion on this some time ago, here: https://github.com/electronick/enum_column/issues/2


Source order is wrong on chapter list

Source order is wrong on chapter list

Should be fixed in 2.5.1


Django 1.7+ deprecation fixes

This PR adds fixes for Django 1.7+ replacing all occurrences of the deprecated meta parameter requires_model_validation with the new requires_system_checks. This removes warning when running associated commands in Django 1.7+.
Note for an unknown reason, these fixes were marked as done in the changelog but the attributes were still used.
Also, travis CI now uses Django 1.8 stable code for the tests.

Actually this is a duplicate of #653. Please merge the PR as this is creating issues when running projects on latest Django stable branch.

Coverage remained the same at 29.56% when pulling 957d2a6c86296f80f330577708e210657bdaebc5 on Antwan86:master into 2e63da5778a91efb0c03975a0e88a386da4c7962 on django-extensions:master.

Coverage remained the same at 29.56% when pulling 957d2a6c86296f80f330577708e210657bdaebc5 on Antwan86:master into 2e63da5778a91efb0c03975a0e88a386da4c7962 on django-extensions:master.

Coverage remained the same at 29.56% when pulling 957d2a6c86296f80f330577708e210657bdaebc5 on Antwan86:master into 2e63da5778a91efb0c03975a0e88a386da4c7962 on django-extensions:master.


Lodon Studios SmartSigns integration (Live Map)

Allow dispatchers to select any active smart sign on the live map

FiveM integration that syncs the SmartSigns to the CAD's database (sna-sync)
Show all the sign locations on the live map (cad)
Allow dispatch to edit them in the live map (cad)
Push the update to the sync integration (socket.io, sna-sync)

that would be pretty cool we also use that resource


[Version] Add 1.0.1 revision

This PR adds the next 1.0.1 patch release for BWC testing. Separate backport PR will be opened against 1.x branch.

start gradle check

start gradle check


Nondeterminism in ClairS output

This has already been resolved by I am sharing the email thread with @zhengzhenxian about this issue here.
ClairS returns slightly different results depending on the order in which bam files are being merged with samtools merge. While samtools merge does return merged bams with dissimilar ordering, I do not think it should affect variant calling. Could you help me understand a). how these functionally identical bam files are causing differences in ClairS output, and b). how significant are these differences?

Reply: Thank you for providing us with the data. Based on the data you provided, we believe that the issue is due to some of the merged BAMs sharing the same read names(read name and count are shown in the figure). We used "samtools mpileup" to parse all input alignments, and samtools gave different pileup results for different merged ordering, resulting in different variant calling results in Clair3 and ClairS.

Unfortunately, we are unable to fix the issue as it falls under the logic of samtools. However, we have two suggestions that may be helpful. The first is to add a unique prefix for each BAM that needs to be merged. The second is to sort the BAM file names in a specific order, such as alphabetical order, before merging. In our testing, if all read names are unique, the calling gave the same result in multiple runs.
Based on your benchmarking data, nearly 50% of the read names have more than one read support, which has contributed to 34 different calls. We suggest implementing one of the suggestions above to ensure that the merged BAMs have unique read names and therefore produce consistent variant calling results.
Please let us know if you have any further questions or concerns.

Thanks for your quick response to my issue. My team and I are taking your advice to try to force deterministic ClairS outputs in our pipeline. Taking your first suggestion, my team has filtered out non-unique reads and verified with BamUtil diff that two separate bam files are functionally identical -- multiple reads mapped to the same position are still ordered differently. However, calling ClairS on these two bam files again returned different results. Also, I was not able to detect any differences between the pileup files from either the output temp files or my own mpileup outputs. Can you please advise us on the source of the nondeterminism? We do believe that sorting the bam files before merging would work and we are in the process of implementing it in our pipeline, but my team would like to understand the root cause so that we can properly assess the validity of our results.

Regarding the issue of nondeterminism, I would like to clarify that it stems from samtools itself. Even after removing duplicated reads, we still observe differences in the read disorder. To investigate this further, I examined the Clair3 results in ${OUTPUT_DIR}/tmp/clair3_output/clair3_tumor_output/merge_output.vcf.gz and compared them with the samtools mplieup result of the first different record (chr1:143185622). Unfortunately, I found that the output is still different due to the different read order(figure 1 and figure2).

The issue with the read order affects the ClairS VCF result because we encode the alignment into a spatial read-level representation in our full-alignment model. Different read orders lead to different input arrangements and thus giving different outputs for some variants.
To address this issue, I would still recommend fixing the BAM order in the merging step to avoid distinct read orders. Please feel free to let us know if you have any further questions.

@xingyaoc,
Thanks for sharing the issue publicly! We confirmed the non-determinism itself was a bug from samtools merge submodule when the merging BAMs order is different.
Zhenxian


Weird stack overflow in one machine

I have been seing the following exception in one of our virtual machines but nowhere else, I believe it is going to be hard to reproduce, it happens after sometime of Aeron running:
java.lang.StackOverflowError: null
        at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:227) ~[log4j-core-2.8.1.jar:2.8.1]
        at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) ~[log4j-core-2.8.1.jar:2.8.1]
        at org.apache.logging.log4j.LogManager.getContext(LogManager.java:174) ~[log4j-api-2.8.1.jar:2.8.1]
        at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:618) ~[log4j-api-2.8.1.jar:2.8.1]
        at de.heikoseeberger.akkalog4j.Log4jLogger$.apply(Log4jLogger.scala:35) ~[akka-log4j_2.12-1.3.0.jar:1.3.0]
        at de.heikoseeberger.akkalog4j.Log4jLoggingFilter.isErrorEnabled(Log4jLoggingFilter.scala:29) ~[akka-log4j_2.12-1.3.0.jar:1.3.0]
        at akka.event.BusLogging.isErrorEnabled(Logging.scala:1644) ~[akka-actor_2.12-2.4.17.jar:?]
        at akka.event.LoggingAdapter.error(Logging.scala:1094) ~[akka-actor_2.12-2.4.17.jar:?]
        at akka.event.LoggingAdapter.error$(Logging.scala:1094) ~[akka-actor_2.12-2.4.17.jar:?]
        at akka.event.BusLogging.error(Logging.scala:1634) ~[akka-actor_2.12-2.4.17.jar:?]
        at akka.remote.artery.ArteryTransport$$anon$4.onError(ArteryTransport.scala:573) ~[akka-remote_2.12-2.4.17.jar:?]
        at io.aeron.ClientConductor.doWork(ClientConductor.java:361) ~[aeron-client-1.2.3.jar:?]                     // first time
        at io.aeron.ClientConductor.awaitResponse(ClientConductor.java:376) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.releaseSubscription(ClientConductor.java:200) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.Subscription.release(Subscription.java:344) ~[aeron-client-1.2.3.jar:?]
        at java.util.ArrayList.forEach(ArrayList.java:1249) ~[?:1.8.0_121]
        at io.aeron.ActiveSubscriptions.close(ActiveSubscriptions.java:65) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.onClose(ClientConductor.java:117) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.onCheckTimeouts(ClientConductor.java:400) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.doWork(ClientConductor.java:356) ~[aeron-client-1.2.3.jar:?]                     // infinite loop by recursion?
        at io.aeron.ClientConductor.awaitResponse(ClientConductor.java:376) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.releaseSubscription(ClientConductor.java:200) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.Subscription.release(Subscription.java:344) ~[aeron-client-1.2.3.jar:?]
        at java.util.ArrayList.forEach(ArrayList.java:1249) ~[?:1.8.0_121]
        at io.aeron.ActiveSubscriptions.close(ActiveSubscriptions.java:65) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.onClose(ClientConductor.java:117) ~[aeron-client-1.2.3.jar:?]
        at io.aeron.ClientConductor.onCheckTimeouts(ClientConductor.java:400) ~[aeron-client-1.2.3.jar:?]

I reported this issue because of two reasons:

I have no clue why it is happening.
It might actually be a real and hard to find concurrency bug.

Each virtual machine has the shared driver running and 2 to 3 JVMs sharing the driver using the Aeron client, and a total of 4 to 5 virtual machines.

I reported this issue because of two reasons:

I have no clue why it is happening.
It might actually be a real and hard to find concurrency bug.

Each virtual machine has the shared driver running and 2 to 3 JVMs sharing the driver via client, and a total of 4 to 5 virtual machines each with a shared driver.

Thanks. This was discovered by another user a few weeks ago. It happens on a resource starved machine were a timeout occurs during shutdown. I put in a fix last week that will make the next release.

Nice, thanks, better to know that it was a bug and is fixed, a relief.

Hi. When is this fix likely to be released?

Sometime this week.

Many thanks.


"autoModeVisible": false not working

Both "nightModeVisible": false,  and "focusModeVisible": false work but I can't hide Auto Mode.

Still seeing this as well. I would really like to hide them as well as the temp, humidity and AQI tiles.

I can confirm I can still use "Auto" even after disabling this. Im using a Dyson HP04

Same as well


Discuss format for date-time fields in mzQC

According to json schema definition https://json-schema.org/draft/2020-12/json-schema-validation.html#section-7.3.1, the format for date-time field follows https://www.rfc-editor.org/rfc/rfc3339.html#section-5.6
This requires explicit statement of either Z for UTC or a time zone offset. Omission is not valid.

[x] Fix to the example files is in PR #212
[ ] Discuss, if we need to adapt the specification document. Section 6.1 creationDate states ISO 8601, which is more lenient. The provided examples also lacks the time zone identifier.

Somewhat related the URI used in the format. Maybe we could add a small and clarifying section to the spec doc for that, too.
URIs and timezones are mundane things kept for granted but the RFCs hold some surprise. A convenience 'refresher' on the essential thing for each.
(https://www.rfc-editor.org/rfc/rfc3986)

Nice catch! For automatic syntactic validation I'd say to follow the JSON requirements (so include "Z"). The specification document should be updated accordingly.

Following our initial discussions here and off-line, I've drafted some change to the spec doc, to discuss something concrete next. The URIs did not get any extra text, I opted for simply linking the RFC at each occurrence of URI. That should be convenience enough.


Implement withRunningKafkaOnFoundPort

This implements withRunningKafkaOnFoundPort, which allows users to run zookeeper/kafka on arbitrary available ports instead of having to hard-code specific ports. This is useful to make tests more reliable, especially when running tests in parallel or on machines where other tests or services may be running with port numbers you can't control.
I'm happy to refactor this however you like. It might be cleaner to just change the implementation of withRunningKafka to take body: EmbeddedKafkaConfig => T instead of body: => T, since that only requires a single implementation. But that breaks backwards compatibility, so I didn't go that direction for now.

Thanks for reviewing this. I updated the README and test syntax, let me know if there's anything else I should change.

Thanks! Releasing tonight.


Docker build fails for ltsc2019

Environment
Windows Server 2019 [10.0.17763.1999]
Docker version 20.10.7, build f0df350
Docker image hash
5b60ac4e9e92 [ltsc2019 10.0.17763.1999]
Description
Trying to build a dockerfile produces the following error:

The command 'cmd /S /C powershell -Command     Add-WindowsFeature Web-Server;     Invoke-WebRequest -UseBasicParsing -Uri "https://dotnetbinaries.blob.core.windows.net/servicemonitor/<IP_ADDRESS>/ServiceMonitor.exe" -OutFile "C:\ServiceMonitor.exe"' returned a non-zero code:<PHONE_NUMBER>

Steps to reproduce:

Clone the repository
Go to "windowsservercore-ltsc2019" directory
Execute docker build -t iis . command

Notes
From what was able to find, it seems that trying to execute powershell  is now always produces exit code<PHONE_NUMBER>, what is usual case if there are some dependencies are missing.
Since trying to use any different image produces the results

The container operating system does not match the host operating system.

This seems like a serious issue to me.

I am facing the same issue

I am having the same problem. Did anyone found a fix?

For now the best solution I've found is installing "pwsh" aka Powershell 7 into a base image (mcr.microsoft.com/windows/servercore:ltsc2019) and then using "pwsh" instead of "powershell" for all the dockerfile commands.


Add a descriptive error message when creating a mesh surface from the wrong array type

I was confused for a few minutes because I was using Array by accident.

Thanks!

Cherry-picked for 4.2.1.


Test results Oticon More

Thank you for this project! I've tried the code with my Oticon Mores. It works, but it's not stable and latency is sometimes quite high. And range seems limited if I stream to both ears at the same time. If I move maybe 1-2 meters away from the my Intel AX200 Bluetooth adapter it will disconnect one of them. When I'm streaming only with one ear, it's more stable and range seems to be pretty OK.
Some data:
./asha_connection_test
(process:5873): GLib-GIO-DEBUG: 19:19:52.979: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
** INFO: 19:19:52.985: Adding bluetooth device Fredrik
** INFO: 19:19:53.054: Fredrik (Left)
** INFO: 19:19:53.054:     Name:      Fredrik
** INFO: 19:19:53.054:     Mac:       00:19:8E:67:60:19
** INFO: 19:19:53.054:     HiSyncId:<PHONE_NUMBER>088088327
** INFO: 19:19:53.054:     Side:      left (binaural)
** INFO: 19:19:53.054:     Delay:     89 ms
** INFO: 19:19:53.054:     Streaming: supported
** INFO: 19:19:53.054:     Codecs:    G.722@16kHz
** INFO: 19:19:53.214:     Connected: true
** INFO: 19:19:53.214:     L2CAP_CONNINFO:
** INFO: 19:19:53.214:        handle: 3586
** INFO: 19:19:53.214:        class:  [0, 0, 0]
** INFO: 19:19:53.214:     MTU:       SND 248 RCV 672
** INFO: 19:19:53.214:     PHY:    6144 LE_2M_TX LE_2M_RX
** INFO: 19:19:53.214:     MODE: LE_FLOWCTL
** INFO: 19:19:53.214:     Hci Connection Info:
** INFO: 19:19:53.214:        type:   128 LE
** INFO: 19:19:53.214:        out:    1 true
** INFO: 19:19:53.214:        state:  1 CONNECTED
** INFO: 19:19:53.214:        mode:   7 MASTER AUTH ENCRYPT
** INFO: 19:19:53.216: Adding bluetooth device Fredrik
** INFO: 19:19:53.251: Fredrik (Right)
** INFO: 19:19:53.251:     Name:      Fredrik
** INFO: 19:19:53.251:     Mac:       00:19:8E:67:5F:F0
** INFO: 19:19:53.251:     HiSyncId:<PHONE_NUMBER>088088327
** INFO: 19:19:53.251:     Side:      right (binaural)
** INFO: 19:19:53.251:     Delay:     89 ms
** INFO: 19:19:53.251:     Streaming: supported
** INFO: 19:19:53.251:     Codecs:    G.722@16kHz
** INFO: 19:19:53.410:     Connected: true
** INFO: 19:19:53.410:     L2CAP_CONNINFO:
** INFO: 19:19:53.410:        handle: 3585
** INFO: 19:19:53.410:        class:  [0, 0, 0]
** INFO: 19:19:53.410:     MTU:       SND 248 RCV 672
** INFO: 19:19:53.410:     PHY:    6144 LE_2M_TX LE_2M_RX
** INFO: 19:19:53.410:     MODE: LE_FLOWCTL
** INFO: 19:19:53.410:     Hci Connection Info:
** INFO: 19:19:53.410:        type:   128 LE
** INFO: 19:19:53.410:        out:    1 true
** INFO: 19:19:53.410:        state:  1 CONNECTED
** INFO: 19:19:53.410:        mode:   7 MASTER AUTH ENCRYPT

and:
./asha_pipewire_sink
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 0
on_change_state old: UNCONNECTED  new: CONNECTING
on_change_state old: CONNECTING  new: PAUSED
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 3 Total: 3
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 3 Total: 6
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
Ring Occupancy: 0 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
Ring Occupancy: 0 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 6

** (process:6006): WARNING **: 19:24:16.279: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:16.320: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:24:16.540: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:16.555: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:24:16.556: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:16.576: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:16.596: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:16.796: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:24:16.816: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:24:16.877: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:24:16.918: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:16.939: Dropping frame for Fredrik (Right)
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 1 Total: 7

** (process:6006): WARNING **: 19:24:28.018: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:24:28.136: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:28.176: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:24:28.299: Dropping frame for Fredrik (Left)
Ring Occupancy: 3 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7

** (process:6006): WARNING **: 19:24:32.698: Disconnected from Fredrik (Right): (Connection reset by peer)
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7

** (process:6006): WARNING **: 19:25:12.757: Dropping frame for Fredrik (Left)
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 1 Total: 8
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 2 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 3 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Ring Occupancy: 1 High: 3 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 8
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Ring Occupancy: 3 High: 4 Ring Dropped: 0 Total: 0 Adapter Dropped: 3 Total: 11

** (process:6006): WARNING **: 19:26:59.122: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:26:59.158: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:26:59.198: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:27:00.659: Dropping frame for Fredrik (Left)
Ring Occupancy: 3 High: 4 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 11

** (process:6006): WARNING **: 19:27:04.138: Disconnected from Fredrik (Left): (Connection reset by peer)
Ring Occupancy: 4 High: 4 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 11
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?

** (process:6006): WARNING **: 19:27:13.876: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:27:14.776: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:27:15.180: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:27:15.537: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:27:16.037: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:27:16.717: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:27:16.937: Dropping frame for Fredrik (Right)

** (process:6006): WARNING **: 19:27:18.878: Dropping frame for Fredrik (Left)

** (process:6006): WARNING **: 19:27:18.898: Disconnected from Fredrik (Left): (Connection reset by peer)

** (process:6006): WARNING **: 19:27:18.979: Disconnected from Fredrik (Right): (Connection reset by peer)
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped:<PHONE_NUMBER>3709551605 Total: 0
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 0
on_change_state old: UNCONNECTED  new: CONNECTING
on_change_state old: CONNECTING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Ring Occupancy: 2 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 7 Total: 7
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
on_change_state old: STREAMING  new: PAUSED
on_change_state old: PAUSED  new: STREAMING
Ring Occupancy: 2 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
on_change_state old: STREAMING  new: PAUSED
Ring Occupancy: 0 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 0 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7

Can you post the output of lsusb -t?

Sure:
lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 001: Dev 002, If 0, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 001: Dev 002, If 1, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 001: Dev 002, If 2, Class=Audio, Driver=snd-usb-audio, 12M
    |__ Port 001: Dev 002, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 001: Dev 002, If 4, Class=Vendor Specific Class, Driver=[none], 12M
    |__ Port 007: Dev 006, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 008: Dev 007, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 008: Dev 007, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 001: Dev 002, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 001: Dev 002, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 001: Dev 002, If 2, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 003: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 003: Dev 003, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 004: Dev 004, If 0, Class=Vendor Specific Class, Driver=[none], 12M
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 002: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 5000M
    |__ Port 002: Dev 004, If 1, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 002: Dev 004, If 2, Class=Video, Driver=uvcvideo, 5000M

Btw, it works better now after I rebooted. Still stable but I will test some more.

It got unstable after some interference from my iPhone. And now it's unstable even if I turned Bluetooth of on my phone. Maybe reboot will fix it again? Restarting asha_pipewire_sink didn't help.

can you run with the G_MESSAGES_DEBUG=all environment variable?

Sure, just some more info. Disabled Bluetooth on my iPhone. Rebooted computer, connected to hearing aids in the Bluetooth settings -> Streamed for like 10 min without any issues at all (when it works like that it feels like magic). Enabled iPhone again, started a Youtube video -> Hearing aids got disconnected from computer. Disabled Bluetooth again on iPhone, connected hearing aids to computer but now asha_pipewire_sink refuses to start again.
./asha_pipewire_sink
** INFO: 22:44:25.589: Starting...
(process:4885): GLib-GIO-DEBUG: 22:44:25.589: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
** INFO: 22:44:25.601: Adding bluetooth device Fredrik
** INFO: 22:44:25.635: Name:      Fredrik
** INFO: 22:44:25.635:     HiSyncId<PHONE_NUMBER>088088327
** INFO: 22:44:25.635:     Side:      left (binaural)
** INFO: 22:44:25.635:     Delay:     89 ms
** INFO: 22:44:25.635:     Streaming: supported
** INFO: 22:44:25.635:     Codecs:    G.722
on_change_state old: UNCONNECTED  new: CONNECTING
** INFO: 22:44:25.638: Adding Sink<PHONE_NUMBER>088088327 Fredrik
on_change_state old: CONNECTING  new: PAUSED
** INFO: 22:44:25.640: Adding bluetooth device Fredrik
on_change_state old: PAUSED  new: STREAMING
** INFO: 22:44:25.679: Name:      Fredrik
** INFO: 22:44:25.679:     HiSyncId<PHONE_NUMBER>088088327
** INFO: 22:44:25.679:     Side:      right (binaural)
** INFO: 22:44:25.679:     Delay:     89 ms
** INFO: 22:44:25.679:     Streaming: supported
** INFO: 22:44:25.679:     Codecs:    G.722
** INFO: 22:44:25.689: Adding left device to Fredrik

** (process:4885): WARNING **: 22:44:25.775: Failed to connect l2cap channel: Connection refused

** (process:4885): ERROR **: 22:44:25.815: Failed to connect to Fredrik (Left)
Trace/breakpoint trap (core dumped)

I will reboot and try again...

I had to reboot the hearing aids...
Is it possible to have asha_pipewire_sink to connect to the hearing aids when it starts? And that it tries to reconnect if disconnected?
Anyway:
export G_MESSAGES_DEBUG=all
./asha_pipewire_sink
** INFO: 22:57:53.594: Starting...
(process:4930): GLib-GIO-DEBUG: 22:57:53.594: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
** INFO: 22:57:53.605: Adding bluetooth device Fredrik
** INFO: 22:57:53.633: Name:      Fredrik
** INFO: 22:57:53.633:     HiSyncId<PHONE_NUMBER>088088327
** INFO: 22:57:53.633:     Side:      left (binaural)
** INFO: 22:57:53.633:     Delay:     89 ms
** INFO: 22:57:53.633:     Streaming: supported
** INFO: 22:57:53.633:     Codecs:    G.722
on_change_state old: UNCONNECTED  new: CONNECTING
** INFO: 22:57:53.636: Adding Sink<PHONE_NUMBER>088088327 Fredrik
on_change_state old: CONNECTING  new: PAUSED
** INFO: 22:57:53.638: Adding bluetooth device Fredrik
on_change_state old: PAUSED  new: STREAMING
** INFO: 22:57:53.689: Name:      Fredrik
** INFO: 22:57:53.689:     HiSyncId<PHONE_NUMBER>088088327
** INFO: 22:57:53.689:     Side:      right (binaural)
** INFO: 22:57:53.689:     Delay:     89 ms
** INFO: 22:57:53.689:     Streaming: supported
** INFO: 22:57:53.689:     Codecs:    G.722
** INFO: 22:57:53.691: Adding left device to Fredrik
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
** INFO: 22:57:53.933: Adding right device to Fredrik
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Why was process called with no buffers?
Ring Occupancy: 3 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 7 Total: 7
Ring Occupancy: 2 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 3 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7

** (process:4930): WARNING **: 22:58:28.230: Dropping frame for Fredrik (Right)
Ring Occupancy: 2 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 4 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 3 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 2 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7

** (process:4930): WARNING **: 22:59:05.972: Dropping frame for Fredrik (Left)

** (process:4930): WARNING **: 22:59:12.251: Dropping frame for Fredrik (Right)

** (process:4930): WARNING **: 22:59:12.271: Dropping frame for Fredrik (Right)
Ring Occupancy: 3 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 3 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
Ring Occupancy: 3 High: 5 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 7
** INFO: 22:59:39.370: Removing bluetooth device Fredrik

** (process:4930): WARNING **: 22:59:39.371: Disconnected from Fredrik (Right): (Connection reset by peer)
** INFO: 22:59:39.433: Removing bluetooth device Fredrik

** (process:4930): WARNING **: 22:59:39.452: Disconnected from Fredrik (Left): (Connection reset by peer)
** INFO: 22:59:39.521: Removing Sink<PHONE_NUMBER>088088327 Fredrik
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped:<PHONE_NUMBER>3709551609 Total: 0
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 0
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 0
Ring Occupancy: 0 High: 0 Ring Dropped: 0 Total: 0 Adapter Dropped: 0 Total: 0

Are your hearing devices paired with your iphone? Is it trying to take control of them?
When I switch my hearing aids from my laptop to my phone to my desktop, I usually have to delete any existing pairings, restart my hearing aids, and re-pair them from scratch.

Trace/breakpoint trap (core dumped)

Do you know how to load that core in gdb and produce a backtrace? If not, can you rerun cmake with cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=1 so that next time it dumps the backtrace to the console?

Are your hearing devices paired with your iphone? Is it trying to take control of them?
When I switch my hearing aids from my laptop to my phone to my desktop, I usually have to delete any existing pairings, restart my hearing aids, and re-pair them from scratch.

Yes, my hearing aids are connected to my iPhone, one Oticon ConnectClip and an Oticon TV Adapter. They connect automatically to my phone as MFI hearing aids. If I start my Oticon ConnectClip, it will connect to my hearing aids as well. As long as I don't use any audio (listening on Spotify, Youtube, calls etc.) on my iPhone, it will stream from my ConnectClip as long it's on and receiving audio from my computer. But as soon as I receive any audio from my iPhone, it will take over the connection. (It's only when audio btw, I can use the Oticon Companion app and stream audio from asha_pipewire_sink at the same time with no issues.) And when the audio from my iPhone stops, the ConnectClip will try to reconnect again (often it takes a couple of seconds - which could be a little bit annoying when I'm on a Teams call on my computer).
Something similar should be possible with ASHA, I guess. If possible, it would be great if asha_pipewire_sink could try to reconnect when the hearing aids are Disconnected. It looks like asha_pipewire_sink works really well if it doesn't get interfered by my iPhone. In fact, it works much better than the Oticon ConnectClip. With the Oticon ConnectClip the latency is higher, the sound quality is lower/harsher - it's not even close!
To use the Oticon TV Adapter, I need to switch to it from the Oticon Companion app or use the buttons on the hearing aids (hold the volume up button for some seconds).

Trace/breakpoint trap (core dumped)

Do you know how to load that core in gdb and produce a backtrace? If not, can you rerun cmake with cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=1 so that next time it dumps the backtrace to the console?

No, but I will try, thanks.

Those are probably responding to service advertisements. I don't have that implemented, but I'll see what I can do.

I've added a reconnect issue (#15) and added your device to the wiki. Please continue testing and let me know if you run across any other issues.


Artifact detekt-test foreces dependency constraining

I'm trying to include detekt-test in a project but it fails as it can't find the api dependencies assertj-core and spek-dsl-jvm. It gives me the following message:
Execution failed for task ':detekt-extensions:compileTestKotlin'.
> Could not resolve all files for configuration ':detekt-extensions:testCompileClasspath'.
   > Could not find org.assertj:assertj-core:.
     Required by:
         project :detekt-extensions > io.gitlab.arturbosch.detekt:detekt-test:1.13.1 > io.gitlab.arturbosch.detekt:detekt-test-utils:1.13.1
   > Could not find org.spekframework.spek2:spek-dsl-jvm:.
     Required by:
         project :detekt-extensions > io.gitlab.arturbosch.detekt:detekt-test:1.13.1 > io.gitlab.arturbosch.detekt:detekt-test-utils:1.13.1

Which appears to be because the artifact expects me to use assertJ and speak. My question is, is it really necessary to use both of these libraries to write tests for custom rules? I'm leaning towards simpler jUnit tests, so I had to depend on these libraries to prevent gradle from breaking. Would it be better to not have the api dependencies? Or are these libraries really a requirement?

Same for me.

Which appears to be because the artifact expects me to use assertJ and speak. My question is, is it really necessary to use both of these libraries to write tests for custom rules?

Some of the utils functions inside detekt-test (and transitively detekt-test-utils) are using those libraries. So if you use those utils functions, you need to import those dependencies. If you wish to use only JUnit, you can obviously do it, but you won't be able to use those util functions.
To name a couple:
setupKotlinEnvironment is using spek:
https://github.com/detekt/detekt/blob/793cecefa48819dcf20f70f675214f916ac9349e/detekt-test-utils/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/KotlinEnvironmentTestSetup.kt#L8-L13
FindingsAssertions is using assertJ:
https://github.com/detekt/detekt/blob/793cecefa48819dcf20f70f675214f916ac9349e/detekt-test/src/main/kotlin/io/gitlab/arturbosch/detekt/test/FindingsAssertions.kt#L91

You're totally right that we should probably expose a detekt-test artifact that is agnostic from the testing framework used. Given that we use internally Spek to run our tests, some of the test utils ended up being coupled with the testing framework.
Agree that we should clean it up a bit and expose as detekt-test-core that is fully agostic (PRs are more than welcome 🙏 )

I've changed the dependencies to compileOnly meaning if the anyone wants to use our assertions or spek integration, he needs to explicitly add the dependency to his project.


Fix building (and examples) with base-<IP_ADDRESS>

Much of Control.Applicative and Data.Monoid are exposed in Prelude as of base-<IP_ADDRESS>, so don't import them if using that version of base or later. This also fixes some examples that were broken by the Applicative–Monad Proposal (as well as lots of warnings).

base 4.8 doesn't come out until GHC 7.10, correct?

Right. I tested these changes with GHC 7.10-rc1, so barring any new changes to base until the final release, this should take care of any 7.10-related breakages.

Ah I forgot the RC is out... I'll merge after the actual release. Thanks!


add relayer implementations

https://github.com/iqlusioninc/relayer
https://github.com/informalsystems/ibc-rs
https://docs.google.com/document/d/1M8QQidRB7wS0BpYF3ytf7Ypuc9xhWDf9Le5lUHMvswA/edit

ChorusOne is also working on a Polkadot-Cosmos relayer which they plan to open source soon

cosmjs also planning a JS implementation according to Ethan Frey


Additional memory request adjustments

Made two mistakes in https://github.com/openshift/hypershift/pull/2055 :man_facepalming:
Adjusting additional components that are over their limits as well.

/test e2e-aws-metrics

/lgtm


filter typeguard fails in strict mode

Bug Report
I'm trying to use filter as a TypeGuard when compiling in strict mode.
This might be an issue with typescript itself, but not sure. I encountered the issue in rxjs so reporting here.
Current Behavior
filter<T>(event => event instanceof T) fails when typescript is set to strict mode.
Reproduction
This is an example in Angular using filter as a TypeGuard for the Router events.

REPL or Repo link: can't do stackblitz as doesn't compile in strict mode.
Here is one anyway, but it works https://stackblitz.com/edit/angular-2xu4tm (not strict mode)

constructor(router: Router) {
    router.events // (property) Router.events: Observable<Event>
      .pipe(filter<NavigationEnd>(event => event instanceof NavigationEnd))
      .subscribe(event => {});
  }

Fails in strict mode with:
Argument of type 'MonoTypeOperatorFunction<NavigationEnd>' is not assignable to parameter of type 'OperatorFunction<Event, NavigationEnd>'.
  Types of parameters 'source' and 'source' are incompatible.
    Type 'Observable<Event>' is not assignable to type 'Observable<NavigationEnd>'.
      Type 'Event' is not assignable to type 'NavigationEnd'.
        Property 'urlAfterRedirects' is missing in type 'RouterEvent' but required in type 'NavigationEnd'.ts(2345)

Expected behavior
Same behavior as when not in strict mode.
Environment

Runtime: Node v12.4.0
RxJS version: 6.5.2

Angular CLI: 8.2.0
Node: 12.4.0
OS: win32 x64
Angular: 8.2.0
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.802.0
@angular-devkit/build-angular     0.802.0
@angular-devkit/build-optimizer   0.802.0
@angular-devkit/build-webpack     0.802.0
@angular-devkit/core              7.3.9
@angular-devkit/schematics        8.2.0
@angular/cdk                      8.1.2
@ngtools/webpack                  8.2.0
@schematics/angular               8.2.0
@schematics/update                0.802.0
rxjs                              6.5.2
typescript                        3.5.3
webpack                           4.38.0

You've passed an ordinary, garden-variety arrow function. You've not passed a user-defined type guard. To pass the latter, you would need something like:
pipe(filter((event: /* whatever */): event is NavigationEnd => event instanceof NavigationEnd))

Also, IMO, it's bad practice to supply explicit type parameters in the value space, like this:
filter<NavigationEnd>

I'd suggest you avoid that wherever possible.

Uh many thanks!
pipe(filter((event: /* whatever */): event is NavigationEnd => event instanceof NavigationEnd))
works.
I agree that filter<NavigationEnd> should be avoided. It was an attempt to make it compile as
pipe(filter((event) => event instanceof NavigationEnd))
Would return an Observable<Event> and not the desired Observable<NavigationEnd>
copy/paste from the type without the trick above.
(alias) filter<Event>(predicate: (value: Event, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<Event> (+1 overload)

I'm guessing this can be closed, now?


Update gvisor.dev/gvisor to latest tagged release

This will allow building with golang 1.20/1.21, but will break builds with
golang 1.19... If you need to build with 1.19, you will have to keep using
gvisor-tap-vsock 0.6.2
This fixes https://github.com/containers/gvisor-tap-vsock/issues/232

@AkihiroSuda this is https://github.com/containers/gvisor-tap-vsock/pull/219 rebased with an additional update on top of it

We'll need to disable f37 packit builds for main branch as well. Could you please add this patch to update packit tasks?
$ cat 0001-update-packit-targets.patch
From b951fd5b52a4623eb31f9fcb4cf702c57f1d26f2 Mon Sep 17 00:00:00 2001
From: Lokesh Mandvekar<EMAIL_ADDRESS>Date: Tue, 25 Jul 2023 15:32:56 -0400
Subject: [PATCH] update packit targets

Signed-off-by: Lokesh Mandvekar<EMAIL_ADDRESS>---
 .packit.yaml | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/.packit.yaml b/.packit.yaml
index 4322dda..8301f9e 100644
--- a/.packit.yaml
+++ b/.packit.yaml
@@ -18,9 +18,31 @@ jobs:
     enable_net: true
     srpm_build_deps:
       - make
+    targets:
+      - fedora-rawhide-aarch64
+      - fedora-rawhide-x86_64
+      - fedora-eln-aarch64
+      - fedora-eln-x86_64
+      - fedora-38-aarch64
+      - fedora-38-x86_64
+      - centos-stream-9-aarch64
+      - centos-stream-9-x86_64
+      - centos-stream-8-aarch64
+      - centos-stream-8-x86_64

   - <<: *copr
     # Run on commit to main branch
     trigger: commit
     branch: main
     project: podman-next
+    targets:
+      - fedora-rawhide-aarch64
+      - fedora-rawhide-x86_64
+      - fedora-eln-aarch64
+      - fedora-eln-x86_64
+      - fedora-38-aarch64
+      - fedora-38-x86_64
+      - centos-stream+epel-next-9-aarch64
+      - centos-stream+epel-next-9-ppc64le
+      - centos-stream+epel-next-9-s390x
+      - centos-stream+epel-next-9-x86_64
--
2.41.0

We'll need to disable f37 packit builds for main branch as well. Could you please add this patch to update packit tasks?

The context for the diff you provided does not match what is in git main https://github.com/containers/gvisor-tap-vsock/blob/main/.packit.yaml
I've manually applied your changes and added them to this PR.

@cfergeau @AkihiroSuda can we get this merged and cut a new release please?