consider eliminating elixir-protobuf/protobuf dependency

According to hex.pm, the status of protobuf projects is roughly

package
recent downloads
notes

tomas-abrahamsson/gpb
436_657
primarily targets erlang fwict

elixir-protobuf/protobuf
223_097
name collision with below

bitwalker/exprotobuf
58_526
name collision with above

ahamez/protox
4_627
requires protoc installed on compilation machine

Currently spear uses elixir-protobuf/protobuf, but this causes incompatibility with any project that uses bitwalker's implementation, including exponentially/extreme. For use in a service/application, I wouldn't mind just choosing either but since this is a library we need to be as dependency-permissive as possible.
So because of the module conflicts, I consider both elixir-protobuf/protobuf and bitwalker/exprotobuf non-starters.
Similarly I'm not comfortable adding installation instructions for protoc to this library. Acceptable in a service/application but this library should bite the bullet of (com/trans)piling .proto files into an elixir/erlang format.
Ideally I'd like to write two separate libraries: a parser/transpiler for proto into elixir/erlang terms and then a protobuf engine which performs the encoding/decoding. That way libraries can use the transpiler to generate some files and then only export a dependency on the engine.
However, I only have so much time and energy I realize that with my strong opinions about what is right and wrong library behavior I am poking the library version of this XKCD bear:

:gpb seems to be the only good option currently. It isn't completely ideal (e.g. it fails to install with Mix.install/1 :facepalm:) but I might need to just pick my poison and move on.

from a quick check in a sandbox it appears as though :gpb will be a use-able option
it's all erlang records which is kinda awkward to deal with in Elixir but Spear should be abstracting away the need to deal with those low-level datastructures anyways


Rosenpass Preshared key is not being updated

Describe the problem
When RosenpassEnabled is on, the psk is not being rotated.
To Reproduce
Steps to reproduce the behavior:
Used the most basic case two peers (One is up, other joins.  Both Debian 12 amd64 - VPS)

Start the first peer with: netbird up --enable-rosenpass --setup-key=GUID
Start the second peer with the same command: netbird up --enable-rosenpass --setup-key=GUID
Start watch -n 0.1 wg show wt0 preshared-keys in another session
Observe the original key will not update.
  Waiting long enough for the key to clear, bringing the peer back up will use the previous psk.

Probably not relevant, but my config has: "PreSharedKey": "",
Expected behavior
Following the detailed implementation guide, I believe the key should be set intiially to a common key, and every two minutes it should be rotated.  Running watch -n 0.1 wg show wt0 preshared-keys it is the same key throughout the entire time.  (cXJVNjRCYndEak90ejdVTWhlQ0JibDF3cnVPeEdudW4=)
After using the rust library of rosenpass, I believe this should be rotated every two minutes and all peers should see the key changed while watching that command.
Are you using NetBird Cloud?
Both.  I found this on my self hosted instance, but I stopped the service, deleted my config, restarted the service pointing to the cloud and see the same thing.  It seems like it should have gotten to a mostly clean slate pointing to the cloud instance.
NetBird version
v0.33.0
Additional context
Ran a couple traces, and do occasionally see: failed to add rosenpass peer: failed to resolve peer endpoint address: lookup <IP_ADDRESS>/32: no such host, but that seems unrelated as the log below doesn't error and I still see the same PSK.
This is two VPSs and the firewall has an allow of <IP_ADDRESS>/16 for all udp packets.
Result of running netbird debug for 3m -AS (should be long enough for initial key exchange and 2 minute update)
2024-12-01T08:37:37-05:00 INFO client/internal/statemanager/manager.go:281: client was not shut down properly, cleaning up dns_state
2024-12-01T08:37:37-05:00 WARN client/server/server.go:567: failed to restore residual state: 1 error occurred:
	* perform cleanup: 1 error occurred:
	* cleanup state for dns_state: restore unclean shutdown dns: restoring dns for interface wt0: removing resolvconf configuration for wt0 interface: exit status 99
