Sentinel failover aborted - failover-abort-not-elected error

Hello.
I have 2 redis and 3 sentinels.
Use it in 2 servers: master+ master-sentinel and slave + 2 slave-sentinels in separate services.
Use Redis 7.0.0 prerelease and master branch.
When master down, sentinels vote to elect a leader, and a leader was elected by voting, but no failover was performed and  "failover-abort-not-elected" was reported.  Thus, slave never come master.
When master server went down, sentinel does not set slave to master.
Version 3.0.504 for Windows with same config works as expected.
Master.config:
port 6379
requirepass "12345"
masterauth "12345"
loglevel notice
logfile "Logs/redis_log.txt"

replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no

Master-ssentinel.config
port 26379
loglevel notice
logfile "Logs/redis_sentinel_log.txt"
requirepass "12345"
masterauth "12345"

sentinel monitor redis-gsf <IP_ADDRESS> 6379 2
sentinel down-after-milliseconds redis-gsf 6001
sentinel failover-timeout redis-gsf 60000
sentinel config-epoch redis-gsf 1
sentinel auth-pass redis-gsf "12345"

Slave.config
port 6379
requirepass "12345"
masterauth "12345"
loglevel notice
logfile "Logs/redis_log.txt"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replicaof <IP_ADDRESS> 6379

Slave-sentinel1.config
port 26379
loglevel debug
logfile "Logs/redis_sentinel_log.txt"
requirepass "12345"
masterauth "12345"
sentinel monitor redis-gsf <IP_ADDRESS> 6379 2
sentinel down-after-milliseconds redis-gsf 5000
sentinel failover-timeout redis-gsf 60000
sentinel config-epoch redis-gsf 1
sentinel auth-pass redis-gsf "12345"

Slave-sentinel2.config
port 26378
loglevel debug
logfile "Logs/redis_sentinel_log_2.txt"
requirepass "12345"
masterauth "12345"
sentinel monitor redis-gsf <IP_ADDRESS> 6379 2
sentinel down-after-milliseconds redis-gsf 5000
sentinel failover-timeout redis-gsf 60000
sentinel config-epoch redis-gsf 1
sentinel auth-pass redis-gsf "12345"

Logs/redis_sentinel_log.txt
...
[037216] 05 Apr 11:43:05.457 # +sdown sentinel 27e0862078cd19da67f839b2ebaa3a363afc7b9e <IP_ADDRESS> 26379 @ redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:43:18.391 # +sdown master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:43:20.059 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:43:20.059 # +new-epoch 53
[037216] 05 Apr 11:43:20.062 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:43:20.063 # +vote-for-leader 92601948f2f8fd651dc26c352e42d6f6f93f1bbe 53
[037216] 05 Apr 11:43:20.543 # +odown master redis-gsf <IP_ADDRESS> 6379 #quorum 2/2
[037216] 05 Apr 11:43:20.543 # Next failover delay: I will not start a failover before Tue Apr  5 11:45:20 2022
[037216] 05 Apr 11:45:20.622 # +new-epoch 54
[037216] 05 Apr 11:45:20.622 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:45:20.624 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:45:20.624 # +vote-for-leader c8409d55794d04da09656e33761ec00adf19b0f5 54
[037216] 05 Apr 11:45:20.624 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:45:20.630 # 92601948f2f8fd651dc26c352e42d6f6f93f1bbe voted for c8409d55794d04da09656e33761ec00adf19b0f5 54
[037216] 05 Apr 11:45:21.699 # Next failover delay: I will not start a failover before Tue Apr  5 11:47:20 2022
[037216] 05 Apr 11:47:20.788 # +new-epoch 55
[037216] 05 Apr 11:47:20.788 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:47:20.790 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:47:20.790 # +vote-for-leader c8409d55794d04da09656e33761ec00adf19b0f5 55
[037216] 05 Apr 11:47:20.790 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:47:20.796 # 92601948f2f8fd651dc26c352e42d6f6f93f1bbe voted for c8409d55794d04da09656e33761ec00adf19b0f5 55
[037216] 05 Apr 11:47:21.406 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:47:21.406 # +new-epoch 56
[037216] 05 Apr 11:47:21.410 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:47:21.410 # +vote-for-leader 92601948f2f8fd651dc26c352e42d6f6f93f1bbe 56
[037216] 05 Apr 11:47:21.846 # +new-epoch 57
[037216] 05 Apr 11:47:21.846 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:47:21.848 * Sentinel new configuration saved on disk
[037216] 05 Apr 11:47:21.848 # +vote-for-leader c8409d55794d04da09656e33761ec00adf19b0f5 57
[037216] 05 Apr 11:47:21.848 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[037216] 05 Apr 11:47:21.854 # 92601948f2f8fd651dc26c352e42d6f6f93f1bbe voted for c8409d55794d04da09656e33761ec00adf19b0f5 57
[037216] 05 Apr 11:47:22.901 # Next failover delay: I will not start a failover before Tue Apr  5 11:49:22 2022
...

Could you please inform me if you need additional information?
Thank you in advance.

i checked this issue for serval days,but i didnt find reason,then i compared to official redis 7.0-rc3,i use the following config and run,it will also crash
port 26380
loglevel notice
#logfile "Logs/redis_sentinel_log.txt"
requirepass "12345"
masterauth "12345"
sentinel monitor redis-gsf <IP_ADDRESS> 6379 2
sentinel down-after-milliseconds redis-gsf 6001
sentinel failover-timeout redis-gsf 60000
sentinel config-epoch redis-gsf 1
sentinel auth-pass redis-gsf "12345"

i fixed this issue,but i need sometime to verify it.maybe on 1 May i will update it

Ok, we will wait your fix. Thank you

commited.

