gateway-init stopped working completely (dhclient related?)

Details
So, this is kind of an odd-one out.
I actually didn't change anything regarding the pod-gateway, besides the regular ubuntu package updates on the OS itself.
A week or so ago, my pods in the routed namespace suddenly started crashing, due to them losing network connectivity.
I can't really get a clear reason about why this is happening, but this is what I've collected so far:
Upon pod init, the gateway-init container doesn't complete anymore, the logs are always the same:
Found 2 pods, using pod/ak-outpost-vpn-56c9746969-k6v24
+ cat /default_config/settings.sh
#!/bin/bash

# hostname of the gateway - it must accept vxlan and DHCP traffic
# clients get it as env variable
GATEWAY_NAME="$gateway"
# K8S DNS IP address
# clients get it as env variable
K8S_DNS_IPS="$K8S_DNS_ips"
# Blank  sepated IPs not sent to the POD gateway but to the default K8S
# This is needed, for example, in case your CNI does
# not add a non-default rule for the K8S addresses (Flannel does)
NOT_ROUTED_TO_GATEWAY_CIDRS=""

# Vxlan ID to use
VXLAN_ID="42"
# VXLAN need an /24 IP range not conflicting with K8S and local IP ranges
VXLAN_IP_NETWORK="172.16.0"
# Keep a range of IPs for static assignment in nat.conf
VXLAN_GATEWAY_FIRST_DYNAMIC_IP=20

# If using a VPN, interface name created by it
VPN_INTERFACE=tun0
# Prevent non VPN traffic to leave the gateway
VPN_BLOCK_OTHER_TRAFFIC=true
# If VPN_BLOCK_OTHER_TRAFFIC is true, allow VPN traffic over this port
VPN_TRAFFIC_PORT=443
# Traffic to these IPs will be send through the K8S gateway
VPN_LOCAL_CIDRS="<IP_ADDRESS>/8 <IP_ADDRESS>/16"

# DNS queries to these domains will be resolved by K8S DNS instead of
# the default (typcally the VPN client changes it)
DNS_LOCAL_CIDRS="local"

# dnsmasq monitors directories. /etc/resolv.conf in a container is in another
# file system so it does not work. To circumvent this a copy is made using
# inotifyd
RESOLV_CONF_COPY=/etc/resolv_copy.conf

# ICMP heartbeats are used to ensure the pod-gateway is connectable from the clients.
# The following value can be used to to provide more stability in an unreliable network connection.
CONNECTION_RETRY_COUNT=1

# If you use nftables for iptables you need to set this to yes
IPTABLES_NFT=no
+ . /default_config/settings.sh
++ GATEWAY_NAME=pod-gateway.default.svc.cluster.local
++ K8S_DNS_IPS=<IP_ADDRESS>
++ NOT_ROUTED_TO_GATEWAY_CIDRS=
++ VXLAN_ID=42
++ VXLAN_IP_NETWORK=172.16.0
++ VXLAN_GATEWAY_FIRST_DYNAMIC_IP=20
++ VPN_INTERFACE=tun0
++ VPN_BLOCK_OTHER_TRAFFIC=true
++ VPN_TRAFFIC_PORT=443
++ VPN_LOCAL_CIDRS='<IP_ADDRESS>/8 <IP_ADDRESS>/16'
++ DNS_LOCAL_CIDRS=local
++ RESOLV_CONF_COPY=/etc/resolv_copy.conf
++ CONNECTION_RETRY_COUNT=1
++ IPTABLES_NFT=no
+ cat /config/settings.sh
#!/bin/sh
# Generated by pod-gateway
DNS_LOCAL_CIDRS="local cluster.local"
NOT_ROUTED_TO_GATEWAY_CIDRS="<IP_ADDRESS>/16 <IP_ADDRESS>/16 <redacted> <redacted>"
VPN_BLOCK_OTHER_TRAFFIC="false"
VPN_INTERFACE="wg0"
VPN_LOCAL_CIDRS="<IP_ADDRESS>/16 <IP_ADDRESS>/16 <redacted> <redacted>"
VPN_TRAFFIC_PORT="51820"
VXLAN_GATEWAY_FIRST_DYNAMIC_IP="20"
VXLAN_ID="42"
VXLAN_IP_NETWORK="172.16.0"
+ . /config/settings.sh
++ DNS_LOCAL_CIDRS='local cluster.local'
++ NOT_ROUTED_TO_GATEWAY_CIDRS='<IP_ADDRESS>/16 <IP_ADDRESS>/16 <redacted>/32 <redacted>/32'
++ VPN_BLOCK_OTHER_TRAFFIC=false
++ VPN_INTERFACE=wg0
++ VPN_LOCAL_CIDRS='<IP_ADDRESS>/16 <IP_ADDRESS>/16 <redacted>/32 <redacted>/32'
++ VPN_TRAFFIC_PORT=51820
++ VXLAN_GATEWAY_FIRST_DYNAMIC_IP=20
++ VXLAN_ID=42
++ VXLAN_IP_NETWORK=172.16.0
+ ip addr
+ grep -q vxlan0
+ ip link del vxlan0
Deleting existing default GWs
+ echo 'Deleting existing default GWs'
+ ip route del 0/0
RTNETLINK answers: No such process
+ /bin/true
+ ping -c 1 -W 1000 <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
ping: sendto: Network unreachable
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
152: eth0@if153: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 5a:ee:ec:5c:35:a6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd42::b3a2/128 scope global nodad
       valid_lft forever preferred_lft forever
    inet6 fe80::58ee:ecff:fe5c:35a6/64 scope link
       valid_lft forever preferred_lft forever
+ ip route
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<redacted>5 via <IP_ADDRESS> dev eth0
<redacted> via <IP_ADDRESS> dev eth0
++ cut -d ' ' -f 1
+ K8S_DNS_IP=<IP_ADDRESS>
++ dig +short pod-gateway.default.svc.cluster.local @<IP_ADDRESS>
+ GATEWAY_IP=<IP_ADDRESS>
+++ hostname
++ grep ak-outpost-vpn-56c9746969-k6v24 /config/nat.conf
++ true
+ NAT_ENTRY=
+ VXLAN_GATEWAY_IP=<IP_ADDRESS>
+ '[' -n '' ']'
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
152: eth0@if153: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 5a:ee:ec:5c:35:a6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd42::b3a2/128 scope global nodad
       valid_lft forever preferred_lft forever
    inet6 fe80::58ee:ecff:fe5c:35a6/64 scope link
       valid_lft forever preferred_lft forever
+ ip route
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<redacted> via <IP_ADDRESS> dev eth0
+ ping -c 1 <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=63 time=0.082 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.082/0.082/0.082 ms
+ ip link add vxlan0 type vxlan id 42 dev eth0 dstport 0
+ bridge fdb append to 00:00:00:00:00:00 dst <IP_ADDRESS> dev vxlan0
+ ip link set up dev vxlan0
+ cat
+ [[ -z '' ]]
Get dynamic IP
+ echo 'Get dynamic IP'
+ dhclient -v -cf /etc/dhclient.conf vxlan0
Internet Systems Consortium DHCP Client 4.4.3-P1
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

/etc/dhclient.conf line 3: semicolon expected.
link-timeout 10;
              ^
/etc/dhclient.conf line 4: semicolon expected.
reboot
 ^
Listening on LPF/vxlan0/82:37:97:0f:9d:a3
Sending on   LPF/vxlan0/82:37:97:0f:9d:a3
Sending on   Socket/fallback
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
No DHCPOFFERS received.
No working leases in persistent database - sleeping.
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
7: vxlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 82:37:97:0f:9d:a3 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::8037:97ff:fe0f:9da3/64 scope link
       valid_lft forever preferred_lft forever
152: eth0@if153: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 5a:ee:ec:5c:35:a6 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd42::b3a2/128 scope global nodad
       valid_lft forever preferred_lft forever
    inet6 fe80::58ee:ecff:fe5c:35a6/64 scope link
       valid_lft forever preferred_lft forever
+ ip route
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<redacted> via <IP_ADDRESS> dev eth0
+ ping -c 1 <IP_ADDRESS>
ping: sendto: Network unreachable
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes

The first thing that stands out to me are the remarks about the dhclient config, but upon investigating that, it doesn't seem off to me:
backoff-cutoff 2;
initial-interval 1;
link-timeout 10;
reboot 0;
retry 10;
select-timeout 0;
timeout 30;

interface "vxlan0"
 {
  request subnet-mask,
          broadcast-address,
          routers;
          #domain-name-servers;
  require routers,
          subnet-mask;
          #domain-name-servers;
 }

So, assuming I may have messed something up on the cluster I actually did a full rebuild. Switched from K3S to RKE2. Upgraded to Ubuntu 22.04 from 20.04 but to no avail.
Both my old and new cluster throw exactly the same error.
I'm looking for a way to debug this, so any insights will of course be greatly appreciated :)

I'll have to put in an edit.
Sometimes it does work, and then crashes again within 24 hours.
In that case the gateway-init logs look like below.
It's also worth noting that in the old cluster I was running Calico as CNI, this new one runs cilium.
Both use VXLAN for tunneling, but I'm unable to figure out wether there's some kind of conflict there.
If it is, it's odd to me that that issue only started appearing after a few months on the old cluster, and immediately pop up on the new one.
+ cat /default_config/settings.sh
#!/bin/bash

# hostname of the gateway - it must accept vxlan and DHCP traffic
# clients get it as env variable
GATEWAY_NAME="$gateway"
# K8S DNS IP address
# clients get it as env variable
K8S_DNS_IPS="$K8S_DNS_ips"
# Blank  sepated IPs not sent to the POD gateway but to the default K8S
# This is needed, for example, in case your CNI does
# not add a non-default rule for the K8S addresses (Flannel does)
NOT_ROUTED_TO_GATEWAY_CIDRS=""

# Vxlan ID to use
VXLAN_ID="42"
# VXLAN need an /24 IP range not conflicting with K8S and local IP ranges
VXLAN_IP_NETWORK="172.16.0"
# Keep a range of IPs for static assignment in nat.conf
VXLAN_GATEWAY_FIRST_DYNAMIC_IP=20

