Local filling

Hi ! First of all, thank you for making this fun game.
I read the code, and some other players explained to me what they call "slow fill-in". In the code there is a comment, explaining that the flood-fill algorithm is slow, and because of that it is run on an area as little as possible. Right now it is by keeping track of the minimal bounding rectangle of the player's land. While this works fine for the average player behaviour (expands in an almost convex land), this does not work for players who "travel" (thin land, going in multiple directions).
I have been thinking about this for a while. The first idea that came to my mind is that most filling operations are very local, in the sense that when a trail closes (except in a few cases) the information needed to fill the land is contained in an area much smaller then the whole player's land. Right now I am working on an algorithm that would keep track of the perimeter of the player's area.
The filling process would be performed in the same two same steps as the current one, starting by filling the blocks in the trail path, and then by filling the holes in the land. The difference would be that the flood fill algorithm would be run on the minimal bounding rectangles of every hole, instead of the bigger bounding rectangle of the whole land.
The consequences I can imagine (not implemented yet) so far are:

smaller flood-fills

in case of a trail closing covering all the blocks it should fill, and there are no holes in the player's land, there is no flood-fill at all. This happens often in fights where only the direct boundary blocks are taken.

implementing this would require better accounting of the land, fixing #135 can be part of it.
the knowledge of which block belongs to who would now be encoded in the perimeter data, allowing, if needed to safely distribute the filling tasks across multiple threads. But this is probably not needed.

I am presenting all this because implementing all this is bit harder/longer than I imagined, and I wouldn't want to put too much effort in it if the change is not to be welcomed.
Would such a change interest you ? I can implement it and you can review it, but if from the start you do not want that, please tell me.

Hey, sorry for the super slow response time.
I'm not entirely sure what you mean by running flood fill 'on the minimal bounding rectangles of every hole', but one situation to take into account is if a player closes up a large hole like this:

This is just a small scale example, but if you were to make this area very big, I'm not sure how you could ensure that another algorithm detects that the entire area needs to be filled in this case.
Another issue I can think of is that other players might spawn in the middle of your area. If they then die, the holes can get patched up by filling any portion of the map. I'm not sure if that would also be the case with a new algorithm.
But maybe I'm misunderstanding how this new algorithm would work exactly. So please let me know if I missed something!


Issue with proxy (Ingress-Nginx) and externalTrafficPolicy to preserve source IP