2024-12-01T08:37:37-05:00 INFO client/internal/connect.go:111: starting NetBird client version 0.33.0 on linux/amd64
2024-12-01T08:37:38-05:00 INFO client/internal/connect.go:242: connecting to the Relay service(s): rels://relay.netbird.io:443
2024-12-01T08:37:38-05:00 INFO relay/client/picker.go:66: try to connecting to relay server: rels://relay.netbird.io:443
2024-12-01T08:37:38-05:00 INFO [relay: rels://relay.netbird.io:443] relay/client/client.go:165: create new relay connection: local peerID: heCBbl1wruOxGnun6fpplP2P4Qnf1Hj+Wt6p+ZPb7gc=, local peer hashedID: sha-/mJ/2jan7aZe44Jiw+gPXxjQOTeq5NbNh5TVJAWbGvI=
2024-12-01T08:37:38-05:00 INFO [relay: rels://relay.netbird.io:443] relay/client/client.go:171: connecting to relay server
2024-12-01T08:37:38-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:188: relay connection established
2024-12-01T08:37:38-05:00 INFO relay/client/picker.go:84: connected to Relay server: rels://relay.netbird.io:443
2024-12-01T08:37:38-05:00 INFO relay/client/picker.go:58: chosen home Relay server: rels://relay.netbird.io:443
2024-12-01T08:37:38-05:00 INFO client/iface/wgproxy/ebpf/proxy.go:91: local wg proxy listening on: 3128
2024-12-01T08:37:38-05:00 INFO client/iface/wgproxy/factory_kernel.go:29: WireGuard Proxy Factory will produce eBPF proxy
2024-12-01T08:37:38-05:00 INFO client/internal/engine.go:327: rosenpass is enabled
2024-12-01T08:37:38-05:00 INFO client/internal/engine.go:331: running rosenpass in strict mode
2024-12-01T08:37:39-05:00 INFO client/internal/rosenpass/manager.go:158: starting rosenpass server on port 39981
2024-12-01T08:37:39-05:00 INFO client/internal/routemanager/manager.go:144: Routing setup complete
2024-12-01T08:37:39-05:00 INFO client/firewall/create_linux.go:72: creating an nftables firewall manager
2024-12-01T08:37:39-05:00 INFO client/internal/dns/host_unix.go:54: System DNS manager discovered: resolvconf
2024-12-01T08:37:39-05:00 INFO client/internal/peer/guard/sr_watcher.go:106: reconnected to Signal or Relay server
2024-12-01T08:37:39-05:00 INFO signal/client/grpc.go:149: connected to the Signal Service stream
2024-12-01T08:37:39-05:00 INFO client/internal/engine.go:1419: Network monitor is disabled, not starting
2024-12-01T08:37:39-05:00 INFO client/internal/connect.go:270: Netbird engine started, the IP is: <IP_ADDRESS>/16
2024-12-01T08:37:39-05:00 INFO management/client/grpc.go:155: connected to the Management Service stream
2024-12-01T08:37:39-05:00 WARN client/internal/engine.go:597: running SSH server is not permitted
2024-12-01T08:37:39-05:00 INFO client/internal/acl/manager.go:61: ACL rules processed in: 1.852855ms, total rules count: 2
2024-12-01T08:37:39-05:00 ERRO client/internal/dns/server.go:322: apply config: applying resolvconf configuration for wt0 interface: exit status 99
2024-12-01T08:37:40-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/guard/guard.go:138: start listen for reconnect events...
2024-12-01T08:37:41-05:00 ERRO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:433: peer not found: sha-brMfdPjCp7U2FG0haITs30DcW0bYZU60avWnjqF9cL0=
2024-12-01T08:37:41-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:217: open connection to peer: sha-brMfdPjCp7U2FG0haITs30DcW0bYZU60avWnjqF9cL0=
2024-12-01T08:37:41-05:00 INFO client/iface/wgproxy/ebpf/proxy.go:102: turn conn added to wg proxy store: rels://streamline-us-nyc1-2.relay.netbird.io:443, endpoint port: :1
2024-12-01T08:37:41-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:441: created new wgProxy for relay connection: <IP_ADDRESS>:1
2024-12-01T08:37:41-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:470: start to communicate with peer via relay
2024-12-01T08:37:41-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:325: set ICE to active connection
2024-12-01T08:37:49-05:00 INFO client/server/debug.go:312: Log level set to trace
2024-12-01T08:37:49-05:00 INFO client/internal/engine.go:261: Network monitor: stopped
2024-12-01T08:37:49-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:536: closing all peer connections
2024-12-01T08:37:49-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:345: start to Relay read loop exit
2024-12-01T08:37:49-05:00 DEBG client/iface/wgproxy/ebpf/proxy.go:192: remove turn conn from store by port: 1
2024-12-01T08:37:49-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:544: waiting for read loop to close
2024-12-01T08:37:49-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:546: relay connection closed
2024-12-01T08:37:49-05:00 WARN [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:531: relay connection was already marked as not running
2024-12-01T08:37:49-05:00 TRAC [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:84: stop handshaker
2024-12-01T08:37:49-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/guard/guard.go:156: context is done, stop reconnect loop
2024-12-01T08:37:49-05:00 DEBG signal/client/grpc.go:392: stream canceled (usually indicates shutdown)
2024-12-01T08:37:49-05:00 DEBG signal/client/grpc.go:155: signal connection context has been canceled, this usually indicates shutdown
2024-12-01T08:37:49-05:00 DEBG management/client/grpc.go:248: disconnected from Management Service sync stream: rpc error: code = Canceled desc = context canceled
2024-12-01T08:37:49-05:00 DEBG management/client/grpc.go:166: management connection context has been canceled, this usually indicates shutdown
2024-12-01T08:37:49-05:00 DEBG client/internal/engine.go:695: stopped receiving updates from Management Service
2024-12-01T08:37:49-05:00 ERRO client/internal/dns/server.go:194: failed to restore host DNS settings: removing resolvconf configuration for wt0 interface: exit status 99
2024-12-01T08:37:49-05:00 DEBG client/internal/routemanager/sysctl/sysctl_linux.go:87: Set sysctl net.ipv4.conf.all.src_valid_mark from 1 to 0
2024-12-01T08:37:49-05:00 INFO client/internal/routemanager/manager.go:179: Routing cleanup complete
2024-12-01T08:37:49-05:00 DEBG client/internal/engine.go:485: removing all peer connections
2024-12-01T08:37:49-05:00 DEBG client/internal/engine.go:497: removing peer from engine qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=
2024-12-01T08:37:49-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:212: close peer connection
2024-12-01T08:37:49-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:129: disable WireGuard watcher
2024-12-01T08:37:49-05:00 WARN [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:155: failed to close relay connection: use of closed network connection
2024-12-01T08:37:49-05:00 DEBG client/iface/iface.go:125: Removing peer qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM= from interface wt0
2024-12-01T08:37:49-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:219: ICE ConnectionState has changed to Closed
2024-12-01T08:37:49-05:00 DEBG client/internal/engine.go:1159: removing Netbird interface wt0
2024-12-01T08:37:49-05:00 DEBG client/iface/wgproxy/ebpf/proxy.go:113: free up ebpf wg proxy
2024-12-01T08:37:49-05:00 DEBG client/internal/ebpf/ebpf/wg_proxy_linux.go:39: free ebpf WG proxy
2024-12-01T08:37:49-05:00 DEBG client/internal/ebpf/ebpf/manager_linux.go:107: detach ebpf program
2024-12-01T08:37:49-05:00 ERRO client/iface/bind/udp_mux_universal.go:93: error while reading packet: shared socked stopped
2024-12-01T08:37:49-05:00 DEBG client/iface/bind/udp_mux_universal.go:88: stopped reading from the UDPConn due to finished context
2024-12-01T08:37:49-05:00 INFO client/iface/iface.go:220: interface wt0 has been removed
2024-12-01T08:37:50-05:00 INFO client/internal/engine.go:292: stopped Netbird Engine
2024-12-01T08:37:50-05:00 DEBG client/internal/statemanager/manager.go:205: persisted shutdown states: [nftables_state], took 240.925µs
2024-12-01T08:37:50-05:00 INFO client/server/server.go:645: service is down
2024-12-01T08:37:50-05:00 INFO client/internal/connect.go:293: stopped NetBird client
2024-12-01T08:37:50-05:00 TRAC client/server/server.go:221: client connection exited
2024-12-01T08:37:50-05:00 TRAC client/server/server.go:229: retry canceled
2024-12-01T08:37:51-05:00 DEBG client/internal/statemanager/manager.go:254: loaded state: dns_state
2024-12-01T08:37:51-05:00 INFO client/internal/statemanager/manager.go:281: client was not shut down properly, cleaning up dns_state
2024-12-01T08:37:51-05:00 WARN client/server/server.go:567: failed to restore residual state: 1 error occurred:
	* perform cleanup: 1 error occurred:
	* cleanup state for dns_state: restore unclean shutdown dns: restoring dns for interface wt0: removing resolvconf configuration for wt0 interface: exit status 99
2024-12-01T08:37:51-05:00 TRAC client/server/server.go:197: running client connection
2024-12-01T08:37:51-05:00 INFO client/internal/connect.go:111: starting NetBird client version 0.33.0 on linux/amd64
2024-12-01T08:37:51-05:00 DEBG client/internal/connect.go:166: connecting to the Management service api.netbird.io:443
2024-12-01T08:37:51-05:00 DEBG util/grpc/dialer.go:40: Using nbnet.NewDialer()
2024-12-01T08:37:51-05:00 DEBG util/net/dialer_nonios.go:52: Dialing tcp api.netbird.io:443
2024-12-01T08:37:51-05:00 DEBG client/internal/connect.go:174: connected to the Management service api.netbird.io:443
2024-12-01T08:37:51-05:00 DEBG util/grpc/dialer.go:40: Using nbnet.NewDialer()
2024-12-01T08:37:51-05:00 DEBG util/net/dialer_nonios.go:52: Dialing tcp signal.netbird.io:443
2024-12-01T08:37:51-05:00 DEBG signal/client/grpc.go:83: connected to Signal Service: signal.netbird.io:443
2024-12-01T08:37:51-05:00 INFO client/internal/connect.go:242: connecting to the Relay service(s): rels://relay.netbird.io:443
2024-12-01T08:37:51-05:00 DEBG relay/client/manager.go:95: starting relay client manager with [rels://relay.netbird.io:443] relay servers
2024-12-01T08:37:51-05:00 INFO relay/client/picker.go:66: try to connecting to relay server: rels://relay.netbird.io:443
2024-12-01T08:37:51-05:00 INFO [relay: rels://relay.netbird.io:443] relay/client/client.go:165: create new relay connection: local peerID: heCBbl1wruOxGnun6fpplP2P4Qnf1Hj+Wt6p+ZPb7gc=, local peer hashedID: sha-/mJ/2jan7aZe44Jiw+gPXxjQOTeq5NbNh5TVJAWbGvI=
2024-12-01T08:37:51-05:00 INFO [relay: rels://relay.netbird.io:443] relay/client/client.go:171: connecting to relay server
2024-12-01T08:37:51-05:00 DEBG util/net/dialer_nonios.go:52: Dialing tcp relay.netbird.io:443
2024-12-01T08:37:51-05:00 INFO [relay: rels://streamline-us-nyc1-1.relay.netbird.io:443] relay/client/client.go:188: relay connection established
2024-12-01T08:37:51-05:00 INFO relay/client/picker.go:84: connected to Relay server: rels://relay.netbird.io:443
2024-12-01T08:37:51-05:00 INFO relay/client/picker.go:58: chosen home Relay server: rels://relay.netbird.io:443
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface br-3ac6c2b00a2b - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface docker0 - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface br-e08f87324274 - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth555967d - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vethc9a3b26 - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth3ef8570 - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vethe3a775c - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vetha4895f0 - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth47739c8 - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vetha0c7f1b - it is not allowed
2024-12-01T08:37:51-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth2390b5c - it is not allowed
2024-12-01T08:37:51-05:00 DEBG client/iface/wgproxy/ebpf/proxy.go:47: instantiate ebpf proxy
2024-12-01T08:37:51-05:00 DEBG client/internal/ebpf/ebpf/wg_proxy_linux.go:11: load ebpf WG proxy
2024-12-01T08:37:51-05:00 INFO client/iface/wgproxy/ebpf/proxy.go:91: local wg proxy listening on: 3128
2024-12-01T08:37:51-05:00 INFO client/iface/wgproxy/factory_kernel.go:29: WireGuard Proxy Factory will produce eBPF proxy
2024-12-01T08:37:51-05:00 INFO client/internal/engine.go:327: rosenpass is enabled
2024-12-01T08:37:51-05:00 INFO client/internal/engine.go:331: running rosenpass in strict mode
2024-12-01T08:37:51-05:00 DEBG client/internal/rosenpass/manager.go:47: generated new rosenpass key pair with public key 7ddd986959cdca4acf953f35553da7689be8d4da5efb3f6fdba1e6221ea3c830
2024-12-01T08:37:51-05:00 INFO client/internal/rosenpass/manager.go:158: starting rosenpass server on port 54446
2024-12-01T08:37:51-05:00 DEBG client/internal/routemanager/sysctl/sysctl_linux.go:87: Set sysctl net.ipv4.conf.all.src_valid_mark from 0 to 1
2024-12-01T08:37:51-05:00 INFO client/internal/routemanager/manager.go:144: Routing setup complete
2024-12-01T08:37:51-05:00 DEBG client/iface/device/wg_link_linux.go:63: adding device: wt0
2024-12-01T08:37:51-05:00 DEBG client/iface/device/wg_link_linux.go:113: adding address <IP_ADDRESS>/16 to interface: wt0
2024-12-01T08:37:51-05:00 DEBG client/iface/device/device_kernel_unix.go:65: setting MTU: 1280 interface: wt0
2024-12-01T08:37:51-05:00 DEBG client/iface/configurer/kernel_unix.go:26: adding Wireguard private key
2024-12-01T08:37:51-05:00 INFO client/firewall/create_linux.go:72: creating an nftables firewall manager
2024-12-01T08:37:51-05:00 DEBG client/firewall/nftables/router_linux.go:702: added iptables rule: [-i wt0 -j ACCEPT]
2024-12-01T08:37:51-05:00 DEBG client/firewall/nftables/router_linux.go:702: added iptables rule: [-o wt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT]
2024-12-01T08:37:51-05:00 DEBG client/firewall/nftables/router_linux.go:680: Used iptables to add accept forward rules
2024-12-01T08:37:51-05:00 DEBG client/iface/device/device_kernel_unix.go:89: bringing up interface: wt0
2024-12-01T08:37:51-05:00 DEBG client/internal/statemanager/manager.go:205: persisted shutdown states: [nftables_state], took 180.682µs
2024-12-01T08:37:51-05:00 DEBG client/iface/device/device_kernel_unix.go:111: device is ready to use: wt0
2024-12-01T08:37:51-05:00 TRAC client/internal/dns/dbus_unix.go:28: error calling dbus: The name org.freedesktop.resolve1 was not provided by any .service files
2024-12-01T08:37:51-05:00 INFO client/internal/dns/host_unix.go:54: System DNS manager discovered: resolvconf
2024-12-01T08:37:51-05:00 DEBG signal/client/grpc.go:128: signal connection state READY
2024-12-01T08:37:51-05:00 INFO client/internal/peer/guard/sr_watcher.go:106: reconnected to Signal or Relay server
2024-12-01T08:37:51-05:00 INFO signal/client/grpc.go:149: connected to the Signal Service stream
2024-12-01T08:37:51-05:00 DEBG client/internal/engine.go:697: connecting to Management Service updates stream
2024-12-01T08:37:51-05:00 INFO client/internal/engine.go:1419: Network monitor is disabled, not starting
2024-12-01T08:37:51-05:00 INFO client/internal/connect.go:270: Netbird engine started, the IP is: <IP_ADDRESS>/16
2024-12-01T08:37:51-05:00 DEBG management/client/grpc.go:114: management connection state READY
2024-12-01T08:37:52-05:00 INFO management/client/grpc.go:155: connected to the Management Service stream
2024-12-01T08:37:52-05:00 DEBG management/client/grpc.go:252: got an update message from Management Service
2024-12-01T08:37:52-05:00 DEBG client/internal/engine.go:723: got TURNs update from Management Service, updating
2024-12-01T08:37:52-05:00 DEBG client/internal/engine.go:705: got STUNs update from Management Service, updating
2024-12-01T08:37:52-05:00 WARN client/internal/engine.go:597: running SSH server is not permitted
2024-12-01T08:37:52-05:00 INFO client/internal/acl/manager.go:61: ACL rules processed in: 2.376838ms, total rules count: 2
2024-12-01T08:37:52-05:00 DEBG client/internal/engine.go:773: got peers update from Management Service, total peers to connect to = 1
2024-12-01T08:37:52-05:00 DEBG client/internal/engine.go:958: creating peer connection qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=
2024-12-01T08:37:52-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:174: open connection to peer
2024-12-01T08:37:52-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:79: wait for remote offer confirmation
2024-12-01T08:37:52-05:00 DEBG client/internal/dns/service_listener.go:69: starting dns on <IP_ADDRESS>:53
2024-12-01T08:37:52-05:00 ERRO client/internal/dns/server.go:322: apply config: applying resolvconf configuration for wt0 interface: exit status 99
2024-12-01T08:37:52-05:00 DEBG client/internal/statemanager/manager.go:205: persisted shutdown states: [dns_state], took 192.463µs
2024-12-01T08:37:52-05:00 TRAC signal/client/grpc.go:403: received a new message from Peer [fingerprint: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=]
2024-12-01T08:37:52-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:283: OnRemoteOffer, on status ICE: Disconnected, status Relay: Disconnected
2024-12-01T08:37:52-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:171: sending answer
2024-12-01T08:37:53-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/guard/guard.go:138: start listen for reconnect events...
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:91: received connection confirmation, running version 0.33.0 and with remote WireGuard listen port 51820
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:79: wait for remote offer confirmation
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:87: OnNewOffer for ICE
2024-12-01T08:37:53-05:00 DEBG relay/client/manager.go:137: open peer connection via foreign server: rels://streamline-us-nyc1-2.relay.netbird.io:443
2024-12-01T08:37:53-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:165: create new relay connection: local peerID: heCBbl1wruOxGnun6fpplP2P4Qnf1Hj+Wt6p+ZPb7gc=, local peer hashedID: sha-/mJ/2jan7aZe44Jiw+gPXxjQOTeq5NbNh5TVJAWbGvI=
2024-12-01T08:37:53-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:171: connecting to relay server
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:105: recreate ICE agent
2024-12-01T08:37:53-05:00 DEBG util/net/dialer_nonios.go:52: Dialing tcp streamline-us-nyc1-2.relay.netbird.io:443
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface br-3ac6c2b00a2b - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface docker0 - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface br-e08f87324274 - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth555967d - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vethc9a3b26 - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth3ef8570 - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vethe3a775c - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vetha4895f0 - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth47739c8 - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface vetha0c7f1b - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface veth2390b5c - it is not allowed
2024-12-01T08:37:53-05:00 TRAC client/internal/stdnet/filter.go:24: ignoring interface wt0 - it is not allowed
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:116: gather candidates
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:126: turn agent dial
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:219: ICE ConnectionState has changed to Checking
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:297: discovered local candidate udp4 host <IP_ADDRESS>:51820
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:297: discovered local candidate udp4 srflx <IP_ADDRESS>:51820 related <IP_ADDRESS>:51820
2024-12-01T08:37:53-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:188: relay connection established
2024-12-01T08:37:53-05:00 INFO [relay: rels://streamline-us-nyc1-2.relay.netbird.io:443] relay/client/client.go:217: open connection to peer: sha-brMfdPjCp7U2FG0haITs30DcW0bYZU60avWnjqF9cL0=
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:97: peer conn opened via Relay: rels://streamline-us-nyc1-2.relay.netbird.io:443
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:433: Relay connection has been established, setup the WireGuard
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:693: setup proxied WireGuard connection
2024-12-01T08:37:53-05:00 INFO client/iface/wgproxy/ebpf/proxy.go:102: turn conn added to wg proxy store: rels://streamline-us-nyc1-2.relay.netbird.io:443, endpoint port: :1
2024-12-01T08:37:53-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:441: created new wgProxy for relay connection: <IP_ADDRESS>:1
2024-12-01T08:37:53-05:00 DEBG client/iface/iface.go:116: updating interface wt0 peer qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=, endpoint <IP_ADDRESS>:1
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:106: enable WireGuard watcher
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:161: WireGuard watcher started
2024-12-01T08:37:53-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:470: start to communicate with peer via relay
2024-12-01T08:37:53-05:00 DEBG client/internal/rosenpass/manager.go:186: received remote rosenpass key 9deda0666f38fcb9f85a3f1ed45296b925b6d0c085c8b66c79c2e70d51adacba, my key 7ddd986959cdca4acf953f35553da7689be8d4da5efb3f6fdba1e6221ea3c830
2024-12-01T08:37:53-05:00 TRAC signal/client/grpc.go:403: received a new message from Peer [fingerprint: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=]
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:256: OnRemoteAnswer, status ICE: Disconnected, status relay: Connected
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:91: received connection confirmation, running version 0.33.0 and with remote WireGuard listen port 51820
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:79: wait for remote offer confirmation
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:87: OnNewOffer for ICE
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:91: agent already exists, skipping the offer
2024-12-01T08:37:53-05:00 DEBG relay/client/manager.go:137: open peer connection via foreign server: rels://streamline-us-nyc1-2.relay.netbird.io:443
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:79: handled offer by reusing existing relay connection
2024-12-01T08:37:53-05:00 TRAC signal/client/grpc.go:403: received a new message from Peer [fingerprint: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=]
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:169: OnRemoteCandidate from peer qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM= -> udp4 host <IP_ADDRESS>:51820
2024-12-01T08:37:53-05:00 DEBG client/iface/bind/udp_mux.go:346: ICE: registered <IP_ADDRESS>:51820 for YuhUXzfQOKjFSSdA
2024-12-01T08:37:53-05:00 DEBG client/iface/bind/udp_mux.go:346: ICE: registered <IP_ADDRESS>:51820 for YuhUXzfQOKjFSSdAturns:turn.netbird.io:443?transport=tcp
2024-12-01T08:37:53-05:00 TRAC signal/client/grpc.go:403: received a new message from Peer [fingerprint: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=]
2024-12-01T08:37:53-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:169: OnRemoteCandidate from peer qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM= -> udp4 srflx <IP_ADDRESS>:51820 related <IP_ADDRESS>:51820
2024-12-01T08:37:54-05:00 TRAC signal/client/grpc.go:403: received a new message from Peer [fingerprint: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=]
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:283: OnRemoteOffer, on status ICE: Disconnected, status Relay: Connected
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:171: sending answer
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:91: received connection confirmation, running version 0.33.0 and with remote WireGuard listen port 51820
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/handshaker.go:79: wait for remote offer confirmation
2024-12-01T08:37:54-05:00 DEBG relay/client/manager.go:137: open peer connection via foreign server: rels://streamline-us-nyc1-2.relay.netbird.io:443
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:79: handled offer by reusing existing relay connection
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:87: OnNewOffer for ICE
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:91: agent already exists, skipping the offer
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:132: agent dial succeeded
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:161: on ICE conn read to use ready
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:219: ICE ConnectionState has changed to Connected
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:317: ICE connection is ready
2024-12-01T08:37:54-05:00 INFO [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/conn.go:325: set ICE to active connection
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:129: disable WireGuard watcher
2024-12-01T08:37:54-05:00 TRAC client/iface/wgproxy/ebpf/wrapper.go:66: pause proxy reading from: rels://streamline-us-nyc1-2.relay.netbird.io:443
2024-12-01T08:37:54-05:00 DEBG client/iface/iface.go:116: updating interface wt0 peer qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=, endpoint <IP_ADDRESS>:51820
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_ice.go:327: selected candidate pair [local <-> remote] -> [udp4 host <IP_ADDRESS>:51820 <-> udp4 host <IP_ADDRESS>:51820], peer qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=
2024-12-01T08:37:54-05:00 DEBG [peer: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=] client/internal/peer/worker_relay.go:198: WireGuard watcher stopped
2024-12-01T08:37:54-05:00 DEBG client/internal/rosenpass/manager.go:186: received remote rosenpass key 9deda0666f38fcb9f85a3f1ed45296b925b6d0c085c8b66c79c2e70d51adacba, my key 7ddd986959cdca4acf953f35553da7689be8d4da5efb3f6fdba1e6221ea3c830
2024-12-01T08:37:55-05:00 DEBG client/internal/engine.go:1350: received management probe request, healthy: true
2024-12-01T08:37:55-05:00 DEBG client/internal/engine.go:1342: received signal probe request, healthy: true
2024-12-01T08:37:55-05:00 DEBG util/net/dialer_nonios.go:52: Dialing udp stun.netbird.io:5555
2024-12-01T08:37:55-05:00 DEBG client/internal/relay/relay.go:66: stun probe received address from stun:stun.netbird.io:5555: <IP_ADDRESS>:58204
2024-12-01T08:37:55-05:00 DEBG util/net/dialer_nonios.go:52: Dialing tcp turn.netbird.io:443
2024-12-01T08:37:55-05:00 DEBG client/internal/relay/relay.go:158: turn probe relay address from turns:turn.netbird.io:443?transport=tcp: <IP_ADDRESS>:62776
2024-12-01T08:37:55-05:00 DEBG client/internal/engine.go:1370: received relay probe request, healthy: true
2024-12-01T08:37:55-05:00 DEBG client/internal/engine.go:1377: received wg probe request
2024-12-01T08:40:55-05:00 DEBG client/internal/engine.go:1350: received management probe request, healthy: true
2024-12-01T08:40:55-05:00 DEBG client/internal/engine.go:1342: received signal probe request, healthy: true
2024-12-01T08:40:55-05:00 DEBG util/net/dialer_nonios.go:52: Dialing udp stun.netbird.io:5555
2024-12-01T08:40:55-05:00 DEBG client/internal/relay/relay.go:66: stun probe received address from stun:stun.netbird.io:5555: <IP_ADDRESS>:55088
2024-12-01T08:40:55-05:00 DEBG util/net/dialer_nonios.go:52: Dialing tcp turn.netbird.io:443
2024-12-01T08:40:55-05:00 DEBG client/internal/relay/relay.go:158: turn probe relay address from turns:turn.netbird.io:443?transport=tcp: <IP_ADDRESS>:27961
2024-12-01T08:40:55-05:00 DEBG client/internal/engine.go:1370: received relay probe request, healthy: true
2024-12-01T08:40:55-05:00 DEBG client/internal/engine.go:1377: received wg probe request

Status
----- Netbird post-up - Timestamp: 2024-12-01T08:37:54-05:00
Peers detail:
 c1.netbird.cloud:
  NetBird IP: <IP_ADDRESS>
  Public key: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/host
  ICE candidate endpoints (Local/Remote): <IP_ADDRESS>:51820/<IP_ADDRESS>:51820
  Relay server address: rels://streamline-us-nyc1-2.relay.netbird.io:443
  Last connection update: Now
  Last WireGuard handshake: 2 seconds ago
  Transfer status (received/sent) 92 B/180 B
  Quantum resistance: true
  Routes: -
  Latency: 509.244µs

OS: linux/amd64
Daemon version: 0.33.0
CLI version: 0.33.0
Management: Connected to https://api.netbird.io:443
Signal: Connected to https://signal.netbird.io:443
Relays:
  [stun:stun.netbird.io:5555] is Available
  [turns:turn.netbird.io:443?transport=tcp] is Available
  [rels://streamline-us-nyc1-1.relay.netbird.io:443] is Available
Nameservers:
  [<IP_ADDRESS>:53, <IP_ADDRESS>:53] for [.] is Available
FQDN: c2.netbird.cloud
NetBird IP: <IP_ADDRESS>/16
Interface type: Kernel
Quantum resistance: true
Routes: -
Peers count: 1/1 Connected

----- Netbird pre-down - Timestamp: 2024-12-01T08:40:55-05:00 - Duration: 3m0s
Peers detail:
 c1.netbird.cloud:
  NetBird IP: <IP_ADDRESS>
  Public key: qrU64BbwDjOtz7UMLK1SuGjn1UJSl+i63pJcrc3hsCM=
  Status: Connected
  -- detail --
  Connection type: P2P
  ICE candidate (Local/Remote): host/host
  ICE candidate endpoints (Local/Remote): <IP_ADDRESS>:51820/<IP_ADDRESS>:51820
  Relay server address: rels://streamline-us-nyc1-2.relay.netbird.io:443
  Last connection update: 3 minutes ago
  Last WireGuard handshake: 48 seconds ago
  Transfer status (received/sent) 184 B/552 BResult of running `netbird debug for 3m -AS` (should be long enough for initial key exchange and 2 minute update)
  Quantum resistance: true
  Routes: -
  Latency: 642.976µs

OS: linux/amd64
Daemon version: 0.33.0
CLI version: 0.33.0
Management: Connected to https://api.netbird.io:443
Signal: Connected to https://signal.netbird.io:443
Relays:
  [stun:stun.netbird.io:5555] is Available
  [turns:turn.netbird.io:443?transport=tcp] is Available
  [rels://streamline-us-nyc1-1.relay.netbird.io:443] is Available
Nameservers:
  [<IP_ADDRESS>:53, <IP_ADDRESS>:53] for [.] is Available
FQDN: c2.netbird.cloud
NetBird IP: <IP_ADDRESS>/16
Interface type: Kernel
Quantum resistance: true
Routes: -
Peers count: 1/1 Connected

Hopefully I'm just missing something, but I'm scrating my head. Thanks for the amazing project!

hello @cdestefano we believe we found an issue with Rosepass implementation and we will work on a fix. Thanks for reporting this.

I'm not sure if it's the recent change specifically for rosenpass, or something else in 34.0, but now I get into a situation where the key exchange happens and updates the key on one host, but the other remains with the initial psk.
After two minutes, all have different preshared keys and none of the clients can talk to each other.  One client seems to always have the initial psk. The rest of the clients do seem to generating new keys, but independently and not sharing them.
If I restart the service, all use the initial psk (combo of the host/remote host initially connecting) for that specific client and can talk for two minutes until they get out of sync.
I can open another issue / report logs here if needed.

Hey @cdestefano can you try to add a Policie allowing all UDP between,  let's say, group rosenpass-peers and then add that group to those peers, and check if the PSK is rotated on both; we corrected the issue you mentioned but there's still some other we need to tackle with the ACL.

@mgarces Sorry - I checked this with the cloud instance which I forgot was on a different subnet than my local version and one of those had logs of blocking the incoming requests at the firewall level. :facepalm: They had the default ACL allow all to all.  Adding <IP_ADDRESS>/16 rules to my firewall allowed everything to correctly talk and all are getting the correct psks.
While the intention may be to route these over a stun, turn, relay, and I'm not confident that's not happening yet,  that seems out of scope for this and the main issue is fixed.  I'll do some more vigorous testing of this later in the week I don't want to leave you hanging and open a new issue if I find anything.
Thanks so much for the quick fix and getting this moving!


Make explicit use of TypeScript's ReadonlySet and ReadonlyMap types. Fixes #494.

TypeScript provides the ReadonlySet and ReadonlyMap types which match
their normal counterparts but without any methods that mutate their data.
This change makes Immutable and Immutable map to those types
directly.
Worth noting that Map extends ReadonlyMap so we only need to check for
one to know what the resulting type is, the same goes for Set and
ReadonlySet.
This also removes the intermediate Set/Map types since TypeScript no
longer seems to need those (likely since TypeScript 3.7, see #448).

Thanks for this PR! Merged into #506 and will become part of the next minor


Declare local variable as optional

Every time I type an undefinable variable, I think I typed something wrong:
let a: string | undefined;

Why do I think I did something wrong? It's because I never add undefined type to a union type as above except in variable declarations.
Don't you think it is time, introduce the optional operator to local variable declarations as well?
let a?: string;

The above syntax feel very natural and idiomatic typescript for me.

Or nullable local variables with strictNullChecks enabled.

Or nullable local variables with strictNullChecks enabled.

let a: string | null;

? never includes null. ? means "optional" for parameters and properties, meaning T | undefined.

This is absolutely needed. Maintaining code that deals with a lot of optional params/members is painful to jump back and forth between ? and type | undefined when in reality you are dealing with the exact same objects in both cases (just sometimes as params/members, and other times as locals).
I suspect people aren't bashing down the walls on this one because strictNullChecks usage isn't as common as it should be.
C# is a good example where the nullable ? modifier is equally applicable to params, locals and members.

Every time I type an undefinable variable, I think I typed something wrong:
let a: string | undefined;

Why do I think I did something wrong? It's because I never add undefined type to a union type as above except in variable declarations.
Don't you think it is time, introduce the optional operator to local variable declarations as well?
let a?: string;

The above syntax feel very natural and idiomatic typescript for me.

I just tried using let s? : string = null; and failed miserably. lol
Guess till it is done let s: string | null; has to suffice. But voting for let s? : string = null; please.
Regards.

I fully agree. Please, please, give us terser syntax for the T | null!

While this is an old issue I just thought I'd leave a note here in case anyone else finds this. A lot of libraries make this optional syntax nicer using generics. For example, defining Maybe as
type Maybe<T> = T | null;
which then lets you do things like let foo: Maybe<string> = null; It's not really saving on characters but I think it reads nicer. Could also do something like
type Nullish<T> = T | null | undefined;
and
type Opt<T> = T | undefined;

Has this gone anywhere?

I don't think we're likely to implement this. It's outside the defined grammar for the types-as-comments proposal and it's very confusing, semantically speaking - the variable is absolutely there, just maybe not initialized, whereas an optional property might very well be truly missing.

Swift has this and as a consequence you got to safely unwrap it each time you want to use it. I don't think that's something I want.
If we borrow anything from swift, it should be the ability to use emojis as variable names 🤓

5 Years and counting, I guess it's time to unsubscribe from this issue. lol

RIP! This makes code UGLY
Fix it.


[r/python/c++] Bounding-box design and implementation

Split out from #1445 -- @mojaveazure already working on
The sparse n-d array class, in R and Python both, needs support for non-empty-domain read access.
We will use TileDB array metadata to track this.

@mojaveazure has an open design document on this
(Note that the TileDB-level nonempty_domain accessor isn't quite what we need. Example: a sparse array which is thought of as 100x200 (100 cells, 200 genes). If the array is densely occupied then the TileDB non-empty domain is ((0,99),(0,199)). But if the array is sparsely occupied, with leading/trailing rows/columns empty, then the TileDB non-empty domain may be, say, ((2,97),(3,194)) or what have you.)
(Note that array-external numbers like nobs and nvar don't always suffice either. For X, they do, but for the second dimension of obsm and varm, we need a way to track the intended bounds.)
This will impact https://github.com/single-cell-data/TileDB-SOMA/issues/1434.

cc @johnkerl @aaronwolen

All PRs are completed


[v3.1] Let bot authenticate with Ubisoft Nadeo's servers on startup.

 Also create a task that runs every 25 minutes to refresh the token.

Finished in v3.0.3


Subgenera are not merging in a project

Hi @mdoering
To let yoou kno that in the project DHR_Chrysomelidae  I merged the dataset 24881 , which includes subgenera, but they were not included in the project:

Even that I established to consider them in the characteristics of the sector:

Thanks, thats interesting. The syncs should also honour implicit subgenera in species names just as we create missing genera.

The subgenus sync works fine if it is not called like the genus. Will try to make that work too...

I made the sync again and it's now working ... however .. another odditie came out, my project ow has two Chaetocnema subgenera: one with author and another without author, and the species nested under the one without author

Weird thing because the original dataset doesn't have a subgenus without author.
this happened once again after I told you at slack.

I am not exactly sure whats going on. In my tests it is all fine.
I think this is because of an odd names index, so I am going to rebuild the index tonight.

Looks like it works this time:


Connecting to DHD devices with an (audio)Matrix deliver exception

Connecting to any DHD device with e.g. an Audio-Matrix throws a ModelException "Inconsistent source or target counts in matrix".
Is this a DHD issue or an issue inside this lib?
The legacy EmberPlusViewer 1.6.2 displays the Matrix without any issue or warning.

Is this a DHD issue or an issue inside this lib?

Hard to say. Could you please attach a log file? Thanks!

Here is one:
20170409_083127_UTC.txt

Even when I comment the 'throw exception' in your lib, I am still unable to get all nodes from DHD devices...even in DirectOnly mode using your exact 'TestBug40' coder (reacing the childs recursively)
Here is another log...
20170409_084927_UTC.txt

Apparently, the DHD provider reports each target and source within its own matrix. That's certainly a very unusual (and inefficient) way of sending a matrix but I'm not sure whether it's illegal or not. I'll get back to you on Tuesday.

Note, that the legacy Ember+ Viewer 1.6.2 can actually display and edit all given DHD matrices.
So shouldn't this lib be able to do the same - or is the legacy Ember+ Viewer 1.6.2 also behaving 'illegal'?

Note, that the legacy Ember+ Viewer 1.6.2 can actually display and edit all given DHD matrices.
So shouldn't this lib be able to do the same - or is the legacy Ember+ Viewer 1.6.2 also behaving 'illegal'?

No, it's one thing to accept "incorrectly" formatted Ember+ data. It's an altogether different thing to send out "incorrectly" formatted Ember+ data. The former is perfectly acceptable, the latter is not.
I use quotes because I don't know yet whether what DHD sends out is really incorrect.

I understand your point, but this is exactly what I tried to explain before in my previous.
If (theoretically) the legacy Ember+ Viewer 1.6.2. accept "incorrectly" formatted Ember+ data - this might providers like DHD believe, that they are sending "correct" data.
Thus you could argue, that all ember implementations should behave the same and accept "incorrectly" formatted Ember+ data.
The only way to stop this is to not accept "incorrectly" formatted Ember+ data at all.
But as you indicated - let's first wait, if Lawo/you believe if its "illegal" data or not.
Depending on this outcome, my expectation would be:
a) if its a DHD bug: Lawo should contact DHD and explain, why its illegal and suggest a fix.
In addition I would suggest to urgently change the behaviour of the legacy Ember+ Viewer to also reject this ' "incorrect" data (so that other providers might not fall into the same 'trap').
b) if its a bug of this lib, it simply needs to accept this "correct" data (even its unusual).

I upload two Glow logs for clarification.
I used the same small device with a little 4*4 matrix.
The first log was generated using the EmberPlusView 1.6.2. The second log was generated using the ProppFrexx Software (which shows the  "Inconsistent source or target counts in matrix" message).
20170411_075538_EmberPlusView_SmallDevice.xml.txt
20170411_075733_ProppFrexx_SmallDevice.xml.txt

Thus you could argue, that all ember implementations should behave the same and accept "incorrectly" formatted Ember+ data (which I guess is not what is wanted).
The only way to stop this is to not accept "incorrectly" formatted Ember+ data at all.

While I agree that we could tighten the specification somewhat and provide tools to verify the validity of messages to a certain degree, I think it is close to impossible to make all implementations behave the same. There will always be corner cases where different implementations of the protocol will behave differently.

a) if its a DHD bug: Lawo should contact DHD and explain, why its illegal and suggest a fix.

Other standards bodies (W3C, IEEE, etc.) usually do not attempt to contact vendors who implement its standards incorrectly either. While I'm in no position to take any decision pro or contra, I doubt that we'll do what other standards bodies don't. There are always exceptions of course.

In addition I would suggest to urgently change the behavior of the legacy Ember+ Viewer to also reject this "incorrect" data (so that other providers might not fall into the same 'trap').

As far as I understand, the Ember+ Viewer was never intended to work as a validation tool (it's far less work to implement a simple viewer than implementing a validator). While I agree that it would be nice to have validator, the reality is that we currently don't.
After some internal discussion, it appears that we're currently leaning in the direction that it cannot be permissible to report sources and targets the way the DHD provider does (for connections it is permissible). However, the specification does not currently spell this out, so we have some work to do there.

Thanks.
But what can I now do to work with DHD devices? Should I wait for a fix in this lib?
Or what do you mean by 'some work to do'?

Or what do you mean by 'some work to do'?

We need to tighten the specification in this area.

So you are saying: Unless DHD changes its implementation we cannot use THIS lib to work with DHD !?

So you are saying: Unless DHD changes its implementation we cannot use THIS lib to work with DHD !?

Yes.

Who should bring up those arguments?
I mean: I am a customer and simply what to leverage Ember+ in my product - like the users of my product and DHD products just want to make it working. And now I feel like I am sitting in between Lawo and DHD  - standing in the rain!
Guys, this is something you should sort out internally between DHD and Lawo!
I only understand up to here: DHD is not using Ember+ as it should (it is using "incorrectly" formatted Ember+ data). Or in short: DHD is Ember+ compliant !

Guys, this is something you should sort out internally between DHD and Lawo!

I guess I have to repeat what I said earlier: In the case of Ember+ Lawo acts as a standards body. That is, we maintain and publish the specification. Just like other standards bodies (like IEEE, W3C, etc.) I think it cannot be our obligation to validate, verify or otherwise test the products of vendors who happen to implement the specification. Moreover, I think it can neither be our obligation to contact vendors even if we learn of bugs in their implementations. To my knowledge, other standards committees aren't doing that on a regular basis either. Their reasons, I suspect, are the same as ours: We simply don't have the capacity to do that.
That being said, we are happy to help whomever contacts us with bugs, concerns and questions (to the best of our ability).

I only understand up to here: DHD is not using Ember+ as it should (it is using "incorrectly" formatted Ember+ data). Or in short: DHD is NOT Ember+ compliant !

Again, as I tried to explain above, reality is a bit more complex. According to the current specification, the DHD provider is compliant. However, its unusual way of publishing a matrix has uncovered a bug in our specification. Once we fix said bug, then the DHD provider is no longer compliant.

When the DHD provider is currently 'compliant' - what options do I have to still read it's data with THIS lib?
Whatever I tried it is failing...(I even tried to read all elements with the DirectOnly option and try to skip any IMatrix elements, but this is unfortunately already too late).
So is the last option left for me to NOT use this lib anymore?

Hi Andreas,
Can you please point out where the DHD matrix uses "incorrectly" formatted Ember+ data"?
But it seems to be more an

unusual way of publishing a matrix

Maybe in comparison with the following GlowProxy log that I've recorded from the TinyEmberPlusRouter-1.6.2) 1:N matrix. - which I'd consider as reference implementation.
Of course the matrix sizes are different (DHD log from above 44 and the TinyEmberPlusRouter 200200).
20170410_160220_EmberPlusView_TinyEmberPlusRouter1toN.xml.txt
As far as I see the structural matrix definition itself must be correct, as our matrix implementation was verified against several software like VSM Studio, Axon Cerebrum and the Ember+Viewer.
Will you post here as soon as it is clear how the current specification will be revised in order to fix the "bug" in the specification?

And maybe a 'tiny', 'global' option in your lib to 'ignore and skip' all 'invalid' matrix elements would also help to overcome the issue - up until:

you come out with a new specification
and all other vendors have adopted this in their products

And maybe a 'tiny', 'global' option in your lib to 'ignore and skip' all 'invalid' matrix elements would also help to overcome the issue - up until

You already have that option, you can use the latest published release of this library (which doesn't yet support matrices).

But this doesn't contain your other fixes added later?!
AND...I am developing a standard product, which should work with ANY provider!
I want to only use one standard lib and not 'lib-version1' when connecting to DHD and using another 'lib-version2' when dealing with other providers.
That's why I would need this as an option in the product - and as such in your lib.
With such an 'option' I could at least support all providers and tell my end-customers to enable this option in case a providers uses 'incorrect' matrix data.

Will you post here as soon as it is clear how the current specification will be revised in order to fix the "bug" in the specification?

Looking at 20170409_084927_UTC.txt, after the matrix details are requested in consumer message no. 5, the DHD provider currently responds with a great number of messages (no. 8-246 in the log), each containing one target, source or connection.
It looks like we're going to change the specification such that it becomes invalid to report the sources and targets of a matrix in multiple messages. That is, the provider must respond with a message that at least contains all targets and all sources of the matrix. Since connections can change anyway over the lifetime of a connection, no such requirement exists for connections, but of course it would be more efficient to also report them in the same message.
Mind you, this is all preliminary, so I cannot guarantee that we're indeed going to change the specification, as doing so requires the agreement of many stakeholders. However, I would suggest you change the behavior of the provider in any case, as the current way of publishing a matrix is highly inefficient.

So is the last option left for me to NOT use this lib anymore?

Apparently, you require a level of control that this library is not designed to give you. I would therefore suggest you use the .NET library that comes with the official Ember+ release.

So is this lib not official?
You might remember, that I asked this initially and the answer was a very clear 'YES' (afair).
However, I guess this discussion has come to an end and is not worth any further arguments.
We found two important bugs: one on the DHD side and one in the Ember+ specs itself!
And I guess I have to live with these results... even if they are not really satisfactory.
I hope, that DHD can provide respective fixes quite soon.
And I will carefully follow the announced change of the "Ember+ specs" with regards to matrix elements.

You might close this issue.
It took me 2 hours to study your source code, and then 5 minutes to add a global option to ignore/skip all matrix elements if needed - only 4 little source code changes where necessary.
As such: it was not so hard as you indicated and the 'level of control' I needed was totally easy to implement - that's why I cannot understand you reaction 2 posts above.
This way I can even support all DHD devices, just matrices are not shown, but I can live with this, until you come up with new specs and DHD with a new firmware.
If anyone is interested in my code changes, just give me a ping.

As such: it was not so hard as you indicated and the 'level of control' I needed was totally easy to implement - that's why I cannot understand your reaction 2 posts above.

Not sure how I supposedly indicated that it was hard to implement. I wrote that the library is not designed to give you that level of control. I stand by that statement. The main goal of the library is ease of use, which almost always comes at the expense of versatility. The library already offers a bunch of options that make things more difficult than I would like. Consequently, adding yet another option for a hopefully short-lived problem is not something I do on a whim.
Never mind the fact that we provide this free of charge with a very permissive license, so you are free to make whatever changes you like and even republish it.

So is this lib not official?
You might remember, that I asked this initially and the answer was a very clear 'YES' (afair).

No, I don't but I'm sure you can point me to the place where I've said that. The only thing I do remember is that you expressed your hope that the library will be officially supported, I quote:

I hope it will officially be supported also in the future, as I plan to use it within my radio automation software (ProppFrexx ONAIR).


Use MRAN for installing R packages to assist with CRAN dropping package support

MRAN hosts CRAN snapshots and we can likely use it to install packages that are no longer available on CRAN. This can likely replace our current system of: install on CRAN, if still not installed, install from BioConductor. There will be some work necessary to figure out how to choose dates, but seems very worth the effort.

Addressed in #63


chore(weaver-package-names): change github org from hyperledger to hyperledger-cacti in go modules and urls

This PR is an intermediate step in getting the Weaver source code ready so that packages can be published in a subsequent minor release.
Specifically, the import path references as well as publish namespaces for various packages (Go, NPM, Maven, Cargo) and images (Docker) need to be switched from the old hyperledger to the new hyperledger-cacti, reflecting the change of organization of this repository.
Pull Request Requirements

[ ] Rebased onto upstream/main branch and squashed into single commit to help maintainers review it more efficient and to avoid spaghetti git commit graphs that obfuscate which commit did exactly what change, when and, why.
[ ] Have git sign off at the end of commit message to avoid being marked red. You can add -s flag when using git commit command. You may refer to this link for more information.
[ ] Follow the Commit Linting specification. You may refer to this link for more information.

Character Limit

[ ] Pull Request Title and Commit Subject must not exceed 72 characters (including spaces and special characters).
[ ] Commit Message per line must not exceed 80 characters (including spaces and special characters).

A Must Read for Beginners
For rebasing and squashing, here's a must read guide for beginners.

@sandeepnRES Are you still working on this?

@sandeepnRES Are you still working on this?

So sorry @petermetz I was on vacation 1 week after opening the PR, and then forgot about this PR.
I'll fix that now.


Persist secrets required by extension controllers so that they can be used during Control Plane Migration

What would you like to be added:
Extend the ShootState, ShootState Sync Controller and the Status of Extension CRs so that secret resources required by extension controllers can be persisted in the ShootState and migrated from the source seed to the destination seed.
Why is this needed:
Currently extension controllers can save their state in the status.state field of the corresponding extension resource. This is synced by the ShootState Sync Controller to the ShootState and used to restore the state of the extension controller on the destination seed during control plane migration. However, if the extension controller has to persist a secret, it cannot be directly saved to the status.state as it contains confidential information.
Proposal:
To handle such cases an additional field is added to the status of extension CRs similar to Pod Volumes - status.Secrets (if it is required to handle other resources similarly then we could change the name to e.g. status.Resources)

The ShootState Sync Controller will read the new field, copy the data of the corresponding secrets and add them to the ShootState resource.
The control plane migration's restoration phase has an additional step which gets all such secrets from the ShootState and deploys them on the Seed in the Shoot's namespace.

Here's an example with the Extension CR used by the certificate extension controller
apiVersion: extensions.gardener.cloud/v1alpha1
kind: Extension
metadata:
  name: "extension-certificate-service"
  namespace: shoot--project--abc
spec:
  type: shoot-cert-service
  providerConfig:
    apiVersion: shoot-cert-service.extensions.config.gardener.cloud/v1alpha1
    kind: Configuration
    issuerName: gardener
    restrictIssuer: true # restrict issuer to any sub-domain of shoot.spec.dns.domain (default)
    acme:
      email<EMAIL_ADDRESS>      server: https://acme-v02.api.letsencrypt.org/directory
      privateKeyRef:
        name: private-key
status:
  observedGeneration: 2
  state:
    # some data
    privateKeySecretRef: my-lets-encrypt-private-key
  secretReferences:
  - name: private-key
     secretName: my-lets-encrypt-private-key

Thanks for opening the issue!
We should be in line with https://github.com/gardener/gardener/issues/2321#issuecomment-628417974

/assign @stoyanr

The example should actually look as follows (in sync with #2321):
apiVersion: extensions.gardener.cloud/v1alpha1
kind: Extension
metadata:
  name: "extension-certificate-service"
  namespace: shoot--project--abc
spec:
  type: shoot-cert-service
status:
  observedGeneration: 2
  state:
    # some data
    privateKeyRef: private-key
  resources:
  - name: private-key
    resourceRef:
      apiVersion: v1
      kind: Secret
      name: my-secret


Missing LICENSE

There is no LICENSE or COPYING file for this project. The default is copyright.
You should license this project under the AGPL3 or GPL3 license. Directions on how to apply the license are at the bottom of the license file under the How to Apply These Terms to Your New Programs heading.  There is a helpful guide for the GPL at https://www.gnu.org/licenses/gpl-howto.en.html.  If you would like me to submit a PR to make this easier, I would be happy to do that.

This is an important step and will help with other people’s adoption and use of this tool!


Update paper_trail gem

I envisaged this being a big one, as this project heavily relies on versioning for locale / translation reasons.
The breaking changes involved with paper_trail are well documented, and don't appear to apply to this codebase.
Sadly, we needed to reference the git repo of globalize-versioning because the update is not yet released on RubyGems - see issue.
Updating paper_trail is required to facilitate a Rails 5 upgrade.

Hey @scott - good news! The maintainer of globalize-versioning has pushed the latest to RubyGems, so I've updated here to reflect that. Should be good to merge once we're happy with test coverage and/or have done some manual testing.

I don't know that there is any test coverage of versioning- its not a feature that is exposed through the UI yet.  I did a little manual testing and it seemed like records were getting saved correctly in the Versions table, and all of the regular test suite passed so I say its good to go!


Initial entry page, default selection of tablabel 5, tablabel need to scroll, Indicator can not accurately locate

Current behaviour
There are 6 tabs in total. When I enter the page and choose the fifth by default, label can scroll normally, but Indicator can't locate accurately.
Expected behaviour
There are 6 tabs in total. When I enter the page and choose the fifth by default, label can scroll normally and Indicator can locate normally.
Code sample
this.state = {
      index: 0,
      routes: [
        { key:BoughtOrderStatus.PENDING_PAYMENT.id,title:BoughtOrderStatus.PENDING_PAYMENT.name},
        { key: BoughtOrderStatus.TO_BE_DELIVERED.id, title: BoughtOrderStatus.TO_BE_DELIVERED.name},
        { key: BoughtOrderStatus.PENDING_RECEIVE.id, title: BoughtOrderStatus.PENDING_RECEIVE.name},
        { key: BoughtOrderStatus.PENDING_RECEIPT.id, title: BoughtOrderStatus.PENDING_RECEIPT.name},
        { key: BoughtOrderStatus.COMPLETED.id, title: BoughtOrderStatus.COMPLETED.name},
        { key: BoughtOrderStatus.CANCELLED.id, title: BoughtOrderStatus.CANCELLED.name},
      ],
    };
render() {
    return (<TabView
      navigationState={this.state}
      ref={ref=>this.tabView = ref}
      tabBarPosition={"top"}
      renderScene={this._renderScene}
      renderTabBar={this._renderTabBar}
      onIndexChange={index => this.setState({ index })}
      initialLayout={{ width: Dimensions.get('window').width, height: 64 }}
      useNativeDriver
    />)
  }

Screenshots (if applicable)

What have you tried
TabBar.js
this.state = {
visibility: new Animated.Value(initialVisibility),
scrollAmount: new Animated.Value(0),
initialOffset,
};
change to
this.state = {
visibility: new Animated.Value(initialVisibility),
scrollAmount: new Animated.Value(initialOffset.x),
initialOffset,
};
can resolve my issue
Your Environment

software
version

ios
iphone5

react-native
0.57

react-native-tab-view
1.3.1

node
8.12.0

npm or yarn
yran

Hey, I just released a new alpha 2.0.0-alpha.0 of the library. It's rewritten using react-native-gesture-handler and react-native-reanimated addresses a many platform specific bugs and performance problems. The documentation is updated as well.
Please try the new version and see if it addresses your issue. If not, please open a new issue following the issue template.


fix(hasura-auth-js): make sure CodifiedError works on non v8 browsers

fixes #2187

Now it correctly throws this error

More on InvalidStateError

The main issue is that Error.captureStackTrace doesn't work on non V8 browsers such as Safari


JCenter is shutting down

JCenter is getting shut down in May https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

Right now jCenter is down, I think it hast to be an error... where else can we find it?

I'm using jitpack!
https://jitpack.io/#amitshekhariitbhu/Android-Debug-Database/v1.0.6

I already have jitpack.io in my project, but for some reason Android-Debug-Database is not working when I remove jcenter from the project. It looks like jitpack.io may be returning a 403 Forbidden? I might try it with an empty project later, but I also tried moving jitpack.io to the top and had the same result.

You need to change the way you declare your dependency, when using jitpack. In this case it's like:
implementation 'com.github.amitshekhariitbhu.Android-Debug-Database:debug-db:v1.0.6'

Thanks, you are right; I missed the addition of .Android-Debug-Database 🙂

Maybe update the readme then.

'com.github.amitshekhariitbhu.Android-Debug-Database:debug-db:v1.0.6'

It would be great to have the readme updated. Save someone else the hustle..

Solution:
Add this in your settings.gradle:
maven { url 'https://jitpack.io' }

If you are using settings.gradle.kts, add the following:
maven { setUrl("https://jitpack.io") }

Add this in your build.gradle
debugImplementation 'com.github.amitshekhariitbhu.Android-Debug-Database:debug-db:1.0.7'

If you are using build.gradle.kts, add the following:
debugImplementation("com.github.amitshekhariitbhu.Android-Debug-Database:debug-db:1.0.7")

Using the Android Debug Database with encrypted database
Add this in your build.gradle
debugImplementation 'com.github.amitshekhariitbhu.Android-Debug-Database:debug-db-encrypt:1.0.7'

If you are using build.gradle.kts, add the following:
debugImplementation("com.github.amitshekhariitbhu.Android-Debug-Database:debug-db-encrypt:1.0.7")

And to provide the password for the DB, you should add this in the Gradle:
DB_PASSWORD_{VARIABLE}, if for example, PERSON is the database name: DB_PASSWORD_PERSON
debug {
    resValue("string", "DB_PASSWORD_PERSON", "password")
}


Disjunctive query on player position

I was trying to query the database for a list of players currently on a team who were either a QB, RB, or WR.
db = nfldb.connect()
q = nfldb.Query(db).player(team__ne='UNK', position=['QB', 'RB', 'WR']).limit(10)

for p in q.as_players():
    print p

This yields a programming error:
ProgrammingError: operator does not exist: player_pos = text
LINE 6:             WHERE (((player.position = ANY (ARRAY['QB', 'RB'...
                                         ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

For reference, this works fine:
q = nfldb.Query(db).game(season_type='Regular', team='NE')
q.game(season_year=[2009, 2010, 2011, 2012, 2013]).limit(5)
for game in q.as_games():
     print game

Regular 2009 week 2 on 09/20 at 01:00PM, NE (9) at NYJ (16)
Regular 2009 week 4 on 10/04 at 01:00PM, BAL (21) at NE (27)
Regular 2009 week 5 on 10/11 at 04:15PM, NE (17) at DEN (20)
Regular 2009 week 9 on 11/08 at 01:00PM, MIA (17) at NE (27)
Regular 2009 week 7 on 10/25 at 01:00PM, NE (35) at TB (7)

Am I thinking about disjunctive queries wrong, or is there something special about player position that makes it not work?

Nice find. This is a bug! I've just pushed a fix and updated PyPI to 0.2.10. If you run pip install --upgrade nfldb your code should start working. :-)

Thanks, that works great. And thanks so much for this amazing project!


Feat/detect discriminator bnch 49688

Capture the discriminator property and mappings when parsing the OpenAPI spec.
See more extensive notes in the PR for aurelia.
The timing of merging this PR needs to be synchronized with the merge of the aurelia PR.

The timing of merging this PR needs to be synchronized with the merge of the aurelia PR.

It just needs to be landed first right? Or is there some other dependency I'm missing.


Multisig on electrum

Enabled and set up the Multisig wallet / patched up p2sh Multisig onboarding and registering on electrum.

Latest changes all tested?

Tested and ready to go


Math.js unit conversion example result in NaN

One of the Math.js samples is "12.7 cm to inch", but here in results in:
12.7 cm to inch=NaN
It does not seem to matter what unit I enter, either:
12.7 cm to in=NaN
or even
12.7 cm to mm=NaN
Some other samples work fine, such as sin(45 deg) ^ 2=0.5.

Hi there...
Since this extension seems unmaintained, I forked and created an updated version.
It's almost the same code, just a few tweaks.
Since I'm using a new version of math.js, it support unit conversions.
Feel free to check it here: https://marketplace.visualstudio.com/items?itemName=navossoc.calculate2

Hi there...
Since this extension seems unmaintained, I forked and created an updated version.
It's almost the same code, just a few tweaks.
Since I'm using a new version of math.js, it support unit conversions.
Feel free to check it here: https://marketplace.visualstudio.com/items?itemName=navossoc.calculate2


ld: unknown option: -rpath=$ORIGIN

The command
swift build --destination /tmp/cross-toolchain/arm64v8-ubuntu-bionic-destination.json
Results in:
ld: unknown option: -rpath=$ORIGIN
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)

Using the -v option, the result is:
xcrun --sdk macosx --find xctest
xcrun --sdk macosx --show-sdk-path
xcrun --sdk macosx --show-sdk-platform-path
xcrun --sdk macosx --find xctest
/private/tmp/cross-toolchain/swift.xctoolchain/usr/bin/swiftc -sdk /private/tmp/cross-toolchain/arm64v8-ubuntu-bionic.sdk -use-ld=gold -tools-directory /private/tmp/cross-toolchain/swift.xctoolchain/usr/bin -g -L /Users/freeksanders/helloworld/.build/aarch64-unknown-linux/debug -o /Users/freeksanders/helloworld/.build/aarch64-unknown-linux/debug/helloworld -module-name helloworld -emit-executable -Xlinker '-rpath=$ORIGIN' @/Users/freeksanders/helloworld/.build/aarch64-unknown-linux/debug/helloworld.product/Objects.LinkFileList
ld: unknown option: -rpath=$ORIGIN
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)

This can be 'solved' by changing the '-rpath=$ORIGIN' to -rpath $ORIGIN, i.o.w.:
/private/tmp/cross-toolchain/swift.xctoolchain/usr/bin/swiftc -sdk /private/tmp/cross-toolchain/arm64v8-ubuntu-bionic.sdk -use-ld=gold -tools-directory /private/tmp/cross-toolchain/swift.xctoolchain/usr/bin -g -L /Users/freeksanders/helloworld/.build/aarch64-unknown-linux/debug -o /Users/freeksanders/helloworld/.build/aarch64-unknown-linux/debug/helloworld -module-name helloworld -emit-executable -Xlinker -rpath $ORIGIN @/Users/freeksanders/helloworld/.build/aarch64-unknown-linux/debug/helloworld.product/Objects.LinkFileList
However, that creates the following error:
ld: library not found for -lobjc
Seems the issue might be related to this:
https://stackoverflow.com/a/7388525/2500428
Not sure how to proceed here, but any pointers would be nice.

-lobjc should not be used with a cross build. Not sure when I find the time to look at this, but I'll try eventually.

The swift-arm Slack is also a great resource, there is at least one person who is using the xc chain extensively and even built remote debugging support for it.

I'll check it out.


Inconsistent implementation of transpose()

Dense.transpose(A) is Dense = A^T
COO.transpose(A) is A = COO^T
correct:
A.,transpose() // A = A^T
A.transpose(B) // A=B^T

Performance of transpose() in Dense is low due to poor implementation.
I refactored it so that it can be parallelized.
I have confirmed that the performance improves with a simple benchmark.


Type edits

Add manual reference (using sup)
Minor language fixes
Minor type edits
Remove sentence

@TrashBirdEcology - thanks for these suggestions, but I don't want to hide the fact that I'm not sure if there's an earlier reference. And I would like to keep the other sentence that I feel invites people to do more with this. So I'm going to not merge this, but again, I appreciate that you took the time to make these suggestions.  I'm not completely sure what the "Minor language fixes" and "Minor type edits" you made were, as the diff isn't clear, but feel free to make such suggestions.

doesn't bother me. here is the diff, fyi

Yeah, but the long lines make the specific diffs not appear, just the lines that change


Consider running installations (pip, conda, etc) of Tools in a background process

Currently tools such as a linter, rope, etc are installed via a terminal Window.
The drawback to this approach is the fact that we (VS Code extension) isn't aware of when the installation has been completed.
Thus, when the user is attempting to format some code, we prompt the user to install a formatter and once done the user needs to repeat the same process as the tool is now available. This applies to Refactoring and Unit Testing as well.
@brettcannon This is something you raised a while ago.
If we proceed with this approach, we need to log the output of the installation process.

SGTM!

We are moving tools out to their own extensions. We can re-visit this if we plan to support installations from the extension via terminal.


CLDOPS-2680: increase proxy_read_timeout to 1h

This is the same value that our frontfacing layer has set.
Putting it lower (eg. 15m) results in this when exceeding:
[error] 191#0: *82 upstream timed out (110: Connection timed out) while
reading response header from upstream
See also: https://stackoverflow.com/a/46205792/1007729

@joshp123 done, see the next commit!

great!


Nancy.Tests.Functional skipped by build.ps1/AppVeyor

https://github.com/NancyFx/Nancy/commit/3b271649e64882907cb5ea78ecba9e0c9cc67f7d added a filter to only run tests ending in *Tests.xproj, but Nancy.Tests.Functional.xproj doesn't follow this convention so it is skipped on build.ps1 and AppVeyor. Is that intentional?

:heart:


Improve test coverage for Go modules

Is your feature request related to a problem? Please describe.
The Go mod analyzer has been broken in all kinds of ways and entirely unusable at least since 6.x came out. It seems like most issues go undetected simply because there's no test coverage for basic use cases.
Describe the solution you'd like
Improve test coverage; implement tests for basic Go mod analysis use cases.
Describe alternatives you've considered
Additional context
I'd be happy to look into this myself if no one else is available.

Most of the integrations with other ecosystems are community driven. We accept PRs and would appreciate the assistance.

Most of the integrations with other ecosystems are community driven. We accept PRs and would appreciate the assistance.


Fixed the Logo of the readme

Fixes #604
The logo is now visible in dark mode of github
@rohan-paul

Hey @D3FaltXD, thanks for opening this PR. While your edit to the logo does make it look better in dark mode, the light-mode preview looks jagged:

Any way to fix this? Also, could you sync the recent changes to the main branch to your fork, so that the tests pass?

Sure will clean up the edges... but white color of Einstein won't be visible in light mode.
Do you want to me change the color for that?

Sure will clean up the edges... but white color of Einstein won't be visible in light mode. Do you want to me change the color for that?

I think, we do need a color change, but that's for later. For now, let's just have a smooth white ~2px border around Einstein, so that it remains nearly identical to the current logo in light mode, while also being legible in dark mode.

Fixed via 705b35.


Browse failures on 1709 DataCenter server

Hi,
I tried to run these (faaantastic! Thankyou..) scripts on a 1709 release of Server 2016 DataCenter edition, and whenever it went prompting for ISO / MSU / etc media, the script would fail.  Obviously there is no 'real' gui in 1709.  The fix was to manually comment out the browse for server and client ISO media lines and manually pop in the file path at the mount-image step.
All ran fine after that.  Hopefully there is a way to prompt for media on the console rather than selecting in explorer ?
Thanks, and great work!
Josh

Hi John! Sure, ill add there a way to specify media in labconfig. I prefer using 1709 win 10, it's way easier. There are also ways how to extract failover clustering from server, so you can have shared vhd in there.

Would you more like a prompt where you would type location? Or folders where you would just copy ISO/msu files? Or just ability to specify paths in labconfig?

And btw does it make sense to use 1709 as host? You connect to it remotely? Im wondering if I should rewrite it to be able to deploy lab to remote server...

I’d personally be happy enough with a “Please enter the full file path to the <client / server> ISO – ie. D:\ISOs\Win1709.iso” – the problem I see with just a folder path is the filename itself may not stay the same month to month, and people themselves may choose to rename it from the MS filename convention..
From: Jaromir Kaspar<EMAIL_ADDRESS>Sent: Sunday, 12 November 2017 11:49 PM
To: Microsoft/ws2016lab<EMAIL_ADDRESS>Cc: Joshua Clarke<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Would you more like a prompt where you would type location? Or folders where you would just copy ISO/msu files? Or just ability to specify paths in labconfig?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/ws2016lab/issues/75#issuecomment-343734950, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AbcdgItx60P3c1odeC4p5LDxLhDrSSBCks5s1ulTgaJpZM4Qa1QK.

I was tossing up whether to install 1709 or stick with 2016 server on the host, but decided to go with 1709 as it has the network controller, updated GPU passthrough, etc. and if I needed S2D I could just virtualise that portion of it with a 2016 VM or two.
My use case is probably far from the norm, but I’m using a dedicated server at a public DC as my host, so I don’t have LAN access to join it to my domain directly.  I did try to psremote to it to run your scripts (hoping I’d get the gui on the local client), but that didn’t quite work either.
Thanks!
Josh
From: Jaromir Kaspar<EMAIL_ADDRESS>Sent: Sunday, 12 November 2017 11:51 PM
To: Microsoft/ws2016lab<EMAIL_ADDRESS>Cc: Joshua Clarke<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
And btw does it make sense to use 1709 as host? You connect to it remotely? Im wondering if I should rewrite it to be able to deploy lab to remote server...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/ws2016lab/issues/75#issuecomment-343735073, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AbcdgBlBpQFKWU6Z4H1Gly8RiiGxOl0tks5s1unGgaJpZM4Qa1QK.

Cool. Can you try this? :) https://github.com/Microsoft/ws2016lab/raw/dev/scripts.zip
See LabConfig for examples. You can specify folders for both ISO and MSUs

Hi Jaromir,
Created a new folder on the host for the updated files, #1 ran through fine, #2 failed at the start of script looking for the ISO.  Here’s the output:
Couldn’t find the transcript files to attach either, has that changed ?
<EMAIL_ADDRESS>PS C:\Scripts\ws2016lab-dev-20171117> .\2_CreateParentDisks.ps1
Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your
computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning
message. Do you want to run C:\Scripts\ws2016lab-dev-20171117\2_CreateParentDisks.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): r
Transcript started, output file is C:\Scripts\ws2016lab-dev-20171117\CreateParentDisks.log
Script started at 11/17/2017 18:52:54
Checking if Hyper-V is installed
Hyper-V is Installed
Checking if Hyper-V Powershell module is installed
Hyper-V is Installed
Testing if some parent disk already exists and can be used
VHD eligible for DC not found. VHD for DC will be created after ParentDisks are created.
Win2016Core_G2.vhdx not found, will be created
Win2016NanoHV_G2.vhdx not found, will be created
Tools.vhdx not found, will be created
Please select ISO image with Windows Server 2016, 1709 or later
GAC    Version        Location

True   v4.0.30319     C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_<IP_ADDRESS>__b77a5c561934e089...
Exception calling "ShowDialog" with "0" argument(s): "Creating an instance of the COM component with CLSID
{DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7} from the IClassFactory failed due to the following error: 80040111 ClassFactory
cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE))."
At C:\Scripts\ws2016lab-dev-20171117\2_CreateParentDisks.ps1:326 char:20

            If($openFile.ShowDialog() -eq "OK"){

               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : COMException

Iso was not selected... Exitting
Press enter to continue ...
From: Jaromir Kaspar<EMAIL_ADDRESS>Sent: Monday, 13 November 2017 9:54 PM
To: Microsoft/ws2016lab<EMAIL_ADDRESS>Cc: Joshua Clarke<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Cool. Can you try this? :) https://github.com/Microsoft/ws2016lab/raw/dev/scripts.zip
See LabConfig for examples. You can specify folders for both ISO and MSUs
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/ws2016lab/issues/75#issuecomment-343883496, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AbcdgIy1ALY23mDwQo4qaoXegGLHJp8Xks5s2B_FgaJpZM4Qa1QK.

Sorry, hold that thought – will populate the new variables and try again..
From: Joshua Clarke
Sent: Friday, 17 November 2017 6:57 PM
To: 'Microsoft/ws2016lab'<EMAIL_ADDRESS>Microsoft/ws2016lab<EMAIL_ADDRESS>Cc: Author<EMAIL_ADDRESS>Subject: RE: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Hi Jaromir,
Created a new folder on the host for the updated files, #1 ran through fine, #2 failed at the start of script looking for the ISO.  Here’s the output:
Couldn’t find the transcript files to attach either, has that changed ?
<EMAIL_ADDRESS>PS C:\Scripts\ws2016lab-dev-20171117> .\2_CreateParentDisks.ps1
Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your
computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning
message. Do you want to run C:\Scripts\ws2016lab-dev-20171117\2_CreateParentDisks.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): r
Transcript started, output file is C:\Scripts\ws2016lab-dev-20171117\CreateParentDisks.log
Script started at 11/17/2017 18:52:54
Checking if Hyper-V is installed
Hyper-V is Installed
Checking if Hyper-V Powershell module is installed
Hyper-V is Installed
Testing if some parent disk already exists and can be used
VHD eligible for DC not found. VHD for DC will be created after ParentDisks are created.
Win2016Core_G2.vhdx not found, will be created
Win2016NanoHV_G2.vhdx not found, will be created
Tools.vhdx not found, will be created
Please select ISO image with Windows Server 2016, 1709 or later
GAC    Version        Location

True   v4.0.30319     C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_<IP_ADDRESS>__b77a5c561934e089...
Exception calling "ShowDialog" with "0" argument(s): "Creating an instance of the COM component with CLSID
{DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7} from the IClassFactory failed due to the following error: 80040111 ClassFactory
cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE))."
At C:\Scripts\ws2016lab-dev-20171117\2_CreateParentDisks.ps1:326 char:20

            If($openFile.ShowDialog() -eq "OK"){

               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : COMException

Iso was not selected... Exitting
Press enter to continue ...
From: Jaromir Kaspar<EMAIL_ADDRESS>Sent: Monday, 13 November 2017 9:54 PM
To: Microsoft/ws2016lab <ws2016lab<EMAIL_ADDRESS>Cc: Joshua Clarke <jclarke<EMAIL_ADDRESS>Author <author<EMAIL_ADDRESS>Subject: Re: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Cool. Can you try this? :) https://github.com/Microsoft/ws2016lab/raw/dev/scripts.zip
See LabConfig for examples. You can specify folders for both ISO and MSUs
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/ws2016lab/issues/75#issuecomment-343883496, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AbcdgIy1ALY23mDwQo4qaoXegGLHJp8Xks5s2B_FgaJpZM4Qa1QK.

That’s working a treat after populating the right fields ! I’m just running Step 3 now to be certain, but all looking good at this stage.  Thanks for making those changes!
Update: Step 3 finished without a problem!
Three suggestions:

In Step 2 - Do a try/catch for the error I got and advise the user that as he’s running on a non-GUI OS he’ll need to populate the Client/Server media variables, and MSU’s.
LabConfig – For the average punter the shortened $LabConfig may confuse.  Might be better to move the detailed one to the top of the script, and move the shortened one underneath.  I’d also set the detailed one to active myself; maybe a personal preference though..
Stop the transcript on fail?

Thanks again, I’m off to play with S2D now and probably spend the rest of the night trying to automate myself – you’ve inspired me!
Cheers,
Josh
From: Joshua Clarke
Sent: Friday, 17 November 2017 6:59 PM
To: 'Microsoft/ws2016lab'<EMAIL_ADDRESS>'Microsoft/ws2016lab'<EMAIL_ADDRESS>Cc: 'Author'<EMAIL_ADDRESS>Subject: RE: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Sorry, hold that thought – will populate the new variables and try again..
From: Joshua Clarke
Sent: Friday, 17 November 2017 6:57 PM
To: 'Microsoft/ws2016lab'<EMAIL_ADDRESS>Microsoft/ws2016lab <ws2016lab<EMAIL_ADDRESS>Cc: Author <author<EMAIL_ADDRESS>Subject: RE: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Hi Jaromir,
Created a new folder on the host for the updated files, #1 ran through fine, #2 failed at the start of script looking for the ISO.  Here’s the output:
Couldn’t find the transcript files to attach either, has that changed ?
<EMAIL_ADDRESS>PS C:\Scripts\ws2016lab-dev-20171117> .\2_CreateParentDisks.ps1
Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your
computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning
message. Do you want to run C:\Scripts\ws2016lab-dev-20171117\2_CreateParentDisks.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): r
Transcript started, output file is C:\Scripts\ws2016lab-dev-20171117\CreateParentDisks.log
Script started at 11/17/2017 18:52:54
Checking if Hyper-V is installed
Hyper-V is Installed
Checking if Hyper-V Powershell module is installed
Hyper-V is Installed
Testing if some parent disk already exists and can be used
VHD eligible for DC not found. VHD for DC will be created after ParentDisks are created.
Win2016Core_G2.vhdx not found, will be created
Win2016NanoHV_G2.vhdx not found, will be created
Tools.vhdx not found, will be created
Please select ISO image with Windows Server 2016, 1709 or later
GAC    Version        Location

True   v4.0.30319     C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_<IP_ADDRESS>__b77a5c561934e089...
Exception calling "ShowDialog" with "0" argument(s): "Creating an instance of the COM component with CLSID
{DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7} from the IClassFactory failed due to the following error: 80040111 ClassFactory
cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE))."
At C:\Scripts\ws2016lab-dev-20171117\2_CreateParentDisks.ps1:326 char:20

            If($openFile.ShowDialog() -eq "OK"){

               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : COMException

Iso was not selected... Exitting
Press enter to continue ...
From: Jaromir Kaspar<EMAIL_ADDRESS>Sent: Monday, 13 November 2017 9:54 PM
To: Microsoft/ws2016lab <ws2016lab<EMAIL_ADDRESS>Cc: Joshua Clarke <jclarke<EMAIL_ADDRESS>Author <author<EMAIL_ADDRESS>Subject: Re: [Microsoft/ws2016lab] Browse failures on 1709 DataCenter server (#75)
Cool. Can you try this? :) https://github.com/Microsoft/ws2016lab/raw/dev/scripts.zip
See LabConfig for examples. You can specify folders for both ISO and MSUs
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/ws2016lab/issues/75#issuecomment-343883496, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AbcdgIy1ALY23mDwQo4qaoXegGLHJp8Xks5s2B_FgaJpZM4Qa1QK.

That's a great feedback. Let me add it tonight.

Fixed in Dev branch. It should throw error, stop transcript and exit. Let me know if anything else. I'll close this issue then.


SSD and RAID

To research what is best way to organize several SSD (specifically in amazon ec2) into RAID
This best way have to be part of our image.

see /etc/init.d/create_raid script in th image


BUG: When NewDot is open on computer, getting notifications on mobile

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

Action Performed:

Have NewDot Desktop open
Have someone send you message
Observe iOS notification even though Desktop is open and foreground

Expected Result:
Not to receive iOS notification
Actual Result:
iOS notification received
Workaround:
Unknown
Platform:

Where is this issue occurring?

Desktop App

Version Number: 1.2.11-0
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

Expensify/Expensify Issue URL:
Issue reported by: @mallenexpensify
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1664405862076509
View all open jobs on GitHub

Most likely Internal as the notifications for mobile are sent via the server.

I would guess this PR might have caused the regression - but not sure. @techievivek are you able to follow up here and let us know if there's a link?

@marcaaron Yeah, it could be related. I will have a look at it. Thanks

Dropped this in the Slack thread

Is anyone else is experiencing "When NewDot is open on computer, getting notifications on mobile" can you please comment in :thred: or on the GH, curious to see how widespread this is.

I know it was happening for Deeter too.
I added this issue to the RCA Sheet for "Reported bug GH issue link" @techievivek , if we find the root PR that caused this regression, can you update the sheet. If a C+ was assigned to review the PR, they should create the RCA using the RCA template

@mallenexpensify This may be the result of backend changes that I have done in this PR so we shouldn't bother any C+ for this.

K, thanks @techievivek , if it's because of changes you made, can you please fill out the RCA template? More details on steps are here

Any update on getting this fixed or the PR reverted @techievivek ?   It's not necessarily a big priority, more annoying to be getting pinged multiple places

Couldn't triage this because I am involved in the implementation of the update concierge/newDot for AM project but once I have some bandwidth, I will look into it.

@techievivek as this is a Daily I would recommend providing whatever details you have and removing your assignment so someone else can look into it.

Not at the moment to be honest because even the linked PR was in the open state for a very long but since the code changes in the PR are very less one will be able to figure out if the linked PR is the cause of regression. If no one picks this up by the weekend I can look into it.

Posted in #engineering to get more 👀 https://expensify.slack.com/archives/C03SSAQ7P/p1665449068132379

I don't know if this is related. But when a chat is active and open, do I still need to receive notifications?
https://user-images.githubusercontent.com/26106822/195350426-d9436077-a1c8-4491-903b-6033301e00ab.mp4

There's a WN on notifications rework, as there're a wholesale bugs on nofications. So @techievivek you can close this out unless you already have a solution.

@Julesssss , you're working on Notifications, right?  Any thoughts on why this is happening? It'd def a regression.
Is there a tracking issue with a list of Notification issues?
Let's not close cuz we want to be able to confirm we actually fixed the bug before closing

I agree this is a very annoying regression and should be prioritized highly.

THis will definitely be covered by the upcoming doc, but given this seems to be a regression perhaps there also a revert/fix that can be applied in the meantime?

@mallenexpensify here' the tracking issue for collecting Notification issues: https://github.com/Expensify/Expensify/issues/219254

Do we have anything written down for how to track down the offending PR for regressions? For internal and/or contributors?  (I have zero clue)

Dropped in #engineering-chat (thought it was #engineering) to get 👀
https://expensify.slack.com/archives/C03TQ48KC/p1666027005682349

@roryabraham had a look at it during our sync and my Web-E PR indeed caused this regression. Here is what I changed that caused the regression.
- 'alert' => $isSilentPush ? '' : $message
+ 'alert' => $message

I will put a PR today fixing it today.

Thanks @techievivek , I added a comment on the RCA sheet asking you to fill out the RCA template once this is fixed.

The PR is up but based on the discussion here I am not sure if we are going to fix this.

Thanks @techievivek, yep I'd say we should just close this. We decided to continue showing notifications on all platforms for the moment.

We decided to continue showing notifications on all platforms for the moment.

What's the reasoning or link for this. I find it to be 'low quality' to be in Desktop and have my phone 'light up' all the time with messages.  Is there a link to a discussion?

Hey @mallenexpensify, here's the pre-design thread.

Thanks @Julesssss , sorry I missed that.   Quite the 🐰🕳, couldn't help but comment https://expensify.slack.com/archives/C01GTK53T8Q/p1666626222041809?thread_ts=1666109949.817589&cid=C01GTK53T8Q


select a gateway to trade currencies unavailable

no button to select gateway
there is no way to send funds?

Me to!
Tekst:
I need to select a gateway
But how?