# If using a VPN, interface name created by it
VPN_INTERFACE=tun0
# Prevent non VPN traffic to leave the gateway
VPN_BLOCK_OTHER_TRAFFIC=true
# If VPN_BLOCK_OTHER_TRAFFIC is true, allow VPN traffic over this port
VPN_TRAFFIC_PORT=443
# Traffic to these IPs will be send through the K8S gateway
VPN_LOCAL_CIDRS="<IP_ADDRESS>/8 <IP_ADDRESS>/16"

# DNS queries to these domains will be resolved by K8S DNS instead of
# the default (typcally the VPN client changes it)
DNS_LOCAL_CIDRS="local"

# dnsmasq monitors directories. /etc/resolv.conf in a container is in another
# file system so it does not work. To circumvent this a copy is made using
# inotifyd
RESOLV_CONF_COPY=/etc/resolv_copy.conf

# ICMP heartbeats are used to ensure the pod-gateway is connectable from the clients.
# The following value can be used to to provide more stability in an unreliable network connection.
CONNECTION_RETRY_COUNT=1

# If you use nftables for iptables you need to set this to yes
IPTABLES_NFT=no
+ . /default_config/settings.sh
++ GATEWAY_NAME=vpnrouter-pod-gateway.default.svc.cluster.local
++ K8S_DNS_IPS=<IP_ADDRESS>
++ NOT_ROUTED_TO_GATEWAY_CIDRS=
++ VXLAN_ID=42
++ VXLAN_IP_NETWORK=172.16.0
++ VXLAN_GATEWAY_FIRST_DYNAMIC_IP=20
++ VPN_INTERFACE=tun0
++ VPN_BLOCK_OTHER_TRAFFIC=true
++ VPN_TRAFFIC_PORT=443
++ VPN_LOCAL_CIDRS='<IP_ADDRESS>/8 <IP_ADDRESS>/16'
++ DNS_LOCAL_CIDRS=local
++ RESOLV_CONF_COPY=/etc/resolv_copy.conf
++ CONNECTION_RETRY_COUNT=1
++ IPTABLES_NFT=no
+ cat /config/settings.sh
#!/bin/sh
# Generated by vpnrouter-pod-gateway
DNS_LOCAL_CIDRS="local cluster.local"
NOT_ROUTED_TO_GATEWAY_CIDRS="<IP_ADDRESS>/16 <IP_ADDRESS>/16 <IP_ADDRESS>/32 <IP_ADDRESS>/32"
VPN_BLOCK_OTHER_TRAFFIC="false"
VPN_INTERFACE="wg0"
VPN_LOCAL_CIDRS="<IP_ADDRESS>/16 <IP_ADDRESS>/16 <IP_ADDRESS>/32 <IP_ADDRESS>/32"
VPN_TRAFFIC_PORT="51820"
VXLAN_GATEWAY_FIRST_DYNAMIC_IP="20"
VXLAN_ID="42"
VXLAN_IP_NETWORK="172.16.0"
+ . /config/settings.sh
++ DNS_LOCAL_CIDRS='local cluster.local'
++ NOT_ROUTED_TO_GATEWAY_CIDRS='<IP_ADDRESS>/16 <IP_ADDRESS>/16 <IP_ADDRESS>/32 <IP_ADDRESS>/32'
++ VPN_BLOCK_OTHER_TRAFFIC=false
++ VPN_INTERFACE=wg0
++ VPN_LOCAL_CIDRS='<IP_ADDRESS>/16 <IP_ADDRESS>/16 <IP_ADDRESS>/32 <IP_ADDRESS>/32'
++ VPN_TRAFFIC_PORT=51820
++ VXLAN_GATEWAY_FIRST_DYNAMIC_IP=20
++ VXLAN_ID=42
++ VXLAN_IP_NETWORK=172.16.0
+ ip addr
+ grep -q vxlan0
+ ip link del vxlan0
Deleting existing default GWs
+ echo 'Deleting existing default GWs'
+ ip route del 0/0
RTNETLINK answers: No such process
+ /bin/true
+ ping -c 1 -W 1000 <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
ping: sendto: Network unreachable
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if175: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
    link/ether 82:f8:0d:da:1e:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd42::c9ee:2303:c436:ab05:352e/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::80f8:dff:feda:1e03/64 scope link
       valid_lft forever preferred_lft forever
+ ip route
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
++ cut -d ' ' -f 1
+ K8S_DNS_IP=<IP_ADDRESS>
++ dig +short vpnrouter-pod-gateway.default.svc.cluster.local @<IP_ADDRESS>
+ GATEWAY_IP=<IP_ADDRESS>
+++ hostname
++ grep sonarr-98dfdb5d5-kznqk /config/nat.conf
++ true
+ NAT_ENTRY=
+ VXLAN_GATEWAY_IP=<IP_ADDRESS>
+ '[' -n '' ']'
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if175: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
    link/ether 82:f8:0d:da:1e:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd42::c9ee:2303:c436:ab05:352e/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::80f8:dff:feda:1e03/64 scope link
       valid_lft forever preferred_lft forever
+ ip route
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
+ ping -c 1 <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=63 time=0.226 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.226/0.226/0.226 ms
+ ip link add vxlan0 type vxlan id 42 dev eth0 dstport 0
+ bridge fdb append to 00:00:00:00:00:00 dst <IP_ADDRESS> dev vxlan0
+ ip link set up dev vxlan0
+ cat
+ [[ -z '' ]]
+ echo 'Get dynamic IP'
Get dynamic IP
+ dhclient -v -cf /etc/dhclient.conf vxlan0
Internet Systems Consortium DHCP Client 4.4.3
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

/etc/dhclient.conf line 3: semicolon expected.
link-timeout 10;
              ^
/etc/dhclient.conf line 4: semicolon expected.
reboot
 ^
Listening on LPF/vxlan0/46:2a:38:4d:0c:b8
Sending on   LPF/vxlan0/46:2a:38:4d:0c:b8
Sending on   Socket/fallback
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPOFFER of <IP_ADDRESS> from <IP_ADDRESS>
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 1
DHCPDISCOVER on vxlan0 to <IP_ADDRESS> port 67 interval 2
DHCPOFFER of <IP_ADDRESS> from <IP_ADDRESS>
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPREQUEST for <IP_ADDRESS> on vxlan0 to <IP_ADDRESS> port 67
DHCPACK of <IP_ADDRESS> from <IP_ADDRESS>
bound to <IP_ADDRESS> -- renewal in 19917 seconds.
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if175: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default
    link/ether 82:f8:0d:da:1e:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet <IP_ADDRESS>/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fd42::c9ee:2303:c436:ab05:352e/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::80f8:dff:feda:1e03/64 scope link
       valid_lft forever preferred_lft forever
100: vxlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 46:2a:38:4d:0c:b8 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global vxlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::442a:38ff:fe4d:cb8/64 scope link
       valid_lft forever preferred_lft forever
+ ip route
default via <IP_ADDRESS> dev vxlan0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/16 via <IP_ADDRESS> dev eth0
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
<IP_ADDRESS> dev eth0 scope link
<IP_ADDRESS>/24 dev vxlan0 proto kernel scope link src <IP_ADDRESS>
<IP_ADDRESS> via <IP_ADDRESS> dev eth0
+ ping -c 1 <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=64 time=0.408 ms

@angelnu
I managed to fix it, but it's something you might want to know.
Apparently Cilium implemented a fix for a CVE (which is hardcoded and cannot be disabled) which drops all Encapsulated traffic sent by pods. (And therefor breaking the VXLAN implementation pod-gateway uses.
Switching the cluster to Canal as CNI fixed the issue.
So the TL;DR is that pod-gateway isn't compatible with Cilium at this point in time,


Update Parcel tools

Presently, the only Parcel plugin listed on the website is for v1, which is nearly 2 years out of date. Several Svelte plugins exist for v2; the one I would recommend out of these is parcel-transformer-svelte3-plus, which supports Svelte 4 and svelte-preprocess, and has an author who's been responsive to my issue reports.
I'm willing to write a PR to update the plugin info once these questions are answered:

Is it acceptable to submit a plugin I don't maintain, or would you rather I ask the author to submit the plugin themselves?
Should I remove the v1 plugin altogether, or just amend the description to say it's for v1?

You can definitely add a plugin you're not the author of
I suppose for now I'd leave the v1 plugin and just update the description. There's probably a number of old plugins and we're considering how to show more info like last-updated date, etc.


Set accessor to return default settings when none is present

This PR helps to return defaultSettings when a model has no setting set yet.

@wizston Thank you for your contribution but your PR breaks our test cases and comes with feature which are already in.

if you want to get only default setting values just call $model->getDefaultSettings()
if you want all values call (default and saved) $model->settings()->all()

@wizston Thank you for your contribution but your PR breaks our test cases and comes with feature which are already in.

if you want to get only default setting values just call $model->getDefaultSettings()
if you want all values call (default and saved) $model->settings()->all()

@glorand The PR is to make sure the settings are returned back every time the $model is fetched.
It works fine when you try to specifically pull the settings for a model. i.e $model->settings()->all()
But when you access $model->first() or $model->all(), it returns null if there's no entry saved for that model, instead of returning the $defaultSettings that has been set for that model.
The PR makes sure you get the $defaultSettings along with what was saved even when none has been set.

@wizston - "But when you access $model->first() or $model->all(), it returns null if there's no entry saved for that model, instead of returning the $defaultSettings that has been set for that model."
(Model::first())->settings()->all() returns null for you instead of default settings?


Colorspace & optimization

Two quick questions (hope this is the right place for them):

Is the source image from the movie in linear or sRGB colorspace? It looks like you're creating the texture as if it's linear, but I wanted to make sure it's intentional. Same goes for the renderbuffer.
Did you consider using the EXT_shader_framebuffer_fetch extension to read directly from the framebuffer instead of sampling from a texture? According to Apple, it should be faster. source, supported devices
I might start working on a project with GPUImage and I'd like to contribute if I can.

I honestly don't know. I think it's linear, but the only place I'm sure about that is in input direct from the camera (where I'm doing the conversion from YUV to RGB). The movie handling code has always been the weakest in the framework, simply because I don't use it much myself.