Describe the bug
Hello people,
I might be doing something wrong, but I'm having issues with following setup:
+) kube-vip
-- static Pod
-- svc_enable & svc_election =true
+) Ingress Nginx
-- externalTrafficPolicy =true (Local)
This is being implemented in an 'on-premises' environment.
This is the on-premises environment.
The recap is that I don't see any errors anywhere (on kube-vip, svc, events, etc.), but the Ingress Nginx just doesn't respond (as if the IP address wasn't assigned to this service).
I've also tried using different versions of kube-vip, but with no success.
Screenshots
These are screenshots with some logs:

Environment (please complete the following information):

OS/Distro: Ubuntu 2204
Kubernetes Version: v.1.28.2 (kubeadm; 3 CP nodes)
Kube-vip Version: 0.5.12 or 0.6.3

Kube-vip.yaml:
apiVersion: v1
kind: Pod
metadata:
  name: kube-vip
  namespace: kube-system
spec:
  containers:
  - args:
    - manager
    env:
    - name: vip_arp
      value: "true"
    - name: port
      value: "6443"
    - name: vip_interface
      value: eth0
    - name: vip_cidr
      value: "32"
    - name: cp_enable
      value: "true"
    - name: cp_namespace
      value: kube-system
    - name: vip_ddns
      value: "false"
    - name: svc_enable
      value: "true"
    - name: svc_election
      value: "true"
    - name: svc_leasename
      value: "kube-vip-eth0"
    - name: vip_leaderelection
      value: "true"
    - name: vip_leaseduration
      value: "5"
    - name: vip_renewdeadline
      value: "3"
    - name: vip_retryperiod
      value: "1"
    - name: address
      value: <IP_ADDRESS>
    image: ghcr.io/kube-vip/kube-vip:v0.5.12
    imagePullPolicy: Always
	name: kube-vip
    resources: {}
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
        - NET_RAW
        - SYS_TIME
    volumeMounts:
    - mountPath: /etc/kubernetes/admin.conf
      name: kubeconfig
  hostAliases:
  - hostnames:
    - kubernetes
    ip: <IP_ADDRESS>
  hostNetwork: true
  volumes:
  - hostPath:
      path: /etc/kubernetes/admin.conf
    name: kubeconfig

Additional context
My goal is to set up an Ingress-Nginx configuration that will preserve the source IP address.

Trying to solve the same problem with Traefik.  No luck yet.  I get the IP of the Traefik POD not the client IP.
Did you review Kube-VIP External Traffic Policy where it says to add:
- name: enableServicesElection
    value: "true"

I didn't see that in your provided configuration, and set  externalTrafficPolicy: Local on the LB?

I think enableServicesElection flag is equal svc_election (please look here: https://github.com/kube-vip/kube-vip/issues/455#issuecomment-1661553194 ).
My Ingress-Nginx (proxy) configuration is:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --create-namespace \
  --namespace ingress-basic \
  --set controller.replicaCount=2 \
  --set controller.service.type=LoadBalancer \
  --set controller.service.loadBalancerIP=<IP_ADDRESS> \
  --set controller.service.externalTrafficPolicy=Local

I have the same problem. If I deploy the ingress nginx using helm with default mode (using externalTrafficPolicy=Cluster) it gets the IP for the services. But if I add the --set controller.service.externalTrafficPolicy=Local flag when deploy, pending,

But the service describe shows it gives the IP address :
` kubectl -n ingress-nginx describe service/ingress-nginx-controller
Name:                     ingress-nginx-controller
Namespace:                ingress-nginx
Labels:                   app.kubernetes.io/component=controller
app.kubernetes.io/instance=ingress-nginx
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=ingress-nginx
app.kubernetes.io/part-of=ingress-nginx
app.kubernetes.io/version=1.9.4
helm.sh/chart=ingress-nginx-4.8.3
implementation=kube-vip
Annotations:              kube-vip.io/loadbalancerIPs: <IP_ADDRESS>
meta.helm.sh/release-name: ingress-nginx
meta.helm.sh/release-namespace: ingress-nginx
Selector:                 app.kubernetes.io/component=controller,app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/name=ingress-nginx
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       <IP_ADDRESS>
IPs:                      <IP_ADDRESS>
IP:                       <IP_ADDRESS>
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  31148/TCP
Endpoints:                <IP_ADDRESS>:80
Port:                     https  443/TCP
TargetPort:               https/TCP
NodePort:                 https  32675/TCP
Endpoints:                <IP_ADDRESS>:443
Session Affinity:         None
External Traffic Policy:  Local
HealthCheck NodePort:     30869
Events:
Type    Reason                Age                From                Message

Normal  EnsuringLoadBalancer  61s (x2 over 62s)  service-controller  Ensuring load balancer
Normal  EnsuredLoadBalancer   61s (x2 over 61s)  service-controller  Ensured load balancer
Normal  LoadbalancerIP        61s                service-controller  -> <IP_ADDRESS>`

Could this be related to node names, like in that issue?

https://github.com/kube-vip/kube-vip/issues/608

Kube-vip advertises Local services from nodes where relevant pods are present.
When k8s node name didn't match hostname output, kube-vip couldn't check it, so it never advertised addresses.
Maybe fix for that issue broke something, or maybe it wasn't fully fixed.
I currently don't have any test clusters, so I can't check.

@d-uzlov
I'm not sure if I'm understanding the #608 issue related to hostname well, but I think it is a little different case.
My node name:

My hostname:

Having the same issue. When externalTrafficPolicy is set to cluster, no problems. When set to local, services get stuck in pending. Tried with 5.11 and 6.4. My node names and hostnames are identical, and no fqdn is set. This is a local bare metal cloud built on Ubuntu 22.04 and microk8s.

FYI. We got a small fix merged which fixes the shortName lookup for hosts which have no fqdn set.

hostname.example.com was working
hostname was not working.

Fix was -> #724 and my issue was #723

@Cellebyte - Thank you for your FYI. As soon as the new image (version) is available, I will try to do a test.

Chiming in here to say that I'm seeing the same/similar issue.  After updating the kube-vip manifest with
- name: svc_election
  value: "true"

All sorts of things broke, including loadBalancer services stuck with External-IP pending.  As soon as I removed those lines from the manifest, the kube-vip-ds pods redeployed and everything came back online.
I saw this error frequently in the kube-vip-ds-* pod logs while it was in the broken state:
time="2024-01-30T06:27:26Z" level=error msg="[endpoint] unable to find shortname from k3s-m2"

My three kube-vip-ds pods are running on my 3 master nodes (k3s-m{1..3}), and each pod had the same errors logged with the respective shortname.

@cyberops7 @aerott again, can you verify on your side if the latest release helps with your discovered issues?

@cyberops7 @aerott again, can you verify on your side if the latest release helps with your discovered issues?

Unfortunately, it's still the same. I can't connect externally to Ingress Nginx, even though there are no visible errors anywhere.
Update note:
My K8s cluster is currently running with:

Kubernetes Version: v.1.29.1 (kubeadm; 3 CP nodes)
Kube-vip Version: 0.7.0

Do you have the same deployment config as the person who created this issue? :)

@Cellebyte Good point, probably not, I use an ansible role to deploy the whole rke2 cluster including kube-vip. Kube-vip is running as a daemon set (manifest below) and the cloud controller is running as a StatefulSet (manifest below)
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: kube-vip-ds
  namespace: kube-system
  labels:
    app.kubernetes.io/name: kube-vip-ds
    k8slens-edit-resource-version: v1
    objectset.rio.cattle.io/hash: df8554deac08f5bfb609d09470da1244dab4a242
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: kube-vip-ds
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/name: kube-vip-ds
    spec:
      containers:
        - name: kube-vip
          image: ghcr.io/kube-vip/kube-vip:v0.7.0
          args:
            - manager
          env:
            - name: vip_arp
              value: 'true'
            - name: vip_interface
              value: vmbr0
            - name: port
              value: '6443'
            - name: vip_cidr
              value: '24'
            - name: cp_enable
              value: 'true'
            - name: cp_namespace
              value: kube-system
            - name: vip_ddns
              value: 'false'
            - name: enableUPNP
              value: 'false'
            - name: svc_enable
              value: 'true'
            - name: svc_election
              value: 'true'
            - name: vip_leaderelection
              value: 'true'
            - name: vip_leaseduration
              value: '5'
            - name: vip_renewdeadline
              value: '3'
            - name: vip_retryperiod
              value: '1'
            - name: address
              value: <IP_ADDRESS>
            - name: prometheus_server
              value: ':2112'
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
          securityContext:
            capabilities:
              add:
                - NET_ADMIN
                - NET_RAW
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: kube-vip
      serviceAccount: kube-vip
      hostNetwork: true
      securityContext: {}
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: node-role.kubernetes.io/master
                    operator: Exists
              - matchExpressions:
                  - key: node-role.kubernetes.io/control-plane
                    operator: Exists
      schedulerName: default-scheduler
      tolerations:
        - operator: Exists
          effect: NoSchedule
        - operator: Exists
          effect: NoExecute
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 0
  revisionHistoryLimit: 10

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: kube-vip-cloud-provider
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kube-vip
      component: kube-vip-cloud-provider
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: kube-vip
        component: kube-vip-cloud-provider
    spec:
      containers:
        - name: kube-vip-cloud-provider
          image: ghcr.io/kube-vip/kube-vip-cloud-provider:v0.0.8
          command:
            - /kube-vip-cloud-provider
            - '--leader-elect-resource-name=kube-vip-cloud-controller'
          resources: {}
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: kube-vip-cloud-controller
      serviceAccount: kube-vip-cloud-controller
      securityContext: {}
      schedulerName: default-scheduler
  serviceName: kube-vip-cloud-provider
  podManagementPolicy: OrderedReady
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      partition: 0
  revisionHistoryLimit: 10
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain

I have the same issue on Harvester 1.2.1 + Rancher + RKE2 v1.27.10 deployed by Rancher.
My kube-vip config:
- name: svc_enable
value: 'true'
- name: svc_election
value: 'true'
I have load balancer service redirected to rke2 nginx ingress controller.
But if I change "externalTrafficPolicy: Cluster" to "externalTrafficPolicy: Local", service doesn't work:
curl <IP_ADDRESS> 80
curl: (28) Failed to connect to <IP_ADDRESS> port 80 after 131128 ms: timeout
curl: (28) Failed to connect to <IP_ADDRESS> port 80 after 131071 ms: timeout
when and change to "Cluster" again, everything works fine:
curl <IP_ADDRESS> 80

404 Not Found

404 Not Found
nginx

This is very important for me, because I need real IPs in backends.

@dawid10353 could you please update to at least the 0.7.1 Release and verify again?

Still doesn't work :( . My updated daemonset:
apiVersion: apps/v1
kind: DaemonSet
metadata:
  annotations:
    deprecated.daemonset.template.generation: "4"
    meta.helm.sh/release-name: harvester-cloud-provider
    meta.helm.sh/release-namespace: kube-system
  creationTimestamp: "2024-02-23T19:29:56Z"
  generation: 4
  labels:
    app.kubernetes.io/managed-by: Helm
  name: kube-vip
  namespace: kube-system
  resourceVersion: "10119325"
  uid: dad161c9-778f-4575-a3d1-8eee8fb1421d
spec:
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/instance: harvester-cloud-provider
      app.kubernetes.io/name: kube-vip
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: harvester-cloud-provider
        app.kubernetes.io/name: kube-vip
    spec:
      containers:
      - args:
        - manager
        env:
        - name: svc_election
          value: "true"
        - name: cp_enable
          value: "false"
        - name: enable_service_security
          value: "true"
        - name: lb_enable
          value: "true"
        - name: lb_port
          value: "6443"
        - name: svc_enable
          value: "true"
        - name: vip_arp
          value: "true"
        - name: vip_cidr
          value: "32"
        - name: vip_interface
        - name: vip_leaderelection
          value: "false"
        image: ghcr.io/kube-vip/kube-vip:v0.7.1
        imagePullPolicy: IfNotPresent
        name: kube-vip
        resources: {}
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
            - NET_RAW
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      hostNetwork: true
      nodeSelector:
        node-role.kubernetes.io/control-plane: "true"
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: kube-vip
      serviceAccountName: kube-vip
      terminationGracePeriodSeconds: 30
      tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/control-plane
        operator: Exists
  updateStrategy:
    rollingUpdate:
      maxSurge: 0
      maxUnavailable: 1
    type: RollingUpdate
status:
  currentNumberScheduled: 3
  desiredNumberScheduled: 3
  numberAvailable: 3
  numberMisscheduled: 0
  numberReady: 3
  observedGeneration: 4
  updatedNumberScheduled: 3

And my load balancer service:
apiVersion: v1
kind: Service
metadata:
  annotations:
    cloudprovider.harvesterhci.io/ipam: pool
    field.cattle.io/publicEndpoints: '[{"addresses":["<IP_ADDRESS>"],"port":80,"protocol":"TCP","serviceName":"kube-system:rke2-nginx-ingress-controller","allNodes":false},{"addresses":["<IP_ADDRESS>"],"port":443,"protocol":"TCP","serviceName":"kube-system:rke2-nginx-ingress-controller","allNodes":false}]'
    kube-vip.io/loadbalancerIPs: <IP_ADDRESS>
    kube-vip.io/vipHost: rke2-rc-control-plane-46fdf5e0-k4t8c
  creationTimestamp: "2024-03-06T19:47:53Z"
  finalizers:
  - service.kubernetes.io/load-balancer-cleanup
  name: rke2-nginx-ingress-controller
  namespace: kube-system
  resourceVersion: "10127693"
  uid: 24fb1acb-27c3-4029-bb66-294676e014c5
spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: <IP_ADDRESS>
  clusterIPs:
  - <IP_ADDRESS>
  externalTrafficPolicy: Local
  healthCheckNodePort: 30704
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    nodePort: 31260
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    nodePort: 32335
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app.kubernetes.io/instance: rke2-ingress-nginx
    app.kubernetes.io/name: rke2-ingress-nginx
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: <IP_ADDRESS>
      ports:
      - port: 80
        protocol: TCP
      - port: 443
        protocol: TCP

I also have this issue with kube-vip-0.8.1 on Kubernetes-1.30.3. Each component was installed without the use of helm or any other intermediary except for kubeadm.
The specific cluster installation notes are recounted in a full cluster bootstrap guide with the exception of having added svc_enable: "true" to each control plane's kube-vip.yaml manifest. tl;dr for the guide: 5 node raspberry pi cluster, 3 control plane nodes set up with kubeadm and using kube-vip in static pod mode. Flannel-0.25.5 is the pod networking.
Changing an existing Service spec to externalTrafficPolicy: Local causes the Service to cease sending traffic. Creating a new Service with externalTrafficPolicy: Local causes the Service to stay in pending status until such time as I delete it. Like others here, changing the policy to Cluster results in the Service being provisioned and becoming active at once (but, of course, without the source IPs being preserved).

Same. I tried versions starting from 0.8.0, and the address for Ingress remains in Pending. I have the same issue with obtaining the address in the latest 0.8.4 version. I'm attaching the debug log. It shows that kube-vip seems unable to find the endpoint, although it’s definitely there.
time="2024-10-12T19:59:31Z" level=debug msg="(svcs) [ingress-nginx-controller] has been added/modified with addresses [[<IP_ADDRESS> <IP_ADDRESS>]]"
time="2024-10-12T19:59:31Z" level=info msg="[endpoints] watching for service [ingress-nginx-controller] in namespace [ingress-nginx]"
time="2024-10-12T19:59:31Z" level=debug msg="[endpoints] processing endpoint [<IP_ADDRESS>]"
time="2024-10-12T19:59:31Z" level=debug msg="[endpoints watcher] service ingress-nginx/ingress-nginx-controller: local endpoint(s) [0], known good [], active election [false]"
time="2024-10-12T19:59:41Z" level=debug msg="[endpoints] processing endpoint [<IP_ADDRESS>]"
time="2024-10-12T19:59:41Z" level=debug msg="[endpoints watcher] service ingress-nginx/ingress-nginx-controller: local endpoint(s) [0], known good [], active election [false]"
time="2024-10-12T19:59:51Z" level=debug msg="[endpoints] processing endpoint [<IP_ADDRESS>]"
time="2024-10-12T19:59:51Z" level=debug msg="[endpoints watcher] service ingress-nginx/ingress-nginx-controller: local endpoint(s) [0], known good [], active election [false]"

I will close the issue and take a note for documentation ^^


When looking at map in a group make sure sub-groups are appearing

I had a brief look at this. I think all the groups are being returned in the payload but they are being filtered out. Its a little hard to follow all the selectors involved


Fix streaming

Summary

Fix streaming support for langchain LLMs

Details

previously we rely on model.stream(). This is now deprecated (and broken) in langchain, also lack chat model support.
now we adapt to langchain new callback mechanism by:

running the model predict in separate thread (to avoid blocking)
use a callback handler to pull tokens into a queue
return a generator to allow downstream users to iterate over tokens as they arrive

Dirty laundry

we override __deepcopy__ for our callback handler to avoid being deepcopied in langchain callback manager code
we silently override streaming attribute set at LLM level, in favor of only using streaming at query engine level (propagated down to response builder)
we silently attach streaming callback handler to the LLM

Works well enough for me! Minor, but we could also add a page for streaming somewhere in the docs. Otherwise the notebooks are good enough

definitely agreed with adding a page here


Add style prop support

Add style prop support to the container div, allowing users of JavaScript based styles to target the container div in the same manor as when using the className prop

Do you envisage user ever needing to add styles to the HTML5 video itself too? As this obviously removes that functionality. Otherwise this change looks way more useful.

There's certainly a case for applying the styles to the video element. However, the inconsistency between how the className and style props are being applied is a bigger issue in my opinion. I'm thinking it should be something like:

  <video />

// OR

  <video className={this.getVideoClassName()} style={this.props.style} />

rather than:
// Current, inconsistent styling

  <video style={this.props.style />

My preference is for the former as it's a smaller change and has less impact on those already using those classes


Disable this test when lto is enabled.

What's in this pull request?

Resolved bug number: (SR-)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

Right now when we enable lto in swift, we lto the runtime and the compiler. In
the case where we are making dylibs for the runtime this is great, we get better
performance.
On the other hand, there is a bug now that makes it so that the static
libswiftCore also gets the lto bitcode. We do not want users to take this
potential compile time hit from ltoing that archive.
I have not had time to look into this issue yet, so I am xfailing this test when
LTO is enabled.
rdar://26281388

@swift-ci Please smoke test and merge

Test failure is unrelated.


Memcached

@OxygenCobalt can you push new location updates? I don't know how to send a byte body in postman.

@tbwrigh Here's a script
import struct
from datetime import datetime, timezone
from time import sleep
import requests

coords = [
    (39.7518902, -105.2209817),
    (39.7519935, -105.2208025),
    (39.7521685, -105.2204875),
    (39.7523451, -105.2201381),
    (39.7525108, -105.2198471),
    (39.7526269, -105.2196366),
]

while True:
    for lat, lon in coords[:-1]:
        print(lat, lon)
        timestamp = int(datetime.now(timezone.utc).timestamp())  # Current time in seconds since the Epoch as a float
        # Pack the values into a bytes object
        body = struct.pack("!ldd", timestamp, lat, lon)

        url = "http://localhost:8000/vans/location/0"
        headers = {"Content-Type": "application/octet-stream"}

        response = requests.post(url, data=body, headers=headers)

        print(response.status_code)

        sleep(2)
    for lat, lon in coords[1:][::-1]:
        print(lat, lon)
        timestamp = int(datetime.now(timezone.utc).timestamp())  # Current time in seconds since the Epoch as a float
        # Pack the values into a bytes object
        body = struct.pack("!ldd", timestamp, lat, lon)

        url = "http://localhost:8000/vans/location/0"
        headers = {"Content-Type": "application/octet-stream"}

        response = requests.post(url, data=body, headers=headers)

        print(response.status_code)

        sleep(2)

Decided not to use memcached.


Update sbt to 1.3.10

Updates org.scala-sbt:sbt from 1.3.9 to 1.3.10.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, semver-patch

Codecov Report

Merging #807 into develop will decrease coverage by 0.05%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #807      +/-   ##
===========================================
- Coverage    89.56%   89.50%   -0.06%
===========================================
  Files          115      115
  Lines         8912     8912
  Branches       345      345
===========================================
- Hits          7982     7977       -5
- Misses         930      935       +5

Impacted Files
Coverage Δ

.../main/scala/com/twitter/algebird/Successible.scala
87.50% <0.00%> (-4.17%)
:arrow_down:

...src/main/scala/com/twitter/algebird/Interval.scala
77.39% <0.00%> (-1.74%)
:arrow_down:

.../main/scala/com/twitter/algebird/Approximate.scala
88.70% <0.00%> (-1.62%)
:arrow_down:

.../main/scala/com/twitter/algebird/BloomFilter.scala
93.36% <0.00%> (-1.33%)
:arrow_down:

.../main/scala/com/twitter/algebird/HyperLogLog.scala
92.77% <0.00%> (+0.40%)
:arrow_up:

.../main/scala/com/twitter/algebird/Applicative.scala
58.06% <0.00%> (+3.22%)
: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 5b48fb7...0f7cd03. Read the comment docs.


Add: https://aws.amazon.com/blogs/aws/new-block-public-sharing-of-amazon-ebs-snapshots/

If not available theb submit issue to terraform provider and link it here so we can track it

For now resource are not created, and issue already exist:
https://github.com/hashicorp/terraform-provider-aws/issues/34347

on SCP level prevent we should block changes to this setting


Migrate LogBuffer to ES6 class

Migrate the //common/js/src/logging/log-buffer.js file and child classes that depend on it from legacy Closure Compiler classes to ES6 classes.
This is part of the effort to modernize the code base, as recent Closure Compiler versions stopped supporting the legacy class syntax.

Thanks. I've pushed another commit that applies clang-tidy (I intentionally didn't do it initially, to make the reviewed diff smaller).


Issues with Mathematics presentation

math things don't render properly
looks like it might be issues with mathjax or pandoc

Fixed by switching to markdown_github a pandoc input format


Wrong Tensorflow Lite link to hexagon_nn_skel.run v1.21 (actually is pointing to the v<IP_ADDRESS>)

Hi, I want to download the hexagon_nn_skel.run v1.21. In the Tensorflow Lite Hexagon guide there are many links to many versions: https://www.tensorflow.org/lite/performance/hexagon_delegate. The problem is that v1.21 is pointing to v1.20. So the question is where can I find the version 1.21 of hexagon_nn_skel.run?
Also, in the guide it is specified that we must use the hexagon_nn libraries with the compatible version of interface library, as stated in bazel config. From bazel config (https://github.com/tensorflow/tensorflow/blob/master/third_party/hexagon/workspace.bzl) I understand that I must use the version 20.0.3 of the interface. So where can I find the version 20.0.3 of the interface library?

Hi! @sachinprasadhs! Could you please look at this bug?

Hi @glodanclaudia thanks for reporting this.
This is the correct version. I think updating the documentation to mention v<IP_ADDRESS> might be better.
I sent a fix to update the documentation.
Regarding the interface library.
If you're using the delegate through java API, then everything will be pulled from the gradle dependency as mentioned here
If you want to do it through bazel then you can do
bazel build -c opt --config=android_arm64 //tensorflow/lite/delegates/hexagon/hexagon_nn:libhexagon_interface
or download the tar file in the bzl file you pointed to and you will find the library inside it with header files.
Thanks again, and please let me know if you are having any issues.
Thanks

Hi @karimnosseir , thank you for help!
I understand now that v1.21 is actually v<IP_ADDRESS>.
But I want to use the delegate using C API, not Java. So yes, we built the interface using bazel but the resulted interface has version <IP_ADDRESS>. This means that we need hexagon_nn_skel.run v<IP_ADDRESS> in order to assure the compatibility. Where can I found this?

One more thing.... I want to use tensorflow lite 2.6.0 or higher so that's why I need the version <IP_ADDRESS> of hexagon_nn_skel.run.
Also here https://github.com/tensorflow/tensorflow/blob/v2.7.0/third_party/hexagon/workspace.bzl is mentioned this version.

As mentioned here
https://github.com/tensorflow/tensorflow/blob/v2.7.0/third_party/hexagon/workspace.bzl#L5
You should be using 1.20 this includes <IP_ADDRESS>. So you should be good to go.
If you have issues when you use, please let us know.

Closing because the questions seem fully answered. Please feel free to reopen if there are more questions.


Allow to copy name of song

Description of the new feature / enhancement
Allow to copy the name of the song (and possibly album and artist) by right clicking on it. Could be added to the "Share" subgroup.
📸 Screenshots
Current right-click context menu:

If you like the idea, add a 👍 reaction to this post

use spicetify


OpenISA: RV32M1: Add PWM support

This series of patches adds PWM support for the OpenISA RV32M1 through the Timer/PWM (TPM) module.
It depends on https://github.com/zephyrproject-rtos/hal_openisa/pull/3 being merged first (and the west manifest updated).

Don't forget to update west.yml. That should resolve the shippable failure.

I will - as soon as https://github.com/zephyrproject-rtos/hal_openisa/pull/3 is merged.

Don't forget to update west.yml. That should resolve the shippable failure.

I will - as soon as zephyrproject-rtos/hal_openisa#3 is merged.

@MaureenHelm west.yml is now updated.

@MaureenHelm I have updated the pinmux.c check to use CONFIG_PWM_2.


uniface-basic-web-framework - Servlet debug does not work

Hello again...
I'm trying to debug the app, but the servlet won't work.
ASN seems correct...
Thanks
Kind Regards
Seek

It works for me. Check the server debug shortcut and urouter assignment file settings are using the same port, and that you don't have multiple udbg.exe processes. You also need to restart Tomcat & URouter services after installation. If that doesn't work, post your WEB-INF\web.xml, urouter.asn and Server Debug shortcut settings and I'll see if I can spot anything wrong.


Allow mindreader to work without relayer (or clearly document it is required in minimal setup)

When setting up a new environment, for an existing blockchain the first thing that needs to get going is mindreader to generate merged blocks. So really you just want to get this up and running and then investigate other "higher level" components later.
Since recent changes, mindreader now knows when to merge blocks by itself.  However, this knowledge depends on the relayer.  This may not be obvious to a new user that the minimal set of services that should be deployed is:

mindreader (multiple)
merger (single)
blockmeta (multiple)
relayer (multiple)

Code could be changed to allow this minimal configuration to run without the relayer.  Or make it clear in the documentation that relayer is required as part of the minimal configuration.
Of course once you get to a production situation, relayer is absolutely required.

Clarification:

the mindreader can run without the blockmeta or relayer.
the optimization of mindreader creating merged files directly can work only based on '--mindreader-merge-threshold-block-age' -> setting this to 10 minutes will give good results (but become risky if the chain's LIB is not advancing steadily)
the optimization where mindreader will create merged files up to the current LIB (less risky then based on block age) does rely on additional information from the blockmeta (it's asking the blockmeta "what is the current LIB on the network", and the blockmeta is doing a query to its configured 'upstream nodeos API"

What needs to be done is to allow the blockmeta to start and serve some endpoints even if it does not have access to a stream yet (ex: no relayer..)


Alternative to writeEncryptedCopyTo from realm-java

We are migrating our code from realm-java to realm-kotlin.
We were using writeEncryptedCopyTo method, but it doesn't exist on realm-kotlin.
Is there anyway to do the same thing?

Hi @ganfra There is currently no method like that available. You would need to copy the file manually currently. We are in the process of adding it though and it should hopefully land within the next few days: #955
Folding this into #570


Could you please add ccl (Clozure Common Lisp)

Clozure Common Lisp is an advanced and free Common Lisp implementation.
Windows XP and later (x86, x86-64) executable is here:
https://github.com/Clozure/ccl/releases.
Filename says x86, but zip file includes 64-bit.
Thank you!

As this is a command line tool, you could report issue in main bucket https://github.com/ScoopInstaller/Main

Done, thank you for letting me know.


Pulling develop into main

Merge develop into main
Changes :
Bug Fixes

add missing arguments aliases in create-release-notes (eac7d4e)
composer: rename all missing composer packages names (e879f14)

:tada: This PR is included in version 2.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fdk_aac: 0.1.5 -> 0.1.6

Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

built on NixOS
Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
found 0.1.6 with grep in /nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6
directory tree listing: https://gist.github.com/4a817b07a8c77aa7e3d16adb65f01186

cc @codyopel for review

Success on x86_64-linux (full log)
Attempted: fdk_aac
Partial log (click to expand)
 /nix/store/qrxs7sabhqcr3j9ai0j0cp58zfnny0jz-coreutils-8.29/bin/install -c -m 644 fdk-aac.pc '/nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6/lib/pkgconfig'
make[1]: Leaving directory '/tmp/nix-build-fdk-aac-0.1.6.drv-0/fdk-aac-0.1.6'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6
shrinking /nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6/lib/libfdk-aac.so.1.0.1
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6/lib
patching script interpreter paths in /nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6
checking for references to /tmp/nix-build-fdk-aac-0.1.6.drv-0 in /nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6...
/nix/store/cp8yg64bk9zga197f0npsp23l1w23r1r-fdk-aac-0.1.6

Success on x86_64-darwin (full log)
Attempted: fdk_aac
Partial log (click to expand)
 /nix/store/s28xb9v7xf6axvf4a3av2mnczws2hsdg-coreutils-8.29/bin/mkdir -p '/nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6/include/fdk-aac'
 /nix/store/s28xb9v7xf6axvf4a3av2mnczws2hsdg-coreutils-8.29/bin/install -c -m 644 ./libSYS/include/machine_type.h ./libSYS/include/genericStds.h ./libSYS/include/FDK_audio.h ./libAACenc/include/aacenc_lib.h ./libAACdec/include/aacdecoder_lib.h '/nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6/include/fdk-aac'
 /nix/store/s28xb9v7xf6axvf4a3av2mnczws2hsdg-coreutils-8.29/bin/mkdir -p '/nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6/lib/pkgconfig'
 /nix/store/s28xb9v7xf6axvf4a3av2mnczws2hsdg-coreutils-8.29/bin/install -c -m 644 fdk-aac.pc '/nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6/lib/pkgconfig'
make[1]: Leaving directory '/private/tmp/nix-build-fdk-aac-0.1.6.drv-0/fdk-aac-0.1.6'
post-installation fixup
strip is /nix/store/vb6mgjqgd9h11nbv60fvrp1ls9nxck2y-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6/lib
patching script interpreter paths in /nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6
/nix/store/0099h9rdih5026gkglxkg9hc1vmzr5by-fdk-aac-0.1.6

Success on aarch64-linux (full log)
Attempted: fdk_aac
Partial log (click to expand)
 /nix/store/c8bwnx988ckbw2igggv41s1mbd0v743m-coreutils-8.29/bin/install -c -m 644 fdk-aac.pc '/nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6/lib/pkgconfig'
make[1]: Leaving directory '/build/fdk-aac-0.1.6'
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6
shrinking /nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6/lib/libfdk-aac.so.1.0.1
strip is /nix/store/3zq400fri5dv7d30lpxlqm2v9y1iis6j-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6/lib
patching script interpreter paths in /nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6
checking for references to /build in /nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6...
/nix/store/l9q0676w1cz74wm0h7xfhzmiairz798z-fdk-aac-0.1.6


Does frontmatter tagging also work for Obsidian's properties?

With the addition of Properties, I continue to wonder if that is the better way to go vs. Nested tag. Can FO2K add properties that I already have or is it just tags?

@Cossackx not today. but we've been thinking on how to make this more extensible.
would you mind sharing a bit more of your use case ? (helps us develop things in the right direction)

Example List of Obsidian Properties
Types

Project

projectName: The name of the project.
dueDate: The project's due date.
status: Current status of the project (e.g., active, completed).

Task

taskName: The name of the task.
dueDate: The task's due date.
priority: Task priority level (e.g., high, medium, low).
status: Current status of the task (e.g., not started, in progress, completed).

Idea

ideaTitle: Title of the idea.
description: Brief description of the idea.
category: Category of the idea (e.g., business, personal).

Event

eventName: The name of the event.
eventDate: The date of the event.
location: The location where the event will take place.

Property Descriptions

projectName

Description: The title or name assigned to a specific project.
Example: "Website Redesign"

dueDate

Description: The deadline or due date for completing a task or project.
Example: "2024-12-31"

status

Description: The current state or progress of a task or project.
Example: "active", "completed"

priority

Description: The level of importance assigned to a task.
Example: "high", "medium", "low"

Relationships

is_related_to

Description: Indicates a general relationship between two notes.
Example: "Note1 is_related_to Note2"

depends_on

Description: Indicates that one note or project is dependent on another.
Example: "Task1 depends_on Task2"

contributes_to

Description: Indicates that one note contributes to another.
Example: "ResearchNote contributes_to ProjectNote"

is_part_of

Description: Indicates that one note is part of a larger project or collection.
Example: "Task1 is_part_of Project1"

Example Note with Properties and Relationships
Note Content:
---
type: project
projectName: "Develop New Feature"
dueDate: "2024-12-31"
status: "active"
---

# Project Plan

## Description
Details of the new project plan.

## Tasks
- Task1 _depends_on_ Task2
- ResearchNote _contributes_to_ ProjectPlan

## Diagram
![Project Diagram](../Attachments/Images/Diagrams/project-diagram.png)

By defining these properties and relationships, you can maintain a well-organized, flexible PKM system in Obsidian.
Using properties rather than nested tags in Obsidian can offer several advantages:
Advantages of Using Properties

Structured Data: Properties allow for more structured and detailed metadata, making it easier to capture specific information about each note.
Flexible Queries: Properties enable more powerful and flexible querying with tools like Dataview, allowing you to generate dynamic views based on multiple criteria.
Consistency: Properties enforce a consistent schema across your notes, ensuring that specific attributes are always captured in the same way.
Clarity: Properties can make the data more readable and self-explanatory compared to nested tags.

Example Comparison
Using Properties:
---
type: project
projectName: "Develop New Feature"
dueDate: "2024-12-31"
status: "active"
---

Using Nested Tags:
#project/develop_new_feature #due/2024-12-31 #status/active

Queries
Property-Based Query:
table projectName, dueDate, status
from "Notes"
where type = "project"

Tag-Based Query:
table file.name
from "Notes"
where contains(tags, "#project/develop_new_feature") and contains(tags, "#status/active")

Conclusion
While nested tags can also provide some level of organization, properties offer a more structured and powerful way to manage and query your notes, ensuring better consistency and clarity in your PKM system.

for example, I don't want FO2K to rigidly separate everything into folders. Instead, I would like it to adjust the front matter properties and keep everything in the least amount of folders as possible, as I determine.

Second this! Properties > tags > folder structures


Auto-calculate total model bytes on model descriptor

I noticed when profiling chaiNNer we take up a little bit of time every upscale to sum up the total bytes of the model. This only actually needs to be done once (when the model is instantiated), and I figured I could just do it here so it's available on the model descriptor of every model.
I figure only accounting for fp32 here is fine -- if someone needs the fp16 amount they can just divide it by 2.

Several things:

This has nothing to do in spandrel IMO. This issue is chainner specific, so why should spandrel change its API to solve this issue for chainner? I mean, this property could have just been a weak hashmap in chainner.
You just made every model load slower to make chainner a little faster. If anything, this should be a lazily computed property.

Ok, I'll solve this on the chaiNNer side then


Supporting custom env vars for components

Is your feature request related to a problem? Please describe.
Some components of istio come with some tuning flags that can be set through ENV variables.
(eg pilot, galley, etc.) as well as some env vars that affect Golang runtime.
In my case, I need to provide GOMAXPROCS for all components, specifically pilot/discovery container as we see a lots of CPU throttling happening there.
Similar to #216  but in more generic way.
Describe the solution you'd like to see
I would like to be able to set env variables as key value in my kustomization for each component under Kind: Istio. Similar to what istio/installer using Helm is providing.
Describe alternatives you've considered
Additional context
Manually adding GOMAXPROCS to the right value in pilot deployment helped us to reduce cpu throttling and memory consumption at the same time.

rate(container_cpu_cfs_throttled_seconds_total{namespace="$namespace",container_name="$container"}[5m])

Hi @mousavian,
This feature would make sense for sure.
We will do our best to implement this feature in the next 2-3 weeks, but in around two weeks we will have a Backyards release, until then we have limited capacity, so we cannot promise anything. If you need the feature sooner and you are up for it, we are more than happy to accept PRs as you already know. Otherwise, we will try to resolve this as soon as we can.

Hi @mousavian and @BoOgatti,
Sorry for the unusually long delay with this feature, but finally it was implemented in #374, courtesy of @waynz0r!
You can use the new additionalEnvVars field under each component to set any custom environment variables for the Istio control plane components.
This feature will land in the next operator release (which will be on Monday most probably).

Thx guys! It works and helpfull. In first time It was slightly not obvious how to implementing this new feature and what kind of array it must be ))
Example, just for history:
spec:
 pilot:
    additionalEnvVars:
      - name: PILOT_HTTP10
        value: "1"


storage account in buildagent.json

Hello,
is there any reason that there is a deployment of a storage account included?
I guess this is an old artefact from when there were no managed disk or is there another reason?
If it is still needed, the storage account part should be updated as the configuration does not include the current defaults, e.g. TLS 1.2 or soft delete.
https://github.com/microsoft/nav-arm-templates/blob/master/buildagent.json
Also the default machine could be changed to "Standard_D4s_v5".

You are more than welcome to create a PR if you know what is needed.
Else I will have a look when I get to this item


openj9-0.26.0-m2 triage

jdk-16
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.functional_aarch64_linux/56/consoleFull
12:30:03  java.lang.AssertionError: Free Physical Memory size cannot be greater than total Physical Memory Size. expected [false] but found [true]

Raised: https://github.com/eclipse/openj9/issues/12353
(Also: https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.functional_x86-64_linux/57/#showFailuresLink)
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.openjdk_aarch64_linux/19/#showFailuresLink
javax/imageio/stream/DeleteOnExitTest.sh.DeleteOnExitTest : Raised: https://github.com/eclipse/openj9/issues/12354
javax/imageio/plugins/shared/ImageWriterCompressionTest.java.ImageWriterCompressionTest : Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2373
(Also: https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.openjdk_x86-64_linux/20/#showFailuresLink)
security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java.ComodoCA : Existing: https://github.com/AdoptOpenJDK/openjdk-build/issues/2527
(Also: https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.openjdk_ppc64le_linux/17/#showFailuresLink)
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.perf_aarch64_linux/16/consoleFull
11:00:45  Benchmark 'gauss-mix' failed with exception:
11:00:45  java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.lang.Object[] java.util.ArrayList.elementData accessible: module java.base does not "opens java.util" to unnamed module @be30f191
11:00:45  	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
11:00:45  	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
11:00:45  	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
11:00:45  	at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)

Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2253
(Also: https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.perf_ppc64le_linux/16/console, https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.perf_s390x_linux/16/console, https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.perf_x86-64_linux/16/console, https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.perf_x86-64_mac/16/console, https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_sanity.perf_x86-64_windows/52/console, https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.perf_x86-64_windows/16/console)
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_sanity.openjdk_ppc64le_linux/54/
java/lang/invoke/lambda/LambdaFileEncodingSerialization.java.LambdaFileEncodingSerialization: Existing: https://github.com/eclipse/openj9/issues/11915
java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessInt.java: timeout: Raised: https://github.com/eclipse/openj9/issues/12355
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.openjdk_s390x_linux/16/consoleFull:
com/sun/jndi/dns/ConfigTests/Timeout.java.Timeout Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2360
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.functional_x86-64_linux/57/consoleFull:
testSoftMxDisclaimMemory_1: Memory didn't release back to OS
Raised: https://github.com/eclipse/openj9/issues/12356
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_extended.openjdk_x86-64_linux/20/#showFailuresLink
sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.java.PostThruProxyWithAuth: Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2137#issuecomment-758374845
java/nio/file/attribute/BasicFileAttributeView/UnixSocketFile.java.UnixSocketFile : Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2137#issuecomment-758374845
sun/security/krb5/auto/ReplayCacheTestProc.java.ReplayCacheTestProc, sun/security/krb5/auto/ReplayCacheTestProcWithMD5.java.ReplayCacheTestProcWithMD5 : Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2349
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_sanity.functional_x86-64_windows/52/consoleFull
cmdLineTester_callsitedbgddrext_openj9_0:
15:45:42  Testing: Remove shared cache
15:45:42  Test start time: 2021/04/05 22:45:42 China Standard Time
15:45:42  Running command: "C:/Users/Jenkins/workspace/Test_openjdk16_j9_sanity.functional_x86-64_windows/openjdkbinary/j2sdk-image\\bin\\java"   -Xshareclasses:name=shareddbgext,destroy
15:45:42  Time spent starting: 3 milliseconds
15:45:42  Time spent executing: 95 milliseconds
15:45:42  Test result: FAILED
15:45:42  Output from test:
15:45:42   [ERR] JVMSHRC241E Error: unable to delete shared class cache file
15:45:42   [ERR] JVMSHRC336E Port layer error code = -102
15:45:42   [ERR] JVMSHRC337E Platform error message: (5) Access is denied.
15:45:42   [ERR] JVMSHRC430I Failed to remove current generation of shared class cache "shareddbgext"
15:45:42  >> Success condition was not found: [Output match: destroyed]

Re-run: https://ci.adoptopenjdk.net/job/Grinder/8145/console Green
Win64 sanity.openjdk aborted after 10hrs, re-running, on 2 nodes, might be Azure cloud specific: https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_sanity.openjdk_x86-64_windows/55/ Green on build-alibaba-win2012r2-x64-2
https://ci.adoptopenjdk.net/job/Test_openjdk16_j9_sanity.openjdk_x86-64_windows/54/ Aborted after 10hrs on test-azure-win2012r2-x64-1

jdk-11
https://ci.adoptopenjdk.net/job/Test_openjdk11_j9_extended.functional_aarch64_linux/135/#showFailuresLink
org.openj9.test.management.TestOperatingSystemMXBean.runTestOSMXBean Existing: https://github.com/eclipse/openj9/issues/12353
https://ci.adoptopenjdk.net/job/Test_openjdk11_j9_extended.openjdk_aarch64_linux/16/#showFailuresLink
javax/imageio/plugins/shared/ImageWriterCompressionTest.java.ImageWriterCompressionTest : Existing: AdoptOpenJDK/openjdk-tests#2373
javax/imageio/AppletResourceTest.java.AppletResourceTest : Existing: https://github.com/AdoptOpenJDK/openjdk-tests/issues/2357
https://ci.adoptopenjdk.net/job/Test_openjdk11_j9_extended.perf_aarch64_linux/15/ : Abort 10hrs on build-docker-ubuntu1804-armv8-6: Re-run on test-docker-ubuntu1604-armv8l-2: https://ci.adoptopenjdk.net/job/Test_openjdk11_j9_extended.perf_aarch64_linux/16/

jdk-8
Test_openjdk8_j9_extended.functional_ppc64_aix re-run: https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_ppc64_aix/118/

jdk8:
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-linux-aarch64-openj9/250/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_aarch64_linux/116/consoleFull - UNSTABLE
https://github.com/eclipse/openj9/issues/12038
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_aarch64_linux/13/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2351
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2349
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2357
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_aarch64_linux/13/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_aarch64_linux/199/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_aarch64_linux/114/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_aarch64_linux/205/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_aarch64_linux/148/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_aarch64_linux/199/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_aarch64_linux/13/consoleFull - SUCCESS
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-linux-ppc64le-openj9/932/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_ppc64le_linux/113/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_ppc64le_linux/19/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2351
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_ppc64le_linux/15/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_ppc64le_linux/485/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_ppc64le_linux/113/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_ppc64le_linux/490/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_ppc64le_linux/157/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_ppc64le_linux/491/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_ppc64le_linux/33/consoleFull - SUCCESS
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-linux-s390x-openj9/947/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_s390x_linux/116/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_s390x_linux/19/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2351
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_s390x_linux/15/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_s390x_linux/476/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_s390x_linux/116/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_s390x_linux/480/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_s390x_linux/159/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_s390x_linux/481/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_s390x_linux/31/consoleFull - SUCCESS
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-linux-x64-openj9/990/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_x86-64_linux/114/consoleFull - UNSTABLE
https://github.com/eclipse/openj9/issues/10732
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_x86-64_linux/29/consoleFull - UNSTABLE
https://github.com/eclipse/openj9/issues/12038
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_x86-64_linux/13/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_x86-64_linux/479/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_x86-64_linux/117/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_x86-64_linux/497/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2469
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_x86-64_linux/486/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_x86-64_linux/482/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_x86-64_linux/355/consoleFull - SUCCESS
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-mac-x64-openj9/898/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_x86-64_mac/121/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_x86-64_mac/30/consoleFull - ABORTED
Resubmitted as https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/8156
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_x86-64_mac/16/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_x86-64_mac/494/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_x86-64_mac/121/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_x86-64_mac/499/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_x86-64_mac/165/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_x86-64_mac/498/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_x86-64_mac/33/consoleFull - SUCCESS
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-windows-x64-openj9/1034/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_x86-64_windows/109/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_x86-64_windows/20/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2351
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2470
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2356
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_x86-64_windows/15/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2471
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_x86-64_windows/469/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_x86-64_windows/108/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_x86-64_windows/476/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_x86-64_windows/150/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2471
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_x86-64_windows/474/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_x86-64_windows/30/consoleFull - SUCCESS
Build job
https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-windows-x86-32-openj9/887/consoleFull
Test jobs
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.functional_x86-32_windows/109/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.openjdk_x86-32_windows/18/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2351
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2470
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2356
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.perf_x86-32_windows/15/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2471
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_extended.system_x86-32_windows/150/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.functional_x86-32_windows/110/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_x86-32_windows/475/consoleFull - UNSTABLE
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.perf_x86-32_windows/151/consoleFull - UNSTABLE
https://github.com/AdoptOpenJDK/openjdk-tests/issues/2471
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.system_x86-32_windows/150/consoleFull - SUCCESS
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_special.functional_x86-32_windows/31/consoleFull - SUCCESS


Add Documentation link to help menu in all modes

Add

Add Documentation link to help menu for all modes.

This should point to https://useboomerang.io/docs/boomerang-flow/introduction/overview/ (i.e. no specific version, unless we can pipe in the version of whats deployed?
Exists for all modes
Opens in new tab.

Hey @tlawrie some doubts:

What exactly are these modes you are referring to?
Where the doc link will be located?

Hi @LucasGrimauth

Sometimes things are protected by a feature flag for example when integrated with IBM Services Essentials. But in this case, this new link will always be present in this menu.
See image attached. New entry in this menu.

Hi @BenjaminRuby @LucasGrimauth in reviewing this, Do we want it to just be labeled Documentation rather than Flow Documentation?

Hi Tyson, I wrote "Flow Documentation" to be more clear, but I can change it to be just "Documentation" if you prefer.


Add python bindings

As promised, here is a taste of what's to come :)
This contributes python bindings. Since this is a templated library, the python bindings have to be compiled at a later point in time, when the types are known. Therefore, we don't ship the bindings directly but rather add a convenience function that allows binding the types once the template arguments are known.
Now util_caching brings some extra challenges because it is possible to use it with very different kinds of keys. I solved it by adding two binding functions. One to bind a types you need for a number based key and an analogous one for time based keys.
When pybind is available and BUILD_TEST=TRUE, a python module is built that allows running unit tests (almost) equivalent to the currently implemented ones.
There are two things missing right now. This line as well as this test.
The first one would require calling
python_api::bindTimeBasedCache<Time, double, std::chrono::seconds>(timeBasedSeconds);

Since these binds some of the same types as the existing statement, the resulting modules can't be loaded in the same python file.
Similarly, adding the SomePolicyWithoutParams would require a new module.
We could add those but in my opinion it would just add quite an overhead for a very small gain therefore I chose not to add it but we can of course discuss that.

One idea I had one the weekend which might be a nice solution for allowing to add more comparison policies then the already implemented ones would be to add a template parameter pack and running
        .def(
            "cached",
            [](CacheT& self, const NumberT& key, const ApproximateNumberT& policy) {
                return self.template cached<ApproximateNumberT>(key, policy);
            },

for each passed policy. I'll set this PR back to draft and test that out first as it would solve the issue with the missing tests (I think).

Ok, that actually worked out quite well.
I rearranged the bindings a little and added the missing unit tests. It is now possible to add a comparison policy as a template parameter to the bindCache function which will the overload the cached function for it. Check the comments in the code for a detailed explanation, I tried documenting all of it :)

Rebased on current master.

Rebased to main

Thanks for the review and the feedback! I know that the pybind stuff is a little hard to read at times (even though it's much better than the equivalent Boost.Python implementation :joy:). However, since most of that stuff should never need to be seen or touched by a user of the library, it shouldn't matter too much.
I'll rewrite the PR description quickly (since it's now used for the release notes), then merge this with a minor version bump.


Nil pointer when PipelineRun created v0.16.x

Expected Behavior
PipelineRun reconciles don't panic.
Actual Behavior
Upgrade Tekton pipeline from v0.15.2 (ok) to v0.16.0 - v0.16.2. Tasks and TaskRuns work fine, but creating a PipelineRun crashes the controller with a nil pointer panic.
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x17f56d1]
goroutine 164 [running]:
github.com/tektoncd/pipeline/pkg/reconciler/pipelinerun.(*Reconciler).ReconcileKind(0xc0003a7080, 0x216c240, 0xc000d8d770, 0xc000d48a00, 0xc000d48a00, 0x0)
        github.com/tektoncd/pipeline/pkg/reconciler/pipelinerun/pipelinerun.go:147 +0x1281
github.com/tektoncd/pipeline/pkg/client/injection/reconciler/pipeline/v1beta1/pipelinerun.(*reconcilerImpl).Reconcile(0xc00074db80, 0x216c240, 0xc000d8d710, 0xc000c79680, 0x12, 0xc00087cc70, 0x216c240)
        github.com/tektoncd/pipeline/pkg/client/injection/reconciler/pipeline/v1beta1/pipelinerun/reconciler.go:237 +0x1299
github.com/tektoncd/pipeline/vendor/knative.dev/pkg/controller.(*Impl).processNextWorkItem(0xc0008ed0e0, 0xc00096ba00)
        github.com/tektoncd/pipeline/vendor/knative.dev/pkg/controller/controller.go:465 +0x785
github.com/tektoncd/pipeline/vendor/knative.dev/pkg/controller.(*Impl).RunContext.func3(0xc000eef960, 0xc0008ed0e0)
        github.com/tektoncd/pipeline/vendor/knative.dev/pkg/controller/controller.go:403 +0x53
created by github.com/tektoncd/pipeline/vendor/knative.dev/pkg/controller.(*Impl).RunContext
        github.com/tektoncd/pipeline/vendor/knative.dev/pkg/controller/controller.go:401 +0x1f5

Steps to Reproduce the Problem
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: debug-task
  namespace: tekton
spec:
  steps:
    - name: foo
      image: docker.io/alpine:3.12
      script: |
        echo "hello"

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: debug-pipeline
  namespace: tekton
spec:
  tasks:
    - name: task
      taskRef:
        name: debug-task

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  generateName: debug-
  namespace: tekton
spec:
  pipelineRef:
    name: debug-pipeline

kubectl apply -f task.yaml
kubectl apply -f pipeline.yaml
kubectl create -f pipelinerun.yaml

Additional Info

Kubernetes version: v1.19.1
Tekton Pipeline version: v0.16.2

@dghubble thanks for the issue. Looking at the code this shouldn't happen except if there is not default timeout applied. I am not sure why there wouldn't be any applied (we do set one). Did you configure the default timeout ? Can you share the tekton-pipelines configmap content ?
(Created #3235 for a quick fix but I wonder how it happened and how we did not catch this in the CI)

Oh maybe. I've never really customized it.
apiVersion: v1
kind: ConfigMap
metadata:
  name: tekton-defaults
  namespace: tekton
data:
  _example: |-
    ################################
    #                              #
    #    EXAMPLE CONFIGURATION     #
    #                              #
    ################################

    # This block is not actually functional configuration,
    # but serves to illustrate the available configuration
    # options and document them in a way that is accessible
    # to users that `kubectl edit` this config map.
    #
    # These sample configuration options may be copied out of
    # this example block and unindented to be in the data block
    # to actually change the configuration.

    # default-timeout-minutes contains the default number of
    # minutes to use for TaskRun and PipelineRun, if none is specified.
    default-timeout-minutes: "60"  # 60 minutes

    # default-service-account contains the default service account name
    # to use for TaskRun and PipelineRun, if none is specified.
    default-service-account: "default"

    # default-managed-by-label-value contains the default value given to the
    # "app.kubernetes.io/managed-by" label applied to all Pods created for
    # TaskRuns. If a user's requested TaskRun specifies another value for this
    # label, the user's request supercedes.
    default-managed-by-label-value: "tekton-pipelines"

    # default-pod-template contains the default pod template to use
    # TaskRun and PipelineRun, if none is specified. If a pod template
    # is specified, the default pod template is ignored.
    # default-pod-template:

Used in the deployment as
          - name: CONFIG_DEFAULTS_NAME
            value: tekton-defaults

Updating to the following doesn't seem to affect the panic.
apiVersion: v1
kind: ConfigMap
metadata:
  name: tekton-defaults
  namespace: tekton
data:
  default-timeout-minutes: "60"

@dghubble ok thanks :hugs:

Well it definitely does seem to be timeout related! If I tweak the PipelineRun to have an explicit timeout, it can be created
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  generateName: debug-
  namespace: tekton
spec:
  timeout: "60m"
  pipelineRef:
    name: debug-pipeline

@dghubble right, then I think https://github.com/tektoncd/pipeline/pull/3235 should fix it.
@bobcatfish we will need a 0.16.3 sounds like :stuck_out_tongue_closed_eyes:

kk sg! thanks @vdemeester :D


Creating a volume for plugins crashes the redmine container

I want to add a volume for my containers, something like this
   volumes:
    - redmine_data:/home/redmine/data
    - ./redmine-plugins:/home/redmine/redmine/plugins

So I can add all my plugins to that folder, then when restarting the container, all my containers could appear installed. But each time I try that, the redmine container crashes. Any idea of how to fix it? Also, I'm working on MacOS

Sorry didn't see this come through email.
Could you add the log from the docker and clarify container crashes?  Also set DEBUG=true in the environment.

Please reopen if this is still an issue


Reorganize source code

This pull request was cloned from https://github.com/gjbex/Scientific-C-plus-plus/pull/24


Working on the API Rate limiting

Tested, seems to be working as intended, should definitely add in some kind of per-route limiter.
Limiting just the POST method and not the GET methods would be briliant.


RuntimeError: There is already a profiler running. You cannot run multiple profilers in the same thread or async context, unless you disable async support.

I get an error when I re-run the app (hot-reload):

RuntimeError: There is already a profiler running. You cannot run multiple profilers in the same thread or async context, unless you disable async support.

Is there a way to work around this?

This worked for me:
profiler = Profiler(async_mode='disabled')


Fix/detach from engine

Description
Application crash when a user tries to close the application.
https://user-images.githubusercontent.com/8526612/180994572-50a744bd-33c4-4217-a92e-53901da269b8.mp4
Related Issues
https://github.com/fluttercommunity/plus_plugins/issues/865#issuecomment-1193742562
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[x] I updated the version in pubspec.yaml and CHANGELOG.md.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (flutter analyze) does not report any problems on my PR.
[ ] I read and followed the Flutter Style Guide.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[ ] No, this is not a breaking change.

Seems that there's still a formatting issue, but I can't exactly see the diff:
 diff --git a/packages/sensors_plus/sensors_plus/ios/Classes/FLTSensorsPlusPlugin.m b/packages/sensors_plus/sensors_plus/ios/Classes/FLTSensorsPlusPlugin.m
index 6f00184..977ef16 100644
--- a/packages/sensors_plus/sensors_plus/ios/Classes/FLTSensorsPlusPlugin.m
+++ b/packages/sensors_plus/sensors_plus/ios/Classes/FLTSensorsPlusPlugin.m
@@ -5 +4,0 @@
-#import <CoreMotion/CoreMotion.h>
@@ -6,0 +6 @@
+#import <CoreMotion/CoreMotion.h>

Can you try to run clang-format locally and see if it fixes it?

release 1.3.3 published


=WIKITRANSLATE("en:Berlin", "xx") should not return the English title, but only xx title

Problem
Hello, I have encountered a problem with WIKITRANSLATE function. Logically and programmatically, when we specify the target language codes in the second parameter (which is opt_targetLanguages), it should return only the targeted languages, not the first parameter language title (which is article). Let me show an example. Imagine we have only two cells one after one like this:

Article title

Berlin

France

And, for example, when we change the first cell (which is Berlin) to =WIKITRANSLATE("en:Berlin", "ckb"), we get an error because the function return both en and ckb titles, but the second cell (which is France) blocks the other language to be printed while the function syntax is correct. As a result, we get an #REF! error in the Berlin cell as we see below.

Article title

#REF!

France

Solution
The function should return only opt_targetLanguages language codes and the first parameter (article) should use it's argument as a reference only, not return anything. In the above example, we should use =WIKITRANSLATE("en:Berlin", "ckb") instead Berlin and see

Language code
Article title

ckb
بەرلین

France

Another example code:

Article title

=WIKITRANSLATE("en:Berlin", "ckb")

=WIKITRANSLATE("en:Berlin", "ar")

Result:

Language code
Article title

ckb
بەرلین

ar
برلين

As we can see, we use en:Berlin just as a reference and we don't need the English title.
I hope you understand me and my examples. I really appreciate if you try to fix that problem.  Thank you in advance!

You do this via the INDEX() function. See this sheet for a demo:
=INDEX(WIKITRANSLATE(A1, "ab"), 0)


[#26] pgmoneta_ext_promote()

Define a custom extension function pgmoneta_ext_promote() to implement the functionality of pg_promote().

Did you rebase ?

yeah

Merged. (I was in the wrong shell window)
Thanks for your contribution !
Could you take add a function to pgmoneta's extension.h file as well ?

https://github.com/pgmoneta/pgmoneta/issues/428


GlobalColorOverrides

Currently we have the option for typescript to augment the ButtonPropsColorOverrides so we can use our custom palette colors as strings for the color props on Button elements:
declare module "@mui/material/Button" {
  interface ButtonPropsColorOverrides {
    myAwesomeColor: true;
  }
}

<Button color="myAwesomeColor"/>

The implementation in Button.d.ts just uses the default strings and extends the interface:
export interface ButtonPropsColorOverrides {}

color?: OverridableStringUnion<
      'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning',
      ButtonPropsColorOverrides
    >;

Now being lazyBoi™ I don't want to add the overrides for every component, so I was wondering whether we could have something like :
// somewhere in @mui/material/styles or wherever
export interface GlobalPropsColorOverrides {}

// Button.d.ts
export interface ButtonPropsColorOverrides {}

color?: OverridableStringUnion<
      'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning',
      ButtonPropsColorOverrides,
      GlobalPropsColorOverrides
    >;

so I can just declare my GlobalPropsColorOverride and automagically make the strings appear as a option for color in any component:
// myTheme.ts
declare module "@mui/material/styles" {
  interface GlobalPropsColorOverrides {
    myAwesomeColor: true;
  }
}

// myComp.tsx
{...}
return <>
<Button color="myAwesomeColor"/>
<Typography color="myAwesomeColor"/>
<Icon color="myAwesomeColor"/>
</>
{...}

I would wait to see if this will get some traction. I have hard time imagining that all components should have the same new variants, so we may be sending a wrong message by allowing this new type.

I've seen solutions like this posted a few times with ButtonPropsColorOverrides , but I haven't figured out yet where the value came from. I want to override the allowed types for a Select, but SelectPropsColorOverrides isn't doing the work...without some sort of documentation and a generic method, this seems unusable for Typescript applications at the moment. Is that the intention?

The Select component does not even have a color prop, this is why this interface doesn't exist. This is why I said adding a global way of adding colors may be confusing. For example, buttons may need more colors, but this doesn't make sense for all components.


initial commit of the readline editor replacement

This change is a full replacement for the current readline package that we had introduced before. It builds on that version but now properly handles multi-line input.
Some new features:

word wrap between lines (no more splitting lines in the middle of a word)
free movement of the cursor (up/down/left/right)
full multi-line support (no need to use """)
allow new lines w/ Ctrl-J (still impossible to allow this w/ shift-enter)
bracketed paste support (copy and paste into the editor)

There are a few things which are still broken:

Deleting a line doesn't (yet) clean up the buffer (although will remove the text)
Moving by word (i.e. forward/backward by word) isn't yet supported
The delete key is only single line still (although backspace will work across lines)
There is no "history" support yet for getting old prompts
I haven't yet added """ support back in, but we potentially don't need it?

Being able to move around the text with up/down/left/right is so much better. I don't think we need the triple quote mode anymore with this change either.
I gave this my classic stress test and found a backspace + wrapping issue. Here is the reproduction:

Fill up the first line to wrap to the second line:

helloooooooooooooooooooooo
oooooo world

Bring your cursor back to the start of the word world.
Backspace the ooo to the first line, so everything is on the first line

hellooooooooooooooooooooooworld

Cursor is now at the start of the line (on h), rather than the end.
Adding a new space (say after he) causes the first line to disappear.

... lloooooooooooooooooooooooworld

Let's archive this. @joshyan1 's changes should be good enough for now, and this is super out of date.


Fix

rancher/rancher#13153
rancher/rancher#13075
rancher/rancher#13119
rancher/rancher#12685
rancher/rancher#13089
rancher/rancher#13104

Hi, @vincent99
@superseb wants to see the os information in node list page.
Can we do this? maybe dropping it a line would probably take too much space.


[PE-D][Tester D] Modifying JSON fields result in addressbook successfully loading

To replicate: Duplicate a particular field in the json data file. Run Universe app.
Expected: Address book throws error and loads blank address book
Actual: Address book loads successfully without throwing error and loading blank contacts

Labels: severity.Medium type.FunctionalityBug
original: wrjgold/ped#14

add in our limitation


Already have fed  a proper shape and dtype value for  placeholder , why it raised  an Invalid ArgumentError  error ?

I need to tune parameter for a CNN at the first layer ,So what i did is *made a circulation ,and each step changed hyper parameter (the parameter is the number of kernel and the size of kernel ) .then output the result to local file,including the acc and loss ,so on .
Frame is :
for  kernel_number , kernel_size  in   combination of all allowed kernel_numbers and kernel_size :
          make  a  CNN model
          train model  and  write the result to local file

But when i ran the program , I got an unexpected  wrong ,so  amazing .
The core code is
print(Y_train.shape)
#the result is (2200,11)
print(X_train.shape)
#the result is (2200,2,128,1)
for number , size in number_size:
    #model
    inputs = Input(shape=(2, 128, 1), name='input_layer')
    inner = Convolution2D(number, size, padding='same', activation="relu", name="conv1",
                          kernel_initializer='glorot_uniform')(inputs)
    inner = Dropout(rate=0.5, name='drop_layer1')(inner)
    inner = Convolution2D(16, (2, 3), padding="same", activation="relu", name="conv2",
                          kernel_initializer='glorot_uniform')(inner)
    inner = Dropout(rate=0.5, name='dropout_layer2')(inner)
    inner = Flatten(name='flatten_layer')(inner)
    inner = Dense(256, kernel_initializer="he_normal", activation="relu", name="dense1")(inner)
    inner = Dropout(rate=0.5)(inner)
    Y_preds = Dense(11, kernel_initializer='he_normal', activation='softmax', name="dense2")(inner)
    model = Model(inputs, Y_preds, name='model')
    model.compile(optimizer='adam', loss=loss_out,metrics=[metrics.categorical_accuracy])
    model.summary()
    #end model
    #make dir
    os.mkdir(dirpath.format(str(size[1]),str(number)))
    os.chdir(dirpath.format(str(size[1]),str(number)))
    os.mkdir('loss')
    os.mkdir('acc')
    os.mkdir('tensorboard')
    #make dir end
    model.fit(X_train,Y_train,
              batch_size=batch_size,
              epochs=epochs,
              verbose=1,
              validation_split=0.2,
              callbacks = [
                    keras.callbacks.ModelCheckpoint(

                        '{val_categorical_accuracy:.4f}.hdf5',
                        monitor='val_categorical_accuracy', verbose=0, save_best_only=True, mode='auto'
                    ),
                    keras.callbacks.EarlyStopping(monitor='val_categorical_accuracy', patience=5, verbose=0, mode='auto'),
                    keras.callbacks.TensorBoard('/TensorBoard/tb.log',
                          write_images=True,write_grads=True,write_graph=False,histogram_freq=1
                    )
              ]
    )
    #return original dir
    os.chdir('..')

The log and  error were:
Using TensorFlow backend.
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
input_layer (InputLayer)     (None, 2, 128, 1)         0
_________________________________________________________________
conv1 (Conv2D)               (None, 2, 128, 10)        50
_________________________________________________________________
drop_layer1 (Dropout)        (None, 2, 128, 10)        0
_________________________________________________________________
conv2 (Conv2D)               (None, 2, 128, 16)        976
_________________________________________________________________
dropout_layer2 (Dropout)     (None, 2, 128, 16)        0
_________________________________________________________________
flatten_layer (Flatten)      (None, 4096)              0
_________________________________________________________________
dense1 (Dense)               (None,<PHONE_NUMBER>
_________________________________________________________________
dropout_1 (Dropout)          (None, 256)               0
_________________________________________________________________
dense2 (Dense)               (None, 11)                2827
=================================================================
Total params: 1,052,685
Trainable params: 1,052,685
Non-trainable params: 0
_________________________________________________________________
Train on 1760 samples, validate on 440 samples
Epoch 1/1
1760/1760 [==============================] - 6s 4ms/step - loss: 2.3977 - categorical_accuracy: 0.0966 - val_loss: 2.3969 - val_categorical_accuracy: 0.1250
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
input_layer (InputLayer)     (None, 2, 128, 1)         0
_________________________________________________________________
conv1 (Conv2D)               (None, 2, 128, 10)        90
_________________________________________________________________
drop_layer1 (Dropout)        (None, 2, 128, 10)        0
_________________________________________________________________
conv2 (Conv2D)               (None, 2, 128, 16)        976
_________________________________________________________________
dropout_layer2 (Dropout)     (None, 2, 128, 16)        0
_________________________________________________________________
flatten_layer (Flatten)      (None, 4096)              0
_________________________________________________________________
dense1 (Dense)               (None,<PHONE_NUMBER>
_________________________________________________________________
dropout_2 (Dropout)          (None, 256)               0
_________________________________________________________________
dense2 (Dense)               (None, 11)                2827
=================================================================
Total params: 1,052,725
Trainable params: 1,052,725
Non-trainable params: 0
_________________________________________________________________
Train on 1760 samples, validate on 440 samples
Epoch 1/1
1024/1760 [================>.............] - ETA: 1s - loss: 2.3980 - categorical_accuracy: 0.0723Traceback (most recent call last):
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1323, in _do_call
    return fn(*args)
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1302, in _run_fn
    status, run_metadata)
  File "D:\Python35\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 473, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'dense2_target' with dtype float and shape [?,?]
         [[Node: dense2_target = Placeholder[dtype=DT_FLOAT, shape=[?,?], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "trian_cnn_conv1.py", line 136, in <module>
    write_images=True,write_grads=True,write_graph=False,histogram_freq=1
  File "D:\Python35\lib\site-packages\keras\engine\training.py", line 1657, in fit
    validation_steps=validation_steps)
  File "D:\Python35\lib\site-packages\keras\engine\training.py", line 1233, in _fit_loop
    callbacks.on_epoch_end(epoch, epoch_logs)
  File "D:\Python35\lib\site-packages\keras\callbacks.py", line 73, in on_epoch_end
    callback.on_epoch_end(epoch, logs)
  File "D:\Python35\lib\site-packages\keras\callbacks.py", line 778, in on_epoch_end
    result = self.sess.run([self.merged], feed_dict=feed_dict)
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 889, in run
    run_metadata_ptr)
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1120, in _run
    feed_dict_tensor, options, run_metadata)
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1317, in _do_run
    options, run_metadata)
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 1336, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'dense2_target' with dtype float and shape [?,?]
         [[Node: dense2_target = Placeholder[dtype=DT_FLOAT, shape=[?,?], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Caused by op 'dense2_target', defined at:
  File "trian_cnn_conv1.py", line 112, in <module>
    model.compile(optimizer='adam', loss=loss_out,metrics=[metrics.categorical_accuracy])
  File "D:\Python35\lib\site-packages\keras\engine\training.py", line 755, in compile
    dtype=K.dtype(self.outputs[i]))
  File "D:\Python35\lib\site-packages\keras\backend\tensorflow_backend.py", line 497, in placeholder
    x = tf.placeholder(dtype, shape=shape, name=name)
  File "D:\Python35\lib\site-packages\tensorflow\python\ops\array_ops.py", line 1599, in placeholder
    return gen_array_ops._placeholder(dtype=dtype, shape=shape, name=name)
  File "D:\Python35\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 3090, in _placeholder
    "Placeholder", dtype=dtype, shape=shape, name=name)
  File "D:\Python35\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 787, in _apply_op_helper
    op_def=op_def)
  File "D:\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 2956, in create_op
    op_def=op_def)
  File "D:\Python35\lib\site-packages\tensorflow\python\framework\ops.py", line 1470, in __init__
    self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'dense2_target' with dtype float and shape [?,?]
         [[Node: dense2_target = Placeholder[dtype=DT_FLOAT, shape=[?,?], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

The most import information is the last line and was that
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'dense2_target' with dtype float and shape [?,?]
         [[Node: dense2_target = Placeholder[dtype=DT_FLOAT, shape=[?,?], _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

The keras and the TensorFlow i was using now is
In [9]: keras.__version__
Out[9]: '2.1.2'
In [10]: import tensorflow
In [12]: tensorflow.__version__
Out[12]: '1.4.0'

I have three  question .

one is what caused the error ,from the information , it said that we must feed a Tensor with shape [?,?] to dense2_target  layer, it is no dense2_target,where is the dense2_layer ?
two is ,if  the dense2_target is my output layer in my model .The data which is feed to is Y_train and the shape is (2200，11),it is a shape with two axis ,,so what is wrong ?
three is that ,if the code is wrong ,why the error triggered at the second cycle ,not the first cycle .

Additionally,the way i used to tuned the parameter is a bad way .The bad is that i must  to initialize a new model to run the network at each cycle .I ever tried to make the code easy because I know the frame of this network is same but the hyper parameter  but failed .If anyone have idea to do with it ,it also put a suggestion to me .I am very glod to see your reply .

Can you try with doing K.clear_session() at the end of the loop and report if it works then?

This error:
Exception ignored in: <bound method BaseSession.__del__ of <tensorflow.python.client.session.Session object at 0x0000007F6C6D8240>>
Traceback (most recent call last):
  File "D:\Python35\lib\site-packages\tensorflow\python\client\session.py", line 712, in __del__
  File "D:\Python35\lib\site-packages\tensorflow\python\framework\c_api_util.py", line 31, in __init__
TypeError: 'NoneType' object is not callable

Is nothing to be worried about. The exception was ignored, and I must admit it append to me quite a few times, but everything works fine.
I don't really understand what you mean by:

The case I annotated keras.backend.clear_session()

Do you mean that you commented keras.backend.clear_session()?

In any way, clear_session destroys all tensorflow nodes and tensors. It's good practice to use it when you don't need the model anymore. Otherwise you might not free the ram taken by the model (when a keras model goes out of scope, the tensorflow graph isn't destroyed, you have to call clear_session manually or terminate the python process).


Request: Strict World Access Feature.

Allow a config option or an extended permissions to prevent players from being in a certain world if they don't have access and have them automatically teleported to the default world.

agree^

Now the catch here is, should that be hardcoded?

automatically teleported to the default world.

I think the first cut of this may be this way.

Started working on this here: 5c48899d92c0e7aca0c87f7b9261cbeaf13e74f3
Now when someone logs in, their perms are checked and they're teleported to the default. Not immediate right now, but this is definitely a component.


Render php?

Hi @Alexander9673 , unfortunately restana does not support PHP integration and there are no future plans to support it at the moment.
Regards


Error HRESULT E_FAIL has been returned from a call to a COM component when parsing Application.Current.Resources.MergedDictionaries

I have a specific requirement to parse all SolidColorBrushes from different resource dictionaries and build something out of the same.
Trying to loop through custom resource dictionaries (ones added via App.xaml) are throwing the E_FAIL error.
In App.xaml, add,
<Application.Resources>         <ResourceDictionary>             <ResourceDictionary.MergedDictionaries>                 <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />                 <!--Other merged dictionaries here-->                 <ResourceDictionary Source="Resources\Sample.xaml"/>             </ResourceDictionary.MergedDictionaries>              <!--Other app resources here -->         </ResourceDictionary>     </Application.Resources>
And in Main.xaml.cs (from constructor or after launch or some button click event), add,

foreach (var dictionary in dictionaries)
         {
             if (dictionary is XamlControlsResources) continue;
             foreach(var entry in dictionary)
             {}
 }

This results in an error and the exception does not provide any useful information.
Any such experiences? Or am i missing something?

Attached exception stack trace,

NuGet package version
1.0.2 Stable has this issue
1.1.0 preview 1 release also has this issue

Does it matter what's in the Sample.xaml dictionary? I tried with it just containing this and didn't hit the crash:
<SolidColorBrush x:Key="MyBrush">Red</SolidColorBrush>

Hi, can you please post a repro that includes all the Xaml files you're using?  Thanks!