UP initiated association setup/release

According to TS 129 244:

<IP_ADDRESS> PFCP Association Setup Initiated by the UP Function
<IP_ADDRESS> PFCP Association Update Procedure Initiated by UP Function (see Graceful Release)
6.2.8 PFCP Association Release Procedure

Association Setup Procedure
free5gc: "incomplete" support
open5gs: supports
Association Update Procedure
free5gc: doesn't support
open5gs: doesn't support
Association Release Procedure
free5gc: supports in its own way, no specification
open5gs: doesn't support
It turns out that the feature release is meaningless

The current goal: implement UP initiated Assotiation Setup Request.
A detailed description of the progress on this issue can be found in its pull request: https://github.com/edgecomllc/eupf/pull/497

Current status:
Problems in setting up associations in open5gs kubernetes environment.
Problem №1
All interactions in open5gs kubernetes are meant to happens through services (because pods can restart and change their IPs). In that case, two associations are established: one initiated from SMF and one initiated from UPF. These associations are treated as different because in both SMF and UPF the primary key to an association is the address, from which request/responce was received. So, UPF establishes association with SMF service, and SMF establishes association with UPF service. Both of them are working.
Problem №2
We can change a primary key to PFCP association from address to Node ID (a field in PFCP Association Setup Request/Response), as it was said in 3GPP specification. However, in such case two subproblem appear:
2.1. Heartbeats. When we get Heartbeat Request, how can we find specific association to that Heartbeat?
2.2. How can UPF understand when it should stop sending Requests? In config we set a service alias to connect to. But when UPF gets Response from SMF, there will be a Node ID of a SMF itself. For example, service name is "open5gs-smf-pfcp", and Node ID is some "<IP_ADDRESS>". So the question is: How can UPF know if it should sending Requests to a service?

✔ Solution for setting up associations in open5gs kubernetes environment.
To set open5gs-smf-pfcp service as Headless spec.clusterIP: None
manifest for headless service

apiVersion: v1
kind: Service
metadata:
  name: open5gs-smf-pfcp
  namespace: open5gs20893
  labels:
    app.kubernetes.io/instance: open5gs-smf
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: open5gs-smf
    helm.sh/chart: open5gs-smf-2.0.10
    k8slens-edit-resource-version: v1
  annotations:
    meta.helm.sh/release-name: open5gs-smf
    meta.helm.sh/release-namespace: open5gs20893

spec:
  ports:
    - name: pfcp
      protocol: UDP
      port: 8805
      targetPort: pfcp
  selector:
    app.kubernetes.io/instance: open5gs-smf
    app.kubernetes.io/name: open5gs-smf
  clusterIP: None
  type: ClusterIP
  sessionAffinity: None
  publishNotReadyAddresses: true
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  internalTrafficPolicy: Cluster

kubectl apply -f <file>

OK. Deployed with success. Fully testetd with 0-scenario.
Logs. SMF was started before UPF

SMF log:
Open5GS daemon v2.4.11

12/15 17:09:21.325: [app] INFO: Configuration: '/opt/open5gs/etc/open5gs/smf.yaml' (../lib/app/ogs-init.c:126)
12/15 17:09:26.359: [metrics] INFO: Prometheus mhd_server() [<IP_ADDRESS>]:9090 (../lib/metrics/prometheus/context.c:320)
12/15 17:09:26.359: [smf] WARNING: No diameter configuration (../src/smf/fd-path.c:30)
12/15 17:09:26.359: [gtp] INFO: gtp_server() [<IP_ADDRESS>]:2123 (../lib/gtp/path.c:30)
12/15 17:09:26.360: [gtp] INFO: gtp_server() [<IP_ADDRESS>]:2152 (../lib/gtp/path.c:30)
12/15 17:09:26.360: [pfcp] INFO: pfcp_server() [<IP_ADDRESS>]:8805 (../lib/pfcp/path.c:30)
12/15 17:09:26.360: [pfcp] INFO: ogs_pfcp_connect() [<IP_ADDRESS>]:8805 (../lib/pfcp/path.c:61)
12/15 17:09:26.362: [sbi] INFO: NF Service [nsmf-pdusession] (../lib/sbi/context.c:1400)
12/15 17:09:26.362: [sbi] INFO: nghttp2_server() [<IP_ADDRESS>]:7777 (../lib/sbi/nghttp2-server.c:150)
12/15 17:09:26.362: [app] INFO: SMF initialize...done (../src/smf/app.c:31)
12/15 17:09:26.366: [sbi] INFO: [b0683b90-9b6c-41ee-ac84-ddbe8dcb3e85] NF registered [Heartbeat:10s] (../lib/sbi/nf-sm.c:222)
12/15 17:09:33.866: [pfcp] WARNING: [1] LOCAL  No Reponse. Give up! for step 1 type 5 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:613)
12/15 17:09:37.361: [smf] WARNING: Retry to association with peer [<IP_ADDRESS>]:8805 failed (../src/smf/pfcp-sm.c:107)
12/15 17:09:44.868: [pfcp] WARNING: [2] LOCAL  No Reponse. Give up! for step 1 type 5 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:613)
12/15 17:09:48.364: [smf] WARNING: Retry to association with peer [<IP_ADDRESS>]:8805 failed (../src/smf/pfcp-sm.c:107)
12/15 17:09:55.869: [pfcp] WARNING: [3] LOCAL  No Reponse. Give up! for step 1 type 5 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:613)
12/15 17:09:59.368: [smf] WARNING: Retry to association with peer [<IP_ADDRESS>]:8805 failed (../src/smf/pfcp-sm.c:107)
12/15 17:10:06.872: [pfcp] WARNING: [4] LOCAL  No Reponse. Give up! for step 1 type 5 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:613)
12/15 17:10:10.372: [smf] WARNING: Retry to association with peer [<IP_ADDRESS>]:8805 failed (../src/smf/pfcp-sm.c:107)
12/15 17:10:13.386: [pfcp] INFO: ogs_pfcp_connect() [<IP_ADDRESS>]:8805 (../lib/pfcp/path.c:61)
12/15 17:10:13.386: [pfcp] WARNING: F-TEID allocation/release not supported with peer [<IP_ADDRESS>]:8805 (../lib/pfcp/handler.c:90)
12/15 17:10:13.386: [smf] INFO: PFCP associated [<IP_ADDRESS>]:8805 (../src/smf/pfcp-sm.c:174)
12/15 17:10:17.875: [pfcp] WARNING: [5] LOCAL  No Reponse. Give up! for step 1 type 5 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:613)
12/15 17:10:18.385: [smf] WARNING: PFCP[REQ] has already been associated [<IP_ADDRESS>]:8805 (../src/smf/pfcp-sm.c:217)
12/15 17:10:18.385: [pfcp] WARNING: F-TEID allocation/release not supported with peer [<IP_ADDRESS>]:8805 (../lib/pfcp/handler.c:90)
12/15 17:10:21.373: [smf] WARNING: Retry to association with peer [<IP_ADDRESS>]:8805 failed (../src/smf/pfcp-sm.c:107)
12/15 17:10:21.373: [pfcp] WARNING: F-TEID allocation/release not supported with peer [<IP_ADDRESS>]:8805 (../lib/pfcp/handler.c:138)
12/15 17:10:21.373: [smf] INFO: PFCP associated [<IP_ADDRESS>]:8805 (../src/smf/pfcp-sm.c:174)
12/15 17:10:24.393: [pfcp] ERROR: invalid step[0] type[2] (../lib/pfcp/xact.c:432)
12/15 17:10:24.393: [pfcp] ERROR: ogs_pfcp_xact_update_rx() failed (../lib/pfcp/xact.c:708)
12/15 17:10:26.894: [pfcp] ERROR: invalid step[0] type[2] (../lib/pfcp/xact.c:432)
12/15 17:10:26.894: [pfcp] ERROR: ogs_pfcp_xact_update_rx() failed (../lib/pfcp/xact.c:708)
12/15 17:10:28.385: [pfcp] WARNING: [2] REMOTE Request Duplicated. Retransmit! for step 2 type 1 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:390)
12/15 17:10:29.400: [pfcp] ERROR: invalid step[0] type[2] (../lib/pfcp/xact.c:432)
12/15 17:10:29.400: [pfcp] ERROR: ogs_pfcp_xact_update_rx() failed (../lib/pfcp/xact.c:708)
12/15 17:10:31.897: [pfcp] WARNING: [7] LOCAL  No Reponse. Give up! for step 1 type 1 peer [<IP_ADDRESS>]:8805 (../lib/pfcp/xact.c:613)
12/15 17:10:31.897: [smf] WARNING: No Heartbeat from UPF [<IP_ADDRESS>]:8805 (../src/smf/pfcp-sm.c:316)
12/15 17:10:31.897: [smf] INFO: PFCP de-associated [<IP_ADDRESS>]:8805 (../src/smf/pfcp-sm.c:181)
12/15 17:18:42.266: [smf] INFO: [Added] Number of SMF-UEs is now 1 (../src/smf/context.c:898)
12/15 17:18:42.266: [smf] INFO: [Added] Number of SMF-Sessions is now 1 (../src/smf/context.c:2975)
12/15 17:18:42.267: [sbi] WARNING: Try to discover [nudm-sdm] (../lib/sbi/path.c:114)
12/15 17:18:42.269: [sbi] INFO: [4585b4da-9a1b-41ee-9b79-a3c44544f50c] (NF-discover) NF registered (../lib/sbi/nnrf-handler.c:731)
12/15 17:18:42.269: [sbi] INFO: [4585b4da-9a1b-41ee-9b79-a3c44544f50c] (NF-discover) NF Profile updated (../lib/sbi/nnrf-handler.c:758)
12/15 17:18:42.275: [sbi] WARNING: Try to discover [npcf-smpolicycontrol] (../lib/sbi/path.c:114)
12/15 17:18:42.276: [sbi] INFO: [6e09fbb4-9a1b-41ee-9855-d5511278fe52] (NF-discover) NF registered (../lib/sbi/nnrf-handler.c:731)
12/15 17:18:42.277: [sbi] INFO: [6e09fbb4-9a1b-41ee-9855-d5511278fe52] (NF-discover) NF Profile updated (../lib/sbi/nnrf-handler.c:758)
12/15 17:18:42.290: [smf] INFO: UE SUPI[imsi-208930000000001] DNN[internet] IPv4[<IP_ADDRESS>] IPv6[] (../src/smf/npcf-handler.c:495)
12/15 17:18:42.292: [gtp] INFO: gtp_connect() [<IP_ADDRESS>]:2152 (../lib/gtp/path.c:60)
12/15 17:18:42.294: [sbi] WARNING: Try to discover [namf-comm] (../lib/sbi/path.c:114)
12/15 17:18:42.295: [sbi] INFO: [546c9572-9a1b-41ee-8cdb-ddf4c340f98c] (NF-discover) NF registered (../lib/sbi/nnrf-handler.c:731)
12/15 17:18:42.295: [sbi] INFO: [546c9572-9a1b-41ee-8cdb-ddf4c340f98c] (NF-discover) NF Profile updated (../lib/sbi/nnrf-handler.c:758)
Stream closed EOF for open5gs20893/open5gs-smf-76dd6bd497-d7bm9 (open5gs-smf)