I've worked with EXT_shader_framebuffer_fetch in other projects, and it's great for custom blend modes and things like that (I think I might have some code using this deep within the Hough transform line detector, in fact). It potentially could be used to run multi-step filters without intermediate textures, having them all operate off of a single input texture / framebuffer.

However, that would require some significant rearchitecting of the filter pipeline and thinking about the various cases involved. Reading from multiple textures in a pipeline has generally not been the largest performance bottleneck in image processing within the framework, and the memory impact was reduced when I switched to a cached framebuffer architecture. I'm not sure how much you'd gain by completely reworking the framework to employ EXT_shader_framebuffer_fetch everywhere.

Indeed, as long as the intermediary texture doesn't have an impact on performance, there's no need to use the framebuffer fetch extension. We'll see how this goes for long chains of filters though.
As for the colorspace, I guess it should be linear for movies too, but I'll try to figure it out for sure.
You can close the issue now, thank you for your answers!


Fix packageId comparison in loadUserDefinedType()

Purpose
$subject.
Fixes #31960
Approach
N/A
Samples
N/A
Remarks
N/A
Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

LGTM


Property bindings of type "camunda:executionListener" ignores name property

Describe the Bug
Element templates including an execution listener binding do not respect the configured property name. In consequence, it currently is not possible to define a class-based execution listener as template.
Per documentation<EMAIL_ADDRESS>the name attribute at properties/property/binding/name is not specific to any type. In additional this currently breaks the properties panel.
Steps to Reproduce

Create an element template for service task
Add a property binding of type "executionListener"
Set the property name to bind to "class"
Create new task element within Modeler
Apply the configured template
Now the properties panel is frozen and the console shows an error.
The configured class name is not set as "class" property but as "value" which would not work on execution. This leads to the afore mentioned error.

Mine looks similar to this:
{
  "$schema"<EMAIL_ADDRESS>  "name": "Name",
  "id": "id",
  "version": 1,
  "appliesTo": [
    "bpmn:Task"
  ],
  "elementType": {
    "value": "bpmn:ServiceTask"
  },
  "properties": [
    {
      "label": "Implementation Type",
      "type": "Hidden",
      "value": "path.to.class",
      "binding": {
        "type": "camunda:executionListener",
        "event": "start",
        "name": "class"
      }
    }
  ]
}

Expected Behavior
The "name" property should be evaluated for execution listeners.
I discovered the behaviour is defined here: CreateHelper.js#L153. Whatever is calculated as parater value is assgined to "value". The default should not point to "value" but rather to "binding.name". If that is not configured "value" seems okay. In theory only the following line would need a change: CreateHelper.js#L173
Environment

OS: Windows 10
Camunda Desktop Modeler 5.0.0

I would happily try to create a pull request, if that is okay to you.
Kind regards
Alexander Skrock

@pinussilvestrus Can you confirm that this was the intended behavior? I can't find a test verifying this.

The schema rules seem to not strictly validate the binding properties for each binding type. This was reported via  https://github.com/camunda/element-templates-json-schema/issues/109.
According to the docs, name in combination with type=executionListener is indeed not supported. So we can either support it or add stricter validation to avoid confusion.

Hi @philippfromme and @pinussilvestrus ,
you arguments sound reasonable. Maybe the "name" attribute was not originally made for this use case. Still, I would appreciate if your decision includes that we enable class-based execution listeners for element templates.
Another approach would be to use a more specific attribute such as 'class'. However I thought using 'value' in combination with 'name' would be a good idea because it is very similar how script-based execution listeners work. They also use 'value' for the script and 'scriptFormat' to define we have a script and the scripting format.
Kind regards
Alexander Skrock

Thank you for your evaluation and I would be happy to contribute, @barmac .
I just realized I deleted my fork, when cleaning up my repos and forgot about the open pull request. Luckily I still had my changes locally and was able to open a new pull request.


detectBrowserLanguage Redirect Alternate URL Name

Hey,
I build my setup in the way that every page also has its path in its language.
So its not simply changing /en/[page-name] to /de/[page-name]/,
but also /en/[page-name-en] to /de/[page-name-de]
Is it somehow possible to let the module know which is the alternate url?
I already added meta and link language tags, but this does not seem to get honored in this decision.
Best,
F

Yes it is, this feature is documented in the documentation Routing - Custom paths 😃

That actually does not work for me.
All my routes are dynamic, so at the point in the lifecycle where I have to add the alternate page paths I do not know about them yet. I would need the browserRedirect to fire after the asyncData method, because only then I have all the information I need to build the alternate page paths. Best would be to populate the paths from within the asyncData method, is that possible?
Additionally I cannot find the browserRedirect to fire beforeLanguageSwitch and onLanguageSwitched — I tried to log it but it does not show up in the console, is that correct?

Custom paths in nuxt-i18n are build-time based. So you have to decide the paths at build time already. This affects the routes that are generated.
If you only know your routes dynamically at runtime then you have to create your own, custom solution for that.
Something like having a "catch-all" route (_.vue) that will decide on locale to use. nuxt-i18n will do the initial redirect to /en/foo or /de/foo but then you have to have your own logic to redirect to locale-specific page name.

Yes, I already use a catch-all route.
So what you suggest is that I should disable the nuxt-i18n browser redirection and build my own?
At the moment my solution is to let nuxt-i18n do the redirect, but if no page data can be loaded from my asyncData method I search for language siblings and will redirect the user if found.
So my question was aiming if there is a more easy way, eg tell nuxt-i18n the paths async and delay the redirect until they are set.

So what you suggest is that I should disable the nuxt-i18n browser redirection and build my own?

No, unless it gets in the way.
The way you are doing it now (utilizing nuxt-i18n redirect + adjusting manually) probably makes more sense.

Okay, thanks for your feedback!
Unless anybody else want to add something here or make a suggestion I will close this thread.

BTW. I've just recalled that there exists this functionality: https://nuxt-community.github.io/nuxt-i18n/lang-switcher.html#dynamic-route-parameters

BTW. I've just recalled that there exists this functionality: https://nuxt-community.github.io/nuxt-i18n/lang-switcher.html#dynamic-route-parameters

Link doesn't work

Documentation has moved.
https://i18n.nuxtjs.org/lang-switcher.html#dynamic-route-parameters


node label to identify microk8s substrate

Could we please add a label to all microk8s nodes so that a caller can inspect the node and see that microk8s is the underlying substrate?
For reference, GKE uses

cloud.google.com/gke-os-distribution
cloud.google.com/gke-nodepool

AKS uses

kubernetes.azure.com/cluster

etc. So we can identify those. But we also need to identify microk8s.

Any label preference? What about microk8s.io/cluster?
To demystify this further, you want to append --node-labels microk8s.io/cluster in the default arguments of kubelet here: https://github.com/ubuntu/microk8s/blob/master/microk8s-resources/default-args/kubelet
Full list of available kubelet args

@ktsakalozos What you propose sounds good, thank you.


FAT-4556 - update pause values

Purpose
FAT-4556 - items feature
Approach
How does this change fulfill the purpose?
TODOS and Open Questions

[ ] Use GitHub checklists. When solved, check the box and explain the answer.

Learning
Describe the research stage. Add links to blog posts, patterns, libraries or addons used to solve this problem.


Regression in vue-tsc 1.8.12: custom event types no longer inferred

With the update from vue-tsc 1.8.11 to 1.8.12 the types of custom event aren’t inferred anymore.
Comp.vue:
<script lang="ts" setup>
defineEmits<{
  (event: 'change', value: string): void
}>()
</script>

Parent.vue:
<template>
  <Comp @change="(value) => console.log(value)" />
  <!--            ^^^^^ is inferred as `any` now, should be `string` -->
</template>

<script lang="ts" setup>
import Comp from './Comp.vue'
</script>

Could you please provide a minimal reproduction? Are you using strictTemplates: true?

Here you go: https://github.com/kleinfreund/vue-tsc-reproduction
Run npm install and npx vue-tsc --noEmit to reproduce. Downgrade to vue-tsc 1.8.11 to fix the issue.
Please don’t close my issue like that, it was not obvious that the type "Comb" was the cause of this issue.

@kleinfreund I closed your issue because this error IS caused by your typo, and I'm unable to get any extra information from your context.


misleading information in README.md

The gif under the Productive development section of the README.md file shows the working of hot reload feature of Flutter. Looking at the similarity in design, the editor seems to be VSCode. But in VSCode, the button corresponding to hot reload has a different icon (⚡ - to be precise) and a different one for hot restart (same as the icon that is clicked in the gif). This could be misleading.
Gif in the README.md file:

it was an old version of VS Code I think, in the new release of VS Code they have added this ⚡  icon

@werainkhatri
May be the VScode version was old one while recording that video and per above comment, the IDE now has the correct icon for hot-reload. I also see PR to fix the gif.

Fixed in flutter/website#5662. closing.


Does the object_detection_webcame.py work?

I have plug in a usb logitech camera.
and successfully run the Object_detection_image.py
Now i wanna use the webcam python,but it came with lots of problems.
I am a new tensorflower,and i donot know how to solve it
The errors are bellow:

Did you try with another camera? If you don't have camera ,pls try using your phone with droidcam.


Ensure that apt is updated before trying to install any packages. Added 'make' to install list.

This will fix issue #15 that I just reported.

Easy fix :+1: Thanks for keeping the software working.


proxyRequest with updated P-Asserted-Identity

I'd like to do something like the following:
srf.invite((req, res) => {
  getMoreInformation(req, (updated) => {
    srf.proxyRequest(req, "downstream-proxy:5060", { headers: { "P-Asserted-Identity": updated.identity } });
  });
});

Based on #72 I expected the above to work, but in testing I get the following from drachtio-server and the message is never passed on.
2020-05-14 02:59:49.473291 makeTags - Adding well-known header 'p-asserted-identity' with value 'foo bar baz'
2020-05-14 02:59:49.473434 nta.c:3698 nta_msg_tsend() nta_msg_tsend(request): cannot add headers
2020-05-14 02:59:49.473495 ClientTransaction::setState - CALLING --> TERMINATED TMwr1cm_214mTtq_NCrpIw
2020-05-14 02:59:49.473561 timerA: removing entry, prior to removal length: 1
2020-05-14 02:59:49.473637 timerA: removed entry, timer not set (queue is empty after removal), length: 0
2020-05-14 02:59:49.473785 timerB: removing entry, prior to removal length: 1
2020-05-14 02:59:49.474028 timerB: removed entry, timer not set (queue is empty after removal), length: 0
2020-05-14 02:59:49.474096 timerC: removing entry, prior to removal length: 1
2020-05-14 02:59:49.474155 timerC: removed entry, timer not set (queue is empty after removal), length: 0
2020-05-14 02:59:49.474213 ProxyCore::startRequests started 1 client transactions