Hello.
I use new version (master and https://github.com/zkteco-home/redis-windows/releases/tag/redis7.0.0).
But there is no failover was performed and "failover-abort-not-elected" was reported again. Thus, slave never come master.
[001888] 04 May 09:30:50.207 * Sentinel new configuration saved on disk
[001888] 04 May 09:31:34.051 # +sdown master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.051 # +sdown sentinel 648045c5c5ed7c2d95601ad4232d15321689947d <IP_ADDRESS> 26379 @ redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.158 # +odown master redis-gsf <IP_ADDRESS> 6379 #quorum 2/2
[001888] 04 May 09:31:34.158 # +new-epoch 2
[001888] 04 May 09:31:34.158 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.164 * Sentinel new configuration saved on disk
[001888] 04 May 09:31:34.165 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 2
[001888] 04 May 09:31:34.165 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.177 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 2
[001888] 04 May 09:31:34.234 # +new-epoch 3
[001888] 04 May 09:31:34.234 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.240 * Sentinel new configuration saved on disk
[001888] 04 May 09:31:34.241 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 3
[001888] 04 May 09:31:34.241 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.251 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 3
[001888] 04 May 09:31:34.312 # +new-epoch 4
[001888] 04 May 09:31:34.312 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.318 * Sentinel new configuration saved on disk
[001888] 04 May 09:31:34.318 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 4
[001888] 04 May 09:31:34.318 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.329 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 4
[001888] 04 May 09:31:34.387 # +new-epoch 5
[001888] 04 May 09:31:34.387 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.393 * Sentinel new configuration saved on disk
[001888] 04 May 09:31:34.393 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 5
[001888] 04 May 09:31:34.393 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:31:34.404 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 5
[001888] 04 May 09:31:34.478 # Next failover delay: I will not start a failover before Wed May  4 09:33:34 2022
[001888] 04 May 09:33:34.495 # +new-epoch 6
[001888] 04 May 09:33:34.495 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.501 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.502 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 6
[001888] 04 May 09:33:34.502 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.517 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 6
[001888] 04 May 09:33:34.522 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.522 # +new-epoch 7
[001888] 04 May 09:33:34.528 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.528 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 7
[001888] 04 May 09:33:34.572 # +new-epoch 8
[001888] 04 May 09:33:34.572 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.579 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.579 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 8
[001888] 04 May 09:33:34.579 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.580 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 8
[001888] 04 May 09:33:34.634 # +new-epoch 9
[001888] 04 May 09:33:34.634 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.640 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.640 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 9
[001888] 04 May 09:33:34.640 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.651 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 9
[001888] 04 May 09:33:34.691 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.691 # +new-epoch 10
[001888] 04 May 09:33:34.697 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.697 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 10
[001888] 04 May 09:33:34.712 # +new-epoch 11
[001888] 04 May 09:33:34.712 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.717 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.717 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 11
[001888] 04 May 09:33:34.717 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.727 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 11
[001888] 04 May 09:33:34.783 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.783 # +new-epoch 12
[001888] 04 May 09:33:34.787 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.788 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 12
[001888] 04 May 09:33:34.788 # +new-epoch 13
[001888] 04 May 09:33:34.788 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.793 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.793 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 13
[001888] 04 May 09:33:34.793 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.803 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 13
[001888] 04 May 09:33:34.851 # +new-epoch 14
[001888] 04 May 09:33:34.851 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.857 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.857 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 14
[001888] 04 May 09:33:34.857 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.858 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 14
[001888] 04 May 09:33:34.928 # +new-epoch 15
[001888] 04 May 09:33:34.928 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.933 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.934 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 15
[001888] 04 May 09:33:34.934 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:34.949 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 15
[001888] 04 May 09:33:34.953 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.953 # +new-epoch 16
[001888] 04 May 09:33:34.957 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:34.958 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 16
[001888] 04 May 09:33:35.005 # +new-epoch 17
[001888] 04 May 09:33:35.005 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.010 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.011 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 17
[001888] 04 May 09:33:35.011 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.020 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 17
[001888] 04 May 09:33:35.062 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.063 # +new-epoch 18
[001888] 04 May 09:33:35.067 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.067 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 18
[001888] 04 May 09:33:35.067 # +new-epoch 19
[001888] 04 May 09:33:35.067 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.072 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.072 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 19
[001888] 04 May 09:33:35.072 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.082 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 19
[001888] 04 May 09:33:35.129 # +new-epoch 20
[001888] 04 May 09:33:35.129 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.135 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.135 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 20
[001888] 04 May 09:33:35.135 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.144 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 20
[001888] 04 May 09:33:35.171 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.171 # +new-epoch 21
[001888] 04 May 09:33:35.175 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.175 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 21
[001888] 04 May 09:33:35.208 # +new-epoch 22
[001888] 04 May 09:33:35.208 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.213 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.214 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 22
[001888] 04 May 09:33:35.214 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.223 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 22
[001888] 04 May 09:33:35.248 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.248 # +new-epoch 23
[001888] 04 May 09:33:35.252 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.253 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 23
[001888] 04 May 09:33:35.269 # +new-epoch 24
[001888] 04 May 09:33:35.269 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.274 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.274 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 24
[001888] 04 May 09:33:35.274 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.284 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 24
[001888] 04 May 09:33:35.309 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.309 # +new-epoch 25
[001888] 04 May 09:33:35.314 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.314 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 25
[001888] 04 May 09:33:35.359 # +new-epoch 26
[001888] 04 May 09:33:35.359 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.365 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.365 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 26
[001888] 04 May 09:33:35.365 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.375 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 26
[001888] 04 May 09:33:35.400 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.400 # +new-epoch 27
[001888] 04 May 09:33:35.405 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.405 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 27
[001888] 04 May 09:33:35.468 # +new-epoch 28
[001888] 04 May 09:33:35.468 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.473 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.474 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 28
[001888] 04 May 09:33:35.474 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.488 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 28
[001888] 04 May 09:33:35.493 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.493 # +new-epoch 29
[001888] 04 May 09:33:35.498 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.498 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 29
[001888] 04 May 09:33:35.572 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.572 # +new-epoch 30
[001888] 04 May 09:33:35.577 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.577 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 30
[001888] 04 May 09:33:35.577 # +new-epoch 31
[001888] 04 May 09:33:35.577 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.582 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.582 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 31
[001888] 04 May 09:33:35.582 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.592 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 31
[001888] 04 May 09:33:35.649 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.650 # +new-epoch 32
[001888] 04 May 09:33:35.654 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.654 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 32
[001888] 04 May 09:33:35.670 # +new-epoch 33
[001888] 04 May 09:33:35.670 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.675 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.675 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 33
[001888] 04 May 09:33:35.675 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.685 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 33
[001888] 04 May 09:33:35.711 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.711 # +new-epoch 34
[001888] 04 May 09:33:35.716 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.716 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 34
[001888] 04 May 09:33:35.748 # +new-epoch 35
[001888] 04 May 09:33:35.748 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.753 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.754 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 35
[001888] 04 May 09:33:35.754 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.764 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 35
[001888] 04 May 09:33:35.788 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.788 # +new-epoch 36
[001888] 04 May 09:33:35.792 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.792 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 36
[001888] 04 May 09:33:35.824 # +new-epoch 37
[001888] 04 May 09:33:35.824 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.829 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.830 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 37
[001888] 04 May 09:33:35.830 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.841 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 37
[001888] 04 May 09:33:35.865 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.866 # +new-epoch 38
[001888] 04 May 09:33:35.870 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.870 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 38
[001888] 04 May 09:33:35.887 # +new-epoch 39
[001888] 04 May 09:33:35.887 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.892 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.892 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 39
[001888] 04 May 09:33:35.893 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.904 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 39
[001888] 04 May 09:33:35.944 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.944 # +new-epoch 40
[001888] 04 May 09:33:35.948 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.948 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 40
[001888] 04 May 09:33:35.964 # +new-epoch 41
[001888] 04 May 09:33:35.964 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.969 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:35.969 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 41
[001888] 04 May 09:33:35.970 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:35.979 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 41
[001888] 04 May 09:33:36.020 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.020 # +new-epoch 42
[001888] 04 May 09:33:36.025 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.025 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 42
[001888] 04 May 09:33:36.073 # +new-epoch 43
[001888] 04 May 09:33:36.073 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.079 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.079 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 43
[001888] 04 May 09:33:36.079 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.080 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 43
[001888] 04 May 09:33:36.161 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.161 # +new-epoch 44
[001888] 04 May 09:33:36.165 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.165 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 44
[001888] 04 May 09:33:36.180 # +new-epoch 45
[001888] 04 May 09:33:36.180 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.186 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.186 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 45
[001888] 04 May 09:33:36.186 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.196 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 45
[001888] 04 May 09:33:36.252 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.253 # +new-epoch 46
[001888] 04 May 09:33:36.257 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.258 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 46
[001888] 04 May 09:33:36.273 # +new-epoch 47
[001888] 04 May 09:33:36.273 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.278 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.278 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 47
[001888] 04 May 09:33:36.278 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.288 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 47
[001888] 04 May 09:33:36.329 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.329 # +new-epoch 48
[001888] 04 May 09:33:36.333 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.333 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 48
[001888] 04 May 09:33:36.333 # +new-epoch 49
[001888] 04 May 09:33:36.334 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.338 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.339 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 49
[001888] 04 May 09:33:36.339 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.348 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 49
[001888] 04 May 09:33:36.396 # +new-epoch 50
[001888] 04 May 09:33:36.396 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.401 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.401 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 50
[001888] 04 May 09:33:36.402 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.412 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 50
[001888] 04 May 09:33:36.436 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.436 # +new-epoch 51
[001888] 04 May 09:33:36.441 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.441 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 51
[001888] 04 May 09:33:36.488 # +new-epoch 52
[001888] 04 May 09:33:36.488 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.494 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.494 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 52
[001888] 04 May 09:33:36.494 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.504 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 52
[001888] 04 May 09:33:36.528 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.528 # +new-epoch 53
[001888] 04 May 09:33:36.533 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.533 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 53
[001888] 04 May 09:33:36.564 # +new-epoch 54
[001888] 04 May 09:33:36.565 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.570 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.570 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 54
[001888] 04 May 09:33:36.570 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.579 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 54
[001888] 04 May 09:33:36.607 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.607 # +new-epoch 55
[001888] 04 May 09:33:36.612 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.612 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 55
[001888] 04 May 09:33:36.642 # +new-epoch 56
[001888] 04 May 09:33:36.642 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.647 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.647 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 56
[001888] 04 May 09:33:36.648 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.658 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 56
[001888] 04 May 09:33:36.683 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.684 # +new-epoch 57
[001888] 04 May 09:33:36.687 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.688 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 57
[001888] 04 May 09:33:36.735 # +new-epoch 58
[001888] 04 May 09:33:36.735 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.740 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.740 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 58
[001888] 04 May 09:33:36.741 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.756 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 58
[001888] 04 May 09:33:36.760 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.761 # +new-epoch 59
[001888] 04 May 09:33:36.765 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.765 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 59
[001888] 04 May 09:33:36.796 # +new-epoch 60
[001888] 04 May 09:33:36.796 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.801 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.801 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 60
[001888] 04 May 09:33:36.802 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.811 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 60
[001888] 04 May 09:33:36.853 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.853 # +new-epoch 61
[001888] 04 May 09:33:36.858 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.858 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 61
[001888] 04 May 09:33:36.889 # +new-epoch 62
[001888] 04 May 09:33:36.889 # +try-failover master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.894 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.894 # +vote-for-leader 38da212fc28d246df0939b5ec61958b5eb1ccd70 62
[001888] 04 May 09:33:36.895 # -failover-abort-not-elected master redis-gsf <IP_ADDRESS> 6379
[001888] 04 May 09:33:36.906 # 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b voted for 38da212fc28d246df0939b5ec61958b5eb1ccd70 62
[001888] 04 May 09:33:36.929 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.930 # +new-epoch 63
[001888] 04 May 09:33:36.934 * Sentinel new configuration saved on disk
[001888] 04 May 09:33:36.934 # +vote-for-leader 65e1c1f97fec14e0afe4d9fff2902bc12bc9fa4b 63

Info:
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=redis-gsf,status=ok,address=<IP_ADDRESS>:6379,slaves=1,sentinels=3
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:<IP_ADDRESS>
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_read_repl_offset:0
slave_repl_offset:0
master_link_down_since_seconds:-1
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:6cb68c7028461f5403e37239fdace65efb521023
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

What additional info do you need?

I tested many times,it works fine,you should wait a littile time,new epoch may reach over 100,then switch master will happen.
i also fixed small other issue about replication.you pull new package.sentinel is ok

Thank you for your work, but election of a new master happens occasionally.
Sometimes 1 minutes, sometimes 5 minutes, sometimes more time and I don`t know what is the reason.

you send me your configrations to ichael.wang.zkteco@gmail.com,i will continue to investigate it.this part logical is very complicated,so it is a little difficulty to debug it,need over 5 servers to run it

Super. I wait your changes. Thank you.

Super. I wait your changes. Thank you.

i already commited 3days ago

I got it and tested!!! All works as expected!!! Thank you so much!!!


the demo  does not seem to have any contextual capability for chatgpt

When I ask chatGPT a follow-up question, it doesn't seem to have the ability to maintain context. well, I understand that This should indeed be a feature of GPT, at least it should be able to remember a certain number of historical questions.
for example: if I asked help to list 10 news websites, it worked well, when I asked "need more", it didn't know what shoud do at all.

Seems like bug in the cosmosdb history. If you look from database, there is ony ever 1 question and 1 answer on any conversation.

I actually got it working just fixing my partition-key in the cosmosdb container. It needs to be /user_id, otherwise it will lose the history.

I actually got it working just fixing my partition-key in the cosmosdb container. It needs to be /user_id, otherwise it will lose the history.

This helped me. To be exact you can find it here:

You can not edit it so you have to make a new container.
Hope this helps.

sorry, I have little confused. by default, there's parttion key set as "user_id"

sorry, I have little confused. by default, there's parttion key set as "user_id". anything else I need to modify? Thanks!

No, that's all you need.


add table of contents to readme

Signed-off-by: Jess Valarezo<EMAIL_ADDRESS>

LGTM

Codecov Report

Merging #1875 into master will decrease coverage by 3.46%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1875      +/-   ##
==========================================
- Coverage   52.34%   48.87%   -3.47%
==========================================
  Files          78       86       +8
  Lines        6748     8332    +1584
==========================================
+ Hits         3532     4072     +540
- Misses       2545     3586    +1041
- Partials      671      674       +3

Flag
Coverage Δ

#linux
52.34% <ø> (ø)
:arrow_up:

#windows
44.1% <ø> (?)

Impacted Files
Coverage Δ

fs/path.go
61.69% <0%> (-12.84%)
:arrow_down:

snapshots/naive/naive.go
43.89% <0%> (-10%)
:arrow_down:

metadata/snapshot.go
45.95% <0%> (-8.96%)
:arrow_down:

archive/compression/compression.go
43.93% <0%> (-8.9%)
:arrow_down:

remotes/docker/fetcher.go
41.42% <0%> (-7.6%)
:arrow_down:

fs/copy.go
34.83% <0%> (-7.2%)
:arrow_down:

metadata/containers.go
47.31% <0%> (-6.4%)
:arrow_down:

content/local/writer.go
50% <0%> (-6.17%)
:arrow_down:

metadata/buckets.go
56% <0%> (-6.13%)
:arrow_down:

archive/tar.go
43.47% <0%> (-5.86%)
:arrow_down:

... and 51 more

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 68d4dfe...26012df. Read the comment docs.


Change of terminology

The term "master" has negative connotations and we should look to use terms like control plane instead.
Happy to submit a PR to change term if you approve?
See similar conversations in Kubernetes project.
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/architecture.md#cluster-control-plane-aka-master

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

ID: a445f8cc-6581-ad43-1dba-719a94eda81a
Version Independent ID: 31280746-d8de-91b4-d430-91693c2e869d
Content: Concepts - Kubernetes basics for Azure Kubernetes Services (AKS)
Content Source: articles/aks/concepts-clusters-workloads.md
Service: container-service
GitHub Login: @mlearned
Microsoft Alias: mlearned

@shahiddev Thanks for pointing this out. You can raise a PR with the changes and one of our authors would review the changes. The contribution guide for azure docs is here.

Thanks for that PR @shahiddev ! I requested that the content authors review it. I will close this issue and we can work off the PR


Add TO Go Divisions name

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1714/
Test PASSed.

Tested, works as expected.

Changed to use "CRUDer" interfaces.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1767/
Test PASSed.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/incubator-trafficcontrol-PR/1768/
Test PASSed.


Facebook force authentication with FB App

I configured and used this plugin for a few months without any issue.
Now when a user starts the signup process, the choice presented by the in-app browser force the user to login with FB app.
After I grant the permission the plugin not recognize the callback path and open a url as universal link. The url returned from FB app is the following:
fb{fb-app-id}://authorize#denied_scopes=&granted_scopes=email%2Cpublic_profile&nonce=FAKE_NONCE&signed_request=FAKE_SIGNED
I omitted the sensitive data.

@moberwasserlechner Same problem if login with FB with app TeamConductor developed by you

Add this code resolve the issue.
import UIKit
import Capacitor

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    // other methods

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
      // Called when the app was launched with a url. Feel free to add additional processing here,
      // but if you want the App API to support tracking app url opens, make sure to keep this call

      if let scheme = url.scheme, let host = url.host {
        if scheme == "fb\(SDKSettings.appId)" && host == "authorize" {
          return SDKApplicationDelegate.shared.application(app, open: url, options: options)
        }
      }

      return CAPBridge.handleOpenUrl(url, options)
    }

    // other methods
}

Thx you. I'll add it to the docs.


ListBox DragDropKeyStates example moves when being told to copy

Version: 513fb18b859fb095ffde7281bddf1e0216222476

Run the Showcase application
Select ListBox > DragDropKeyStates from the menu
Set DragDropCopyKeyState to LeftButton
Drag one item from the left list to the right list

The mouse cursor clearly says “copy”, but the actual action is to move the item. After dropping, it is no longer in the left list.

@rillig I know :-( -> https://github.com/punker76/gong-wpf-dragdrop/issues/200


Incorrect missing value used for missing time steps using ferret_v67_rc1

Reported by karl smith on 25 Mar 2011 21:54 UTC
Using the script:
use coads_climatology
let subsst = sst[X=165e:165w,l=5:7]
save /file=ssttest.nc /heading=enhanced sst, subsst

then using ncdump to look at what is written out for subsst (or load it back into ferret).
The ssttest.nc created using ferret_v67_rc1 has -3.689E+19 for the completely missing time steps.  (When loaded in ferret and listed, -3.689E+19 is listed for l=1:4 and 0.0 for l=8:12).  The missing value is correct for l=5:7.
Using the script for ferret_v667, the correct missing value is assigned to the missing time steps.
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1822

Comment by karl.smith on 25 Mar 2011 21:55 UTC
The /heading=enhanced can be omitted and the same behavior is seen.

Comment by steven.c.hankin on 25 Mar 2011 22:23 UTC
This is a bug, but it also a somewhat pathological example.  With the L limits 5:7 built into the definition of the variable, subsst, it has no meaning in the L=1:4 range of the output.   Also in Ferret whereas the spatial axes are correctly sorted out, by creating distinctly named axes for the two subsets (one full-sized); Ferret tries to create output files in which variables share the same time axis.  In this case the time axis is also the netCDF record axis of the file.
This should work if /RIGID is specified, to indicate that no netCDF record axis should be used.  However, /RIGID generates a message that the qualifier has been deprecated.  (So how do should Ferret create an output file without a record axis?)
The desired behavior (two variables sharing the same time axis, where one of them is missing-value-filled for some of the time steps) can probably be achieved through a workaround: first write the L=1:7 result; then overlay (/APPEND) the different variable at L=5:7

Comment by ansley.b.manke on 25 Mar 2011 22:53 UTC
The different behavior between Ferret versions that Karl first reports seems to be due just to the fact that this version is linked with a different NetCDF library. I'll see whether I can track down why.
The example is not changed by
yes? use coads_climatology
yes? let subsst = sst[save/clobber/file=ssttest.nc /heading=enhanced sst
yes? save/append/file=ssttest.nc subsst

which creates a file just like the one in Karl's script above. Using /RIGID does get us a file with no record axis and the right descriptions for the two grids:

yes? use coads_climatology
yes? let subsst = sst[X=165e:165w,l=5:7](X=165e:165w,l=5:7]
yes?)
yes? save/clobber/file=ssttest.nc /heading=enhanced/rigid sst,subsst
*** NOTE: /RIGID is deprecated. By default axis bounds are written for irregular axes.
 LISTing to file ssttest.nc
yes? can var/all; can data/all
yes? use ssttest.nc
yes? sh dat
     currently SET data sets:
    1> ./ssttest.nc  (default)
 name     title                             I         J         K         L
 SST      SEA SURFACE TEMPERATURE          1:180     1:90      ...       1:12
 SUBSST   SST[X=165E:165W,L=5:7]          73:88      1:90      ...       5:7

yes? sh grid sst
    GRID GQH1
 name       axis              # pts   start                end
 COADSX    LONGITUDE          180mr   21E                  19E(379)
 COADSY    LATITUDE            90 r   89S                  89N
 normal    Z
 TIME      TIME                12mr   16-JAN 06:00         16-DEC 01:20
yes? sh grid subsst
    GRID GQH1
 name       axis              # pts   start                end
 COADSX    LONGITUDE          180mr   21E                  19E(379)
 COADSY    LATITUDE            90 r   89S                  89N
 normal    Z
 TIME      TIME                12mr   16-JAN 06:00         16-DEC 01:20

Comment by ansley.b.manke on 25 Mar 2011 23:36 UTC
When we open datasets for writing, we use a cdftype of NF_CLASSIC_MODEL, unless the user has asked for NetCDF-4 features.
The combination of NF_CLASSIC_MODEL and CLOBBER that I had been using stopped working a couple of months ago, and when I reported that to Unidata, I was by Ed Hartnett that I shouldn't specify a type of NF_CLASSIC_MODEL without also specifying NF_NETCDF4. He changed the NetCDF code to accommodate what I had been doing, but I had decided to also change my code to do what he suggested was more correct. This change appears to be what's causing the unexpected values of -3.689E+19 to be filled in for the entirely-missing steps.
I am reverting to the previous combination I had used. This writes a consistent missing-value flag to the file in the example at the start of this ticket.
The fix is in fmt/srt/cd_open_out.F
I will close this ticket - if there's more to discuss about writing a time series variable and another variable on a subset of the time axis, let's open a new ticket.


Update Gradle Maven packages

We have two Gradle packages, gradle-core and gradle-plugins, both on version 3.0.
gradle-plugins 3.0 isn't available on official sources anymore. It's a magic version that we host here: https://github.com/flyway/flywaydb.org/tree/gh-pages/repo/org/gradle
We should upgrade to the latest version of both of these, hosted on the official Gradle repo:
https://repo.gradle.org/gradle/libs-releases-local/org/gradle/

Hi, will you accept a PR?

@devkonarev Yes we'd be happy to receive a PR. Note we pushed this to V7 because from what we could see this update introduces many breaking changes.


Support for YugabyteDB with Flyway

Hi,
Not sure if filing an issue on GitHub is appropriate for this. Please suggest an alternative, if otherwise.
I'm from Yugabyte.
We want to qualify YugabyteDB for Flyway. And would like to know how we can proceed on that.
I’ve gone through this page and understand that implementing the Flyway APIs is one of the first steps.
Thanks!
Which version and edition of Flyway are you using?
7.9.0
If this is not the latest version, can you reproduce the issue with the latest one as well? (Many bugs are fixed in newer releases and upgrading will often resolve the issue)
NA
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
All
Which database are you using? (Type & version)
YugabyteDB <IP_ADDRESS>
Which operating system are you using?
NA
What did you do? (Please include the content causing the issue, any relevant configuration settings, the SQL statement(s) that failed (if any), and the command you ran)
NA
What did you expect to see?
NA
What did you see instead?
NA

@DoodleBobBuffPants  Thanks for updating the issue with labels and milestone.
Looking forward to hear from Flyway on the best possible way we can move forward towards adding this support.


Fix template samples

Description
Mixing bool and string force template engine to throw errro.
So provide both parts of if statement an boolean value.
Related issues
Addresses [#1660].
Testing
Manually
FHIR Team Checklist

[x] Update the title of the PR to be succinct and less than 50 characters
[x] Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
[x] Tag the PR with the type of update: Bug, Dependencies, Enhancement, or New-Feature
[x] Tag the PR with Azure API for FHIR if this will release to the managed service
Review squash-merge requirements

Semver Change (docs)
Skip (it's a change in samples)

The issue here is that we have two conflicting requirements for this parameter:

When Cosmos is the datastore the user shouldn't have to put anything in the field.
When SQL is the datastore there shouldn't be a default value so the user has to manually pick if they want automatic updates or not.

This was why I had initially tried to make it so the default value was false when using Cosmos, or not set if using SQL.
@rbans96, what is your thought?

Relevant PR: #1301

How about now?
Pass validation if it's cosmos, and complains about incorrect value if it's sql. (I wish I could copy error message, but for some reason azure localize error string for me, so I don't think it would be useful for English speaking people)

In reply to: 786959225 [](ancestors = 786959225)

From what I see it's either this, and I need to change yml file for pipelines (to change it from boolean to string) which is somewhat ugly from developer point of view, but I can't find any other way to have unset boolean value, or we can set default value to false for all cases.

In reply to: 786974696 [](ancestors = 786974696,786959225)


Bright Mountain Media: Add Floor Module and Prebid Server support

Is there a PBS PR that goes along with this?

Yes please #1855.


added a live region that announces the selected item

This is the one accessibility enhancement that works without any localization efforts.
I would love to also add the announcement that says to use the cursor keys and how many results there are but that would mean to add localization and this would add a huge maintenance overhead.

Hi Dirk,
Thanks so much for this! See inline comments.

Thanks for the comments. I will change "hiddena11y" to be a class but propose leave the live-region for now.


Support JSR-236 ManagedExecutorService

I am wondering about the status of QTZ-473. There seems to be a patch, but I don't think it ever got merged.

The JSR-236 spec (part of the Java EE 7) makes it into the application servers (see the list at http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html ) and becomes the standard to run asynchronous tasks in Java EE application server environments.
Therefore Quartz Scheduler should be able to make use of the JSR-236 ManagedExecutorService for all its threads - that means job threads as well as the main scheduler and MisfireHandler and ClusterManager ones.
https://jcp.org/en/jsr/detail?id=236

I tried to apply the patch on QTZ-473  It was missing a class called org.quartz.impl.ThreadExecutorSupport
Other than the missing file the patch did apply cleanly on the quartz-2.2.2 tag.
That tag corresponds to svn revision 2470 http://svn.terracotta.org/svn/quartz/tags/quartz-2.2.2/

@sammyhk Is that QTZ-473.patch (https://jira.terracotta.org/browse/QTZ-473) your patch? Could you please add the missing class org.quartz.impl.ThreadExecutorSupport into it?

@sammyhk Is that QTZ-473.patch (https://jira.terracotta.org/browse/QTZ-473) your patch? Could you please add the missing class org.quartz.impl.ThreadExecutorSupport into it?

So what's the current status here? Seems like we all need this feature.
Is it possible to configure Quartz to use the ManagedExecutorService and ManagedScheduledExecutorService?

QTZ-473 included a patch, which was however incomplete and as its very old I would be surprised if it was still compatible. However, this should be fairly easy to implement: just find the spot where the executor service is initialised, and prepend a check to see whether a managed executor service is available, and if so, use that instead.
Personally I was only using a couple of features from quartz, and have since replaced my @Scheduled methods with EJB @Schedule Timers, which also gave me clustering and persistent timers for free.

Do you have an example of how you did it? The Quartz scheduler persists the job on DB so even on server re-start it still works... Is your solution just in memory?

The annotation works very similar to the one provided by Quartz, see for example: https://github.com/wildfly/quickstart/blob/master/ejb-timer/src/main/java/org/jboss/as/quickstarts/ejbTimer/ScheduleExample.java
Whether or not it is persistent, depends on your EJB container implementation. For example WildFly allows you to attach a JDBC datasource to the EJB subsystem which is then used to implement persistent timers, that work in the cluster as well. See also: https://docs.jboss.org/author/display/WFLY/EJB3+Clustered+Database+Timers . I don’t remember from the top of my head whether default store is in-memory or file based and thus already persistent but simply not clustered, but this is probably configurable too.

Some time ago I created the following simple implementation that we've been successfully using since then.
It can be used as a simple replacement of the existing CommonJ WorkManagerThreadExecutor so you can use the same property org.quartz.threadExecutor.workManagerName to specify the JNDI name of the desired managed executor service (otherwise it falls back to the default java:comp/DefaultManagedExecutorService).
I'm not going to create a pull request for it, but if anyone in charge deems it suitable, feel free to add it to the Quartz project (with any additional adjustments to make it fitting if required).
Note that you can easily remove the SuppressFBWarnings annotation if you want to. We only use it to let it pass the Findbugs code analysis.
package org.quartz.javaee.concurrent;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor;

import javax.enterprise.concurrent.ManagedExecutors;
import javax.enterprise.concurrent.ManagedTask;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.quartz.spi.ThreadExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

/**
 * JSR-236 ManagedExecutorService implementation of hacked Quartz ThreadExecutor
 * class. This class schedules work on a ManagedExecutorService which is looked
 * up in JNDI. The advantage is that all the work performed is done on a managed
 * thread which is required by WebSphere, see here, here and here
 * for details.
 *

 * Sets the long-running hint to true to avoid the hung thread detection from
 * the application server, see here.
 *

 * Note: This implementation was created as a simple drop-in replacement of
 * org.quartz.commonj.WorkManagerThreadExecutor
 *

 * Inspired by:

 *
org.springframework.scheduling.concurrent.DefaultManagedTaskExecutor

 *
org.springframework.scheduling.concurrent.ConcurrentTaskExecutor

 *
org.springframework.core.task.support.TaskExecutorAdapter

 *

 *
 * @author hostalp
 */
public class ManagedThreadExecutor implements ThreadExecutor {

    private static final Logger logger = LoggerFactory.getLogger(ManagedThreadExecutor.class);

    public static final String DEFAULT_MANAGED_EXECUTOR_SERVICE_NAME = "java:comp/DefaultManagedExecutorService";

    private String executorName;

    private ManagedThreadExecutorAdapter managedExecutor;

    /**
     * Sets the JNDI name of the ManagedExecutorService to use.
     *
     * @param executorName the JNDI name to use to lookup the ManagedExecutorService
     */
    public void setWorkManagerName(String executorName) {
        this.executorName = executorName;
    }

    @Override
    public void initialize() {
        synchronized (this) {
            Object jndiObject = null;
            final List<String> jndiNames = Arrays.asList(executorName, DEFAULT_MANAGED_EXECUTOR_SERVICE_NAME);
            for (String jndiName : jndiNames) {
                if (jndiName != null) {
                    try {
                        jndiObject = new InitialContext().lookup(jndiName);
                    } catch (NamingException e) {
                        logger.debug("Naming exception for [{}] in managed thread executor: {}", jndiName, e.getMessage());
                    }
                    if (jndiObject != null) {
                        break;
                    }
                }
            }

            if (jndiObject != null) {
                if (jndiObject instanceof Executor) {
                    logger.info("Using [{}] in managed thread executor", jndiObject);
                    this.managedExecutor = getManagedExecutor((Executor) jndiObject);
                } else {
                    throw new IllegalStateException("JNDI resource [" + jndiObject + "] is not Executor.");
                }
            } else {
                throw new IllegalStateException("Could not locate Executor on following JNDI URLs: " + jndiNames);
            }
        }
    }

    @SuppressFBWarnings(value = "DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED", justification = "Thread is correctly passed here as Runnable")
    @Override
    public void execute(final Thread thread) {
        try {
            managedExecutor.execute(thread); // NOSONAR java:S2438 - thread is correctly passed here as Runnable, expected behaviour
        } catch (Exception e) {
            logger.error("Error attempting to schedule QuartzSchedulerThread", e);
        }
    }

    private static ManagedThreadExecutorAdapter getManagedExecutor(final Executor executor) {
        return new ManagedThreadExecutorAdapter(executor);
    }

    /**
     * Class that wraps all provided Runnables and Callables
     * with a JSR-236 ManagedTask, exposing a long-running hint and an identity
     * name based on the the thread name.
     */
    private static class ManagedThreadExecutorAdapter implements Executor {

        private final Executor concurrentExecutorDelegate;

        /**
         * All args constructor.
         *
         * @param executor the executor
         */
        ManagedThreadExecutorAdapter(final Executor executor) {
            this.concurrentExecutorDelegate = executor;
        }

        /**
         * Executes task.
         *
         * @param task the task to execute
         */
        public void execute(final Runnable task) {
            this.concurrentExecutorDelegate.execute(ManagedTaskBuilder.buildManagedTask(task));
        }
    }

    /**
     * Delegate that wraps a given Runnable/Callable  with a JSR-236 ManagedTask,
     * exposing a long-running hint and a identity name based on the thread name.
     */
    protected static final class ManagedTaskBuilder {

        /**
         * All args constructor.
         */
        private ManagedTaskBuilder() {
            // avoid instantiate
        }

        /**
         * Builds managed task.
         *
         * @param task the task to build
         * @return built managed task
         */
        public static Runnable buildManagedTask(final Runnable task) {
            final Map<String, String> properties = new HashMap<>(4);
            if (task instanceof Thread) {
                final Thread quartzThread = (Thread) task;
                properties.put(ManagedTask.LONGRUNNING_HINT, "true");
                properties.put(ManagedTask.IDENTITY_NAME, quartzThread.getName());
            }
            return ManagedExecutors.managedTask(task, properties, null);
        }
    }

}


Deprecate turbo

Turbo - is a library that transforms the site into SPA.
It also requires js code that will cleanup the modified DOM structure, and remove event listeners. Otherwise, we will get memory leaks, js errors about multiple initialization, etc. Unfortunately, the majority of Magento modules are written for traditional page reloads, when the browser will destroy everything on each navigation.
Take a look at some of our fixes to third-party modules just for Turbo compatibility:

Amasty_Xsearch
Ulmod_Bundle
Webkul_OrderByWhatsappBot

Also, we disable Turbo in some integrations:

AlgoliaSearch
StripePayments

Because of that, I think we should disable turbolinks in the next updates, and, eventually, remove the library from the code.

https://github.com/breezefront/theme-frontend-breeze-blank/commit/a85d97dc76acad9e7ec91583e1bee5757eda966a


Enable post search to other supported post types

This enables fetching post types other than just note

Thanks!


Switch expression LaTeX to use the FPBench server for display (especially in the table)

The mathjs .toTex() function is used in several places (https://github.com/herbie-fp/odyssey/blob/main/src/herbie/ExpressionTable.tsx#L313C84-L313C92, https://github.com/herbie-fp/odyssey/blob/cc777615218c2900668c71421c8348d11fa6db3a/src/herbie/ExpressionTable.tsx#L172) to get the LaTeX for an expression, but instead a call to the FPBench compiler on the server should be used.

Tentatively assigning to Jaela

See ExpressionExport.tsx

I have started this & plan to finish it later tonight.

Do we want expression export tex to also have the exp(x) = part removed?
t

Sure, good catch!

Sounds good! I just pushed the fix.


BUG: include_usage for streaming doesn't work due to an SDK client bug

Service
Azure OpenAI
Describe the bug
This feature seems to be switched on to true by default in the OpenAI client. However, the StreamingChatCompletionUpdate.Usage property is always null.
Before CompleteChatStreamingAsync(messages, options) is called when I inspect the options object, Stream=null and StreamOptions.IncludeUsage=true. However, immediately after CompleteChatStreamingAsync(messages, options) is called when I inspect the options object, Stream=true and SteamOptions is null.
Inspecting the sdk source code, this appears to be a bug in how the internal constructor code is implemented.
Azure client version: 2.1.0 Beta 1
OpenAI Client version: implicit (>= 2.1.0-beta.1)
OpenAI Inference API version: AzureOpenAIClientOptions.ServiceVersion.V2024_08_01_Preview
OpenAI API provider : Azure OpenAI
Model name: GPT-4o 08-06
Just before calling CompleteChatStreamingAsync:

Just after calling CompleteChatStreamingAsync:

Steps to reproduce
Use the v2.1.* dotnet client to make a streaming call this should return usage. But it doesn't.
Making a Postman request, with the correct options for include usage, to the same deployment does return token usage counts.
Code snippets
No response
OS
macOS
.NET version
netstandard 2.0
Library version
2.1.0-beta1

Thank you for reaching out, @janaka ! stream_options is not "officially" supported in Azure OpenAI until version 2024_09_01-preview of the service (it's confusing because it was previously enabled partially in some regions but not all of them). We're working on a release to add support for this version soon.

The problem is not with the inference API from what I can tell though. It's a dotnet library issue I'm seeing. The request going out does not have include_usage = true

@joseharriaga assuming by 2024_09_01-preview  you are referring to the inference rest API version, I've just tried switching to that (using reflection given the enum on has 08-01-preview and 10-01-preview). There request payload still doesn't have include_usage when I inspect the http request going out. Please let me know if I'm mis understanting what you were referring to by 2024_09_01-preview

@janaka Your understanding is correct! Because stream_options was in this limbo where it only worked unofficially in a few regions until now, we opted for removing include_usage: true inside the library because it would cause chat completions to crash in any regions where it wasn't available. Now that it is "officially" supported everywhere with version 2024-09-01-preview, we are changing the library to allow include_usage: true to go through as expected.

@joseharriaga that awesome! will that be in 2.1.0-beta.2 ? will it be soon like in the next couple weeks, this quarter, or next quarter, or beyond next quarter?

@janaka Yes, we're aiming to include it in 2.1.0-beta.2, which we expect to release between this week and next week.

@janaka This is now supported in version 2.1.0-beta.2, which we released yesterday.


Add value- and char-array support to co_reduce functions.

Add support for recude-functions with value parameters.
Add support for char-arrays as arguments to reduce-functions.
Rename co_reduce_1 to internal_co_reduce to get a better naming.
Create mpi-datatype to transport the char-array length.
Improved cleanup of co_broadcast. Fixed co_reduce_string testcase.

Fixes #172.

@zbeekman: On your comments on the previous pull request:

I left the comment in the CMakeLists.txt intentionally, because not only the commented phrase should be deleted, but also the testcases should be moved to the regular unit test directory once the patch is approved.
Its of course possible to use my editor to use space instead of tabs, but I don't see why :-), because there is no common style in the code and jumping over a tab while coding is far more easier than over 8 spaces.
I had trouble to amend the commit to fix the copyrightCLA and resolved this by producing a diff, throwing the whole commits away, applying the patch to a fresh master and commiting that. So no, I don't know how to amend a commit. And I don't care after working for more than 12 hours today.
Fixing style sometimes happens just because I had some debugging in there. So when deleting the debuging again a style change may occur.

You use my limited time for fixing bugs and adding features or for fixing style. Your choice! :-)

Codecov Report

Merging #332 into master will increase coverage by 0.48%.

@@            Coverage Diff             @@
##           master     #332      +/-   ##
==========================================
+ Coverage   45.73%   46.22%   +0.48%
==========================================
  Files           3        3
  Lines        1019     1045      +26
  Branches      193      201       +8
==========================================
+ Hits          466      483      +17
- Misses        476      483       +7
- Partials       77       79       +2

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 f652a7b...856e27e. Read the comment docs.

@zbeekman: On your comments on the previous pull request:
I left the comment in the CMakeLists.txt intentionally, because not only the commented phrase should be deleted, but also the test cases should be moved to the regular unit test directory once the patch is approved.

OK, you could probably have included it with the patch, but that's fine

Its of course possible to use my editor to use space instead of tabs, but I don't see why :-), because there is no common style in the code and jumping over a tab while coding is far more easier than over 8 spaces.

Obviously you don't use Emacs ;-p

I had trouble to amend the commit to fix the copyrightCLA and resolved this by producing a diff, throwing the whole commits away, applying the patch to a fresh master and commiting that. So no, I don't know how to amend a commit. And I don't care after working for more than 12 hours today.

That's perfectly acceptable... your approach is fine

Fixing style sometimes happens just because I had some debugging in there. So when deleting the debuging again a style change may occur.
You use my limited time for fixing bugs and adding features or for fixing style. Your choice! :-)

well I'm happy to clean up after you, at least until I get a better handle on the gfortran internals etc....

LGTM


use std::optionalstd::string over std::string*

@vweevers this won't work as prebuildify-cross will fail for std::optional.


MLDB-1631 join transpose where rowname

Fixes two things:

Segfault caused by binary operations not filling in the expression that they came from
Refactor of regex builtins to allow a non-constant regex string

+1 with one comment.


Disable string conversion warning

We like to keep some values in our yml as integers and booleans (IDE highlighting etc). We fully understand that ENVs are intrinsically strings, and understand they will be converted.
So, for us, seeing the WARNING: Use strings for Figaro configuration on startup is a bit noisy.
If we were to make a PR for that not happen, how would you like us to do it? By passing in another ENV? Making it the first ENV in the yml file? Something else?

I think I'd do this by adding another value to application.yml and prepending the configuration with FIGARO_ or similar. Like… FIGARO_SILENCE_STRING_WARNINGS. No need to make it the first value. We can just look for that value first. Feel free to work on this and open a PR if you're still interested. Thank you!


feat(event): event.body with readable stream

🔗 Linked issue
#73, Needed by #454
❓ Type of change

[ ] 📖 Documentation (updates to the documentation, readme, or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[x] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
This PR adds an experimental getter to the event object in order to access body via a lazy readable stream
📝 Checklist

[ ] I have linked an issue or discussion.
[ ] I have updated the documentation accordingly.

(this might be refined with #454)


WIP: pfe-collapsible

@kylebuch8,
I tested the demo with VoiceOver in Chrome; NVDA in Firefox and Edge; and JAWS in Firefox and Edge. Everything works as expected.
Even though we expected the "Standalone Panel" with the simple "Toggle panel" button to not work well on screen readers (given the lack of informative ARIA attributes, like aria-expanded and aria-controls), it worked as expected: toggles fine, but provides nothing to screen readers. I wanted to note this, so that moving forward, we encourage others to properly markup such "custom buttons".


refactor(Validation): rename FromlyMessage to FormlyValidationMessage

I was wondering if FormlyValidationMessage should be a in components folder or templates folder. I think it should be in templates because other templates might not need a div, they might want to use a span with some classes or something.

let's keep it in components folder, the extra div is removed now
template: `{{errorMessage}}`,

Also think about this, some projects might want to show all the messages to the user, right now our component only shows one. This is definitely a part of template folder since even angular-formly had it in templates.

make sense now :+1: , done!


Scale duiring the evaluate

Hi,
I have run the code
python dualocnn.py --config configs/shapenet_eval.yaml SOLVER.ckpt logs/shapenet/shapenet/checkpoints/00300.model.pth

and get the reconstructed meshes. I find that the mesh is in [-0.4,0.4]^2. Did you scale them into [-0.5,0.5]^2 during the evaluation (Table 1)?
And can we input the point cloud without noise?

Besides, I wonder what is the threshold of F-Score in Table 1. Is it 0.01 or 0.1?
Looking for your reply !

I find that the mesh is in [-0.4,0.4]^2. Did you scale them into [-0.5,0.5]^2 during the evaluation (Table 1)?

No, please use the downloaded data in [-0.4, 04] for evaluation and the results of Table 1 can be reproduced directly. And in Table 1, all methods are trained and evaluated with the dataset we provided. It can be seen that the Chamfer distances of ConvONet and DeepMLS are smaller than the results in their paper, which is partially caused by the scale factor of [-0.4, 0.4].

And can we input the point cloud without noise?

If the point cloud contains no noise, it is better to retrain the network without noise. Anyway, you can always forward the network trained with noisy point clouds, but the performance might decrease.

Besides, I wonder what is the threshold of F-Score in Table 1. Is it 0.01 or 0.1?

In the csv file produced by the evaluation code we provided,  you can calculate the average of f-score (mesh), which is the  F-Score reported in Table 1.

Thanks for your reply !


Add ViewPanner to 2D editor

Summary of changes:

Added ViewPanner to 2D editor

as a result, in default control scheme Ctrl+Wheel will scroll the view instead of zooming. But it duplicated the no-Ctrl wheel, so whatevs

Added ViewPanner to TextureRegionEditor (I missed it in the last PR; some more editors could still be changed probably)

ViewPanner:

added customizable panning shortcut, instead of hard-coded Space
changed "disable RMB" to "enable RMB". RMB panning is now disabled by default as only 1 out of 8 editors uses it lol
zoom callback got a new p_alt parameter, as some editors used "alternate zoom", so I simplified it
simplified the callback helper method
added "simple panning" support, i.e. spacebar panning without LMB
added a setup() method that setups multiple common properties from editor
I adjusted various editors due to these changes

Editor Settings:

moved all panning-related settings to a dedicated "Panning" category
editors/2d/warped_mouse_panning changed to editors/panning/warped_mouse_panning

now used by all GraphEdit-based editors

editors/2d/simple_panning changed to editors/panning/simple_panning

now used by every editor with ViewPanner

editors/2d/pan_speed changed to interface/editors/2d_editor_pan_speed
editors/2d/scroll_to_pan changed to interface/editors/2d_editor_panning_scheme
canvas_item_editor/pan_view shortcut is now supported by every editor with ViewPanner (maybe it could be moved?)

GraphEdit:

restored mouse warping (forgot to add it in the first PR)
added two unexposed methods: get_panner() and set_warped_panning(), used by editor

EDIT:
After most recent changes, it fixes #34278

Have you changed the Sprite converter menu to use this yet? If not, you should definitely add that to your to-do list because it doesn't support zooming in yet.

Ok, I managed to fix the pan key issue. I also fixed a few 2D editor bugs related to panning.

This thing (happens with simple panning):

FIXED
Selection box not disappearing when you hold Space (regression introduced back in #27770) FIXED
#34278 FIXED
Some stuff I probably forgot. I should've written it down .-.

Now every editor with ViewPanner can grab click focus to make shortcut working. I connected their focus_exited signal to the newly added release_pan_key() method. Unfortunately it doesn't work in the animation editor, but it wasn't available before, so whateves.
It would be nice if someone could test if panning works as expected (with different settings) in these editors:

main 2D editor
TextureRegion editor (e.g. in Sprite)
Polygon2D UV editor
TileSet tile editor
AnimationTrack editor (in Animation panel)
AnimationBezier editor (when you have bezier track)
Any GraphNode-based editor (VisualScript etc.)
If there are no visible regressions (I didn't spot any), this should be ready to merge.

Have you changed the Sprite converter menu to use this yet?

I looked into it and it has no gui_input method, it just uses simple ScrollContainer, so it needs a bit more work. We can gather all editors that need panning improvements and I could do a follow-up to #56756

Thanks!


[$250] Share code- QR code expands to full size after opening for WS rooms, tasks and threads

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.2-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4675372
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Open the app and log in
Navigate to any task, thread or a workspace room
Tap the header and select Share

Expected Result:
The QR code is displayed fully
Actual Result:
The QR code is displayed small briefly and expands to the full size
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/91c91457-a976-4e4d-a368-05544fcacbb0

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01e0a4dbc404a8ab34
Upwork Job ID:<PHONE_NUMBER>249394574
Last Price Increase: 2024-07-03

Issue OwnerCurrent Issue Owner: @alitoshmatov

@adelekennedy I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

We think this issue might be related to the #vip-vsb

Proposal
Please re-state the problem that we are trying to solve in this issue.
QRCode change size after layout change
What is the root cause of that problem?
Default QR code size is 100px, after layout change the QR code recalculate size at this line
https://github.com/Expensify/App/blob/224f09edbb511bd179d79c55f646d5522c1f955d/src/components/QRShare/index.tsx#L32
so the UI will update size
What changes do you think we should make in order to solve the problem?
We have to set the default initial height for qrcode size at this line
https://github.com/Expensify/App/blob/224f09edbb511bd179d79c55f646d5522c1f955d/src/components/QRShare/index.tsx#L19
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.

The QR code is initially displayed briefly in a small size before expanding to full size.

What is the root cause of that problem?

The initial value of qrCodeSize is undefined, so it defaults to 120.

It is displayed at this size initially, and then adjusts based on onLayout changes.
https://github.com/Expensify/App/blob/0c20881a308244867119efa6196481b65bb81274/src/components/QRShare/index.tsx#L30-L33

What changes do you think we should make in order to solve the problem?

we can use a Loader While onLayout is Calculating the Size.

This will ensure that the QR code is displayed at the correct size from the beginning and avoids any brief display of an incorrectly sized QR code or resizing issues in any device sizes.
     {qrCodeSize ? (
          <QRCode
              getRef={(svg) => (svgRef.current = svg)}
              url={url}
              logo={logo}
              size={qrCodeSize}
              logoRatio={logoRatio}
              logoMarginRatio={logoMarginRatio}
          />
      ) : (
          <ActivityIndicator
              color={theme.spinner}
              size="large"
          />
      )}

What alternative solutions did you explore? (Optional)

Thank you for your proposal @huult. This issue is also happening on ios app. So I don't think writing platform specific code is a good idea

Thank you for your proposal @Sparth19 , QR codes are readily available data showing loader just for fixing its layout seems a workaround

@alitoshmatov My proposal is not focused on Android only, so I wrote a note below the code: ! we have to separate to specific platform and calculate based on that. My proposal covers both Android and iOS by applying index.native.ts because mobile uses a fixed size, while the web uses the response size

Proposal updated

Thank you for your proposal @huult. This issue is also happening on ios app. So I don't think writing platform specific code is a good idea

Hi @alitoshmatov , I have updated some proposals and explained why we used them. Can you check it again? Thank you.
For mobile devices, the screen width is fixed. We can get the device width using Dimensions.get('screen').width, and then calculate the QR code size based on this container's padding.
For other devices, we use a fixed sidebar width of 375px, and we can calculate the initial QR code size based on this width
Here is test branch

Most of the time onLayout function working in an instant, I guess it is an issue only in slower devices.
@truph01 We cannot use Dimensions.get directly, there is a useWindowDimensions hook for that. For your solution to be viable, we should prove that that window width is always equal to event.nativeEvent.layout.width to prevent size changes

Proposal Updated

@truph01 We cannot use Dimensions.get directly, there is a useWindowDimensions hook for that. For your solution to be viable, we should prove that that window width is always equal to event.nativeEvent.layout.width to prevent size changes

@alitoshmatov I used the useWindowDimensions hook instead of directly using Dimensions.get to prevent size changes. Thank you.
Here is test branch

@alitoshmatov I think this proposal duplicates my proposal. It still uses the initial container width to calculate the QR size after removing padding.

bump @alitoshmatov

@truph01 Although @dominictb 's proposal looks similar to yours(even maybe inspired by yours), I do think they made a much needed improvement here. Calculating and passing qr code width in parent container and using isSmallScreenWidth rather then platform specific code is substantial difference in my opinion.

@alitoshmatov Sorry, any mistake here? I see you tagged me in this issue.

Sorry for inconvenience, @truph01 Right, I didn't mean to. Yes you can ignore this

I think we can go with @dominictb 's proposal which is similar to or even derived from  @huult  's proposal.
I am not sure about my judgement here, if we look on each proposal separately, @dominictb 's proposal would definitely be the one. But considering @huult was working on their proposal and giving much needed direction I am in doubt here. Would love to hear your take on this one
C+ reviewed 🎀 👀 🎀

@alitoshmatov @danieldoglas My proposal will be provided as soon as possible and will still cover the issue. RegardingisSmallScreenWidth orisMobile, these are condition checks to detect the container if they want to cover the screen size of other devices, which can be updated during code review or while creating a pull request. As I checked the contributor rules and found item 6 of proposal for the job then other proposal should diferent MUST BE DIFFERENT FROM EXISTING PROPOSALS. The difference should be important, meaningful or considerable. If other proposal not used inital  container with after remove padding to resolve this issue then it's ok.

OK, I think we'll go with @huult's proposal. I agree that there are some differences between them, but I think @dominictb's proposal derived from the @huult's and we can address the smaller changes in the PR.

Assigning @mountiny to see the end of this while I'm OOO

@dominictb I understand your concern, and I am sorry that this time, it did not work out. I think both of you and your solutions will work, and they are similar, so @huult should go ahead, as their proposal came in first.
@huult what is your ETA for the PR?

I will create the pull requests soon. The ETA is the next day. Thank you.

here is my PR

Hi @mountiny , @danieldoglas , My PR was merged to production a week ago, but I noticed the Mevin bot isn't working as expected compared to other tickets I've worked on. Can I ask if this ticket is currently able to process a payment?
Thank you!

ty @danieldoglas  let me handle payment now:
Payouts due:

[ ] Contributor: $250 @huult
[ ] Contributor+: $250 @alitoshmatov

Upwork job is here.

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] The PR that introduced the bug has been identified. Link to the PR:
[ ] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] A regression test has been added or updated so that the same bug will not reach production again. Link to the GH issue for creating the test here:

@alitoshmatov checklist above when you get a chance!

The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/32690
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/32690/files#r1712561692
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: No need
Determine if we should create a regression test for this bug.

Regression Test Proposal

Open the app and log in.
Navigate to any task, thread, or workspace room.
Tap the header to open the details and select "Share".
Verify that the QR code is displayed in full size and not changing its size while page is opening.

Do we agree 👍 or 👎


Shortest possible Fortran program does not parse

end

Thanks @klausler ! I think this is due to https://github.com/lfortran/lfortran/issues/1076. Once we fix it, it should start working.

This is now fixed both in the main branch, as well as online. If there are more bugs, please let us know!


Fail to run image with debug mode enabled

What happened?
When I'm enabling debug mode via BPL_DEBUG_ENABLED or BP_DEBUG_ENABLED the container fails to start with error message; 'ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.'
If I look at the java command line I see indeed two identical parameters in the form of;
'-agentlib:jdwp=transport=dt_socket,server=y,address=*:8083,suspend=n'

What were you attempting to do?
Running the container with debug enabled so I can connect to the jvm from IntelliJ

What did you expect to happen?
Only 1 instance of the agentlib parameter in the java command line

What was the actual behavior? Please provide log output, if possible.
As described above

Build Configuration
pack build  --builder paketobuildpacks/builder:base --path  --env BP_DEBUG_ENABLED=true

What platform (pack, kpack, tekton buildpacks plugin, etc.) are you
using? Please include a version.
pack version; 0.18.1+git-b5c1a96.build-2373

What buildpacks are you using? Please include versions.
base: Pulling from paketobuildpacks/builder
Digest: sha256:cfcb2d751b23f17b64ec715406609b190c400b046367955867e440487a669016
Status: Image is up to date for paketobuildpacks/builder:base
base-cnb: Pulling from paketobuildpacks/run
Digest: sha256:e763a7b4c29479eb5b9a25d976f7152fd881c693c0530f335a6b20bc49c3034e
Status: Image is up to date for paketobuildpacks/run:base-cnb
===> DETECTING
6 of 18 buildpacks participating
paketo-buildpacks/ca-certificates   2.4.1
paketo-buildpacks/bellsoft-liberica 8.7.0
paketo-buildpacks/executable-jar    5.3.0
paketo-buildpacks/dist-zip          4.2.1
paketo-buildpacks/spring-boot       4.6.0
paketo-buildpacks/debug             3.2.1
===> ANALYZING
Restoring metadata for "paketo-buildpacks/ca-certificates:helper" from app image
Restoring metadata for "paketo-buildpacks/bellsoft-liberica:helper" from app image
Restoring metadata for "paketo-buildpacks/bellsoft-liberica:java-security-properties" from app image
Restoring metadata for "paketo-buildpacks/bellsoft-liberica:jre" from app image
Restoring metadata for "paketo-buildpacks/spring-boot:helper" from app image
Restoring metadata for "paketo-buildpacks/spring-boot:spring-cloud-bindings" from app image
Restoring metadata for "paketo-buildpacks/spring-boot:web-application-type" from app image
===> RESTORING
===> BUILDING

Paketo CA Certificates Buildpack 2.4.1
https://github.com/paketo-buildpacks/ca-certificates
Launch Helper: Reusing cached layer
Paketo BellSoft Liberica Buildpack 8.7.0
https://github.com/paketo-buildpacks/bellsoft-liberica
Build Configuration:
$BP_JVM_TYPE                 JRE             the JVM type - JDK or JRE
$BP_JVM_VERSION              11              the Java version
Launch Configuration:
$BPL_DEBUG_ENABLED           false           enables Java remote debugging support
$BPL_DEBUG_PORT              8000            configure the remote debugging port
$BPL_DEBUG_SUSPEND           false           configure whether to suspend execution until a debugger has attached
$BPL_HEAP_DUMP_PATH                          write heap dumps on error to this path
$BPL_JAVA_NMT_ENABLED        true            enables Java Native Memory Tracking (NMT)
$BPL_JAVA_NMT_LEVEL          summary         configure level of NMT, summary or detail
$BPL_JMX_ENABLED             false           enables Java Management Extensions (JMX)
$BPL_JMX_PORT                5000            configure the JMX port
$BPL_JVM_HEAD_ROOM           0               the headroom in memory calculation
$BPL_JVM_LOADED_CLASS_COUNT  35% of classes  the number of loaded classes in memory calculation
$BPL_JVM_THREAD_COUNT        250             the number of threads in memory calculation
$JAVA_TOOL_OPTIONS                           the JVM launch flags
BellSoft Liberica JRE 11.0.12: Contributing to layer
Downloading from https://github.com/bell-sw/Liberica/releases/download/11.0.12+7/bellsoft-jre11.0.12+7-linux-amd64.tar.gz
Verifying checksum
Expanding to /layers/paketo-buildpacks_bellsoft-liberica/jre
Adding 128 container CA certificates to JVM truststore
Writing env.launch/BPI_APPLICATION_PATH.default
Writing env.launch/BPI_JVM_CACERTS.default
Writing env.launch/BPI_JVM_CLASS_COUNT.default
Writing env.launch/BPI_JVM_SECURITY_PROVIDERS.default
Writing env.launch/JAVA_HOME.default
Writing env.launch/JAVA_TOOL_OPTIONS.append
Writing env.launch/JAVA_TOOL_OPTIONS.delim
Writing env.launch/MALLOC_ARENA_MAX.default
Launch Helper: Contributing to layer
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/active-processor-count
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/java-opts
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/jvm-heap
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/link-local-dns
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/memory-calculator
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/openssl-certificate-loader
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/security-providers-configurer
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/jmx
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/nmt
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/security-providers-classpath-9
Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/debug-9
Java Security Properties: Contributing to layer
Writing env.launch/JAVA_SECURITY_PROPERTIES.default
Writing env.launch/JAVA_TOOL_OPTIONS.append
Writing env.launch/JAVA_TOOL_OPTIONS.delim
Paketo Executable JAR Buildpack 5.3.0
https://github.com/paketo-buildpacks/executable-jar
Class Path: Contributing to layer
Writing env/CLASSPATH.delim
Writing env/CLASSPATH.prepend
Process types:
executable-jar: java org.springframework.boot.loader.PropertiesLauncher (direct)
task:           java org.springframework.boot.loader.PropertiesLauncher (direct)
web:            java org.springframework.boot.loader.PropertiesLauncher (direct)
Paketo Spring Boot Buildpack 4.6.0
https://github.com/paketo-buildpacks/spring-boot
Launch Helper: Reusing cached layer
Spring Cloud Bindings 1.8.0: Reusing cached layer
Web Application Type: Contributing to layer
Servlet web application detected
Writing env.launch/BPL_JVM_THREAD_COUNT.default
Image labels:
org.springframework.boot.version
Paketo Debug Buildpack 3.2.1
https://github.com/paketo-buildpacks/debug
Build Configuration:
$BP_DEBUG_ENABLED   true  whether to contribute debug support
Launch Configuration:
$BPL_DEBUG_ENABLED        whether to enable debug support
$BPL_DEBUG_PORT     8080  what port the debug agent will listen on
$BPL_DEBUG_SUSPEND  n     whether the JVM will suspend execution until a debugger has attached
Launch Helper: Contributing to layer
Creating /layers/paketo-buildpacks_debug/helper/exec.d/debug
===> EXPORTING

Please see https://github.com/paketo-buildpacks/debug/issues/64.


fix: Warning that nft was used for claim

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[x] Bugfix

Needs QA check

@kodadot/qa-guild please review

Context

[x] Closes #9424
[ ] Requires deployment <snek/rubick/worker>

Did your issue had any of the "$" label on it?

[x] My DOT address: Payout

Screenshot 📸

[x] My fix has changed UI

Copilot Summary
copilot:summary
copilot:poem

works for me

thanks!
pay 20 usd

😍 Perfect, I’ve sent the payout
💵 $20 @ 7.92 USD/DOT ~ 2.525 $DOT
🧗 16SjUbGKSdjCdWTy3NNT3JxbRVGGqD4mwkHpc6BD9U2Rp29Z
🔗 0x7b5c6cbfde87d3f853432b7b7a826d96f64df90bee666d0d02d98a374283c995
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Exploration: Aligning HAXcms and ELMSLN release schedules / branches

HAXcms dictates the front end asset build schedule for ELMS:LN as of 0.11.0. We're on version 0.9.0 of HAXcms. HAXcms technically is inside of elmsln's codebase with 0.11.0 but not activated until 0.12.0. We should align these versions to avoid future confusion as to the capabilities of each.
While this would then require there to be code coordination between the two for backend things, it would help further emphasize the nature of the front-end code unification. We could possibly find a way of pegging those versions to the npm publishing of said assets but that might be down the road a bit as versions in our monorepo are somewhat meaningless snapshots in time for others (as everything has stabilized there).
If we did decide to do this, we should bump haxcms up to 0.11.x (skip 10, move all 0.10.x issues to 0.12.x) and then when ELMSLN 0.11.0 releases, publish a 0.11.0 of haxcms to match. @heyMP thoughts on this as you work across both?

I don't immediately see a downside to this.  I would be fine with that.

This would make sense for us too so no objections over here

Ok. I'll sit on this a bit but when 0.11.0 of elmsln comes out then maybe I'll bump haxcms to 0.11.0 just to attempt to keep them in sync and we'll see how practical it really is. As we get less and less Drupal and more and more headless apps / haxcms elements running as an option in courses then we'll see how reasonable it is

this happened starting with 0.11.x


[HOSTING-572][JENKINS-24278] Add inodes-monitor plugin

Add permission file for https://github.com/jenkinsci/inodes-monitor-plugin after HOSTING-572 got processed.
Description

Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[x] Add link to resolved HOSTING issue in description above

For a new permissions file only

[x] Make sure the file is created in permissions/ directory
[x] artifactId (pom.xml) is used for name (permissions YAML file).
[x] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[x] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] All newly added users have logged in to Artifactory at least once

Thanks Daniel.


Needs a converter for promises?

This code fails to compile:
void TestPromise(mate::Arguments* args) {
  v8::Isolate* isolate = args->isolate();
  auto resolver = v8::Promise::Resolver::New(isolate);
  args->Return(resolver->GetPromise());
  resolver->Resolve(v8::String::NewFromUtf8(isolate, "value"));
}

but this works as expected:
void TestPromise(mate::Arguments* args) {
  v8::Isolate* isolate = args->isolate();
  auto resolver = v8::Promise::Resolver::New(isolate);
  v8::Local<v8::Object> promise = resolver->GetPromise();
  args->Return(promise);
  resolver->Resolve(v8::String::NewFromUtf8(isolate, "value"));
}

I believe the issue is in toV8 method call not recognizing Promise, I'll attach the full message soon.


Fix code scanning alert - Bad HTML filtering regexp

Tracking issue for:

[ ] https://github.com/vdbrooks/eventbridge-emailer/security/code-scanning/1

Removed the offending init.py file, which came from a source outside the original code base.