eUPF start log:

[GIN-debug] [WARNING] Running in "debug" mode.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:    export GIN_MODE=release
 - using code:    gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /metrics                  --> github.com/edgecomllc/eupf/cmd/api/rest.(*ApiHandler).InitMetricsRoute.func1.1 (4 handlers)
2023/12/15 17:10:08 INF running on :8080
2023/12/15 17:10:08 INF running on :9090
2023/12/15 17:10:13 DBG Sequence ID: 1
2023/12/15 17:10:13 INF Sent Association Setup Request to: open5gs-smf-pfcp
2023/12/15 17:10:13 DBG Received 35 bytes from <IP_ADDRESS>:8805
2023/12/15 17:10:13 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/15 17:10:13 INF Got Association Setup Response from: <IP_ADDRESS>
2023/12/15 17:10:13 INF Got Association Setup Response with CPFunctionFeatures from: <IP_ADDRESS>. CPFunctionFeatures: 0
2023/12/15 17:10:13 INF Saving new association: &{ID:<IP_ADDRESS> Addr:<IP_ADDRESS> NextSessionID:1 NextSequenceID:1 Sessions:map[] HeartbeatRetries:0 cancelRetries:<nil>}
2023/12/15 17:10:18 DBG Sequence ID: 2
2023/12/15 17:10:18 INF Sent Association Setup Request to: open5gs-smf-pfcp
2023/12/15 17:10:18 DBG Stop sending Association Setup Request to open5gs-smf-pfcp
2023/12/15 17:10:18 DBG Received 35 bytes from <IP_ADDRESS>:8805
2023/12/15 17:10:18 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/15 17:10:18 INF Got Association Setup Response from: <IP_ADDRESS>
2023/12/15 17:10:18 INF Got Association Setup Response with CPFunctionFeatures from: <IP_ADDRESS>. CPFunctionFeatures: 0
2023/12/15 17:10:18 WRN Association with NodeID: <IP_ADDRESS> and address: <IP_ADDRESS> already exists
2023/12/15 17:10:18 WRN Session retention is not yet implemented
2023/12/15 17:10:18 INF Saving new association: &{ID:<IP_ADDRESS> Addr:<IP_ADDRESS> NextSessionID:1 NextSequenceID:1 Sessions:map[] HeartbeatRetries:0 cancelRetries:<nil>}
2023/12/15 17:10:21 DBG Received 30 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:21 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:21 INF Got Association Setup Request from: <IP_ADDRESS>
2023/12/15 17:10:21 INF
Association Setup Request:
  Node ID: <IP_ADDRESS>
  Recovery Time: 2023-12-15 17:09:21 +0000 UTC

2023/12/15 17:10:21 WRN Association with NodeID: <IP_ADDRESS> and address: <IP_ADDRESS> already exists
2023/12/15 17:10:21 WRN Session retention is not yet implemented
2023/12/15 17:10:21 INF Saving new association: &{ID:<IP_ADDRESS> Addr:<IP_ADDRESS> NextSessionID:1 NextSequenceID:1 Sessions:map[] HeartbeatRetries:0 cancelRetries:<nil>}
2023/12/15 17:10:23 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:10:23 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:23 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:23 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:24 DBG Received 16 bytes from <IP_ADDRESS>:8805
2023/12/15 17:10:24 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/15 17:10:24 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:24 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:10:26 DBG Received 16 bytes from <IP_ADDRESS>:8805
2023/12/15 17:10:26 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/15 17:10:26 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:26 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:10:28 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:10:28 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:28 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:28 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:29 DBG Received 16 bytes from <IP_ADDRESS>:8805
2023/12/15 17:10:29 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/15 17:10:29 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:29 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:10:32 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:32 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:32 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:32 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:10:33 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:10:33 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:33 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:33 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:38 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:10:38 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:38 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:38 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:43 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:43 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:43 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:10:43 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:10:43 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:10:43 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:10:43 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:10:43 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
Stream closed EOF for open5gs20893/eupf-cf968d66c-fwcdv (eupf)

eUFP log when UE is connected
      Network Instance: internet
  CreateFAR ID: 3
    Apply Action: [2 0]
    Forwarding Parameters:
      Network Instance: internet
      Outer Header Creation: &{OuterHeaderCreationDescription:256 TEID:1 IPv4Address:<IP_ADDRESS> IPv6Address:<nil> PortNumber:0 CTag:0 STag:0}
  CreateQER ID: 1
    Gate Status DL: 0
    Gate Status UL: 0
    Max Bitrate DL: 999999
    Max Bitrate UL: 999999
    QFI: 1
  CreateURR ID: 1
    Measurement Method: 2
    Volume Threshold: &{Flags:1 TotalVolume:104857600 UplinkVolume:0 DownlinkVolume:0}
  CreateBAR ID: 1