Any advice? Thanks.

There are rules for what a P-Asserted-Identity header must look like....specifically, it must be a sip uri

https://tools.ietf.org/html/rfc3325#section-9.1

Great, thanks, I'll pursue this and let you know.


RaiseError can support first arg matcher on message.

addresses: https://github.com/rspec/rspec-expectations/issues/762
I'm not totally confident this is the right strategy to go for here. @myronmarston - could there be other matchers that match on String/Regexp whose intended target would be the exception, not the message?

Thanks for taking a stab at this!
I think that instead of trying to figure out if the provided argument is intended to match the message rather than the exception, we should just do something like:
values_match?(expected, exception) || values_match?(expected, exception.message)

IOW, try to match against both the exception and the exception's message, and if either are true, consider it to have matched.  That way we don't have to guess intent or use any kind of heuristic.
It also gives us the possibility of cleaning up some of the special case code in place now.  For example, Regexp is called out as a special case right now but Regexp supports the same === protocol a matcher argument does so we should be able to treat them the same.  (values_match? takes care of this for you by using === internally).
Does that make sense?

@myronmarston thanks for the feedback! that makes sense, yes. i'll try to take care of this tomorrow.

apologies for the delay and the going back and forth, @myronmarston. if you feel you need to take this over, i won't be offended :smile: this has been a lot more complicated than i first thought!
i've changed the way the custom matcher on https://github.com/imtayadeway/rspec-expectations/blob/tw/raise-error-first-arg-matchers/spec/rspec/matchers/built_in/raise_error_spec.rb#L457 works. if this is not right, i'll happily revert to what was before. to explain - i did this to be more like a_string_including - since both are matchers, it became hard to reason what #expected_error should do, when one's target was the exception and the other's was the message on the exception. i settled on 'Exception with '.
thanks!

No need to apologize, @imtayadeway -- we all do this in our free time and appreciate you're helping us out here.  I left a couple comments but it'd also be nice to have this squashed before merging.

@myronmarston just squashed my commits. disappointed to say that i played around with this a fair bit and couldn't come up with a good solution to your comments. for one, i couldn't find a way of determining if a matcher's target was the message of the exception, or anything else (e.g. the as with custom matcher here https://github.com/rspec/rspec-expectations/pull/782/files#diff-4247e8ed6201bb33735ad5faf3f96b86R457). i was also unable to remove the second special case for Regexps =(. let me know if i can do anything to mitigate these!

Thanks, @imtayadeway -- this is fine how you have it.

@imtayadeway This seems to have introduced a bug. When upgrading from 3.2.1 to 3.3.0 I see this now passes:
expect { raise "error" }.to raise_error(String)

To verify I wrote an rspec spec and ran it on both 3.2.1 (passes) and 3.3.0 (fails):
it 'raise_error with a class should match the error class, not the message class' do
  expect { expect { raise "error" }.to raise_error String }.to raise_error RSpec::Expectations::ExpectationNotMetError
end

cc @carbonin

@bdunne: Given that we know support matching a single raise_error arg against the message, I'd expect expect { raise "error" }.to raise_error(String) to pass -- String === any_string returns true. In affect, you are specifying that the exception's message must be a string.
In 3.2 and before, when you passed a single arg to raise_error it tried to match against the exception object itself.  String === exception_object returned false (which is why it failed on 3.2) but that's a bit of a nonsensical expectation.  I'd go far as to say that while that expectation behaved a certain way, we didn't document how it would behave in that situation and it was essentially undefined behavior.
Thus I don't consider the behavior in 3.3 to be a bug.
What is it you were trying to express with that expectation?   Maybe we can help you come up with an alternate way to write that.

@myronmarston: We actually came across this by accident and, after understanding what was going on, realized why it was passing, but mentioned it because of how strange a user experience it was.  We have a way to implement what we needed to do, but thought that failing that test would make more sense from a user's point of view because by passing a class the intent would be for raise_error to match against the only possible option for which the class varies (i.e. the exception's class rather than the message's class which will always be String).
So definitely not a bug, but maybe an enhancement.

I get what you're saying, but treating String special in this way would be inconsistent to anyone who understands that we use === to support composable matchers (automatically gaining the ability to match against classes, regexes, ranges, etc), so I think we're going to keep it the way we have it now.

:+1:


Restructure playground

Pull Request Test Coverage Report for Build 50fb8bf5643914a816b75a4186534a87cc52937e-PR-8

10 of 10 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.009%) to 98.747%

Totals

Change from base Build 079cf42f94f61ea9c68587d5955d0386c9031cc2:
-0.009%

Covered Lines:
520

Relevant Lines:
522

💛  - Coveralls


Refactor gMAM

@reykboerner What is the reason that we have to re-interpolate the path after every optimization path?

Hi @oameye, are there any changes here that change what geometric_min_action_method does or are they all just cosmetic in terms of how the code is written? It's a bit difficult to tell from the PR title and by scrolling through the changes.

All the changes should be cosmetic. I just refactored and reformatted the code. The main changes are:

Refactored the interpolation step into its own function
Make the two methods dependent on each other, that way we don't have redundant code.

All the changes should be cosmetic. I just refactored and reformatted the code. The main changes are:

Refactored the interpolation step into its own function
Make the two methods dependend on each other, that way we don't have redundant code.

Great, thanks for the additional description! Merging this now.


Ssh settings

supports https://github.com/RackHD/on-tasks/pull/150 and https://github.com/RackHD/on-tasks/pull/163 by adding optional sshSettings to node schema
@benbp

:+1:

👍

:+1:

test this please

@VulpesArtificem  for sshSettings, it also need serializable like other settings? https://github.com/RackHD/on-http/blob/master/lib/serializables/v1/node.js

@anhou he's been using my branch for the ssh settings serializable, just put a PR up here: https://github.com/RackHD/on-http/pull/237

@benbp Thanks for this info, and let Jenkins test this please

test this please


Remove JSONObject dependency in Client.onActivation()

Are there any pressing reasons to include JSONObject in the exposed API ?
I would prefer receiving a raw data String over the use of a JSONObject with activation information.
This would allow me to use any other JSON parsing schemes available, now I'm forced to either:

use JSONObject (which is essentially just a Map)
export the JSONObject back to a String and then use any other preferred JSON parsing scheme (and still be still required to have a dependency to org.json).

Well, the idea is to make user's life easier and returning an already-parsed object seems much more user-friendly than returning a String that the user need to parse later on.
Is there any particular reason you disagree with the choice of org.json ? It's a very first release so if you have a better json lib than this one, we could just move to it.
@FokkeZB any advice on this ?

Hi Romain, thanks for the quick reply. much appreciated
Well, the thing is... 'already parsed' doesn't give me anything short of a Map, I would still have to investigate, parse it and base my implementation on it. Personally, I'm a fan of Gson, but others might like Jackson or something else. All would probably prefer the raw data; I'd rather leave it up to the integrator. It's just my opinion, not a big deal though.

Since account already uses jackson, I could change the output data to a pure java object mapping the one from TTN. Do you think this would be better ? I think it's still better than raw data for the majority of users :)

I'd say if you like it raw, you should just talk to the MQTT broker directly. It's an SDKs job to pre and post process to make live easier. I'm ok with using Jackson to return a true object, as that is also what you get from the Nodejs SDK.
Thanks for the input @dennisg!

oh, it is more than welcome :-)
As said, it is not required to conform to my wishes.
True about the raw MQTT stream, but your client interface in Java takes away much of the cruft required to easily listen to events. For me converting it to a JSONObject adds nothing. Others might argue it does, opinions differ.
As an aside, the various places where an Object is returned it still is unclear to me whether it would always be safe to do a toString(), hope it would return JSON and parse that. adds to the confusion, to my opinion.
I would personally prefer either:

a more type-safe and opinionated (enforced, where possible) structure
or
just the raw data and let the integrator figure out how they would like to parse the data

I'll go with the first solution: I'll expand the Message I already return to be able to enclose both a string matching a single field, or an Object will all getters to match json

👍 thanks!


update windows-upgrade-and-migration-considerations.md

issue #1313
added info about Easy transfer

@greg-lindsay - Can you please assist to check, approve and merge the content of this PR based on issue #1313?
Thank you.


Is there any option to set http timeout for Collector

Hi guys
Testing in my application I realized that if the splunk presents instability, the .dispose() is waiting forever.
A timeout option would be appreciated, thanks!

If you need a short term approach installing an HttpMessageHandler at log creation time would allow you to effectively set a timeout by creating a cancellation token with a fixed time.

@jpfifer has listed current solution correct, e.g. HttpMessageHandler parameter of .WriteTo.EventCollector.


Next.js next/font does not apply to components with presentation role

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Live Version: I was unable to get next/font to work in Codesandbox.
Related: https://github.com/vercel/next.js/discussions/45433
Steps:

Configure MUI to use the next/font package (https://nextjs.org/docs/basic-features/font-optimization)

import { Montserrat, Readex_Pro } from 'next/font/google'

const montserrat = Montserrat({ subsets: ['latin'], variable: '--font-montserrat' })
const readexPro = Readex_Pro({ subsets: ['latin'], variable: '--font-readex-pro'})

Add font vars to __app.tsx

Use font vars on theme.

const baseThemeOptions: ThemeOptions = {
  typography: {
    fontFamily: ['var(--font-montserrat)', 'helvetica neue', 'sans-serif'].join(','),
 }

Add to global.scss

body {
  font-family: var(--font-montserrat), arial, helvetica, sans-serif;
 }

Add component with presentation role

      <Drawer
          anchor="top"
          onClose={() => setIsDrawerOpen(false)}
          open={isDrawerOpen}
      >
        <Typography>Some next</<Typography>
      </Drawer>

Current behavior 😯
The next/font styles are applying correctly to all components that do not have the presentation role. The font is probably added to the css output but the font is not found, causing the browser to use a fallback.
Expected behavior 🤔
next/font declarations are applied to all MUI components
Context 🔦
We are attempting to use next/font to remove the CLS from Google Fonts and optimizer our page load. The fonts are being applied correctly to all elements except those with presentation role. See related issue from NextJS
Your environment 🌎

npx @mui/envinfo
  System:
    OS: macOS 13.2.1
  Binaries:
    Node: 18.6.0 - /opt/homebrew/bin/node
    Yarn: 1.22.19 - /opt/homebrew/bin/yarn
    npm: 8.13.2 - /opt/homebrew/bin/npm
  Browsers:
    Chrome: 112.0.5615.137
    Safari: 16.3
  npmPackages:
    @emotion/react: ^11.10.6 => 11.10.6
    @emotion/styled: ^11.10.6 => 11.10.6
    @mui/base:  5.0.0-alpha.126
    @mui/core-downloads-tracker:  5.12.1
    @mui/lab: ^5.0.0-alpha.127 => 5.0.0-alpha.127
    @mui/material: ^5.12.1 => 5.12.1
    @mui/private-theming:  5.12.0
    @mui/styled-engine:  5.12.0
    @mui/system:  5.12.1
    @mui/types:  7.2.4
    @mui/utils:  5.12.0
    @mui/x-data-grid:  5.17.26
    @mui/x-data-grid-pro: ^5.17.26 => 5.17.26
    @mui/x-license-pro:  5.17.12
    @types/react: ^18.0.26 => 18.0.26
    react: ^18.2.0 => 18.2.0
    react-dom: ^18.2.0 => 18.2.0
    typescript: ^4.6.4 => 4.6.4

The workaround is to add the style to the html element globally in the App component as it does not respect being set in CSS or with SX. Loading the font directly into the theme results in the font being loaded twice. This does not solve the case where multiple fonts are needed.
  return (
    <>

    </>
  );

It's not a bug, but a question. The behavior described looks expected to me (based on how it was configured. It surfaces the need for #38082.
In #38095, I pushed a commit, I think it's the right way to do it there.

Duplicate of #38082

I have the same issue when using "Syncopate" font with nextjs 13.4.19.

My issue is exactly same, with TextareaAutoSize component. Its showing text with monospace font under this component, where as we had put Montserrat as global font and this global font is applicable to all components except TextareaAutoSize component in our project


Removes hardcoded appName for ember-cli-hot-loader

Fixes #20
This makes other addons dummy components work, however, components defined on addon/components still won't be hot-reloaded. That is the most common case for addon components, so I'll probably wait to have that working or at least fall back to live-reload.
The problem doing this for addon/components is that we have to reload vendor.js, which blows away a few things, including _eak_seek. I'm considering changing the build to funnel the component/addons to app.js or a different file, this RFC may help us do it in a more standard way.
Pending items.

[ ] Fix blueprint so it modifies the resolver in dummy instead of creating a new file.~ (no need to fix this since the AST approach moves away from using a resolver)
[x] Fix it for  tests/dummy/components
[ ] Fix it for  addon/components

Here is my current plan:
Option 1: see which libs are causing problems when we reload vendor.js and see if we can isolate them, move them to a separate asset or have a way to prevent them from running a second time, similar to how we avoid creating a second ember app when loading app.js by setting window.testing=true. I think the problem might only be loader.js
Option 2: funnel the components to app.js (I would rather not mess up with this since this might clash with https://github.com/ember-cli/rfcs/pull/52 if we ever get to implement it.

@MiguelMadero So just to be clear - your last comment was related to hot reloading in your running app when changes are made to an addon component? That's why vendor.js would need to be reloaded?

@toranb this applies to both scenarios:

Working on an addon using the dummy app to test it.
Working on an app, while making changes to an addon (applies to in-repo addons, but also npm links).

In both cases, the addon's components live in vendor.js, but we can't refresh it without breaking the app. I think this is a common scenario, I also think that OS developers can be early adopters of hot-loader, so  it's important to get it working for them. I also have a selfish interest, since both are common use cases for me at Zenefits.

Closing old issues as I prepare for the v1.0 release later this month. If you get involved or have more bandwidth in the future to persue this just let me know


Asset precompilation in production/test misses yarn install

Allow me to add some injury to the insult:
Since Rails 5.1 yarn install runs as part of the command:
RAILS_ENV=production bundle exec rake assets:precompile

However with React On Rails (here) the included assets.rake task runs its own compilation tasks just before the default ones but this time around it doesn't include a yarn install task. The problem is that by running as part of the assets:precompile task but before the included default ones it fails to install any node packages with yarn install and consequently fails on any fresh installation.
As a result in Capistrano doing cap production deploy fails due to the missing yarn install task. As a workaround I've included a custom yarn install task just before the assets:precompile task however this will run twice as assets:precompile will also do the same (but at a later time) as part of its functionality.
Maybe related to #1202

@kstratis why not just run yarn install after loading the repo. You do the same for bundle, don't you?

That would be perfectly fine however I’m using Capistrano for my deployments and SSHing into the server just to run yarn install is impractical.
Setting yarn install as a prerequisite of assets.rake would do the trick I think...


dart2js doesn't match typedefs and Function types when checking const objects

Dart2js doesn't match const functions and typedefs when building const objects.
The following example won't compile with error:
$ sdk/bin/dart2js --checked --out=t/foo.js /tmp/tt.dart
/tmp/tt.dart:3:12: Error: "F" is not assignable to "Function".
  const A({this.foo: null});
           ^^^^^^^^^^^^^^
Error: Compilation failed.
===
typedef dynamic F(int a, int b);
class A {
  const A({this.foo: null});
  final F foo;
}
_foo(int a, int b) {
  return a + b;
}
main() {
  const A(foo: _foo);
}
===

Obsolete (seems to be fixed).


Error: Building package ompl:x86-windows failed with: BUILD_FAILED

Hi. I have problems related to installing "ompl" by using "vcpkg". When I execute "vcpkg install ompl[app]" I get error above. I have attached the log file also. I installed VS2015. Please, can you help me? Thank you very much.
install-x86-windows-dbg-out.log

hmm can you try with a newer Visual Studio version?

Thank you very much for your attention. Sure, I will do an write the result soon.

Hey, thank you very much for your help. I have uninstalled VS2015 and installed VS2017 and everything worked.


Datepicker/Calendar messenger4j

Is there a date picker or calendar type in messenger4j API?

Hi, no there is not such a feature in messenger4j since FB does not provide this capabilities so far.
You can take a look at the latest messenger4j version which supports built-in NLP. Using this feature you can extract date information from text messages. Another alternative would be to use a Webview which could provide a date-picker.


[Bug] On deleting a widget the message is displayed twice

Steps to reproduce

Add a widget to a canvas
Click on Delete from the keyboard
and observe

Observation
the delete message is displayed twice to user

Can you assign this issue to me? I would like to contribute in this issue.

Hey👋🏼 @niyoj, thanks for showing interest in this issue.
Unfortunately, this issue is no more valid. Please do check our other Good First issues
Looking forward to seeing your contributions :)

In the current version, there is no message visible on the deletion of a widget. Hence, closing this issue.


Eat processor time at file with one line

Description of the problem or steps to reproduce
Micro is wery bad open any file. Sample:
http://pastebin.ru/8Mlu7che
At start file open, we see black screen about ~10 seconds. If this file open, cursor slowly moving to ~10 seconds per one symbol.
Specifications
Version: 1.1.3
Commit hash: 67ac3f1
Compiled on December 06, 2016
Debian Stable
Konsole

Yeah unfortunately micro is not very well optimized at the moment for long lines (35,000 characters on one line). Hopefully this will be fixed soon.
I am going to close this issue though as a duplicate of #468. Also see #515.


Bug Report: Incorrect Social Media Links in Footer Icons

Problem: The social media links in the footer icons are not correctly set up, leading to broken or incorrect navigation for users trying to access the respective social platforms.

Proposed Solution: Ensure that each footer icon links to the correct social media page associated with the application. Test all links for accuracy.
Use Cases:

Users can seamlessly connect to the app's official social media profiles from the footer section.
Improves user trust and brand credibility by avoiding broken links.

@Shubham0523 well currently there are no social media handle for those 😥, I'll add it myself whenever needed.. i cannot just redirect the users to my profiles 😅

sure @Luson045


MATH-1569 - Manual array copy

Coverage increased (+0.002%) to 90.702% when pulling affe55d9a2643277706ff4210028e2fd1ada4d01 on arturobernalg:feature/MATH-1569 into 26511237d21026623bc7ff26a1d2e90f16f21325 on apache:master.


Support parsing of .gfids section for PE

Gfids (Control Flow Guard metadata) contains some tables that might be helpful for recovering functions. Supporting them could be helpful for adding more context to the analysis.
Some links:

http://llvm-cs.pcc.me.uk/tools/lld/COFF/Writer.cpp#1572
https://learn.microsoft.com/en-us/windows/win32/secbp/pe-metadata

Related to #5287

It looks like we already do this https://github.com/Vector35/binaryninja-api/blob/afb41a37f9f6fa9e3c2d8df35fa9c9ae215299ee/view/pe/peview.cpp#L2392
If this doesn't cover everything, if you could provide a binary that'd be helpful


changing the model does not trigger resize

In my case, the app writes to the ngModel that is linked to the fz-elastic textarea. When doing so, the resize event it not triggered. It is only triggered when input field it used.
It should scroll to the last character, but it does not.

Sorry, I should be more clear:
template:
<ion-item><ion-label floating>Terminal</ion-label>
    <ion-textarea fz-elastic  [(ngModel)]="terminal"></ion-textarea>
</ion-item>

code:
this.zone.run(() => { this.terminal += this.newLIne;  });
behaviour:
Even though the screen gets updated, when full, the content does not scroll to the last line (or entry). Every following line added is therefore invisible.
expected:
The last string concat to the textarea should be visible at the bottom of the text field. Previous content should be scrolled up, the same way as a manual entry inside the textarea.
The ngZone should trigger the resize after it has been changed.


Temporary login link

Hello and thank you once again for the fantastic library!
I wanted to know how I could go about generating a temporary login link e.g. user gets an email link which authorises the login but is only valid for that session. This way if a user decides not to reset a password but just login to do limited things, I think it could be a good addition.
I have seen this issue but I think it is different to what I am asking.
Thanks in advance.

Thanks!
This feature is unfortunately not available yet, but it’s certainly something we should implement in the future.
Right now, you would have to implement it yourself, in your own application code. But this is not too hard:

Generate a token, e.g. using \Delight\Auth\Auth::createRandomString(24)
Assign an expiry time to your token
Attribute the token to the correct user (using their ID)
Store the token with its expiry time and user attribution in your database
Share the token with the user, e.g. displaying it in the user interface (for authenticated users only) or sending it to their stored email address
Receive a request from the user with a token
Check if the token is in the database and whether it is still valid
Get the associated user ID from the database
Get the user’s account details from the database
Do what Auth#onLoginSuccessful does
Do what UserManager#onLoginSuccessful does

Hi thanks for the reply and instructions. I have a question related to this use case.
I need to know if a user exists to be able to let them choose if they want to reset or get temp link.
I determine via AJAX onBlur if a user exists by using the forgotPassword() function but I know that's not the purpose of this. Is there any function to check if user exists?

If you want to check if a user with a given email address exists, solutions that are less dirty than using Auth#forgotPassword (but still not perfectly clean) are …

using Auth#login with an empty or arbitrary password and checking for InvalidEmailException
using Auth#loginWithUsername with an empty or arbitrary password and checking for UnknownUsernameException

Thank you!

I'm looking at a temp. login link as well, for a specific use case. The steps outlined above make sense, thanks.

Get the user’s account details from the database
Do what Auth#onLoginSuccessful does
Do what UserManager#onLoginSuccessful does

Regarding steps 9-11, can't you use $auth->admin()->logInAsUserById for this? Or is there anything I'm missing? Of course I intend to use it after implementing steps 1-8 correctly.

@nssnl You could use Auth#forgotPassword plus Auth#resetPasswordAndSignIn for this as well, sending the token via email, but using completely different language (that doesn’t match the method names but the use case of temporary login links). This has obvious side effects, though, namely changing the user’s password on every login. Thus, if you allow password-based logins as well, you shouldn’t use this. As for replacing steps 9–11, you are indeed right. The only difference (right now) would be that this doesn’t update the timestamp of the user’s last login.


Documentation of chainer.links.Linear has room for improvement

https://docs.chainer.org/en/latest/reference/generated/chainer.links.Linear.html

The bias parameter doesn't exist
Explanation on how W and b are initialized ignores initialW and initial_bias
There's no explanation on how out_size=None works (except in the example section)
There's no explanation on how initialW=None works

In addition to the above, I think shapes and dtypes of W and b should be documented, otherwise they are out of the scope of the compatibility policy. However, this is not specific to chainer.links.Linear.

@Crissman Shapes are documented in some parameters. Please see hx etc. in n_step_gru: https://docs.chainer.org/en/stable/reference/generated/chainer.functions.n_step_gru.html

Next step is to go through the documentation of all of the functions, and add shape and maybe dtype information to them. Reviewing some of the other frameworks to see how they handle this.

Let me close this issue and continue discussion in #2182.


Fix "Reindent" option for sqlformat.

What does this implement/fix? Explain your changes.
For sqlparse-0.2.3 and sqlparse-0.2.4, beautifying sql will throw "sqlformat: error: argument -r/--reindent: ignored explicit argument". I remove the param asignment in the argument and change if condition.
Does this close any currently open issues?
No.
Any other comments?
The code works with user's config about "Reindent" in settings->atom-beautify->sql and I hava tested it in both Ubuntu and Windows.
Checklist
Check all those that are applicable and complete.
It is the first time I use Travis CI. It passed linux and failed osx, saying "Couldn't set selectedTextBackgroundColor".

[x] Merged with latest master branch
[ ] Regenerate documentation with npm run docs
[x] Add change details to CHANGELOG.md under "Next" section
[ ] Added examples for testing to examples/ directory
[ ] Travis CI passes (Mac support)
[x] AppVeyor passes (Windows support)

Related to https://github.com/Glavin001/atom-beautify/pull/1926

@szeck87 Do you recall why the SQL test case was disabled?
See https://github.com/Glavin001/atom-beautify/tree/master/examples/nested-jsbeautifyrc/sql/original
We have sqlparse installed for Travis CI: https://github.com/Glavin001/atom-beautify/blob/master/requirements.txt#L3

Published to v0.32.2


Missing Default Notification Channel metadata in AndroidManifest.

Hi everyone,
I have this problem and with that the 'heads up' notification is not showing in the background, the notification only has the icon in the status bar.
I use the Admin SDK to send notifications.
const payload: admin.messaging.MessagingPayload = {
    notification: {
        title: notification.title,
        body: notification.message,
        sound: 'default',
        android_channel_id: 'high_importance_channel'
    }

W/FirebaseMessaging(11418): Notification Channel requested (high_importance_channel) has not been created by the app. Manifest configuration, or default, value will be used.
W/FirebaseMessaging(11418): Missing Default Notification Channel metadata in AndroidManifest. Default value will be used.

My AndroidManifest:
<meta-data
    android:name="com.google.firebase.messaging.default_notification_channel_id"
    android:value="high_importance_channel"
    />

Notification Channel:
NotificationChannel(
    channelKey: 'high_importance_channel',
    channelName: 'High Importance Notifications',
    channelDescription: 'High Importance Notifications',
    playSound: true,
    enableVibration: true,
    importance: NotificationImportance.Max,
  )

Notification Content:
final content = NotificationContent(
    id: notification.hashCode,
    channelKey: 'high_importance_channel',
    title: notification?.title,
    body: notification?.body,
    displayOnBackground: true,
    displayOnForeground: true,
    notificationLayout: NotificationLayout.BigText,
);

With another package 'flutter_local...' it works normally.

Hi, how you can fix this ?


Print solver iteration and convergence param

I have had some requests to add back some indication of PROCESS' status. People missed the visual indication that the solver was actually running and the feedback of the convergence parameter to see if the run looks likely to converge.
This PR causes a PROCESS run to look as follows:

Can the convergence parameter be shown in only scientific notation @timothy-nunn

Can the convergence parameter be shown in only scientific notation @timothy-nunn

Changed to always use scientific notation and to overwrite the previous line:
https://github.com/ukaea/PROCESS/assets/75321887/c64155b3-d4c6-48cc-b7d2-bdd84810f49d


Migrate databricks/notebooks/rapids_airline_hyperopt.ipynb to deployment docs

See https://github.com/rapidsai/cloud-ml-examples/issues/203#issuecomment-1410349915 for detailed migration instructions.
### Tasks
- [ ] Decide if notebook should be migrated and add "migrate: X" label (if no also close this issue)
- [ ] Test if notebook works
- [ ] Fix up anything that needs changing
- [ ] Ensure notebook has good title, description and metadata tags in the first cell
- [ ] Replace deployment instructions with links to docs pages
- [ ] Copy notebook into a new folder into deployment docs examples
- [ ] Copy any supporting files to the folder
- [ ] Add notebook to examples toctree
- [ ] Make PR to deployment docs repo

@skirui-source is currently writing up some Databricks deployment instructions in https://github.com/rapidsai/deployment/issues/92.
This notebook doesn't have much about deployment in, so it would be great to add a little pre-amble about launching on Databricks and link to the page @skirui-source is working on.

I'll take a look at this


Navbar added

I have added the navbar for the website which contains links to different sections of the website
fixes #11

On hovering

@neha030 Thanks for the pr but  you need to edit this like- the css file of index.html, it should be saved on styles/index.css file and the logo should also be in the images folder.

Sure , i will make the necessary changes

Thank you @neha030


IRGen: Fix DynamicSelfType metadata recovery in @objc convenience init [5.1]

An @objc convenience initializer can replace 'self'. Since IRGen
has no way to tell what the new 'self' value is from looking at
SIL, it always refers back to the original 'self' argument when
recovering DynamicSelfType metadata. This could cause a crash
if the metadata was used after the 'self' value had been
replaced.
To fix the crash, always insert the metadata recovery into the
entry block, where the 'self' value should be valid (even if
uninitialized, the 'isa' pointer should be correct).
Fixes rdar://problem/50594689.

@swift-ci Please test

Build failed
Swift Test OS X Platform
Git Sha - fb4f518708e1c40a0f6b648ca95ea2168bdb1737

Test failure is lldb flakiness...

@swift-ci Please test macOS


[MINOR][INFRA] Rename build_maven.yml and build_maven_java21.yml

What changes were proposed in this pull request?
This PR proposes to change the name of build_maven.yml and build_maven_java21.yml from

Build using Maven (master, Scala 2.13, Hadoop 3, JDK 17) -> Build \ Maven (master, Scala 2.13, Hadoop 3, JDK 17)
Build using Maven (master, Scala 2.13, Hadoop 3, JDK 21) -> Build \ Maven (master, Scala 2.13, Hadoop 3, JDK 21)

Why are the changes needed?
To make it easier to navigate, and to be consistent. By doing this, you don't have to click "Show more workloads" at https://github.com/apache/spark/actions

Does this PR introduce any user-facing change?
No, dev-only.
How was this patch tested?
Will be tested in this PR's GitHub Actions.
Was this patch authored or co-authored using generative AI tooling?
No.

Merged to master.


Redirect all traffic from Http to Https - Pybottle- Python 3

Hi guys
I have an app which is running on Https just fine but I need to redirect all my Http traffic to Https version. Now who request Http version got an error.
I had tried redirecting traffic using Bottle SSLify but seams its not working on Python 3. I'm using Python 3.7 and Ubuntu latest version.
Any help is appropriated.
Here is my app:
from bottle import run, route, template, static_file, error, ServerAdapter
# ======== Start ======== Pages ========
@route('/')
def index():
    return template('./home/index')
# ======== End ======== pages ========

# ======== Start ======== Static files route ========
@route('/static/img/<filename:path>')
def img_static(filename):
    return static_file(filename, root='./static/img')
@route('/static/css/<filename:path>')
def css_static(filename):
    return static_file(filename, root='./static/css')
@route('/static/js/<filename:path>' )
def js_static(filename):
    return static_file(filename, root='./static/js')
# ======== End ======== Static files route ========

# ======== Start ======== Custom error pages ========
@error(404)
def error404(error):
    return template('./home/404')
# ======== End ======== Custom error pages ========

# ======== Start ======== SSL ========
class SSLWSGIRefServer(ServerAdapter):
    def run(self, handler):
        from wsgiref.simple_server import make_server, WSGIRequestHandler
        import ssl
        if self.quiet:
            class QuietHandler(WSGIRequestHandler):
                def log_request(*args, **kw): pass
            self.options['handler_class'] = QuietHandler
        srv = make_server(self.host, self.port, handler, **self.options)
        srv.socket = ssl.wrap_socket (
        	srv.socket,
        	certfile='ssl.pem',
        	server_side=True)
        srv.serve_forever()
srv = SSLWSGIRefServer(host="<IP_ADDRESS>", port=8090)
# ======== End ======== SSL ========
if  __name__ == '__main__':
    run(reloader=True,debug=True,server=srv)

Bottle itself does not handle SSL or cares about the protocol the request was issued with. You need to configure your HTTP server to also listen to the HTTP port, and then either use features of the HTTP server or a small WSGI middleware to redirect users to HTTPS for all requests. But please note:

I strongly suggest using a reverse proxy (e.g. nginx) for SSL offloading, for both performance and security reasons. Also, wsgiref is not meant for production use, only for testing, even if used behind a reverse proxy.
Accepting connections on HTTP is a security risk, as plain-text passwords may be submitted over unencrypted HTTP before the client is redirected. Most modern browsers default to HTTPS, so HTTP->HTTPS redirects should no longer be necessary.
If you are using wsgiref just for testing, then it would make even more sense to not auto-redirect requests, so you notice errors in your application that would later expose users to unencrypted HTTP.

Thanks for your great answer @defnull . I was using this app for production not testing ! good to know about wsgiref.

@defnull I'm a little confused now. I understand when you told I should use middleware to redirect users to HTTPS but if now I don't have a web server how my app is running in https version?
SSLWSGIRefServer is not my web server now?
Do you know how can I redirect my http traffic to https using current web server and not using Apache or Nginx ?
I want to first learn how to deploy my app completely then I will find a way how to handle a great web server
:)


VSS migration tool

Idea @futurepaul and I had, we could have a simple flow that migrates their cloud storage from one server to another.
This only would not work from transfering from a self hosted back to ours because we use an authenticated client. We could do some matching on the storage url for ours, but I think this is probably sufficient

That's interesting, but couldn't it just be easier to say to import their file into mutinywallet.com ?

That's interesting, but couldn't it just be easier to say to import their file into mutinywallet.com ?

this is for leaving from app.mutinywallet.com
the think is instead of just changing the string to a new url, we can have it be its own screen so the user can wait for everthing to safely transfer over


configure sentry to upload iOS/Android native debug symbols

https://docs.sentry.io/clients/cocoa/dsym/
https://docs.sentry.io/clients/java/modules/android/

Hi! I will close this, since we upgrade the starter and we are now using latest version of sentry that have different integration


Asterisk animation

Would be nice if something eye-catching happened to the row of asterisks when I select a site - would be re-assuring. Maybe each asterisk is blanked out in turn with a very short delay (e.g. 0.1 sec) to create a "flow" sensation?

Simple version added


Launch preLaunchTask should complete before resolveDebugConfiguration

When attaching to a program using cppdbg with processId as ${command:pickProcess}, the command pick does not wait for the preLaunchTask initialization/finalization, processId command pick should start just after the preLaunchTask finalization.
Please refer to this issue: https://github.com/microsoft/vscode-cpptools/issues/5287

Good observation: launch config resolution and variable substitution should only take place after the preLaunchTask has finished.

@gustavomassa I acknolwedge the behavior you have hit. However we were always behaving like that, we can change as you suggest to first run the preLaunchTask and only then resolve. This could potentialy break extensions that rely on filling in the preLaunchTask attribute as part of the resovleDebugConfigurations call. I am not sure if there are extensions like this, but there could be.
I have just checked our docs and our API spec and as far as I saw we do not specify what should be run first.
Since there are still two weeks unitl the end of endgame I am fine with changing the behavior to first run the preLaunchTask. Hopefully that should give us enough time to catch any potential breakages.

Actually I just played around with this and we can not change it, since some preLaunchTask depend on variables to be resolved before it is run.
For example, our starter Typescript extensions has the following launch configuration:
And because preLaunchTask is ${defaultBuildTask} that requires that we first resolve variables and only then run the prelaunch task. Due to this, I am pushing this issue to On-Deck and I am open for suggestions
{
			"name": "Run Extension",
			"type": "extensionHost",
			"request": "launch",
			"runtimeExecutable": "${execPath}",
			"args": [
				"--extensionDevelopmentPath=${workspaceFolder}"
			],
			"outFiles": [
				"${workspaceFolder}/out/**/*.js"
			],
			"preLaunchTask": "${defaultBuildTask}"
		}

Thank you @isidorn for investigating this!
From what you describe, there are two different needs:

Ability to use in preLaunchTask variables defined when running resolveDebugConfiguration - Current behavior, needed by Typescript.
Ability to use in resolveDebugConfiguration variables defined when running preLaunchTask - My case and @gustavomassa's case.

Given that the order in which these are executed is arbitrary, a potential solution would be to propose another equivalent to preLaunchTask that would be called before resolveDebugConfiguration.
So, we would have an order of execution like:

preResolveTask (name TBD)
resolveDebugConfiguration
preLaunchTask

Is this a possibility that could be considered?

@daniv-msft yes that is one option. Though please note that we already have a postDebugTask that runs after debugging, so what you are suggesting is to introduce a third task. While it is a possiblity I would first like to try to find a smaller scoped solution.
But is it possible that your extension simply handles this on it's own?
As part of the resolveDebugConfiguration you can use the Task api to run any task you want?

@isidorn Thank you for your reply. I prototyped what you suggested, and running the task directly from the resolveDebugConfiguration seems to be working.
However, that implies recreating the equivalent of the preLaunchTask logic manually, which is not great:
public async resolveDebugConfigurationAsync(debugConfiguration: vscode.DebugConfiguration): Promise<vscode.DebugConfiguration> {
    const targetTaskName = debugConfiguration[`preLaunchTask`];
    const availableTasks: vscode.Task[] = await vscode.tasks.fetchTasks();
    const targetTask = availableTasks.find(t => t.name === targetTaskName);
    const taskExecution = await vscode.tasks.executeTask(targetTask);
    await new Promise((resolve, reject): void => {
        vscode.tasks.onDidEndTask((e: vscode.TaskEndEvent) => {
            if (e.execution.task.name === taskExecution.task.name) {
                resolve();
            }
        });
    });

    // Code that relies on the task being executed here.
    ...

    // TODO: Find a way so that the preLaunchTask don't get executed another time when resolveDebugConfiguration completes.
}

Also, I'm not sure how sustainable it is on the long run. Typically, if in two months a timeout is added by VS Code on resolveDebugConfiguration to limit the maximum time spent before returning (as it was added for the task provider API), this solution wouldn't work anymore. The task we run takes around 20 seconds to complete, and waits for a user interaction, so we would be very sensitive to any timeout added.
Looking again at the Typescript example you provide, I'm wondering if we could find a solution by resolving variables (such as ${defaultBuildTask}) before running preLaunchTask, but only calling the resolveDebugConfiguration function after that.
That way, we would fix the scenario I'm presenting without breaking Typescript. Would this be possible?

@daniv-msft great to hear that the workaround is working for you.
Yes the suggestion which you said that we only first resolve variables but do not call resolveDebugConfiguration has crossed my mind, however that might break some other corner case.
However I am open for experimenting with that change and am also open for a PR which tackles this.

Please note that there are two resolveDebugConfiguration hooks: one before variables have been substituted, one (resolveDebugConfigurationWithSubstitutedVariables) after the substitution.
If I understand the current logic correctly the preLaunchTask is run after both hooks.
Would it help (and would it be possible) to run the preLaunchTask after the first hook but before the second?

@weinand yes I guess we could also change it such that we run resolveDebugConfiguartion then run the prelaunchTask and then run the resolveDebugConfigurationWithSubstitutedVariables. However I am not sure if this would cover @daniv-msft use case.

... and we would not run the second hook if preLaunchTask fails.

@isidorn, @weinand > Thank you for your replies. Yes, that solution would work for me!

Since that might potentialy break some clients I am assigning this to August so we do this change at the start of the August milestone so we have enough time to gather feedback.

Thanks @isidorn, that sounds indeed reasonable.

As we agreed upon I have pushed a change such that prelaunchTask is ran before the resolveDebugConfigurationWithSubstitutedVariables
I have verified that this does not break the starter TS ext sample.
@daniv-msft it would be great if you try your use case and let us know if it works for you. VS Code insiders with this change should be out on Friday.

Thanks @isidorn, that's great! I'll give this a try once the VS Code insiders release is available, and I will let you know how it goes.

@weinand might be. Let's wait for the C++ team to investigate https://github.com/microsoft/vscode/issues/105179 and let us know
fyi @wardengnaw and @gregg-miskelly for C#. Gist of the above discussion is in this comment

I can't think of any reason why this change would be a problem for C#. @WardenGnaw do you have the cycles to see what is going on with #105179?

#105179 was reported by a member of the Language Service C++ team.
The issue is "Build and Debug Active File" is a TextEditorCommand (C_Cpp.BuildAndDebugActiveFile) and it uses a ConfigurationProvider to find configurations to display to the user. The user selects a configuration and then the command launches the debugger with the selected configuration.
@isidorn @weinand Do we need to write the configuration selected to a launch.json before calling vscode.debug.startDebugging?
Adding C++ Language Server Folks:
@sean-mcmanus who worked on the feature
@elahehrashedi who orignally reported this issue

@WardenGnaw no, you do not need to write configurations into launch.json before calling startDebugging. You can just pass the full configuration into the startDebugging API and it should just work.

Actually, it might be the  Attempt to use the user's (possibly) modified configuration before using the generated one.
If that call throws an exception, we call startDebugging with the full configuration.
Did VS Code add a feature to show an error dialog when it could not find a matching name launch configuration?

@WardenGnaw not that I can remember.
If you could write a simple starter extension that shows this problem that would be great.

@isidorn This is not a regression for 1.49.0 since this also appears in 1.48.1. It is due to trying to use vscode.debug.startDebugging with a configuration that does not exist in launch.json.

@sean-mcmanus We should validate if that configuration exists in launch.json instead of calling vscode.debug.startDebugging and using the thrown exception to detect if we should launch via configuration.

Thanks for trying it in older versions, that always helps.

Based on @daniv-msft comment adding verified label.


Don't Merge! PR real time test for target branch full build

OPS Build status updates of commit c1dab72:
:clock10: Full build: the average full build time is 6 min(s) 8 sec(s), this is based on the last 220 build(s) for this repository.
:warning: This is a FULL build due to the 'pr-basebranch' branch had a configuration change, normally no action is required on your part. In the result that you find subsequent builds still performing full builds, please contact your repository admin to manually perform a full build on the 'pr-basebranch' branch. For more detailed info, please click here.

OPS Build status updates of commit c1dab72:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit c1dab72:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

docs-ref-conceptual/testing.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


405 Error after update to 1.5.0

Getting this error when hitting the login button on the main page now.  Everything was good before updating.  Not sure where to look for the problem here.  Any help?
Status: "HTTP 405 (GET /sso/ArrayArray?response_type=code&redirect_uri=https%3A%2F%2Fpathfinder.example.com%2Fsso%2FcallbackAuthorization&client_id=123456789123456789123456789&scope=esi-corporations.read_corporation_membership.v1%20esi-location.read_location.v1%20esi-location.read_online.v1%20esi-location.read_ship_type.v1%20esi-ui.open_window.v1%20esi-ui.write_waypoint.v1%20esi-universe.read_structures.v1&state=a137ac53b2588aa61873fc28?response_type=code&redirect_uri=https%3A%2F%2Fpathfinder.example.com%2Fsso%2FcallbackAuthorization&client_id=123456789123456789123456789&scope=esi-corporations.read_corporation_membership.v1%20esi-location.read_location.v1%20esi-location.read_online.v1%20esi-location.read_ship_type.v1%20esi-ui.open_window.v1%20esi-ui.write_waypoint.v1%20esi-universe.read_structures.v1&state=a137ac53b2588aa61873fc28)".             Use your browsers Back button to navigate to the page you have previously come from.
                        Message: Method Not Allowed

No idea what this was about.  I pulled a fresh copy of everything down and back to normal.

Same here... Still have that issue...

Ok, "composer update" did the job ...

Yeah the composer.lock isn't under version control, upgrade guide isn't accurate.
You have to run composer update


Component-Scoped CSS in React

The guide says

Unless you spread components out over multiple files (for example with CSS Modules), scoping CSS in React comes with caveats. Very basic CSS works great out-of-the-box, but some more complex features such as hover states, media queries, and pseudo-selectors all either require heavy dependencies to reinvent what CSS already does - or they simply don’t work.

This is needlessly spreading fud.  In React, you can just style your components with classes and style those classes in css files (or sass or less).  This is how web development has always been done, and it is familiar to designers.  As for scoping, I just prefix classes with a component-specific prefix and don't find this to be much of a problem, but there are other options like CSS Modules available.  There are also options for keeping styling in the same file as the rest of the component, for instance see https://github.com/cssinjs/react-jss, which has additional benefits.
The complex features you mention are only an issue if you use inline styles.  Doing that has some advantages that go far beyond scoping, but it is also kind of radical.

@greaber I'd like to point out that the React team approved this comparison less than 2 months ago, so it's definitely not FUD. If there have been new developments in that time however, we're happy to update to reflect the evolving ecosystem. If that's the case, could you clarify which part of that paragraph you find misleading or false?
To address your other comments:

You can just style your components with classes and style those classes in css files (or sass or less).

Yes, global CSS is still a thing, though it has nothing to do with React, Vue, or any JavaScript library. This section is titled Component-Scoped CSS, so that's what we're discussing here.

This is how web development has always been done

Appeal to Tradition fallacy.

it is familiar to designers.

I've worked with CSS in React projects for even longer than I have with Vue. Designers that write CSS usually also want to edit HTML. With Vue, they can not only write the same CSS (or CSS preprocessor) they're used to and have it automatically be scoped to components without having to think about it, but they can also edit familiar HTML. Having to jump into JavaScript and JSX with React has been much less friendly.

As for scoping, I just prefix classes with a component-specific prefix and don't find this to be much of a problem

That's great you don't find it much of a problem, but creating a prefix for every component and staying consistent with that prefix across multiple files, while also maintaining discipline in not using that hand-scoped CSS across multiple components is still not as convenient as adding only a single word (scoped) in a single component file.

there are other options like CSS Modules available.

Yep, we actually mention CSS Modules in the very first sentence you quoted.

There are also options for keeping styling in the same file as the rest of the component, for instance see https://github.com/cssinjs/react-jss, which has additional benefits.

Yes, there are many libraries like this. I mention them in "heavy dependencies to reinvent what CSS already does." JSS is an extra 5KB min+zip to your build, plus the weight of all the plugins (like jss-nested if you want pseudo-selectors :hover) and additional libraries like color for essential color manipulation. In my experience, those really add up quick. There are also issues I didn't even mention in the comparison where the compiled CSS is wrong or the result is unexpected.
These are classes of problems that simply don't exist with Vue's CSS scoping.

Hi, Chris, I am (of course) not saying that there have been new developments in the last two months that invalidate the conclusions of the React team.  That said, if the React team itself were writing this comparison, I'm sure it would look a lot different that what your comparison looks like.  It seems to me that you guys came to a sort of tolerant compromise; it isn't that they endorsed your comparison so strongly that any criticism must reflect disagreement with them.
I think the scoped CSS section will give the impression to some people that there is something really hard about CSS in React, and that is not accurate.  Especially the idea that things might seem to work at first but there will be problems down the line is scary to people.
It is interesting that you have found designers react positively to editing Vue.  As a programmer, I have an instinctual reaction against implementing a new programming language in html, and I really liked React for its Just Javascript approach.  But it makes sense that designers might be more comfortable with Vue.

I am (of course) not saying that there have been new developments in the last two months that invalidate the conclusions of the React team.

My comment about new developments in the last couple months was earnest. For example, styled-components was released just a few weeks ago and may be a game changer. I haven't had time to look too much into it, but from what I've heard, it allows you to use every feature of normal CSS (without caveats) within component files, even with syntax highlighting. That's awesome! From my understanding, it also adds extremely little weight to the build, as it's just a thin layer over real CSS made dynamic by embedding JS in a template string.
I believe features like color manipulation would still require additional dependencies, so that wouldn't be ideal. It also requires designers to write ES2015 JavaScript, so that's not great either. If it really does provide what it promises however, it's possibly now the best option for teams where designers are either programmers or aren't editing code at all.

It seems to me that you guys came to a sort of tolerant compromise

It was certainly a discussion, but I don't think it was a compromise. Every single section that Dan felt uncomfortable with was updated until he was happy. There was never anything we refused to change after discussion and no impasses where we couldn't agree, so settled on something neither of us fully endorsed. I'm actually much happier with the comparison after his feedback.

I think the scoped CSS section will give the impression to some people that there is something really hard about CSS in React, and that is not accurate. Especially the idea that things might seem to work at first but there will be problems down the line is scary to people.

If it were simple, people wouldn't keep inventing new solutions. And when new solutions popped up, users wouldn't keep jumping on them like life rafts. The fact that there may be problems down the line when using CSS-in-JS solutions is a fact that should be scary. I've worked with them in React for over 2 years. A lot of my work was React consulting for a while, so I've even used a pretty wide variety. I've experienced the trade-offs and gotchas first-hand. One such library (Aphrodite) even uses the tagline It's inline styles, but they work!, because styles not working is such a common experience. Even that tagline is unfortunately more of an aspiration than a reality.

You have mostly convinced me that the section is OK as it is, so I will close the issue.  Thank you for the engagement.

@chrisvfritz
It has been a while and while vue has a wonderful prescription. React has a nearly identical cousin now in styled-jsx. Was reading the guide and thinking this is a really nuanced and fair comparison but found the CSS section to be no longer representative of the current options in React.
Really great comparison and framework. Just wanted to bump this. I think a fair criticism is that React doesn't offer anything like this themselves but it seems styled-jsx gives a React developer the vue experience only instead of using "scoped" they use "jsx", the technique for scoping is identical from what I can tell. :-)

@iammerrick It looks like styled-jsx still adds 2KB gzipped to the build (plus the size of any plugins), doesn't allow the use of CSS preprocessors, and requires some hacks to get syntax highlighting in most code editors. While the technique for scoping does look identical, the implementation still seems quite limited compared to Vue's.

👌


Fix NPE caused by null return

This PR fixes the console spam of an NPE caused by WorldGuardWrapper returning null after encountering an unsupported region flag.
ex.
[06:19:39 WARN]: [LuckPerms] An exception was thrown by me.lucko.extracontexts.calculators.WorldGuardFlagCalculator whilst calculating the context of subject CraftPlayer{name=Sxtanna}
java.lang.NullPointerException: Cannot invoke "java.util.Map.forEach(java.util.function.BiConsumer)" because "flags" is null
        at me.lucko.extracontexts.calculators.WorldGuardFlagCalculator.calculate(WorldGuardFlagCalculator.java:29) ~[ExtraContexts.jar:?]
        at me.lucko.extracontexts.calculators.WorldGuardFlagCalculator.calculate(WorldGuardFlagCalculator.java:21) ~[ExtraContexts.jar:?]

This PR solves this problem by simply null checking the return value, a bandaid solution in case bumping the version of WGW is not desirable.

Merged #41 instead, cheers


Add omitempty for Violation Extras

For https://github.com/konveyor-ecosystem/kantra we need to allow an option to generate the reports in JSON. The JSON marshal was failing as this field was leaving an empty map.

@eemcmullan please remove extras fields from the demo-output.yaml and this should be good to go