2023/12/15 17:18:42 INF Saving FAR info to session: 1, {Action:12 OuterHeaderCreation:0 Teid:0 RemoteIP:0 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:42 DBG EBPF: Put FAR: internalId=0, qerInfo={Action:12 OuterHeaderCreation:0 Teid:0 RemoteIP:0 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:42 INF WARN: No OuterHeaderCreation
2023/12/15 17:18:42 INF Saving FAR info to session: 2, {Action:2 OuterHeaderCreation:0 Teid:0 RemoteIP:0 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:42 DBG EBPF: Put FAR: internalId=1, qerInfo={Action:2 OuterHeaderCreation:0 Teid:0 RemoteIP:0 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:42 INF Saving FAR info to session: 3, {Action:2 OuterHeaderCreation:1 Teid:1 RemoteIP:1297017098 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:42 DBG EBPF: Put FAR: internalId=2, qerInfo={Action:2 OuterHeaderCreation:1 Teid:1 RemoteIP:1297017098 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:42 INF Saving QER info to session: 1, {GateStatusUL:0 GateStatusDL:0 Qfi:1 MaxBitrateUL:999999000 MaxBitrateDL:999999000 StartUL:0 StartDL:0}
2023/12/15 17:18:42 DBG EBPF: Put QER: internalId=0, qerInfo={GateStatusUL:0 GateStatusDL:0 Qfi:1 MaxBitrateUL:999999000 MaxBitrateDL:999999000 StartUL:0 StartDL:0}
2023/12/15 17:18:42 DBG EBPF: Put PDR Downlink: ipv4=<IP_ADDRESS>, pdrInfo={OuterHeaderRemoval:0 FarId:0 QerId:0 SdfFilter:<nil>}
2023/12/15 17:18:42 DBG EBPF: Put PDR Uplink: teid=2, pdrInfo={OuterHeaderRemoval:0 FarId:1 QerId:0 SdfFilter:<nil>}
2023/12/15 17:18:42 DBG EBPF: Put PDR Uplink: teid=3, pdrInfo={OuterHeaderRemoval:0 FarId:0 QerId:0 SdfFilter:<nil>}
2023/12/15 17:18:42 DBG Error extracting PDR info: SDF Filter: bad formatting. Should be compatible with regexp: ^permit out (icmp|ip|tcp|udp) from (any|[\d.]+|[\da-fA-F:]+)(?:/(\d+))?(?: (\d+|\d+-\d+))? to ([\d.]+|[\da-fA-F:]+)(?:/(\d+))?(?: (\d+|\d+-\d+))?$
2023/12/15 17:18:42 INF Session Establishment Request from <IP_ADDRESS> accepted.
2023/12/15 17:18:42 DBG Received 70 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:42 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:42 INF Got Session Modification Request from: <IP_ADDRESS>.

2023/12/15 17:18:42 INF Finding association for <IP_ADDRESS>
2023/12/15 17:18:42 INF Finding session 2
2023/12/15 17:18:42 INF
Session Modification Request:
  UpdateFAR ID: 1
    Apply Action: [2 0]
    Update forwarding Parameters:
      Network Instance: internet
      Outer Header Creation: &{OuterHeaderCreationDescription:256 TEID:1 IPv4Address:<IP_ADDRESS> IPv6Address:<nil> PortNumber:0 CTag:0 STag:0}

2023/12/15 17:18:42 INF Updating FAR info: 1, {FarInfo:{Action:2 OuterHeaderCreation:1 Teid:1 RemoteIP:1699670282 LocalIP:188803338 TransportLevelMarking:0} GlobalId:0}
2023/12/15 17:18:42 DBG EBPF: Update FAR: internalId=0, farInfo={Action:2 OuterHeaderCreation:1 Teid:1 RemoteIP:1699670282 LocalIP:188803338 TransportLevelMarking:0}
2023/12/15 17:18:43 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:18:43 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:43 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:43 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:18:47 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:47 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:47 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:18:47 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:18:48 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:18:48 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:48 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:48 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:18:53 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:18:53 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:53 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:53 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:18:58 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:18:58 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:58 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:58 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:18:58 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:18:58 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:18:58 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:18:58 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:19:03 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:19:03 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:03 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:03 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:19:08 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:19:08 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:08 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:08 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:19:09 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:09 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:09 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:19:09 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:19:13 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:19:13 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:13 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:13 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:19:18 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:19:18 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:18 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:18 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:19:20 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:20 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:20 DBG Got Heartbeat Request with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
2023/12/15 17:19:20 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/15 17:19:23 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/15 17:19:23 DBG Received 16 bytes from <IP_ADDRESS>:31129
2023/12/15 17:19:23 DBG Handling PFCP message from <IP_ADDRESS>:31129
2023/12/15 17:19:23 DBG Got Heartbeat Response with TS: 2023-12-15 17:09:21 +0000 UTC, from: <IP_ADDRESS>
Stream closed EOF for open5gs20893/eupf-cf968d66c-fwcdv (eupf)

Good solution!
UPF actually saves only one association.
But I suspect that SMF is storing two of them (with eUPF service and eUPF pod).
An evidence:
After the association initiated by UPF was established:
2023/12/15 17:10:18 INF Got Association Setup Response with CPFunctionFeatures from: <IP_ADDRESS>. CPFunctionFeatures: 0

UPF receives an additional request from SMF (a later timestamp):
2023/12/15 17:10:21 INF Got Association Setup Request from: <IP_ADDRESS>

Both SMF and UPF services set to ClusterIP: None mode.
In such case UPF doesn't receive an Association Setup Request from SMF.
Only Response.

[GIN-debug] [WARNING] Running in "debug" mode.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /metrics                  --> github.com/edgecomllc/eupf/cmd/api/rest.(*ApiHandler).InitMetricsRoute.func1.1 (4 handlers)
2023/12/19 01:04:35 INF running on :8080
2023/12/19 01:04:35 INF running on :9090
2023/12/19 01:04:40 DBG Sequence ID: 1
2023/12/19 01:04:40 INF Sent Association Setup Request to: open5gs-smf-pfcp
2023/12/19 01:04:40 DBG Received 35 bytes from <IP_ADDRESS>:8805
2023/12/19 01:04:40 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/19 01:04:40 INF Got Association Setup Response from: <IP_ADDRESS>
2023/12/19 01:04:40 INF Got Association Setup Response with CPFunctionFeatures from: <IP_ADDRESS>. CPFunctionFeatures: 0
2023/12/19 01:04:40 INF Saving new association: &{ID:<IP_ADDRESS> Addr:<IP_ADDRESS> NextSessionID:1 NextSequenceID:1 Sessions:map[] HeartbeatRetries:0 cancelRetries:<nil>}
2023/12/19 01:04:42 DBG Received 16 bytes from <IP_ADDRESS>:8805
2023/12/19 01:04:42 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/19 01:04:42 DBG Got Heartbeat Request with TS: 2023-12-19 01:04:20 +0000 UTC, from: <IP_ADDRESS>
2023/12/19 01:04:42 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/19 01:04:45 DBG Sequence ID: 2
2023/12/19 01:04:45 INF Sent Association Setup Request to: open5gs-smf-pfcp
2023/12/19 01:04:45 DBG Stop sending Association Setup Request to open5gs-smf-pfcp
2023/12/19 01:04:45 DBG Received 35 bytes from <IP_ADDRESS>:8805
2023/12/19 01:04:45 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/19 01:04:45 INF Got Association Setup Response from: <IP_ADDRESS>
2023/12/19 01:04:45 INF Got Association Setup Response with CPFunctionFeatures from: <IP_ADDRESS>. CPFunctionFeatures: 0
2023/12/19 01:04:45 WRN Association with NodeID: <IP_ADDRESS> and address: <IP_ADDRESS> already exists
2023/12/19 01:04:45 WRN Session retention is not yet implemented
2023/12/19 01:04:45 INF Saving new association: &{ID:<IP_ADDRESS> Addr:<IP_ADDRESS> NextSessionID:1 NextSequenceID:1 Sessions:map[] HeartbeatRetries:0 cancelRetries:<nil>}
2023/12/19 01:04:50 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/19 01:04:53 DBG Received 16 bytes from <IP_ADDRESS>:8805
2023/12/19 01:04:53 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/19 01:04:53 DBG Got Heartbeat Request with TS: 2023-12-19 01:04:20 +0000 UTC, from: <IP_ADDRESS>
2023/12/19 01:04:53 DBG Sent Heartbeat Response to: <IP_ADDRESS>
2023/12/19 01:04:55 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/19 01:04:55 DBG Received 16 bytes from <IP_ADDRESS>:8805
2023/12/19 01:04:55 DBG Handling PFCP message from <IP_ADDRESS>:8805
2023/12/19 01:04:55 DBG Got Heartbeat Response with TS: 2023-12-19 01:04:20 +0000 UTC, from: <IP_ADDRESS>
2023/12/19 01:05:00 DBG Sent Heartbeat Request to: <IP_ADDRESS>
2023/12/19 01:05:00 DBG Received 16 bytes from <IP_ADDRESS>:8805


[TH] Fixing Manual and automated tests for SVE-2

Reproduction steps / Feature
Fixing this https://github.com/CHIP-Specifications/chip-test-scripts/issues/469

and modifying the following TCs

Test_TC_ACE_1_1.yaml
Test_TC_ACL_2_5.yaml
Test_TC_BR_2.yaml
Test_TC_BR_4.yaml
Test_TC_G_3_2.yaml
Test_TC_IDM_2_1.yaml
Test_TC_IDM_6_2.yaml
Test_TC_LVL_2_3.yaml
Test_TC_MOD_1_3.yaml
Test_TC_OO_3_1.yaml
Test_TC_PSCFG_3_1.yaml
Test_TC_PS_3_1.yaml

Platform
raspi
Platform Version(s)
No response
Type
YAML tested, CI tested
(Optional) If manually tested please explain why this is only manually tested
No response
Anything else?
No response

@raju-apple did https://github.com/project-chip/connectedhomeip/pull/22631 fix this?

Yes


update.py not working

Hello all,
Today, I started working with the degiro connector api. I got 2FA working, but i was trying to run the update.py example. However, any of the UpdateRequests gives me a bad request.
credentials = build_credentials(
    location="config/config.json",
    override={
        "username": username,
        "password": password,
        "totp_secret_key": totp,
    },
)
trading_api = TradingAPI(credentials=credentials)
trading_api.connect()

# FETCH ACCOUNT UPDATE
account_update = trading_api.get_update(
    request_list=[
        UpdateRequest(
            option=UpdateOption.ALERTS,
            last_updated=0,
        ),
        UpdateRequest(
            option=UpdateOption.CASH_FUNDS,
            last_updated=0,
        ),
        UpdateRequest(
            option=UpdateOption.HISTORICAL_ORDERS,
            last_updated=0,
        ),
        UpdateRequest(
            option=UpdateOption.ORDERS,
            last_updated=0,
        ),
        UpdateRequest(
            option=UpdateOption.PORTFOLIO,
            last_updated=0,
        ),
        UpdateRequest(
            option=UpdateOption.TOTAL_PORTFOLIO,
            last_updated=0,
        ),
        UpdateRequest(
            option=UpdateOption.TRANSACTIONS,
            last_updated=0,
        ),
    ],
    raw=True,
)

print(account_update)

CRITICAL:degiro_connector.trading.actions.action_get_update:400 Client Error:  for url XXXXXXXXX
CRITICAL:degiro_connector.trading.actions.action_get_update:{"errors":[{"text":"Bad request"}]}
None
Anybody an idea on how to solve this?

Hello @SjoerdTimovanVliet,
I cannot reproduce this issues: the update.py example works for me.
Are you able to run any other example successfully?
I can take a quick look if you want to show me the exact issue.
Feel free to contact me on discord.
Thanks

Hello @Chavithra  thank you for your fast response. I can run any other example without a problem. It really is only  the get_update method of the TradingAPI object.

You need to provide the int_account field in the Credentials model for this method to work.
My discord is on my Github profile.


Run multi arch ios unit test for M1 mac

pass --ios_multi_cpus=x86_64,sim_arm64 to bazel to build multi-arch binary
add ios_sim_arm64 config for third_party/cares
update bazel-out/darwin-fastbuild/bin to bazel-bin which points to bazel-out/darwin_arm64-fastbuild/bin on M1 macs.

tested with SCHEME=InteropTestsLocalSSL src/objective-c/tests/run_one_test_bazel.sh

Example failure:
2022-12-18 12:29:08.229 xctest[86573:242977] The bundle “InteropTestsLocalCleartext” couldn’t be loaded because it doesn’t contain a version for the current architecture. Try installing a universal version of the bundle.

@sampajano

Thanks so much for adding M1 support! 😃

There seems to be some test failure tho.

Thanks so much for adding M1 support! 😃

There seems to be some test failure tho.

@HannahShiSFB is the Bazel Distribtest failure related to this PR? If not can we usually merge irrespective of the error?

Bazel Distribtest failure is not related, fix in #31999

Bazel Distribtest failure is not related, fix in #31999. It's good to merge

Aha ok thanks for clarifying! Merging now. Thanks! 😃


[Failing Test]: Building a wheel for integration tests sometimes times out

What happened?
We are hitting subprocess.TimeoutExpired within cibuildwheel:
12:48:24 > Task :sdks:python:bdistPy38linux
12:48:24
12:48:24 [notice] A new release of pip available: 22.2.2 -> 23.2.1
12:48:24 [notice] To update, run: pip install --upgrade pip
12:48:24 Processing /project
12:48:24   Preparing metadata (setup.py): started
12:48:24   Preparing metadata (setup.py): finished with status 'done'
12:48:24 Building wheels for collected packages: apache-beam
12:48:24   Building wheel for apache-beam (setup.py): started
12:48:24   Building wheel for apache-beam (setup.py): still running...
12:48:24   Building wheel for apache-beam (setup.py): still running...
12:48:24   Building wheel for apache-beam (setup.py): still running...
12:48:24   Building wheel for apache-beam (setup.py): finished with status 'done'
12:48:24   Created wheel for apache-beam: filename=apache_beam-2.52.0.dev0-cp38-cp38-linux_x86_64.whl size=15364571 sha256=e737d0e77efe4e77279557c8b6226fd9a5d2f36b71343343a00ca1aae340e4ba
12:48:24   Stored in directory: /tmp/pip-ephem-wheel-cache-jf8ssnkj/wheels/d4/3a/c0/4dc152b1840724d5b992a8268bb4ef33fdbe42ffe1429b845c
12:48:24 Successfully built apache-beam
12:48:24     + /opt/python/cp38-cp38/bin/python -c 'import sys, json, glob; json.dump(glob.glob('"'"'/tmp/cibuildwheel/built_wheel/*.whl'"'"'), sys.stdout)'
12:48:24     + rm -rf /tmp/cibuildwheel/repaired_wheel
12:48:25     + mkdir -p /tmp/cibuildwheel/repaired_wheel
12:48:25
12:48:25                                                                      ✓ 253.39s
12:48:25 Repairing wheel...
12:48:25
12:48:25     + sh -c 'auditwheel repair -w /tmp/cibuildwheel/repaired_wheel /tmp/cibuildwheel/built_wheel/apache_beam-2.52.0.dev0-cp38-cp38-linux_x86_64.whl'
12:48:25 INFO:auditwheel.main_repair:Repairing apache_beam-2.52.0.dev0-cp38-cp38-linux_x86_64.whl
12:48:25 INFO:auditwheel.wheeltools:Previous filename tags: linux_x86_64
12:48:27 INFO:auditwheel.wheeltools:New filename tags: manylinux_2_17_x86_64, manylinux2014_x86_64
12:48:27 INFO:auditwheel.wheeltools:Previous WHEEL info tags: cp38-cp38-linux_x86_64
12:48:27 INFO:auditwheel.wheeltools:New WHEEL info tags: cp38-cp38-manylinux_2_17_x86_64, cp38-cp38-manylinux2014_x86_64
12:48:27 INFO:auditwheel.main_repair:
12:48:31 Fixed-up wheel written to /tmp/cibuildwheel/repaired_wheel/apache_beam-2.52.0.dev0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
12:48:31     + /opt/python/cp38-cp38/bin/python -c 'import sys, json, glob; json.dump(glob.glob('"'"'/tmp/cibuildwheel/repaired_wheel/*.whl'"'"'), sys.stdout)'
12:48:31     + mkdir -p /output
12:48:31     + mv /tmp/cibuildwheel/repaired_wheel/apache_beam-2.52.0.dev0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl /output
12:48:31
12:48:31                                                                        ✓ 6.64s
12:48:31
12:48:31 ✓ cp38-manylinux_x86_64 finished in 270.43s
12:48:31 Copying wheels back to host...
12:48:31
12:48:31
12:48:31                                                                        ✓ 0.17s
12:48:31 Traceback (most recent call last):
12:49:01   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Integration_Commit/src/build/gradleenv/1922375555/bin/cibuildwheel", line 8, in <module>
12:49:01     sys.exit(main())
12:49:01   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Integration_Commit/src/build/gradleenv/1922375555/lib/python3.8/site-packages/cibuildwheel/__main__.py", line 129, in main
12:49:01     build_in_directory(args)
12:49:01   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Integration_Commit/src/build/gradleenv/1922375555/lib/python3.8/site-packages/cibuildwheel/__main__.py", line 248, in build_in_directory
12:49:01     cibuildwheel.linux.build(options, tmp_path)
12:49:01   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Integration_Commit/src/build/gradleenv/1922375555/lib/python3.8/site-packages/cibuildwheel/linux.py", line 384, in build
12:49:01     build_in_container(
12:49:01   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Integration_Commit/src/build/gradleenv/1922375555/lib/python3.8/site-packages/cibuildwheel/oci_container.py", line 134, in __exit__
12:49:01     self.process.wait(timeout=30)
12:49:01   File "/usr/lib/python3.8/subprocess.py", line 1083, in wait
12:49:01     return self._wait(timeout=timeout)
12:49:01   File "/usr/lib/python3.8/subprocess.py", line 1798, in _wait
12:49:01     raise TimeoutExpired(self.args, timeout)
12:49:01 subprocess.TimeoutExpired: Command '['docker', 'start', '--attach', '--interactive', 'cibuildwheel-925e8aec-2a6f-4f02-b2e5-22df08e131cc']' timed out after 30 seconds
12:49:01
12:49:13 > Task :sdks:python:bdistPy38linux FAILED
12:49:13

We could perhaps add a retry around cibuildwheel call.
Issue Failure
Failure: Test is flaky
Issue Priority
Priority: 1 (unhealthy code / failing or flaky postcommit so we cannot be sure the product is healthy)
Issue Components

[X] Component: Python SDK
[ ] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[ ] Component: IO connector
[ ] Component: Beam YAML
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

Reading through the documentation for cibuildwheel we don't get a route for configuring any timeouts. I'm a little concerned about just wrapping the cibuildwheel calls in a retry though, we'd be adding more runtime to the actions and not necessarily addressing the underlying issue

What if we retry a limited # of times?

Is this still observed?

Yes, still happening:
13:46:31
13:46:38 > Task :sdks:python:bdistPy311linux
13:46:38 Traceback (most recent call last):
13:46:38   File "/home/jenkins/jenkins-slave/workspace/beam_PreCommit_Python_Commit@2/src/build/gradleenv/1922375555/bin/cibuildwheel", line 8, in <module>
13:46:38     sys.exit(main())
13:46:38   File<EMAIL_ADDRESS>line 129, in main
13:46:38     build_in_directory(args)
13:46:38   File<EMAIL_ADDRESS>line 248, in build_in_directory
13:46:38     cibuildwheel.linux.build(options, tmp_path)
13:46:38   File<EMAIL_ADDRESS>line 384, in build
13:46:38     build_in_container(
13:46:38   File<EMAIL_ADDRESS>line 134, in __exit__
13:46:38     self.process.wait(timeout=30)
13:46:38   File "/usr/lib/python3.8/subprocess.py", line 1083, in wait
13:46:38     return self._wait(timeout=timeout)
13:46:38   File "/usr/lib/python3.8/subprocess.py", line 1798, in _wait
13:46:38     raise TimeoutExpired(self.args, timeout)
13:46:38 subprocess.TimeoutExpired: Command '['docker', 'start', '--attach', '--interactive', 'cibuildwheel-690819bd-0a6a-47c7-bf5a-4c280b516a4f']' timed out after 30 seconds
13:46:38
13:46:41 > Task :sdks:python:bdistPy311linux FAILED

Filed https://github.com/pypa/cibuildwheel/issues/1692 for CIBuildWheel folks.


contracts: submit pre-signed transaction

Fixes #179:
Error: Un-enveloped data was passed to sendRawTransaction, which is likely incorrect. Is the dapp using the Sapphire compat lib correctly?

I have added tests transaction envelope tests:
✔ Wrapper encrypts self-signed transaction calldata (4038ms)
✔ Other-Signed transaction submission via un-wrapped provider (4223ms)
✔ Other-Signed transaction submission via wrapped provider (4115ms)
✔ Self-Signed transaction submission via wrapped provider (4061ms)

This slightly modifies sapphire.wrap behavior so if it receives a signed but unencrypted transaction from an address which it can't sign for the transaction will pass through as-is.

The repackRawTx function rejects things that it could easily handle.
And if you CBOR encode the envelope you end up with the contract receiving CBOR encoded data, rather than the calldata...

This will fix #179

There are a few scenarios we want to handle with sendRawTransaction:

User submits signed but unencrypted transaction

Wrap in encrypted envelope, no need to re-sign it, submit to RPC endpoint

User submits signed & encrypted transaction

Pass it verbatim to RPC endpoint

User submits unsigned unencrypted transaction

Sign it, encrypt it & submit to RPC endpoint

However, currently the wrapper will raise an error if you submit a transaction signed by somebody else, it will try to re-sign the transaction.

So... looks like the error I want to fix is fundamentally unfixable.
But, instead I added a test to make sure the EIP155 module can sign and submit transactions, and that transactions submitted by the wrapped provider are encrypted.

So I can fix this error where we submit pre-signed transactions through the provider which is attached to a signer with a different address. But we can't automatically encrypt pre-signed transactions.

So I can fix this error where we submit pre-signed transactions through the provider which is attached to a signer with a different address. But we can't automatically encrypt pre-signed transactions.

Why not? Encryption with an ephemeral key derived from the runtime and the client key has nothing to do with who signed the tx.

Why not? Encryption with an ephemeral key derived from the runtime and the client key has nothing to do with who signed the tx.

The calldata is signed, modifying the calldata by wrapping it in an encrypted envelope would invalidate the existing signature.
When I use:
const [owner] = await ethers.getSigners();
const provider = testContract.provider;
const wallet = sapphire.wrap(owner.connect(provider));

The repackRawTx function encrypts the calldata then asks the signer to re-sign the modified transaction, however with the JSON-RPC Signer it's
Error: cannot alter JSON-RPC Signer connection (operation="connect", code=UNSUPPORTED_OPERATION, version=providers/5.7.2)

If I wrap the owner directly, e.g. const wallet = sapphire.wrap(owner); I get:
Error: signing transactions is unsupported (operation="signTransaction", code=UNSUPPORTED_OPERATION, version=providers/5.7.2)

And only via creating a new ethers.Wallet directly and connect() it to the provider does it work because it can sign the transaction.
If this happens via MetaMask and the dApp signs a transaction without encrypting it then sends it through a wrapped signer it will try to encrypt it before submission.
I have slightly modified the behavior and added test cases so it you pass a transaction not signed by the signers address it will not attempt to encrypt it and pass it on. This makes submitting the gasless transactions easier because you don't need to setup a different unwrapped provider to submit it.

This may be relevant: https://github.com/oasisprotocol/sapphire-paratime/issues/106


Typo in listing locations command

In the "Deploy the sample" section, the command to list all the locations should be az account list-locations, not az account locations-list.

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

ID: 0077a811-b0b7-93b1-80b0-a4d45615ef4b
Version Independent ID: cc95198d-5560-2bf1-09ae-b8d210e45f2d
Content: Quickstart: Create a Linux Python app - Azure App Service
Content Source: articles/app-service/containers/quickstart-python.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

Hi @frankzhewang, thanks for submitting a PR to fix this  typo. The doc author will review the PR and get back to you.


Make FormControl component headless.

Closes #1868
Description
Make FormControl component headless.
Is this a breaking change (Yes/No):
No.

Thanks!


FDG-7970 Promote New Dataset to Prod - Upcoming Auctions

https://federal-spending-transparency.atlassian.net/browse/FDG-7970
no change in testing coverage

Do not Merge. This is blocked by backend changes


fix: made ingressClass configurable

Everyone may not be having ingress class as default nginx, so made it configurable for those who want to create kcert-ingress with some other class of their own

Done changes as requested, please verify once

Will be doing it today, was busy with some other tasks

@nabsul Please check I have updated the changes as requested

I'll go ahead and take care of those last little tweaks on my own. Thanks for the contribution!

merged in #93


How to evaluate BLEU score on LM1B?

Dear authors,
I understand that you plan to release your code on January. But could you share more details regarding how you evaluate the BLEU score and PPL on the LM1B dataset? I am also working on Diffusion Model for text and may potentially cite your paper. Thanks!

Hi,
We computed the BLEU score with all test data as references and reported the average BLEU score of each generated sentence. We sampled 1K sentences respectively for evaluating BLEU and S-BLEU.
For PPL, the ELBO on the test set is an upper bound of token-wise NLL. And we first convert such bound to per-word NLL and use this to get the per-word PPL.
Hope this helps!

@yujianll Hi,

Yes, we sum up NLL for all tokens in the sequence as NLL for the sequence.
The validation ELBO is around 110. And the average number of words in each sequence in the test set is around 26. Thus per-word NLL is around 4.23. The test PPL is obtained by exp(4.23).

@Hzfinfdu Thanks for the reply!
I have another low-level question. When you calculate NLL on test set, do you sum for all T diffusion steps, or do you sample a few time steps for calculation? If you do sample, how many time steps do you use?

@yujianll Hi,
We trained DiffusionBERT with 512 steps and used DDIM sampling to uniformly sample 128 steps on test set, both for NLL calculation and generation.
Hope this helps!

Thanks, this helps a lot!


hack: add hack/tools to hold non required dependencies/tools for the project

Summary

hack: add hack/tools to hold non required dependencies/tools for the project
as follow up of https://github.com/sigstore/sigstore/pull/146#issuecomment-970550092

update aws SDK dependency

Ticket Link
n/a
Release Note

hack: add hack/tools to hold non required dependencies/tools for the project

LGTM, always nice to keep things tidy :)


PWD not changed to follow buffer when writing a new file when &autochdir is on

The working directory doesn't follow the buffer when it should, after writing a new file from a new buffer.
This seems like it's related to issue #704
Steps to reproduce:

Start vim from home directory with no arguments: vim -N -u NONE
:set autochdir
:w /tmp/new_file.temp

Outcome:
The % register is set to "/tmp/new_file.temp" but the :pwd command gives the directory you started vim in.
Expected outcome:
The % register should be set to "/tmp/new_file.temp" and the :pwd command should give "/tmp".
Further information:
vim 7.4.1752
Linux

Re-tried in d10abe5. Problem still exists.

Hi, I'm not sure I agree with the expected outcome. If the % register is /tmp/new_file.temp then :pwd should not be /tmp; otherwise % would be just new_file.temp.
We could change pwd to /tmp, but did autocmd ever actually work that way?
Furthermore it doesn't seem to me that #704 is related to this.

@misterfish Ah quite right.
&acd should have the side affect that the % register will always be the basename of the current file. The fact that it's not is a side effect of PWD not getting updated.

The issue hasn't gone as of 7.2254 (Windows, 64-bit). The description of Dan Church still holds for the part of the ":pwd" command, i.e. autochdir is not effective here.


Data mean = None

Aparently, you could set data mean to None (or just avoid setting it at all) at the settings_locale file, and it should be supported by optimize_image.py:

help = '''Mean. The mean may be None, a tuple of one mean value per channel, or a string...""

However, passing a None mean, throws a runtime exception on the gradient optimizer constructor since it tries to index the data_mean array.
The crash:
  File "optimize_image.py", line 222, in <module>
    main()
  File "optimize_image.py", line 194, in main
    channel_swap_to_rgb = channel_swap_to_rgb)
  File "/home/martin/workspace/deep-visualization-toolbox/optimize/gradient_optimizer.py", line 168, in __init__
    self._data_mean_rgb_img = self.data_mean[self.channel_swap_to_rgb].transpose((1,2,0))  # Store as (227,227,3) in RGB order.
TypeError: 'NoneType' object has no attribute '__getitem__'

What sould I do?

@mescarra
I've made the tool substantially more generic: all the hardcoded parts where replaced with new settings parameters, most are deduced automatically by analyzing the network definition file
I've also refactored the use of mean files to support many different input formats
Latest version is in https://github.com/arikpoz/deep-visualization-toolbox


removing body opaque color styling, as it prevents a transparent back…

…ground in the App, even if clearColor in settings is set to 0x00000000

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

LGTM! Thanks 👍


c-ares: 1.27.0 -> 1.29.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/c-ares/versions.
meta.description for c-ares is: A C library for asynchronous DNS requests
meta.homepage for c-ares is: https://c-ares.haxx.se
meta.changelog for c-ares is: https://c-ares.org/changelog.html#1_28_1
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.28.1 with grep in /nix/store/hp38if8b152b6dwhcsp3jmqxlvnmqgim-c-ares-1.28.1
found 1.28.1 in filename of file in /nix/store/hp38if8b152b6dwhcsp3jmqxlvnmqgim-c-ares-1.28.1

Rebuild report (if merged into master) (click to expand)

51676 total rebuild path(s)

51675 package rebuild(s)

First fifty rebuilds by attrpath

ArchiSteamFarm
BeatSaberModManager
CHOWTapeModel
ChowCentaur
ChowKick
ChowPhaser
CuboCore.coreaction
CuboCore.corearchiver
CuboCore.corefm
CuboCore.coregarage
CuboCore.corehunt
CuboCore.coreimage
CuboCore.coreinfo
CuboCore.corekeyboard
CuboCore.corepad
CuboCore.corepaint
CuboCore.corepdf
CuboCore.corepins
CuboCore.corerenamer
CuboCore.coreshot
CuboCore.corestats
CuboCore.corestuff
CuboCore.coreterminal
CuboCore.coretime
CuboCore.coretoppings
CuboCore.coreuniverse
CuboCore.libcprime
CuboCore.libcsys
DisnixWebService
EmptyEpsilon
Fabric
HentaiAtHome
LAStools
LASzip
LASzip2
LibreArp
LibreArp-lv2
Literate
MIDIVisualizer
MMA
OSCAR
OVMF
OVMF-cloud-hypervisor
OVMFFull
QuadProgpp
R
SDL
SDL2
SDL2_Pango

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/hp38if8b152b6dwhcsp3jmqxlvnmqgim-c-ares-1.28.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A c-ares https://github.com/r-ryantm/nixpkgs/archive/1a96951a9a48a8d34e303749919217eee2b2fc95.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1a96951a9a48a8d34e303749919217eee2b2fc95#c-ares

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/hp38if8b152b6dwhcsp3jmqxlvnmqgim-c-ares-1.28.1
ls -la /nix/store/hp38if8b152b6dwhcsp3jmqxlvnmqgim-c-ares-1.28.1/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings

I want to adopt this!

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/c-ares/versions.
meta.description for c-ares is: A C library for asynchronous DNS requests
meta.homepage for c-ares is: https://c-ares.haxx.se
meta.changelog for c-ares is: https://c-ares.org/changelog.html#1_29_0
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 1.29.0 with grep in /nix/store/rgdkp0fh16z5sw2yjl50y2syiydpcwkl-c-ares-1.29.0
found 1.29.0 in filename of file in /nix/store/rgdkp0fh16z5sw2yjl50y2syiydpcwkl-c-ares-1.29.0

Rebuild report (if merged into master) (click to expand)

52964 total rebuild path(s)

52963 package rebuild(s)

First fifty rebuilds by attrpath

ArchiSteamFarm
BeatSaberModManager
CHOWTapeModel
ChowCentaur
ChowKick
ChowPhaser
CuboCore.coreaction
CuboCore.corearchiver
CuboCore.corefm
CuboCore.coregarage
CuboCore.corehunt
CuboCore.coreimage
CuboCore.coreinfo
CuboCore.corekeyboard
CuboCore.corepad
CuboCore.corepaint
CuboCore.corepdf
CuboCore.corepins
CuboCore.corerenamer
CuboCore.coreshot
CuboCore.corestats
CuboCore.corestuff
CuboCore.coreterminal
CuboCore.coretime
CuboCore.coretoppings
CuboCore.coreuniverse
CuboCore.libcprime
CuboCore.libcsys
DisnixWebService
EmptyEpsilon
Fabric
HentaiAtHome
LAStools
LASzip
LASzip2
LibreArp
LibreArp-lv2
Literate
MIDIVisualizer
MMA
OSCAR
OVMF
OVMF-cloud-hypervisor
OVMFFull
QuadProgpp
R
SDL
SDL2
SDL2_Pango

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/rgdkp0fh16z5sw2yjl50y2syiydpcwkl-c-ares-1.29.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A c-ares https://github.com/r-ryantm/nixpkgs/archive/85f8cedef04769ad817dda2163c4aa64a6909dde.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/85f8cedef04769ad817dda2163c4aa64a6909dde#c-ares

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/rgdkp0fh16z5sw2yjl50y2syiydpcwkl-c-ares-1.29.0
ls -la /nix/store/rgdkp0fh16z5sw2yjl50y2syiydpcwkl-c-ares-1.29.0/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings

Hum, better to create a team for bootstrap packages.

Closing since broken.


Errors when trying to import Turf.js

Environment
➜  npx nuxi info
Nuxt CLI v3.0.0-rc.4                                                                      13:07:40
RootDir: /Users/ejfox/code                                                                13:07:40
Nuxt project info:                                                                                13:08:16

------------------------------
- Operating System: `Darwin`
- Node Version:     `v16.13.2`
- Nuxt Version:     `3.0.0-rc.4`
- Package Manager<EMAIL_ADDRESS>- Builder:          `vite`
- User Config:      `env`, `performance`, `head`, `css`, `nitro`, `runtimeConfig`, `publicRuntimeConfig`, `modules`
- Runtime Modules:  `<EMAIL_ADDRESS>`<EMAIL_ADDRESS>- Build Modules:    `-`
------------------------------

Reproduction
https://stackblitz.com/edit/github-tgazga-1vebrg?file=components/TurfTest.vue
From Nuxt start:
Add Turf
yarn add @turf/turf

Import in component
Then in a component in the /components/ folder, import anything (let's try point) from Turf
import { centroid, point, distance } from '@turf/turf'

In Chrome/Safari console:
@turf_turf.js?v=d9e1057d:19542 Uncaught TypeError: Cannot read properties of undefined (reading 'POLYGON_CLIPPING_MAX_QUEUE_SIZE')
    at @turf_turf.js?v=d9e1057d:19542:85

Describe the bug
When trying to include Turf js, get an error a Turf dependency looking for process.env
Uncaught TypeError: Cannot read properties of undefined (reading 'POLYGON_CLIPPING_MAX_QUEUE_SIZE')

This error comes from the polygon-clipping dependency in Turf: https://github.com/mfogel/polygon-clipping/blob/b064f942061e9820c53a462ebcccda7407330007/src/operation.js#L10
Additional context
I tried maybe trying to hack it by adding the value to the process.env that the dependency is looking for, which may have been misguided, and did not work in any case:
nuxt.config.ts
  env: {
    POLYGON_CLIPPING_MAX_QUEUE_SIZE: 100,
  },
  runtimeConfig: {
    POLYGON_CLIPPING_MAX_QUEUE_SIZE: 100,
  },
  publicRuntimeConfig: {
    POLYGON_CLIPPING_MAX_QUEUE_SIZE: 100,
  }

Logs
No response

Just for curiosity: With latest nuxt version it works without this workaround :)


Setting limits for seed ratio/time on cross-seeds

may i ask when a torrent is be cross-seeding, how long will it last?
is there anyway i can control the seed ratio or seed time of a cross-seeding torrent?

Your torrent client should allow for settings for this, this has nothing to do with cross-seed in its current implementation. Set either a label's seed ratio/time settings or set global ones that will apply to all torrents.

Thanks


constant crashes and errors

i get an error when i launch DS3T.exe, which has already been reported here. even though the "fix" works I constantly crash. So far I've gotten crashes from receiving items (picking up a sunlight medal, obtaining a boss soul, and receiving the banner from the lady in lothric castle) and lighting bonfires (the first bonfire you light in the tutorial area)

I'm 90% the second part of this is an issue I'm having with the game crashing any time I get an achievement, which all of the items you describe are associated with (except the sunlight medal. are you sure you didn't mean the covenant item you get from the undead settlement?).
I would love to know if you figured anything out about this.

yeah i asked in the discord for Special K and you can disable achievement popups. I forgot how though X.X
Join the Discord and ask yourself, then comment how you do it here so anyone else looking for a fix finds it.


Fix method and capabilities comparison

Codecov Report

Merging #63 (7cb9c1f) into master (f09515a) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #63      +/-   ##
==========================================
+ Coverage   88.82%   88.84%   +0.01%
==========================================
  Files          49       49
  Lines        3473     3479       +6
  Branches      571      573       +2
==========================================
+ Hits         3085     3091       +6
  Misses        276      276
  Partials      112      112

Impacted Files
Coverage Δ

connect/cli/plugins/project/extension_helpers.py
99.08% <100.00%> (+0.05%)
:arrow_up:

Continue to review full report at Codecov.

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


Support gateway mode for linux installer

Updated installer script for the --mode <agent|gateway> option (defaults to agent)
Sets the SPLUNK_CONFIG env var for the collector service to agent_config.yaml if running the installer script with --mode agent, or gateway_config.yaml if --mode gateway
Updated the installer test for the --mode and --without-fluentd options

Can we make agent vs gateway explicit instead of inferring based on fluentd option? ie, have an option --mode (agent|gateway) that defaults to agent. This would also allow people to install the agent without fluentd (which some may want if they're not using log observer).

Actually.. we would probably need to do something similar to how helm chart works as you may want both agent and gateway at the same time. So it'd probably need to be something like --{enable,disable} {agent,gateway,fluentd} where agent and fluentd is on by default.

Actually.. we would probably need to do something similar to how helm chart works as you may want both agent and gateway at the same time. So it'd probably need to be something like --{enable,disable} {agent,gateway,fluentd} where agent and fluentd is on by default. @flands thoughts?

@jrcamp Which config file should the collector service be configured for if we allow enabling "both agent and gateway at the same time"?  Also, other than setting the SPLUNK_CONFIG env var for either the agent or gateway config, is there anything else that the installer script should do when enabling agent vs gateway?

LGTM -- should support one mode or the other and should default to agent. Besides configuration, everything else should be the same.

Though what do you do if you want to monitor the host your gateway is running on if you can't install the agent? 😛 I don't think that's covered today is it? It means there's 3 states (which is what the helm chart covers). agent, gateway, agent + gateway.

LGTM -- should support one mode or the other and should default to agent. Besides configuration, everything else should be the same.

Though what do you do if you want to monitor the host your gateway is running on if you can't install the agent? 😛 I don't think that's covered today is it? It means there's 3 states (which is what the helm chart covers). agent, gateway, agent + gateway.

@jrcamp Sorry, I'm still not understanding how we run the collector in both modes at the same time on the same host.  Are you suggesting that we run 2 separate collector services (one for agent mode and one for gateway), or is there a way to run a single collector service with both agent and gateway configs?

@jchengsfx I think he means a tertiary config, where the behavior is like the gateway, but also has enabled like the host metrics receiver so that the host the gateway is running on is also monitored. I could also see us just enabling this by default in the gateway config.

@jchengsfx I think he means a tertiary config, where the behavior is like the gateway, but also has receivers enabled like the host metrics receiver, so that the host the gateway is running on is also monitored. I could also see us just enabling this behavior by default in the gateway config. If not, maybe we should at least doc it.

Correct. I believe there are APM-only customers (though those might actually come with host metrics for free, I can't remember).

@jchengsfx I think he means a tertiary config, where the behavior is like the gateway, but also has receivers enabled like the host metrics receiver, so that the host the gateway is running on is also monitored. I could also see us just enabling this behavior by default in the gateway config. If not, maybe we should at least doc it.

Correct. I believe there are APM-only customers (though those might actually come with host metrics for free, I can't remember).

Ok, thanks.  We can add a third mode in a separate PR, maybe something like --mode <agent|gateway|both>, once we have the tertiary config available to include in the packages.


Removed remaind debug code.

Codecov Report

Merging #68 (70a1a46) into main (572b286) will decrease coverage by 0.01%.
The diff coverage is n/a.

Additional details and impacted files

@@            Coverage Diff             @@
##             main      #68      +/-   ##
==========================================
- Coverage   89.63%   89.62%   -0.01%
==========================================
  Files          90       90
  Lines        9896     9892       -4
==========================================
- Hits         8870     8866       -4
  Misses       1026     1026

Files Changed
Coverage Δ

include/async_mqtt/broker/broker.hpp
86.00% <ø> (-0.05%)
:arrow_down:


Auto Complete Commands

Edit the title of this issue
Edit the labels

#82  #73 i suppose this can be closed? @jitwei98

#109 resolved


Having an undo and redo option when using different functions

Undo/ Redo Action
Functionality to add redo and undo that would keep track of the actions implemented on the text, if one wanted to trace back. Can you assign this task to me?

@Ts-A If a person does Ctrl+Z, the undo works fine. Are you thinking about having the undo redo button to provide users with the option of undo redo actions like recalling actions?

Yes.


How to use Asian server manually?

Reduced latency for non-US users: we've added a couple of proxy servers in Europe and Asia.

How to use Asian server manually?

$ teleconsole -s as.teleconsole.com


Notes / Experience with usage on MacOS M1 Arm machines

Hello,
I thought I would document some notes for the benefit of anyone else looking to use this library on Mac M1 machines, as I encountered a couple of issues (with all of the engines in fact) and it took a while to understand what is going on in each case - some may be more relevant than others depending on your use case.
Use Case
For context - we already successfully use Graphviz-java in our project, we have it as part of an IntelliJ plugin for Jetbrains MPS IDE. We render graphs within the IDE editor pane ( onto Swing/AWT components). We also use the library separately as part of a Maven plugin to generate SVGs as part of our build process. We work on Linux and Windows machines and looking to move to Mac OS.
Graphviz Engine Recap
As described in this project's read.me Graphviz-java attempts to use a set of (potentially supported) engines until it finds one that is supported - before submitting the request to generate the graph.
These engines (ignoring Graal) are in the order of:

Native Graphviz - Graphviz-java will look for a 'dot' executable on the host machine and execute via CLI/ProcessBuilder
Javascript Graphviz + V8 Engine - Graphviz-java will use a (bundled) javascript implementation of Graphviz with a bundled version of the V8 Javascript Java binding library
Javascript Graphviz + Nashorn Engine - Graphviz-java will use the bundled javascript Graphviz implementation and execute it on the JDK provided Nashrorn Javascript Java binding platform.

For our use case, we do not mandate ‘dot’ executable on the host machine, our previous machines were all built with option 2, the provided v8 engine (as probably most do).
MacOS + M1 Experience
V8
Running our app on Mac M1 we immediately see that option 2 (v8) is not working, a quick google shows that v8 does not have MacOS support, see https://github.com/eclipsesource/J2V8/issues/556. Anoying but no worries we will try option 3 (Nashorn)
Nashhorn
So we then look to see if we can instead use Option 3, the Nashorn Engine, this is not ideal since it is deprecated for removal in JDK15, but lets still try to get it working.
The first thing we notice is that when attempting to invoked the Nashorn Engine, we are getting an error:
ClassNotFoundException for PromiseException
The PromiseException class is provided as a transitive dependency to Graphviz-java, originating from this repo:

https://github.com/hidekatsu-izuno/nashorn-promise
The class is definitely on the classpath, the issue here is in fact a class loading issue due to a combination of:

Running Graphviz-java as part of an IntelliJ Plugin - which provides a specific Classloader for the classes loaded by Graphviz (including PromiseException).
An (arguable) bug in Nashorn, it has an assumption that it should be looking up classes from the ContextClassLoader of the executing thread, rather than the classLoader that was provided to the NashornScriptFactory constructor.

This scenario was actually hinted at a few years ago
, see https://github.com/nidi3/graphviz-java/issues/144

. However, this is not entirely sufficient in my use, in order to get this working a further change would be needed. This could be done either in our code or within Graphviz-java.
Full detail of the classloading issue
The classloaders in our use case are as follows:

BootClassLoader
jdk.internal.loader.ClassLoaders$PlatformClassLoader
com.intellij.util.lang.PathClassLoader
jetbrains.mps.classloading.ModuleClassLoader

PromiseException is loaded by ModuleClassLoader.
Graphviz is ultimately called by the following thread stack

AWT-EventQueue - MPS editor / AWT
_SwingWorke_r (Async AWT)
Thread-x (created by Graphviz Async)

The parent AWTEventQueue (and subsequent child threads) inherit contextClassLoader of PathClassLoader
Nashorn, therefore, uses this.
, and is unable to find the PromiseException Class, which was loaded by the child ModuleClassLoader
Assuming there is no "fix" to Nashorn, the only thing we can do is set the contextClassLoader to the classloader that loaded PromiseException prior to instantiating the Nashorn ScriptEngine.
I was initially hesitant about doing this in our client code (mutating the contextClassLoader of the AWT-EventDispatchThreads/SwingWorkers or manually creating new threads). So instead looked to do the switch as close to Nashorn as possible, within Graphviz

-java. This can be seen in the below commit, it doesn’t feel great but works - happy to push for PR if appropriate
https://github.com/tomb50/graphviz-java/pull/1/commits/74ecdebc1aa8d279ca9ddee0ef0e5dff086802f7
With this change, the engine subsequently works as expected.
Native
Even though the above works, we would probably prefer to not have a code change so review option 1 (native) - plus Nashorn is slow.
We finally resort to option 1, having the dot executable available

 on the host machine
Downloaded dot through home-brew, using brew install graphviz it installed fine
When running our IDE plugin, however, Graphviz-java still did not find the dot executable. After a bit of digging it is due to the relationship and differences in environment variables when launching applications through a Desktop launcher vs from a shell.
Applications on Mac do not inherit the env variables that may otherwise be defined in common profiles (.zshrc etc) - this includes the PATH variable. Graphviz-java needs to know about PATH in order to find the executable.
In this case, because dot is advised to be downloaded by brew, it is NOT in the default PATH (/bin, /usr/bin, /sbin, /usr/sbin) it is in the brew Cellar directories).

 This problem is detailed at more length online, it’s described here with some suggestions for a full solution needing to build a custom app launcher (urgh).
https://korban.net/posts/2019-07-23-launching-mac-os-application-with-custom-path/
However, it is possible to provide the correct environment variables if the application is started from the terminal, so by starting IntelliJ/MPS from the command line, our plugin that calls Graphviz-java then provides the full PATH variable (which includes brew cellar directories) and it does find dot and everything works as expected
To summarise

 (TLDR)
v8 is not supported for MacOS
Nashorn works but there are issues for certain use cases

It will error if the ClassLoader that loaded Graphviz is a child of the ClassLoader that is the ContextClassLoader of the thread that calls Graphviz (which can happen).
Workaround suggestion is above for certain use cases
Also it would be possible to apply a workaround in the client code by ensuring the Thread that calls Graphviz has an appropriate CCL

Native works, but MacOS has subtleties around the required PATH variable

Ensure your app is launched as a process that inherits the correct PATH variable
It would be nice in the future to be able to provide an argument to GraphViz-Java to provide a location to dot. That way it can be resolved within the Graphviz_java client application rather than enviornment-specific

Hope some of this may be helpful to anyone else who may hit similar challenges in the future

Hi @mgroth0 thanks for the notes.
Looks like a typo on my part, I did brew install graphviz too - I'll correct the above post.
Interesting to hear that you were able to get it working without any issues around the PATH - I don't suppose you would be able to set a breakpoint and see System.getenv() to confirm what PATH looks like prior to graphviz being called. It may invalidate some of my understandings above.
Thanks!
Tom

I wonder if you have evaluated Javet (Java + V8) which supports both Mac x86_64 and arm64.


Change user bpfctl to bpfd-clients

This is a continuation from #110.
Change user bpfctl to bpfd-clients and move /etc/bpfd/bytecode/ to
/var/bpfd/bytecode/.
Signed-off-by: Billy McFall<EMAIL_ADDRESS>

I can change the name if something is preferred over bpfd-clients.

/lgtm

I don't think we should do this. See: #117 for context.

OK, I updated the PR. It no longer changes the name of the user. Now just tweaks the scripts to hopefully be more clear as to how the strings bpfd and bpfctl are used (are they the User, the User Group or the Binary).


Feature: Add and Delete passengers from a Booking

Adding and deleting Passengers is now possible.
Validation: Name and ID are mandatory, and the ID has to be unique.  Closes #771

And what about the edit? It will be in the next PR?

@FilipMessa Yes! That was the plan, to get this right as the edit will be done similarly.

OK, so in that case, there should not be a comment for close the issue.
I'll check the code


Feature request : propose default typecript libraries

i would suggest to start proposing default high level libraries witten in typescript like those we may find in Dart.
The openess of typescript is a great advantage, but it is also useful to have a standardized ecosystem to share with other devs... In fact, using typescript like a true langage and not only a transpiler, with ultimately (i dream) using typescript directly in the the browser without having to compile in javascript.

Here is the typescript design goal at wiki: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

Thanks York for this reminder. Nevertheless the goals are made to be changed :) when the context of use change ;)
Envoyé de mon iPhone

Le 18 oct. 2015 à 10:49, York Yao<EMAIL_ADDRESS>a écrit :
Here is the typescript design goal at wiki: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
—
Reply to this email directly or view it on GitHub.

Nevertheless the goals are made to be changed :)

Well, I would suspect that you would argue why to change the goal before expecting a proposal to be considered.

I use typescript since its beginning, and i reach a point where i consider typescript like a true language and not only a transpiler. And as a language, it is normal to consider to have the grammar and also the tools and the libraries.
Moreover, the fact that typescript has been chosen for angular in replacement of former atscript is a step  forwrd considering typescript as a true language.
Personaly, typescript plus react has the most potential and i invest in it
Envoyé de mon iPhone

Le 18 oct. 2015 à 22:42, Kitson Kelly<EMAIL_ADDRESS>a écrit :
Nevertheless the goals are made to be changed :)
Well, I would suspect that you would argue why to change the goal before expecting a proposal to be considered.
—
Reply to this email directly or view it on GitHub.

I use typescript since its beginning, and i reach a point where i consider typescript like a true language and not only a transpiler.

Just because you have reached that point, doesn't mean that automatically changes the design objectives of TypeScript.

Of course :)
But nothing is ever written in the stone, and changing point of view may (should?) always be a creativity process
Envoyé de mon iPhone

Le 19 oct. 2015 à 08:39, Kitson Kelly<EMAIL_ADDRESS>a écrit :
I use typescript since its beginning, and i reach a point where i consider typescript like a true language and not only a transpiler.
Just because you have reached that point, doesn't mean that automatically changes the design objectives of TypeScript.
—
Reply to this email directly or view it on GitHub.

The web development community changes very quickly and we're not in a position to choose winners and losers in the marketplace of libraries. TypeScript is JavaScript -- if you want a standard set of libraries, get the JavaScript community to standardize first (good luck! :wink:).

Indeed :(
The fact is we loose to much time to test libraries, frameworks an so on... I m sure that microsoft has chosen its way of developping ; choices are a little death but are necessary. It could be valuable that the typescript team choose also between this js jungle just to enable devs to be efficient.
It is why choose xamarin, or gluon instead of ionic like approaches may be an alternative to js dev
Regards
Envoyé de mon iPhone

Le 20 oct. 2015 à 19:47, Ryan Cavanaugh<EMAIL_ADDRESS>a écrit :
The web development community changes very quickly and we're not in a position to choose winners and losers in the marketplace of libraries. TypeScript is JavaScript -- if you want a standard set of libraries, get the JavaScript community to standardize first (good luck! ).
—
Reply to this email directly or view it on GitHub.


Display node numbers selected by brushable tracts

The numbers for the selected nodes should be displayed somewhere so that a user can conduct statistical analyses of these nodes outside of AFQ-Browser

Display <left-node-#>-<right-node-#> in upper right of plot.


Credentials not passed to dependabot-core script

I've tried using the CLI tool like so
dependabot update --file input.json
My input.json file looks like so
{
  "job": {
    "package-manager": "npm_and_yarn",
    "allowed-updates": [
      {
        "update-type": "all"
      }
    ],
    "source": {
      "provider": "bitbucket",
      "repo": "xxxxx",
      "directory": "\/",
      "branch": "master"
    }
  },
  "credentials": [
    {
      "type": "git_source",
      "host": "github.com",
      "username": "x-access-token",
      "password": "xxxxxx"
    },
    {
      "type": "git_source",
      "host": "bitbucket.org",
      "username": "xxxxx",
      "password": "xxxxx"
    },
    {
      "type": "npm_registry",
      "registry": "https:\/\/npm.pkg.github.com",
      "token": "xxxxx"
    }
  ]
}

I have made custom builds of both CLI and Dependabot Core to add some prints to the console into their code to help me debug where this problem occurs.
Dependabot Core requires credentials for Bitbucket, either username and password or access token.
I can see from these logs that the credentials are available in the CLI, but when the "updater" runs (dependabot-core) the credentials are missing values.
It's unclear to me where or why these credentials are getting dropped.

As a result, the connection to Bitbucket errors and PRs cannot be raised.

The Dependabot CLI has the same architecture that we use in production where the credentials are not passed into the Updater but they're passed to the Proxy which injects the credentials into the HTTPS request. You can read more about that here: https://github.com/dependabot/dependabot-core#private-registry-credential-management
From the logs it looks like it's working correctly, I can see "authenticating git server request (host: bitbucket.org)" and a 200 response.
The CLI doesn't currently have the capability to create PRs. It does output to stdout enough information to create the PRs, we just haven't had the time to create the piece that makes the change on the server.

This is the part of the logs where I'm experiencing the error, which I assumed was due to the credentials.
I take it this error is because it's not able to raise PRs for Bitbucket?

It's gathering data for the PR but won't actually create one.
Looks like if you change bitbucket.org to api.bitbucket.org in the credentials section it should fix it.

What would the new credential type be for that?
I need to maintain the git_source as it is - so it can find the repo, but once it switches to API it'd need a different host

Ah, try two entries, one for bitbucket.org the other api.bitbucket.org, both with git_source. I think that should work.

This doesn't seem to make any difference unfortunately

I spent hours trying to make Bitbucket authentication work, your solution didn't work for me either @jakecoffman
My job is as follows:
job:
  package-manager: composer
  allowed-updates:
    - update-type: all
  source:
    provider: bitbucket
    repo: redacted/business-platform
    directory: /
  credentials:
    - type: git_source
      host: api.bitbucket.org
      username: williamblondel
      password: (app-password)
    - type: git_source
      host: bitbucket.org
      username: williamblondel
      password: (app-password)

Output is as follows:
    cli | 2023/09/01 14:59:25 Inserting $LOCAL_GITHUB_ACCESS_TOKEN into credentials
    cli | 2023/09/01 14:59:25 Adding missing credentials-metadata into job definition
    cli | 2023/09/01 14:59:25 using image ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy:latest at sha256:699df56da84381c10ea13e537ee8c18c0e00c5e230b13c2be9b44738d2109930
    cli | 2023/09/01 14:59:25 using image ghcr.io/dependabot/dependabot-updater-composer at sha256:ff576fc76eb78f1c2682233f4cdd964700be2f5e1a06b71c5abd4274b9c0edd3
  proxy | 2023/09/01 14:59:26 proxy starting, commit: 93c4a893d794d736d84e940a79420e8d1180c0bd
updater | Updating certificates in /etc/ssl/certs...
  proxy | 2023/09/01 14:59:26 initializing metrics client: No address passed and autodetection from environment failed
  proxy | 2023/09/01 14:59:26 Listening (:1080)
updater | rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
updater | 1 added, 0 removed; done.
updater | Running hooks in /etc/ca-certificates/update.d...
updater | done.
updater | 2023/09/01 14:59:38 INFO Raven 3.1.2 configured not to capture errors: DSN not set
updater | 2023/09/01 14:59:39 INFO Starting job processing
  proxy | 2023/09/01 14:59:39 [002] GET https://api.bitbucket.org:443/2.0/repositories/redacted/business-platform
  proxy | 2023/09/01 14:59:42 [002] 404 https://api.bitbucket.org:443/2.0/repositories/redacted/business-platform
updater | 2023/09/01 14:59:42 ERROR Error during file fetching; aborting
  proxy | 2023/09/01 14:59:42 [003] POST http://host.docker.internal:55611/update_jobs/cli/record_update_job_error
{"data":{"error-type":"job_repo_not_found","error-details":{}},"type":"record_update_job_error"}
  proxy | 2023/09/01 14:59:42 [003] 200 http://host.docker.internal:55611/update_jobs/cli/record_update_job_error
  proxy | 2023/09/01 14:59:42 [004] PATCH http://host.docker.internal:55611/update_jobs/cli/mark_as_processed
{"data":{"base-commit-sha":"unknown"},"type":"mark_as_processed"}
  proxy | 2023/09/01 14:59:42 [004] 200 http://host.docker.internal:55611/update_jobs/cli/mark_as_processed
updater | 2023/09/01 14:59:42 INFO Finished job processing
updater | 2023/09/01 14:59:42 INFO Results:
updater | Dependabot encountered '1' error(s) during execution, please check the logs for more details.
updater | +--------------------+
updater | |       Errors       |
updater | +--------------------+
updater | | job_repo_not_found |
updater | +--------------------+
  proxy | 2023/09/01 14:59:42 0/1 calls cached (0%)

I also tried defining the branch, the commit, always the same 404 error (no 401 or 403, always 404).

Oh... Sorry for that. I feel dumb now 😅
I guess a Friday night is not the right time to try to implement new things 😁
Thank you for your help!

@wblondel No worries! I'm wondering if the CLI should error if there's an unknown property in the input file? 🤔 That would have told you right away what the problem was.


[test] Add unit tests for CollectionRmdTimestampTest

Add unit tests for CollectionRmdTimestampTest

How was this PR tested?

Internal CI
Does this PR introduce any user-facing changes?

[x] No. You can skip the rest of this section.
[ ] Yes. Make sure to explain your proposed changes and call out the behavior change.

Thank you @adamxchen for the review!


Bug: No pilot list on Scum Y-Wing, Spanish version

When using the Scum builder in Spanish, the Y-wing appears without pilots to use. It's the only ship and language where this happen.
Pic: http://i.imgur.com/wfMAE0c.png

I think I know what's causing this; I should have a fix out tonight.


Selecting a function by clicking on it is not very smart

Describe the bug
When we cross page to add a formula, we input a page title, and then add a function by clicking, it will become pageTitle.pageTitle.function
To Reproduce
https://www.loom.com/share/72f776794dd143758f385c91a6c6b7d0
Expected behavior
No response
Additional context
No response
Logs/tracebacks
No response

Blocked by referenced issue.


PROD - update IM of 1st transaction in Snowpark + desc of mailchimp

merge to production please @ujovlado


[Android] Update createTriggerNotification inside onBackgroundEvent

I want to update Title, body and data of trigger notification inside onBackgroundEvent. But trying to do that it enters into an infinite loop of updating notification. Is it possible to update notification data inside onBackgroundEvent.
notifee.onBackgroundEvent(async ({ type, detail }) => {
    const { notification } = detail;

    const newData = getNewData();

    const channelId = await notifee.createChannel({
      id: 'my-custom-notification',
      name: 'Custom Channel',
    });

    const date = new Date(Date.now() + (60000 * 60 * 24));

    const trigger = {
      type: TriggerType.TIMESTAMP,
      timestamp: date.getTime(),
      repeatFrequency: RepeatFrequency.DAILY,
      alarmManager: {
        allowWhileIdle: true,
      },
    };

    await notifee.createTriggerNotification({
        id: notification.id,
        title: newData[0],
        body: newData[1],
        data: {
          uniqueFcID: newData[2],
        },
        android: {
          channelId,
          pressAction: {
            launchActivity: "default",
            id: "default",
          },
        },
      },
        trigger,
      );
  });

yes,should be easy to solve but it completely depends on your usecase. At the moment, you are creating a trigger notification for all background events which is why it is looping because a TRIGGER_NOTIFICATION_CREATED event is fired every time.
You will need to be more specific when you want to create the trigger notification, if it's for all displayed notifications, you can do something like:
if (type === 'DELIVERED') {
// update trigger
}
But, I'd also say be careful with this strategy because iOS background events are not reliable.

@helenaford  Thanks for looking into  it. Here's the use case. Send a notification every day (ideally every 6 hours). For every notification, notification should read a file and randomly select two lines and show those 2 lines in the notification. If user clicks on notification it will open app and will take user to a screen. If user does not interact with the notification either it should stay there but should get updated next day. Or a new notification should show up next with new text.
Initially I thought doing something following at the Home screen inside useEffect(() => { ... }, []), should be enough.
`   const randomFcData = getRandomFlashCard();
const soundsList = await NotificationSounds.getNotifications('notification');
const channelId = await notifee.createChannel({
  id: 'my-custom-notification',
  name: 'Custom Channel',
  sound: soundsList[0].url,
  vibration: true,
  vibrationPattern: [300, 500],
});

const date = new Date(Date.now() + (60000 * 60)); // So first notification will be in next one hour

const trigger = {
  type: TriggerType.TIMESTAMP,
  timestamp: date.getTime(),
  repeatFrequency: RepeatFrequency.DAILY,
  alarmManager: {
    allowWhileIdle: true,
  },
};

await notifee.createTriggerNotification({
  id: 'uniqueID',
  title: randomFcData[2],
  body: randomFcData[1],
  data: {
    uniqueFcID: randomFcData[0],
  },
  android: {
    channelId,
    timeoutAfter: (60000 * 60 * 2), // expire after 2 hours
    pressAction: {
      launchActivity: "default",
      id: "default",
    },
    showTimestamp: true,
    largeIcon: appLogo,
    vibrationPattern: [300, 500],
  },
},
  trigger,
);`

Above did not work. Every day it does not send new text in the notification. It just sends same content in the notification every day when the user does not interact with notification.

Then I decided to reset the notification inside notifee.onBackgroundEvent. The intention was that when a notification is received in the background, I update the content of next upcoming notification. This triggered that infinite loop when I wrote the initial question. To avoid that infinite loop I used following logic, which is: If I'm entering onBackgroundEvent for the first time, update notification settings and record the timestamp. Else check the recorded timestamp, if it is very recent (within a minute) ignore otherwise update notification and record timestamp.
`notifee.onBackgroundEvent(async ({ type, detail }) => {
const { notification, pressAction } = detail;
const uniqueFcID = notification.data.uniqueFcID;

const randomFcData = getRandomFlashCard();
const soundsList = await NotificationSounds.getNotifications('notification');
const channelId = await notifee.createChannel({
    id: 'my-custom-notification',
    name: 'Custom Channel',
    sound: soundsList[0].url,
    vibration: true,
    vibrationPattern: [300, 500],
});

const date = new Date(Date.now() + (60000 * 60 * 8)); // 8 hours

const trigger = {
    type: TriggerType.TIMESTAMP,
    timestamp: date.getTime(),
    repeatFrequency: RepeatFrequency.DAILY,
    alarmManager: {
        allowWhileIdle: true,
    },
};

const notificationTime = await AsyncStorage.getItem('@lastNotificationTime');

if (notificationTime) {

    const rightNow = new Date(Date.now());
    const oldSlightAhead = Date.parse(notificationTime);

    if (oldSlightAhead < rightNow) {
        await notifee.createTriggerNotification({
            id: 'uniqueID',
            title: randomFcData[2],
            body: randomFcData[1],
            data: {
                uniqueFcID: randomFcData[0],
            },
            android: {
                channelId,
                timeoutAfter: (60000 * 60 * 2), // expire after 2 hours
                pressAction: {
                    launchActivity: "default",
                    id: "default",
                },
                showTimestamp: true,
                largeIcon: appLogo,
                vibrationPattern: [300, 500],
            },
        },
            trigger,
        );

        const newSlightAhead = new Date(Date.now() + (60000 * 60));
        await AsyncStorage.setItem('@lastNotificationTime', newSlightAhead.toString());
    }
} else {
    await notifee.createTriggerNotification({
        title: randomFcData[2],
        body: randomFcData[1],
        data: {
            uniqueFcID: randomFcData[0],
        },
        android: {
            channelId,
            pressAction: {
                launchActivity: "default",
                id: "default",
            },
        },
    },
        trigger,
    );

    const newSlightAhead = new Date(Date.now() + (60000 * 60));
    await AsyncStorage.setItem('@lastNotificationTime', newSlightAhead.toString());
}

});`
It kind of worked for couple of days(sometimes I was getting 2 notifications at the same time.) But now I have just stopped getting any notifications.
I'll try to do what you suggested and will let you know if notification becomes better. But  I was wondering if I can achieve sending local notifications by reading a local app file and every time extracting new text from that file and appending it to the notification content without using background events?

@helenaford The following solution you suggested still creates an infinite loop.
if (type === 'DELIVERED') {
  // update trigger
}

I was able to achieve it using what I mentioned in the  previous comment.
One other thing I did was to use TriggerType.TIMESTAMP trigger type in home screen but inside background task I changed the type of the same notification to TriggerType.INTERVAL. I didn't use TriggerType.INTERVAL in both places because it was triggering the notification right away without any delay whenever I open the app which I didn't want.
Thanks for the help.

@ghumman thanks for sharing your findings, it could be that with interval it does not use alarm manager, so the alerts can be delayed until you open the app.
But, great to hear you have a solution 😎


charybdis: support ziplinks by default

Description of changes

Support ziplinks by providing zlib in the context.
Add myself as a maintainer as I run a small IRC server for a community using Charybdis and build a complicated module on the top of it.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Charybdis is unmaintained and you should migrate to Solanum, where ziplinks have been culled.

Charybdis is unmaintained and you should migrate to Solanum, where ziplinks have been culled.

I do agree, but I think we can afford very basic maintenance for the next 1-2 months, right? I mean, has your network migrated to Solanum yet? We are soon there.

We are working on the migration to NixOS and Solanum over at https://codeberg.org/hackint/nixos-config.
What I'm saying is: Sure, you can migrate charybdis here all you want, but don't rely on ziplinks, because they're going to go away once you migrate, which you should.

Not sure how we can get rid of that CI error.

We are working on the migration to NixOS and Solanum over at https://codeberg.org/hackint/nixos-config.
What I'm saying is: Sure, you can migrate charybdis here all you want, but don't rely on ziplinks, because they're going to go away once you migrate, which you should.

Ah, sorry, misunderstood. You're right, I forgot about that. Hm, do you think it's better to let downstream users do their overrides then? I can just edit it to add myself as a maintainer as I want to be pinged on this derivation anyway.

Not sure how we can get rid of that CI error.

I can redo the PR if needed at all.


librealsense2-dkms debian package for LTS 6.6 Linux Kernel

No template - general description.
librealsense2-dkms debian package for LTS 6.6 Linux Kernel

Hi @ionutnechita-intel  Support for installing from DKMS packages with kernel 6.2 has now been added.
For newer kernels that are not yet officially supported at the time of writing this, you can bypass the kernel by building the librealsense from source code with CMake and including the flag -DFORCE_RSUSB_BACKEND=TRUE in the CMake build instruction.
An RSUSB = true build of librealsense is not dependent on Linux versions or kernel versions and does not need the application of a patch to the kernel. You can therefore have kernel 6.6 on your computer as librealsense will not be affected by the kernel version.
Instructions for an RSUSB source code build can be found at https://github.com/IntelRealSense/librealsense/issues/9931#issuecomment-964289692

Hi @MartyG-RealSense ,
I tested today and is working correctly.
I use release archive with -DFORCE_RSUSB_BACKEND=TRUE and is fine with this.
Thank you for all support.

You are very welcome.  I'm pleased to hear that RSUSB = true is a suitable solution for you.  Thanks very much for the update!

Hi @ionutnechita-intel  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Groq API Support

Groq api support for lightning fast generation would be awesome!

https://github.com/SakanaAI/AI-Scientist/pull/11

Yep, works. Should be added to Readme though.


Revert "Adding ECDS config dump support. (#23902)"

This was landed without senior maintainer approval and contributed to breaking coverage on main
let's roll back and then roll forward when it has sufficient testing and approvals
Part of https://github.com/envoyproxy/envoy/pull/24354

@kyessenov It turns out @zirain's issue https://github.com/envoyproxy/envoy/issues/20086 is not due to config dump. That issue has been closed.


setup.py should not declare Toil as install_requires

So I've thought about this intensely. I think it is wrong for toil-script's setup.py to refer to toil via install_requires. There is always the danger that when the user installs toil-scripts (especially when installing into a virtualenv), that a different version of Toil is pulled in via that dependency. It may be a different version of Toil than what the user has on the system, and it will be installed without extras while the user's version was installed with extras.
Instead setup.py should contain an explicit version check, which I will outline shortly.

try:
    from toil.version import version as toil_version
except ImportError:
    raise RuntimeError('Cannot find Toil. Read about installing Toil at …' )

from pkg_resources import parse_version

if not parse_version('3.2.0') <= parse_version(toil_version) < parse_version('3.3'):
    raise RuntimeError('Need version 3.2.x of Toil. Read about installing Toil at …')

We might have to fine-tune the error messages and the version comparison.

See https://www.python.org/dev/peps/pep-0440/ for the ins and outs of version comparison.


Let Mongo.Repo errors flow like with Mongo functions

When Mongo returns a Mongo.Error, we get match errors inside Enum, which are hard to read and sometimes misleading. This patch changes signatures to let the errors flow. This is argably a breaking change, but errors will happen anyway in problematic scenario.
As alternative, Mongo.Error could be raised and signtures are kept the same. At least errors will be more clear to library users.

Thank you!