💬 RFC: There was a problem retrieving some Kubernetes resources for the entity: gmx-app. This could mean that the Error Reporting card is not completely accurate.

🔖 Need
Here is the problem, I have the latest Backstage App and I am trying to make the Kubernetes Plugin discover the cluster, pods of my totally separate application "GMX-App".
The Problem

What am I doing ?
I have created the docker-image of the GMX-App and is running it on K8 Minikube instance but the Kubernetes plugin is unable to detect anything
Backstage directory backend package.json "@backstage/plugin-kubernetes-backend": "^0.18.6"
app-config.yaml
kubernetes:
  serviceLocatorMethod:
    type: 'multiTenant'
  clusterLocatorMethods:
    - type: 'config'
      clusters:
        - url: http://<IP_ADDRESS>:59121
          name: minikube
          authProvider: 'serviceAccount'
          skipTLSVerify: true
          skipMetricsLookup: true
          serviceAccountToken: [[This is redacted but is copy/pasted as plain text]]
          dashboardUrl: http://<IP_ADDRESS>:59490
          dashboardApp: standard

Now diving into my project directory, GMX App.
I will mention all the files I have created in this project apart from the obvious files that make up the skeleton of any app.
deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gmx-app
  namespace: gmx-app
  labels:
    app: gmx-app
    backstage.io/kubernetes-id: gmx-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gmx-app
  template:
    metadata:
      labels:
        app: gmx-app
    spec:
      serviceAccountName: my-service-account
      containers:
        - name: gmx-app
          image: gmx-app
          imagePullPolicy: IfNotPresent
          # imagePullPolicy: Never
          ports:
            - containerPort: 3000
      imagePullSecrets:
        - name: regcred

catalog-info.yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  namespace: default
  annotations:
    github.com/project-slug: mohammad-ali_uics/gmx-app
    backstage.io/kubernetes-id: gmx-app-service
  name: gmx-app
  description: GMX App for user management
  tags:
    - app
    - gmx
  relations:
    - type: ownedBy
      targetRef: user:default/mohammad-ali_uics
      target:
        kind: user
        namespace: default
        name: mohammad-ali_uics
spec:
  type: website
  owner: user:mohammad-ali_uics
  lifecycle: experimental

backstage-sa.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: backstage-sa
  namespace: default

cluster-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: full-access-role-binding
subjects:
  - kind: ServiceAccount
    name: my-service-account # Change this to your actual service account name
    namespace: gmx-service-account # Change this to your actual namespace
roleRef:
  kind: ClusterRole
  name: gmx-app-access-role
  apiGroup: rbac.authorization.k8s.io

cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: gmx-app-access-role
rules:
  - apiGroups: [""]
    resources:
      - pods
      - services
      - configmaps
      - limitranges
      - resourcequotas
    verbs: ["get", "list", "watch", "create", "update", "delete"]

  - apiGroups: ["apps"]
    resources:
      - deployments
      - replicasets
      - statefulsets
      - daemonsets
    verbs: ["get", "list", "watch", "create", "update", "delete"]

  - apiGroups: ["autoscaling"]
    resources:
      - horizontalpodautoscalers
    verbs: ["get", "list", "watch", "create", "update", "delete"]

  - apiGroups: ["batch"]
    resources:
      - jobs
      - cronjobs
    verbs: ["get", "list", "watch", "create", "update", "delete"]

  - apiGroups: ["networking.k8s.io"]
    resources:
      - ingresses
    verbs: ["get", "list", "watch", "create", "update", "delete"]

role-binding-yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: gmx-app-role-binding
  namespace: gmx-service-account
subjects:
  - kind: ServiceAccount
    name: my-service-account
    namespace: gmx-service-account
roleRef:
  kind: Role
  name: gmx-app-role
  apiGroup: rbac.authorization.k8s.io

role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: gmx-service-account
  name: gmx-app-role
rules:
  - apiGroups: ["*"] # or specify specific api groups
    resources: ["pods"] # or other resources as needed
    verbs: ["get", "list", "watch"]

service.,yaml
apiVersion: v1
kind: Service
metadata:
  name: gmx-app-service
  namespace: gmx-service-account
spec:
  type: NodePort
  selector:
    app: gmx-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000

I have done kubectl apply -f <file-name.yaml> to all files
🎉 Proposal
The documentation on Backstage is very confusing and is often not explicit in-terms of basic instruction. I have raised this concern several time on discord but to no result
〽 Alternatives
No response
❌ Risks
No response
👀 Have you spent some time to check if this RFC has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

@backstage/kubernetes-maintainers do have any thoughts about it 🙂 ?

Can you run kubectl get --raw /apis/apps/v1/deployments -v 10 and post the logs to a gist (not the response), redacting any sensitive info for this cluster

Apologies for the late response. Here is the log file. gist link
I hope this answer any questions because I was unable to figure it out over the weekend.

Awaiting feedback @mclarke47

Try changing the port in app-config to 52050 since that's what your kubectl is connecting to

After running the command https://<IP_ADDRESS>:55142/apis/apps/v1/deployments in my gmx-app where my K8 Minikube instance is running. I am getting the following response.
kubectl get --raw /apis/apps/v1/deployments -v 10 > output.json
gent: kubectl.exe/v1.30.2 (windows/amd64) kubernetes/3968350" 'https://<IP_ADDRESS>:55142/apis/apps/v1/deployments'
I1106 10:01:21.733956   12932 round_trippers.go:510] HTTP Trace: Dial to tcp:<IP_ADDRESS>:55142 succeed
I1106 10:01:21.742699   12932 round_trippers.go:553] GET https://<IP_ADDRESS>:55142/apis/apps/v1/deployments 200 OK in 10 milliseconds
I1106 10:01:21.742699   12932 round_trippers.go:570] HTTP Statistics: DNSLookup 0 ms Dial 1 ms TLSHandshake 4 ms ServerProcessing 3 ms Duration 10 ms
I1106 10:01:21.742699   12932 round_trippers.go:577] Response Headers:
I1106 10:01:21.742699   12932 round_trippers.go:580]     Date: Wed, 06 Nov 2024 09:01:21 GMT
I1106 10:01:21.743209   12932 round_trippers.go:580]     Audit-Id: [redacted for no reason]
I1106 10:01:21.743209   12932 round_trippers.go:580]     Cache-Control: no-cache, private
I1106 10:01:21.743209   12932 round_trippers.go:580]     Content-Type: application/json
I1106 10:01:21.743209   12932 round_trippers.go:580]     X-Kubernetes-Pf-Flowschema-Uid: [redacted for no reason]
I1106 10:01:21.743753   12932 round_trippers.go:580]     X-Kubernetes-Pf-Prioritylevel-Uid: [redacted for no reason]

If I open up the URL https://<IP_ADDRESS>:55142/apis/apps/v1/deployments I am getting the following JSON response.
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "deployments.apps is forbidden: User \"system:anonymous\" cannot list resource \"deployments\" in API group \"apps\" at the cluster scope",
"reason": "Forbidden",
"details": {
"group": "apps",
"kind": "deployments"
},
"code": 403
}

My minikube cluster is currently running at
minikube service gmx-app-service
|-----------|-----------------|-------------|---------------------------|
| NAMESPACE |      NAME       | TARGET PORT |            URL            |
|-----------|-----------------|-------------|---------------------------|
| default   | gmx-app-service |          80 | http://<IP_ADDRESS>:32156 |
|-----------|-----------------|-------------|---------------------------|
🏃  Starting tunnel for service gmx-app-service.
|-----------|-----------------|-------------|------------------------|
| NAMESPACE |      NAME       | TARGET PORT |          URL           |
|-----------|-----------------|-------------|------------------------|
| default   | gmx-app-service |             | http://<IP_ADDRESS>:55422 |

minikube dashboard
 minikube dashboard
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://<IP_ADDRESS>:55509/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser..

All of the above is response from gmx-app repository
below is the app-config.yaml
kubernetes:
  serviceLocatorMethod:
    type: 'multiTenant'
  clusterLocatorMethods:
    - type: 'config'
      clusters:
        - url: http://<IP_ADDRESS>:55142
          name: minikube
          authProvider: 'serviceAccount'
          skipTLSVerify: true
          skipMetricsLookup: true
          serviceAccountToken: [redacted]
          dashboardUrl: http://<IP_ADDRESS>:55509 # url copied from running the command: minikube service kubernetes-dashboard -n kubernetes-dashboard
          dashboardApp: standard

It looks like the account you are using doesn't have permission to perform the required fetches

Deleted the minikube instance and re-initiated the whole process with admin privileges but still the same response

system:anonymous this means kubernetes con't tell the principal you're trying to use, is the service account token definitely valid and for this cluster?

The service account token is valid for this cluster

Hi @MohammadAliYT that shouldn't be necesary

Then is there a problem with localhost forwarding because my gmx-app is running on a minikube instance but backstage app is running locally, regardless of what I try to do my gmx-app clusters are not getting discovered.
This is the link to gist. https://gist.github.com/MohammadAliYT/eb7833b35c1331fb20c2ff4d215b2d4e?permalink_comment_id=5329795#gistcomment-5329795, the response is when I run this command  kubectl get --raw /apis/apps/v1/deployments -v 10
gist:eb7833b35c1331fb20c2ff4d215b2d4e
GitHub Gist: instantly share code, notes, and snippets.
If you hover over to the 6th line, you would notice this response,   GET https://localhost:50704/apis/apps/v1/deployments 200 OK in 106 milliseconds
but when I enter this URL in the browser, I get a response
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "deployments.apps is forbidden: User \"system:anonymous\" cannot list resource \"deployments\" in API group \"apps\" at the cluster scope",
"reason": "Forbidden",
"details": {
"group": "apps",
"kind": "deployments"
},
"code": 403
}


Make ThinVec::new constant

I am not sure if there are any technical blockers on this... can ThinVec::new be made const?
Having to reinitialize every instance causes a very slight regression when I moved from Vec to ThinVec.  I'd much rather it copies from pre-generated bits based on const.

Any chance to do this?

Since a single, shared static header is used for empty ThinVecs, having the current ThinVec::new be a const fn is only possible once Rust's const_refs_to_static feature becomes stable.


Unable to use retryStrategy and hooks in unison on intermediate steps/tasks

Pre-requisites

[X] I have double-checked my configuration
[X] I can confirm the issues exists when I tested with :latest
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened/what you expected to happen?
I encountered a bug where the workflow is unable to complete using hooks and retryStrategy. When some-task fails or succeeds, I am using an exit-handler to send a status update to Github. The exit-handler has a retryStrategy to ensure that the status update is sent. While the status update is happening, the finish task depending on some-task continues correctly. Whether some-task fails or succeeds, a hook with the exit-handler is launched and the workflow gets stuck. The hook's retry template gets stuck in "Running" state, even though the pod has completed its task. This results in the whole workflow getting stuck in "Running" state as well.
Removing the finish task from the workflow fixes the issue, so it seems to only occure when hooks are launched from intermediate tasks/steps. Removing retryStrategy also removes the issue, as the pod is the only thing launched and it completes successfully. So far it seems to affect both DAGs and Steps.
I would like the hook with the exit-template to complete, allowing the workflow continue executing and eventually exit with whatever state it has achieved (Failed, Succeeded or Error).
Failed some-task with a failure hook:

Successful some-task with a success hook:

Version
v3.4.11
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: github-issue
spec:
  entrypoint: main
  templates:
    - name: main
      dag:
        tasks:
          - name: some-task
            template: some-task
            hooks:
              failure:
                template: exit-handler
                expression: tasks["some-task"].status == "Failed"
          - name: finish
            template: finish
            dependencies:
             - some-task

    # Some task template
    - name: some-task
      container:
        image: alpine:latest
        command: [sh, -c]
        args:
          - |
            echo "Doing great things";
            echo "Failing...";
            exit 1;

    # Exit handler template
    - name: exit-handler
      retryStrategy:
        limit: 5
        retryPolicy: "Always"
        backoff:
          duration: "1m"
          factor: 2
          maxDuration: "5m"
      container:
        image: alpine:latest
        command: [sh, -c]
        args:
          - |
            echo "Sending updates to github";
            sleep 5;
            echo "Done!";

    # Finish template
    - name: finish
      container:
        image: alpine:latest
        command: [sh, -c]
        args:
          - |
            echo "Finished!";

Logs from the workflow controller
time="2023-11-01T11:15:45.648Z" level=info msg="Processing workflow" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.720Z" level=info msg="Updated phase  -> Running" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.720Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.720Z" level=info msg="was unable to obtain node for , letting display name to be nodeName" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.720Z" level=info msg="DAG node github-issue initialized Running" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.721Z" level=warning msg="was unable to obtain the node for github-issue-2120228413, taskName finish"
time="2023-11-01T11:15:45.721Z" level=warning msg="was unable to obtain the node for github-issue-2857574236, taskName some-task"
time="2023-11-01T11:15:45.721Z" level=warning msg="was unable to obtain the node for github-issue-2857574236, taskName some-task"
time="2023-11-01T11:15:45.721Z" level=info msg="All of node github-issue.some-task dependencies [] completed" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.721Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.721Z" level=info msg="Pod node github-issue-2857574236 initialized Pending" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.815Z" level=info msg="Created pod: github-issue.some-task (github-issue-some-task-2857574236)" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.815Z" level=warning msg="was unable to obtain the node for github-issue-2120228413, taskName finish"
time="2023-11-01T11:15:45.815Z" level=warning msg="was unable to obtain the node for github-issue-2120228413, taskName finish"
time="2023-11-01T11:15:45.815Z" level=info msg="TaskSet Reconciliation" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.815Z" level=info msg=reconcileAgentPod namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:45.837Z" level=info msg="Workflow update successful" namespace=argo-workflows phase=Running resourceVersion=463111604 workflow=github-issue
time="2023-11-01T11:15:55.649Z" level=info msg="Processing workflow" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.649Z" level=info msg="Task-result reconciliation" namespace=argo-workflows numObjs=1 workflow=github-issue
time="2023-11-01T11:15:55.649Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:15:55.650Z" level=info msg="Pod failed: Error (exit code 1)" displayName=some-task namespace=argo-workflows pod=github-issue-some-task-2857574236 templateName=some-task workflow=github-issue
time="2023-11-01T11:15:55.650Z" level=info msg="node changed" namespace=argo-workflows new.message="Error (exit code 1)" new.phase=Failed new.progress=0/1 nodeID=github-issue-2857574236 old.message= old.phase=Pending old.progress=0/1 workflow=github-issue
time="2023-11-01T11:15:55.650Z" level=warning msg="was unable to obtain the node for github-issue-2120228413, taskName finish"
time="2023-11-01T11:15:55.650Z" level=info msg="Running hooks" hookName=failure lifeCycleHook=failure namespace=argo-workflows node=github-issue.some-task.hooks.failure workflow=github-issue
time="2023-11-01T11:15:55.650Z" level=warning msg="Node was nil, will be initialized as type Skipped" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.650Z" level=info msg="Retry node github-issue-1122108762 initialized Running" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.650Z" level=info msg="Pod node github-issue-3942332033 initialized Pending" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.683Z" level=info msg="Created pod: github-issue.some-task.hooks.failure(0) (github-issue-exit-handler-3942332033)" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.684Z" level=warning msg="was unable to obtain the node for github-issue-2120228413, taskName finish"
time="2023-11-01T11:15:55.684Z" level=info msg="Skipped node github-issue-2120228413 initialized Omitted (message: omitted: depends condition not met)" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.684Z" level=info msg="TaskSet Reconciliation" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.684Z" level=info msg=reconcileAgentPod namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:15:55.698Z" level=info msg="Workflow update successful" namespace=argo-workflows phase=Running resourceVersion=463111739 workflow=github-issue
time="2023-11-01T11:16:05.688Z" level=info msg="Processing workflow" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:05.688Z" level=info msg="Task-result reconciliation" namespace=argo-workflows numObjs=2 workflow=github-issue
time="2023-11-01T11:16:05.688Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:16:05.688Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-3942332033 workflow=github-issue
time="2023-11-01T11:16:05.689Z" level=info msg="node changed" namespace=argo-workflows new.message= new.phase=Running new.progress=0/1 nodeID=github-issue-3942332033 old.message= old.phase=Pending old.progress=0/1 workflow=github-issue
time="2023-11-01T11:16:05.689Z" level=info msg="Pod failed: Error (exit code 1)" displayName=some-task namespace=argo-workflows pod=github-issue-some-task-2857574236 templateName=some-task workflow=github-issue
time="2023-11-01T11:16:05.689Z" level=info msg="node unchanged" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:16:05.689Z" level=info msg="TaskSet Reconciliation" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:05.689Z" level=info msg=reconcileAgentPod namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:05.694Z" level=info msg="cleaning up pod" action=terminateContainers key=argo-workflows/github-issue-exit-handler-3942332033/terminateContainers
time="2023-11-01T11:16:05.703Z" level=info msg="Workflow update successful" namespace=argo-workflows phase=Running resourceVersion=463111868 workflow=github-issue
time="2023-11-01T11:16:17.120Z" level=info msg="Processing workflow" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:17.120Z" level=info msg="Task-result reconciliation" namespace=argo-workflows numObjs=2 workflow=github-issue
time="2023-11-01T11:16:17.120Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:16:17.120Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-3942332033 workflow=github-issue
time="2023-11-01T11:16:17.120Z" level=info msg="node changed" namespace=argo-workflows new.message= new.phase=Succeeded new.progress=0/1 nodeID=github-issue-3942332033 old.message= old.phase=Running old.progress=0/1 workflow=github-issue
time="2023-11-01T11:16:17.121Z" level=info msg="Pod failed: Error (exit code 1)" displayName=some-task namespace=argo-workflows pod=github-issue-some-task-2857574236 templateName=some-task workflow=github-issue
time="2023-11-01T11:16:17.121Z" level=info msg="node unchanged" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:16:17.121Z" level=info msg="TaskSet Reconciliation" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:17.121Z" level=info msg=reconcileAgentPod namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:17.139Z" level=info msg="Workflow update successful" namespace=argo-workflows phase=Running resourceVersion=463111991 workflow=github-issue
time="2023-11-01T11:16:27.140Z" level=info msg="Processing workflow" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="Task-result reconciliation" namespace=argo-workflows numObjs=2 workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="task-result changed" namespace=argo-workflows nodeID=github-issue-3942332033 workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="node unchanged" namespace=argo-workflows nodeID=github-issue-3942332033 workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="Pod failed: Error (exit code 1)" displayName=some-task namespace=argo-workflows pod=github-issue-some-task-2857574236 templateName=some-task workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="node unchanged" namespace=argo-workflows nodeID=github-issue-2857574236 workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg="TaskSet Reconciliation" namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:27.141Z" level=info msg=reconcileAgentPod namespace=argo-workflows workflow=github-issue
time="2023-11-01T11:16:27.153Z" level=info msg="Workflow update successful" namespace=argo-workflows phase=Running resourceVersion=463111991 workflow=github-issue

Logs from in your workflow's wait container
time="2023-11-01T11:16:04.190Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2023-11-01T11:16:04.190Z" level=info msg="No output parameters"
time="2023-11-01T11:16:04.190Z" level=info msg="No output artifacts"
time="2023-11-01T11:16:04.190Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: github-issue/github-issue-exit-handler-3942332033/main.log"
time="2023-11-01T11:16:04.195Z" level=info msg="Creating minio client using AWS SDK credentials"
time="2023-11-01T11:16:04.273Z" level=info msg="Saving file to s3" bucket=test-bucket endpoint=s3.amazonaws.com key=github-issue/github-issue-exit-handler-3942332033/main.log path=/tmp/argo/outputs/logs/main.log
time="2023-11-01T11:16:04.354Z" level=info msg="Save artifact" artifactName=main-logs duration=163.750098ms error="<nil>" key=github-issue/github-issue-exit-handler-3942332033/main.log
time="2023-11-01T11:16:04.354Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2023-11-01T11:16:04.354Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2023-11-01T11:16:04.368Z" level=info msg="Alloc=11023 TotalAlloc=16877 Sys=23653 NumGC=4 Goroutines=12"
time="2023-11-01T11:15:49.147Z" level=info msg="No output parameters"
time="2023-11-01T11:15:49.147Z" level=info msg="No output artifacts"
time="2023-11-01T11:15:49.148Z" level=info msg="S3 Save path: /tmp/argo/outputs/logs/main.log, key: github-issue/github-issue-some-task-2857574236/main.log"
time="2023-11-01T11:15:49.154Z" level=info msg="Creating minio client using AWS SDK credentials"
time="2023-11-01T11:15:49.205Z" level=info msg="Saving file to s3" bucket=test-bucket endpoint=s3.amazonaws.com key=github-issue/github-issue-some-task-2857574236/main.log path=/tmp/argo/outputs/logs/main.log
time="2023-11-01T11:15:49.257Z" level=info msg="Save artifact" artifactName=main-logs duration=109.425749ms error="<nil>" key=github-issue/github-issue-some-task-2857574236/main.log
time="2023-11-01T11:15:49.257Z" level=info msg="not deleting local artifact" localArtPath=/tmp/argo/outputs/logs/main.log
time="2023-11-01T11:15:49.257Z" level=info msg="Successfully saved file: /tmp/argo/outputs/logs/main.log"
time="2023-11-01T11:15:49.276Z" level=info msg="Alloc=10592 TotalAlloc=16893 Sys=23653 NumGC=4 Goroutines=12"
time="2023-11-01T11:15:49.276Z" level=info msg="stopping progress monitor (context done)" error="context canceled"

Similar to #12109, this may very well be duplicative of #11589, which was only fixed recently in #11839 and so should be available in the next patch release.

Similar to #12109, this may very well be duplicative of #11589, which was only fixed recently in #11839 and so should be available in the next patch release.

This issue is still a problem in v3.5.1.

This issue is still a problem in v3.5.1.

@toyamagu-2021 could you take a look at this and see if you can diagnose why retryStrategy + hooks still seems to fail in certain cases?

I think this is the bug comes from the following line (only consider onExit hook)
https://github.com/argoproj/argo-workflows/blob/877a2e7371720e3e66ae00c5e9f57a23094fc732/workflow/controller/operator.go#L1729-L1746
I can fix this, but @MarcusMoe you might want to use onExit hook for a workaround.

Note that some considerations are needed to hook only failure cases.
https://argoproj.github.io/argo-workflows/walk-through/exit-handlers/

Or use step can be a workaround if your use-case allows to use steps, not dag.

I need to investigate more carefully, the root cause is the TemplateLevelLifeCycleHook does not wait for dag task.
But the exit handler works (I don't understand why).
In this case, we can use:
            hooks:
              exit: # NOTE: YOU CAN NOT CHANGE THIS STRING
                template: exit-handler
                arguments: {}
                expression: tasks["some-task"].status == "Failed"

@toyamagu-2021 Thank you for all your suggestions! Unfortunately in my case this would be part of a larger workflow where some-task is an intermediate task that needs to initiate a hook based on whether it is successful or failed with the correct parameters. As onExit does not allow for parameters when calling it, I have not found a good way to use it without adding logic. Your suggestion for the exit hook with this expression expression: tasks["some-task"].status == "Failed" would solve one side, but I would need another one with a success expression, and as far as I know, I can't have two hooks with exit as their name. Using Step instead of DAG could be an option, although it would require some work and might mess up the current dependency logic.

@MarcusMoe
Thanks for clarifying. I'll do my best to resolve issue, but following exit handler might be helpful for you.
  - name: exit-handler
    steps:
    - -  name: suceed
          template: celebrate
          when: "tasks["some-task"].status  == Succeeded"
       - name: failed
          template: cry
          when: "tasks["some-task"].status  == Failed"

This might work for both Succeeded and Failed.

@MarcusMoe
Hi, thanks for reporting issue.
I submitted PR #12192, so could you check images attached to PR are what you wanted?

@toyamagu-2021
This looks good! Thank you for fixing it so fast.


Migrate to flotta

Update references to flotta.
Add few options to tune the test (log level, must-gather).

Signed-off-by: Moti Asayag<EMAIL_ADDRESS>

/lgtm


Support FB Messenger through Twilio

This adds support for FB Messenger through Twilio. This way, users don't need to create a Meta app, they can simply link their page to twilio and point it to the server running OCS. I removed the elements related to the previous Messenger implementation, so we just need to update our FB integration. There's only one.
Note: Twilio does not support Instagram, so we need to find another way to integrate that

FAILED apps/channels/tests/test_facebook_integration.py::TestTwilio::test_twilio_uses_facebook_channel_implementation[{"SmsMessageSid": "DDDDDDDDDDDDDdd", "NumMedia": "0", "ProfileName": "Chris Smit", "SmsSid": "CCCCCCCCCCCCCCCCCCCCCCCCCC", "WaId": "27456897512", "SmsStatus": "received", "Body": "Dobroye utro", "To": "messenger:14155238886", "NumSegments": "1", "ReferralNumMedia": "0", "MessageSid": "BBBBBBBBBB", "AccountSid": "AAAAAAAAAAAAA", "From": "messenger:27456897512", "ApiVersion": "2010-04-01", "MediaContentType0": "audio/ogg", "MediaUrl0": "http://example.com/media"}-audio] - AssertionError: Expected 'send_voice_message' to have been called.


add default seccomp profile to containers

Codecov Report

Merging #68 into master will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff          @@
##           master   #68   +/-   ##
====================================
  Coverage       0%    0%
====================================
  Files          11    11
  Lines         546   546
====================================
  Misses        546   546

@jessfraz it seems that vendor got really big. can you please try adding something like this to Gopkg.toml and runningdep ensure again?
[prune]
  non-go = true
  unused-packages = true

i guess these are mostly unused packages.

thanks, yeah that was a lot

omg (+22,986 −5,469) -> (+3,443 −1,924,350) it is like removing Linux 2.2 lol

that was a really good tip, thanks :)

Can vendor purging merged separately. It would make this PR reviewable.

updated :)


Flutter version on docs.flutter.io

Here is the documentation footer on docs.flutter.io
It is the most recent but there's no human readable version to follow-up.
Flutter •  Dart • cc license • 2017-06-15 01:01 • 6f77b4a9a76e57c4e6d23e61ba59a0cdd80d22b7
@sethladd Edit if required

Thanks for the report!
@jcollins-g do we need to do something special, or should dartdoc pick up the version as reported from the package ?

@sethladd If the version field is defined in pubspec.yaml, dartdoc should do the right thing.
I'm noticing right now the generated pubspec.yaml from here doesn't do that.

Ah, thanks! Really appreciate it.


FormHierarchyActivity fixes: entry background color, back button in nested entry

In the form hierarchy view for an incomplete form instance, which shows a forms questions in a list view, the back button redirects to editing the incomplete form if you are in a nested entry. The back button should really traverse back up the form hierarchy. E.g. if you enter a repeat entry, the form hierarchy drills down into that repeat entry, at which point the back button should return you to the top level hierarchy view.
Also, correctly set the background color of form question entries in this view.
Before:

After:

Includes linting and code reformatting. I've marked the actually bug fixes with github comments.

@phillipm Can you also set this view to have the commcareactivity "back is enabled" flag set? That'll enable the "< 💮 CommCare" behavior on the action bar

@ctsims Updated; FormHierarchyActivity now has a action bar back button at every level


fixed bug regarding colorestimation in LoopyBPSegmentation

The code for estimating colorDistribution is only called when the flag to show the gui is set to true. This leads to incorrect segmentations when the gui is not shown. The fix was is to simply call the corresponding function before the if-block is entered.

Looks fine to me. Thank you for fixing this bug!


flutter update-packages --force-upgrade

Description
connectivity_for_web in the dev/integration_tests/flutter_gallery package is pinned to a bad version.
This PR calls flutter update-packages --force-upgrade to upgrade pinned dependencies.
Related Issues
https://github.com/flutter/flutter/issues/61656
Tests
dev/integration_tests/flutter_gallery$ flutter run --profile -d chrome now works.
(It doesn't in the current master.)
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.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.

This already got pushed here:
https://github.com/flutter/flutter/commit/df542b6831b0a7bf311c837533a636f440b59fb5#diff-f64e487a19ec50c0cbd032e34459e0e6R27


Add financial reports from each AGM

A commit which resolves this issue should:

Create a new directory called agm_finances
Populate the new directory with financial statements titled YYYYAGM_finances.md (or other suitable file extension)
Add a link in README.md to the latest financial statement

PR #6 is related to this issue


main: emit warnings and fail when input contains unrecognized keywords

We want to fail when the input is valid YAML but refers to keywords not
captured by the ignition config schema.

I'm new to the reflect side of golang, so this might be totally batshit crazy.

A few NITs but the approach looks good.


don't exit when "git rev-parse" fails

so that the version number is always echoed on stdout.
With this change, the version script will print a version
number even if git or the ".git" directory are not available
like in the "release-source.tar.gz" archive.

LGTM :+1:


How do I set permission in Directory.

In DockerFile, I can set folder permission like below :
FROM registry-testing.xxxx.com/sandbox/gui-server:1.0.0-KBANKPOC-SNAPSHOT
USER root
RUN chmod 777 /home/www
USER www

But in maven.jib, i understand RUN is not recommended. So how can I do the same in maven.jib ?

@aiman88 You can set permissions on any extra directories with -Djib.extraDirectories.permissions option (see options summary and arbitrary files docs for more details).
Would this meet your requirement?

@elefeint , thanks for your reply..I was able to meet require by using other based images...but looking at the -Djib.extraDirectories.permissions it seem good also..

Using -Djib.extraDirectories.permissions alone will probably not work for /home/www, as this directory is from the base image and not the directory created with the extraDirectories feature. I noticed you also posted the same Stack Overflow question (although there you indicated 755 instead of 777), and I've left an answer for more details.


Dynamic layout direction

can you add a $Direction variable in _variable.scss file to better supporting RTL layouting and text formating in bootstrap 4. i mean the layout of bootstrap template (RTL or LTR) can change simplify by changing the $Direction. somthing like this:
_anyfile.scss (like dropdown, forms, grid)
@if($Direction == 'ltr'){
      float:left;
}
@else{
     float:right;
}

I understand the intent and the usefulness, though it's not as easy as flipping floats. Text alignment, margin, and more all come into play as well.

X-Ref #17279

Closing in favor of #17279 since this PR is b0rked.


Fixed an issue where PEP 561 .pyi stub files were ignored

Previously the in PEP 561 introduced .pyi stub files were ignored by pytest-mypy, in contrast with mypy itself which handles them just fine.
This pull requests addresses aforementioned issue.
See also: https://mypy.readthedocs.io/en/stable/stubs.html

Annoying, it seems two tests ran into travis walltime issues.


[FEATURE] Integrate new Polls BB

This issue refers to: https://github.com/rokwire/illinois-app/issues/1565

Done in plugin version 1.0.2


youtube-dl cant find python if only python3 on system

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2021.12.17
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

$ youtube-dl -v https://youtu.be/dAywaOWz8Tc
/usr/bin/env: ‘python’: No such file or directory
$ which python3
/usr/bin/python3
$ which python
$ # no output

Some other system info if relevant (since -v doesn't work in this case):

OS: Kubuntu 22.04 LTS
Python version: Python 3.10.4 (default)

Description

youtube-dl can't seem to find Python on systems that only have python3 by default, like Ubuntu 22.04 (i.e. only a defined 'python3', no 'python' alias). When you try to use it, it simply says /usr/bin/env: ‘python’: No such file or directory (details in verbose log output above).
I used the workaround of simply passing youtube-dl to python3 (python3 $(which youtube-dl) <URL>), and all youtube-dl functions work fine then. But this is an ugly workaround and I hope there's a more elegant solution.
Idk what that solution is... I don't want to alias python='python3' in case I need to install python2 in the future and the alias breaks stuff. But I also don't want to install python2 just for youtube-dl since it works fine using python3; it just can't find it by default (the readme says youtube-dl requires "Python interpreter, version 2.6, 2.7, or 3.2+"; so users shouldn't have to install a Python2 if they already have a Python3.2+).
I imagine the best solution would be for youtube-dl to check if python3 exists if python can't be found.

What the instructions didn't expect was that nutjobs would build systems with Python 3, no Python 2 and python not aliased to python3.
If this problem is with the youtube-dl package from Kubuntu 22.04, raise the issue there.
Otherwise, in Debian/Ubuntu (etc), install package (that ought to have been included in the original installation) python-is-python3. Should you want to install Python 2 at any point, you could tweak the shebangs of whatever code you want to run under it, or change the PATH under which you run it, or uninstall python-is-python3.
Or installing using python3 -m pip should also work, and give you an improved version as well: let us know.

I decided to alias youtube-dl="python3 $(which youtube-dl) " in my .bash_aliases, which is an elegant-enough solution for me.
(the youtube-dl I downloaded was via the manual curl-chmod method, not via apt or pip (I'd rather avoid snaps, and I'd rather not deal with pip)).
But anyways, I'm just glad to see from your linked issue that this bug is known about. I'll leave the issue open if anyone has anything to add, but my problem's basically solved - you can close it if you like.

No, not a bug, it's on purpose.

As the problem exists it needs to be acknowledged in the documentation, but before committing the changes it would be good to know if, eg, installing with python3 -m pip solves the problem.
Also the distro packages should fix their packaging, if necessary, which I'll raise when the next release is imminent.

Anyone knows how to fix this for Windows? Thanks!

Anyone knows how to fix this for Windows? Thanks!

What's there to fix ?

youtube-dl cannot find python in my system. It is looking for python3 instead of just python. Is there a way to fix this in Windows? Or is it a separate issue?

On Window$ it doesn't work like that, so you need to show proof.

Rather, open a new bug report and complete the template.

cd /usr/bin
ln -s python3 python
i wonder why would anyone ever again need to use python2 except for some testing and development

That's it, Thank you

I had this issue since I uninstalled Py2. Turns out the symlink was pointing to Py2 all along, and it (the symlink) somehow got removed from my system (I don't remember if it was apt or rm that removed the residual files), leaving only Py3 without an alias pointing to it. I used this as a solution
cd /usr/bin
ln -s python3 python

But IDK if it's "safe". I've read that python is expected to be V2 by most programs. Will this cause any problems in the future?

Greetings, if you're unsure you might break something, you can use designed commands that do very much the same but in officially recommended manner but if something expects python2 it better be converted to python3 anytime soon
for Debian and clones: https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux
for RHEL and clones: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/assembly_configuring-the-unversioned-python_configuring-basic-system-settings

yt-dl is a program that can run on Python 2 or Python 3 interchangeably, without the use of dependencies like six or 2to3. The guidance in these links is not entirely helpful for yt-dl.
yt-dl in Unix-like environments relies on a #!/usr/bin/env python line, which finds the first python executable in the PATH. Since Python 3.5+ may work better, we want yt-dl to run under those if available, but whatever configuration is used should not cause other Python2-specific programs, which don't dynamically adapt to the version in use, to do so.
One solution that works is bundling a Python version in the yt-dl download. This is the typical type of yt-dl installation for Windows. However this approach requires a Python version that runs on all OS versions that yt-dl users are running and the bundling package to be supported and able to target those versions: neither of these is straightforward.
Another is installing with -m pip using your preferred Python (that supports pip, problematic in some legacy versions whose SSL setup doesn't match PyPi's CD's requirements). But then platforms with no Python installed by default pose a hurdle for less technical yt-dl users.

I don't see how bundling an universal Python (even if only considering x86) would be possible, much less without adding another 100% to the size for Py for every OS.
^ Hell, even converting Py from C to Rust wouldn't be a good option. Maybe Jython, but ytdl would have more things to consider due to the diffs between CPython and Jython on the technical level.
The simplest I know would be to release separate ytdl binaries "targeting" Py 2 or 3 that only differ by the shebang, since ytdl will run on both no problem.

( Replying to @dzodzo666 )

you can use designed commands that do very much the same but in officially recommended manner

Thank you for the links and the info

if something expects python2 it better be converted to python3 anytime soon

I hope so!
( Replying to @dirkf )

Python version that runs on all OS versions

That would very likely require a fat binary, but with extra bloat (because the entire interpreter is bundled)

Why not update the documentation about this issue ? For example by installing the python-is-python3 package (Debian/Ubuntu)

sudo apt install python-is-python3

Packagers should and do adapt the yt-dl installation to match the default Python installation on the target platform.
A problem can arise when the target platform doesn't have a Python by default (Windows, recent macOS) and the packagers forget that any recent Python installed on their platform will probably call itself python3.
Otherwise the self-extracting POSIX single file build requires one of the tweaks from this issue or from https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1449990989.


ToyBox on Linux doesn't render some UI elements properly

Describe the bug
Some UI elements (check boxes and drop-down boxes) do not render properly when playing the game on Linux using wine.
To Reproduce
Steps to reproduce the behavior:

Install Pathfinder WoTR on Linux (I installed GOG Galaxy via Lutris and then installed Pathfinder normally through GOG Galaxy)
Install UMM & this mod (I installed UMM by launching it with "mono" in my terminal)
Open this mod's settings in UMM
See rendering issues

Expected behavior
Properly rendered UI elements.
Screenshots

In the below screenshot "Enable 'Next' when no feat selections are available", "Make All Feature Selections Optional" and "Add Full Hit Die Value" are enabled.

In the below screenshot I have "Enabled Teleport Keys", "Allow Achievements While Using Mods", "Highlight Copyable Scrolls", "Make Tutorials Not Appear If Disabled In Settings" and "Allow Shift Click To Transfer Entire Stack" enabled.

In the below screenshot I have a few "Cheats" options enabled but only "Equipment No Weight" shows in bold to indicate it's enabled.

Version Info:

ToyBox Version: 1.2.3 - <IP_ADDRESS> (Issue has been present since the first version I used up to the latest)
Pathfinder WoTR: 1.0.9c
OS: Manjaro 21.1.5 (all installed packages up to date)
Kernel: Linux 5.14.10-1

Additional context
This issue has been a problem since I started using the ToyBox mod, however I was able to get by since activated elements would have their text become bold, this is no longer the case for all elements. (some still become bold but others do not (see screenshots), this has only been an issue for the past few releases)

Have the same issue, also running WotR on Linux (using Proton and Steam).
My guess is that the UI is broken because there is an exception in the log:
[ToyBox] <color=orange>[Warn] </color>per save settings not found, creating new...
[ToyBox] [Error] <color=yellow>Unable to load localization directory.</color>
  at System.Environment.get_StackTrace () [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
  at ModKit.Mod.Error (System.String str) [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.Utils.ReadTranslations () [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.EtudesTreeModel..ctor () [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.EtudesTreeModel.get_Instance () [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.EtudesEditor.get_loadedEtudes () [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.EtudesEditor.UpdateEtudeStates () [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.EtudesEditor.OnShowGUI () [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at ToyBox.Main.OnShowGUI (UnityModManagerNet.UnityModManager+ModEntry modEntry) [0x00000] in <278ef6b7ae514b87aa36387550660fe3>:0
  at UnityModManagerNet.UnityModManager+UI+<>c.<set_ShowModSettings>b__54_1 (UnityModManagerNet.UnityModManager+ModEntry mod) [0x00000] in <6f01b9ac742e434ba1d6af68c34ab3b2>:0
  at UnityModManagerNet.UnityModManager+UI.set_ShowModSettings (System.Int32 value) [0x00000] in <6f01b9ac742e434ba1d6af68c34ab3b2>:0
  at UnityModManagerNet.UnityModManager+UI.DrawTab (System.Int32 tabId, UnityEngine.Events.UnityAction& buttons) [0x00000] in <6f01b9ac742e434ba1d6af68c34ab3b2>:0
  at UnityModManagerNet.UnityModManager+UI.WindowFunction (System.Int32 windowId) [0x00000] in <6f01b9ac742e434ba1d6af68c34ab3b2>:0
  at UnityEngine.GUILayout+LayoutedWindow.DoWindow (System.Int32 windowID) [0x00000] in <4bee5931903d4283870a3843ed354648>:0
  at UnityEngine.GUI.CallWindowDelegate (UnityEngine.GUI+WindowFunction func, System.Int32 id, System.Int32 instanceID, UnityEngine.GUISkin _skin, System.Int32 forceRect, System.Single width, System.Single height, UnityEngine.GUIStyle style) [0x00000] in <4bee5931903d4283870a3843ed354648>:0

I have the same issue, and also observed this message in the log posted by @demilich1
I tried removing ~/.config/.mono but that didn't fix the problem.
The mod loses most of its functionality, since I can't click the checkboxes.
One extra bit of info - when a save is loaded, the log says (level set to trace):
...
[ToyBox][Debug] reloading per save settings from Player.SettingsList[ToyBox]
[ToyBox][Warn] per save settings not found, creating new...
[ToyBox][Debug] saved to Player.SettingsList[ToyBox]
...

This happens whenever I reload a save, so I guess the "creating new..." part fails. It would be nice if the log included in its messages the arguments of a failed operation (e.g., file paths when trying to create files, string contents when setting locale modifiers, etc). I tried chmod -R go+rwx path/to/game/dir (the one that has the Mods folder), but that didn't seem to change anything. My guess was that the sandboxing aspect of proton could be interfering with ToyBox, so I gave rwx permissions to everything inside the game folder (and read permission to every folder up to that point, seeing my default umask is 077). Not sure if any of this is relevant to the issue, though.

This ui bug is caused by https://github.com/cabarius/ToyBox/issues/499#issuecomment-1003640717

@dark0dave that fixed it for me, thanks! :)


Issue with restoring layout containing viewers linked to different table

We experienced an issue with native Datagrok on restoring layouts containing viewers linked to a different table.
Steps to reproduce:

add two tables
add scatterplot (or any other viewer) to second table
in viewer configuration select other table as data source
store view layout
close table and reopen
load previously stored layout

Expected behaviour: Layout is restored without any issue
Actual behaviour: Layout is restored but red warning messages are shown in grok

I was also able to catch that behaviour with this Grok script:
/name: Layout error messages
//description: Hello world script
//language: javascript

const table2 = grok.data.demo.geo();
const table1 = grok.data.demo.demog();

const view2 = grok.shell.addTableView(table2);
const view1 = grok.shell.addTableView(table1);

// add scatterplot for non-active table
view1.scatterPlot({ table: 'Table' });

ui.dialog({title:'Let\'s break the system...' })
	.add(ui.span(['Click "Ok" to re-open view and apply layout.']))
    .onOK(() => {
  		// create layout
		const layout = view1.saveLayout();
        grok.shell.closeTable(table1);
  		const table3 = grok.data.demo.demog();
  	    const view3 = grok.shell.addTableView(table3);
  		view3.loadLayout(layout);
    })
    .show();

Fixed in 0.136.0


Enable automatic generation of *.gdextension file

[ ] Generate [configuration] section from TargetVersion constant and EntryPoint macro
[ ] Generate [libraries] section from os.getAppFileName() function
[ ] Generate svg custom icons by referencing godot's node icons
[ ] Fill in the [icons] section with list of the generated icons

Since the official icon is here, I was thinking of making a command that to download it and save it in combination with the pre-prepared crown svg.

Since the official icon is here, I was thinking of making a command that to download and save it in combination with the pre-prepared crown svg.

Placement may be an issue, and scale definitely is.
At 1080p and default (100%) scale, this is what it does to an svg:

I mean alright, but the crown looks like it's bent/melted. Maybe you could get a good result, but probably would need adjusting.

I was thinking of making a command that to download and save it in combination with the pre-prepared crown svg

I made an svg that should render at low-resolution better, because I went by a grid:

Note that I left some of the Godot icons as hidden objects if you want to quickly see other variants.
Here is what it looks like at 16x, the svg manually combined beforehand:

High-res look:

Notes:

inkscape has view>icon preview (just needs to be set to 16x) that makes this easier

it doesn't seem to use the exact scale, but good enough
Godot will refresh the icon if you work on the one that's already loaded

the design I used is similar to the general design of some of Godot's icons that I saw, but shifted up

for icons that use this space (such as path2D) they should instead be placed on top instead

for future quality-of-life, offsets and potentially alternate designs

I've noticed that Godot's SVGs are set to 16x16 (for the nodes at least), I don't know how important that is but it does force the file manager icons to be incredibly tiny as well
import setting editor/scale_with_editor_scale=true

I am late in introducing this, but tips on creating editor icons are compiled in the document.
I haven't had a chance to peruse it yet, but it appears that there are also regulations regarding size and color.

but it appears that there are also regulations regarding size and color.

That only applies if you're contributing it, but yeah noted and I did leave the svg at 16x16 (and used a grid). Also I think it'd be readable on a light background (and I used a gradient), though stroke could be used to add an outline if needed.
Another option though: Let the node keep its original icon*, add an extra icon that all Nim classes use (ideally where the script icon would be... though currently you can add a script to a class so that would need to be handled).
*=unless it is manually overriden

@insomniacUNDERSCORElemon
I generated a set of node-like icons. godot-nim/resources
The crown icon I received would not look good with several full surface icons, so I created a temporary one here.
You can overwrite all icons by editing crown.svg and running nim makeicons, if you like. (Please give me a PR if you get a good one)

The crown icon I received would not look good with several full surface icons, so I created a temporary one here.

Which "full surface" icons, and did you try the under/over approach that I noted above? Either manually categorizing icons or detecting their top-margin (particularly near the edges of the crown, I don't know if there is a good way to do this to determine if visual information is actually blocked or not).
For the "alternate design" that I mentioned I had 2 ideas in mind:

A taller crown, background only (which was my original design actually, so the only difference is the bottom vertices)
A smaller/thinner crown, for nodes to "wear" (Characterbody 2D/3D) or to offset into the background in the most empty space.

Either way I think if it is the same for all nodes, it's going to be lacking somewhere.

Which "full surface" icons, and did you try the under/over approach that I noted above?

Such as AnimationPlayer.svg is it. In addition under approach cannot be applied in such examples.
Changing the design for each icon type seems like overkill. Consistency is important for visibility and maintainability.
The crown_small looks quite good. Still, I think the shapes are a little complex.
I think it could be as simple as this, as long as it remains Nim-like.

Such as AnimationPlayer.svg is it. In addition under approach cannot be applied in such examples

Well yes. The normal design (with over approach) was my answer for large nodes like that and area, with the under approach for small nodes like path that would be obscured. I don't think it looked bad.
The _small one might work here too, though it needs to be 1px wider to be properly centered. and...

The crown_small looks quite good. Still, I think the shapes are a little complex.

It is an easy alteration to make all of the angles 45deg like the first screenshot in my previous comment if that's what you mean. I did as such now when altering to be wider (+re-point inside middle for better aesthetics).
Though the alternate (smallest) design I don't like so much for that same reason. Other than that, I wouldn't call it complex

I think it could be as simple as this

3 spikes centered in 16x looks ugly. Unless going for a more square look (as I did with the pixel art one I did).

Changing the design for each icon type seems like overkill. Consistency is important for visibility and maintainability.

I would say it's more about multiple general styles to fit the different designs that Godot already uses. For instance the small crown will cover the entire head of the characterbody icon (though I guess maybe that's thematic with the logo I made, heh). A larger crown is better for stuff like the control icon that have no data to obscure.
I am sure my design could be altered to be parametric, for instance you may notice the _normal size has crown spikes that are twice as wide as the smaller designs but keep the top angles. Maybe detecting symmetry type (or obscuring less points?) could be part of size/offset/layer calculation
Even your design, being in the bottom-right-corner, obscures part of the shape of the camera icon. So that's why I say there is no one-size-fits-all.

This conflict of opinion is probably between programmers and designers.
I hope you'll listen to me as the last resistance of someone who can't be bothered,
From the looks of it, size of all icons is 14x14. Would it be possible to represent using only a margin of 1 square wide around them?

From the looks of it, size of all icons is 14x14. Would it be possible to represent using only a margin of 1 square wide around them

A bit boring IMO, but I have had that thought as well. Though you should note that the pathfollow2d icon is 15x15 (the arrowhead occupying the top-right of the canvas).
I was going to suggest an alternative take:

This is not terrible with something like characterbody, just a bit funny being so wide. Though a half-width is as easy as shifting each side of points in with the arrow keys (assuming an offset is ok too).

Ah I got why you'd not suggested that. But still, I don't like the approach of changing the shape of the crown.
What do you think of the approach of fixing the shape to crown_small and just moving the position?
The default position is the lower right (tentatively), and if specific icons, such as the camera, are to be processed, the position is slid.

What do you think of the approach of fixing the shape to crown_small and just moving the position?

Is there a reason you prefer _small over crown_square? I think _square looks better at 16x16 and probably has better compatibility being wide+short, with the adjustment being offsetting it downwards.
Camera doesn't need an offset:

Path2dfollow needs one, 5px down:

Also, here is the alternate shape I mentioned before (the more Nim-shaped one, but applied to the wider version) in the editor:

Is there a reason you prefer _small over crown_square?

I think it's because there is less area to hide; it seems to me that less design is lost by hiding an 8x8 than by hiding a 16x4.
Also, when the crown is placed at the top, the overall center of gravity seems to be around the top, which gives me the impression of instability.
Gradually, the direction of the solution began to emerge.

Use just one type of crown.
Change the position of the crown to guarantee visibility.

The issue now is which crown to use and which position to make default.
I am wondering if either of the following would be better.

Use crown_small and use lower right as default
Use alternative(last suggested) and make the center as default

I think it's because there is less area to hide; it seems to me that less design is lost by hiding an 8x8 than by hiding a 16x4

It's 8x6 vs 12x3 if counting only the fully opaque pixels, so the wide design is 16 less pixels.
I'd say vertices being evenly spaced and margins is more of a guarantee of for 3px of free space as well. Like the camera example above is not a harder-to-read-design from 1px of (even-if-it-were-real) overlap.

Use alternative(last suggested) and make the center as default

On some designs it's fine. (areas, animationplayer)
For some (node circles) it's not terrible but I'd prefer higher-but-less-high.
Others (like characterbody or anything else with more of a design) will just look ugly.
For small icons it's also the worst placement you could have.
Also personally I like the crown being worn as a crown.

Also, when the crown is placed at the top, the overall center of gravity seems to be around the top, which gives me the impression of instability

Maybe if placed 1px higher, but in my examples it's within the margins (again, for the opaque pixels). So it seems fine to me, though I have not tried it.
If I generate this, will it be usable in the editor already or is it not plugged in yet?

If I generate this, will it be usable in the editor already or is it not plugged in yet?

Nah it is still just generating icons. To use it, you must manually copy it into your project and pass it through .gdextension.
If you are testing at this stage, it would be quicker to create a symbolic link to the icons directory in your project. (Godot recognizes symbolic links correctly.)

If you still want a more-squarish icon, this may be better for 16x:

@insomniacUNDERSCORElemon
I have created a icon generator program. godot-nim/iConstructor
I think it is relatively free to generate. May I ask you to work on finding the best combination?

May I ask you to work on finding the best combination?

I had to figure out to put <icon/> before <defs in the text of the svg to properly load above the node icons.
The squaretooth icon looks fine, I guess. At least without further alignment (though even this might be minimal, particularly without pushing the nim icon to the bottom-right where it can't have a bottom/right outline). Good enough now, for most things.
One small issue is the text on the XR icons:

Though this is probably a 2.0 type issue. I tried applying the other icon design here to the abstract base class (XRNode3D), it did not apply to 5 of those icons (some I see are outside the class, but others I don't see the in the nodes at all).
Also AudioStreamPlayer has some tiny icons, not sure what that's about. I assume it's an issue with the generator.
Other positional issues I see: marker (debatable), lightoccluder / pointlight, colorpicker, raycast (slight), gpuparticles (slight)

Generator has been updated. Badge adaptation targets are now specified by  attributes instead of by file name. In addition to the conventional method of judging by type, a method of matching by regular expression is also supported.

I'm guessing for some of the center/upper alternatives you may prefer center-right alignment for consistency

All I want is to use only one type of badge. (I believe it is a key element in creating the identity of godot-nim)
Although it's fine that what shape it has or where it is.

Also, instead of manually editing in  I don't suppose this could work with an editor-created object that would not make it to the final icons?

Since inkscape has an XML Editor, you can use it to edit  elements in a natural icon design flow. (Leftmost of the ribbon menu in the XML Editor pane)

Also AudioStreamPlayer has some tiny icons, not sure what that's about. I assume it's an issue with the generator.

In this case, it seems that AudioStreamPlayer is drawn in a very small area to begin with, and the svg's attribute is used to enlarge it. I will apply a dedicated patch for this at a later date.

In addition to the conventional method of judging by type, a method of matching by regular expression is also supported.

This part seems not great:

If specified together with the type attribute, the type attribute is ignored

Doing both is useful (general and specific) for badges, as I did above. This is even assuming that regex/type supports multiple names.

In this case, it seems that AudioStreamPlayer is drawn in a very small area to begin with, and the svg's attribute is used to enlarge it. I will apply a dedicated patch for this at a later date.

I thought it was the wrong icon being used, because I have the Godot icons from a PR that I compiled where those icons are normal 16x16.

I would like to see the updated README and samples for more details, but it seems to me that it already meets 80% of what you are requesting.
Materials are processed in order of file name (full path), and if you want to create only specific icons, you can do so by specifying <icon regex="^XR.*" outdir="myXR/" />.
materialA.svg(<icon regex=". *" outdir="matA" />) and materialB.svg(<icon regex=". *" outdir="matB/" />) will produce matched icons into matA/ and matB/ respectively without batting each other.
After it is generated, there is the hassle of manually renaming it if desired, but conversely, I consider that to be all that is missing.

Automatic generation of .gdextension
At this stage, it seems difficult to generate .gdextension completely automatically. (Specifically, the [libraries] section of the .gdextension cannot be filled in, since it is possible to specify the output destination of the program, but there is no way to retrieve it.)
So the best I can do now is to assist with that. Pointing out/fixing configuration inconsistencies, adding icons, etc.
Regarding the binding of icons
Upload the default icons (the ones we are trying to create now) that we will provide as a godot-nim project to github in advance.
Enable a pipeline to clone it and append it to the .gdextension file when --useAdvancedIcons is specified.

it seems difficult to generate .gdextension completely automatically...since it is possible to specify the output destination of the program, but there is no way to retrieve it.

Seems to me like you should either handle the output destination yourself (current default behavior of using workspace name, again I'd prefer in bootstrap file) or not officially support/recommend that at all. I would say generation is a key usability feature.

Upload the default icons (the ones we are trying to create now) that we will provide as a godot-nim project to github in advance.

I uploaded a PR with the badges to work with generation, I figured you would want want to see them and handle the rest.
Just to add to my previous comment, I believe overwrite="no" and overwrite="warn" would be good options to have to allow working with 1 directory. Something for priority would help too, for instance with my PR all I would need to do is remove the outdir bits and add order="99" to default_badge.svg to ensure it will always be generated last.


MOB 7586 Diff/Merge Messages

JIRA Ticket(s) if any

MOB-7586

Description

We've included 'currentMessageId' in the payload to specifically reflect new message data.

Additionally, we resolved test case failures resulting from these changes.

I'm thinking that we may want to allow customers to pass in their currentMessageIds here as opposed to us keeping a list in local storage. I can see a common case where the messages a user has stored somewhere is different or not up to date with what we have in localStorage. This puts the onus on them to handle any state changes to their messages.
@bradumbaugh any thoughts here?

@mprew97 Hm, I think there may be cases where the developer isn't even aware of all the messages that have been fetched? Like maybe a few messages come back, but for a placement that hasn't ever been loaded, so the client codenever interacts with those messages... it's pretty convenient to have this happen behind the scenes.

Also, we should probably caution against storing embedded messages in a separate location, to prevenet the display of messages for which the user is no longer eligible.

@hardikmashru can you resolve the conflicts on this when you have a chance? it's ready for review/merge otherwise.

@hardikmashru can you resolve the conflicts on this when you have a chance? it's ready for review/merge otherwise.

Done

Hi @mprew97 it is resolved now.


Roll Packages from f7b12561aeb6 to 4b00343963a1 (2 revisions)

https://github.com/flutter/packages/compare/f7b12561aeb6...4b00343963a1
2024-08-10<EMAIL_ADDRESS>Manual roll Flutter from 76107bdf509f to b12d86157e38 (14 revisions) (flutter/packages#7358)
2024-08-09<EMAIL_ADDRESS>[shared_preferences] fix cast error and mutable list error with getStringList (flutter/packages#7355)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


fix(core): call the parentForm.reset only if it match the current form.

fix #796

This change is

Codecov Report

Merging #798 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #798   +/-   ##
=======================================
  Coverage   91.73%   91.73%
=======================================
  Files          22       22
  Lines         920      920
  Branches      256      256
=======================================
  Hits          844      844
  Misses         76       76

Impacted Files
Coverage Δ

src/core/src/components/formly.form.ts
96.8% <100%> (ø)
: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 ed6e7ba...b58d652. Read the comment docs.


Add comment to README

Added comments to complement ambiguous task expressions.
Since this task expression conflicts with the standard optional argument expression in the CLI, a concrete example was added to the comment.
Check about standard cli usage syntax: http://docopt.org/

I made mistake like this, executing php artisan down --secret="secret-path" on remote servers.
cap env deploy laravel:artisan:down --secret="secret-path"

Correct command is this.
cap env deploy laravel:artisan[down --secret="secret-path"]

So I think need this extra comment. How do you think about this command structure?


Merge Uat ke Master 27 Feb 2017 - fix cetak pdf PR

Coverage remained the same at 59.173% when pulling 00de6d652af563b93d7d8283da64a2a6ec82b6c2 on uat into 7c1ef6f6df8b5eb3532869affa651c3c9938e9e4 on master.


reqwest version 0.9.18 is not supported.

Here is the log:
2019-06-15 21:01:10 INFO [rs_es:200] rs_es Doing post_body_op on /blocks_db/block/_search
Err(HttpError(Error(Executor(EnterError { reason: "attempted to run an executor while another executor is already running" }), "http://<IP_ADDRESS>:9200/blocks_db/block/_search")))

I had the same problem, it's related to https://github.com/seanmonstar/reqwest/issues/541
I don't think it's directly related to rs-es (since it's not async yet), but maybe you run it in an async context ? (I had the problem while running it with actix).
It's a very good case for having an async rs-es, but I don't really see a nice way to have either async and sync rs-es :disappointed:


ShowCreation not working for 3d Mobjects

Bug
ShowCreation Animation is not working for three-dimensional mobjects.
Code:
class CubeCreation(Scene):
    def construct(self):
        cube = Cube()
        self.add(cube)
        self.play(ShowCreation(cube))
        self.wait()

class SphereCreation(Scene):
    def construct(self):
        sphere = Sphere()
        self.add(sphere)
        self.play(ShowCreation(sphere))
        self.wait()

Error traceback:
For Cube Creation, I am getting this:

"..manim\manimlib\animation\creation.py", line 30, in interpolate_submobject
 start_submob, *self.get_bounds(alpha)
"..manim\manimlib\mobject\types\surface.py", line 113, in pointwise_become_partial
 for arr in smobject.get_surface_points_and_nudged_points()
"..manim\manimlib\mobject\types\surface.py", line 132, in get_partial_points_array
 col = interpolate(points[:, index], points[:, index + 1], residue)
"..manim\manimlib\mobject\types\surface.py", line 113, in
 for arr in smobject.get_surface_points_and_nudged_points()
IndexError: index 0 is out of bounds for axis 1 with size 0

For SphereCreation,

The video is rendered but there is no sphere in the video, it's just blank background.

3D Mobjects now are subclasses of ParametricSurface, which is the subclass of Mobject not VMobject. But ShowCreation can only be used on VMobject. So you can only use FadeIn and other Animations to create a 3D Mobjects.

ShowCreation Animation is based on the pointwise_become_partial method which is not implemented in Mobject. But it is implemented in Parametric Surface, so it should work.

Oh, sorry, it was my fault. I am trying to figure out the problem.

Thanks for pointing this out, I believe it is now fixed.  Feel free to reopen if other issues arise.

It working now, thanks


[Gally]: master <- dev

Automatically created by Git-Ally

:tada: This PR is included in version 2.2.20 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


cacert: add download mirrors for certdata2pem.py

Motivation for this change
Fixes: #116764
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

We probably want to combine this with #116771 / d3509462ea4979c9d529cde066d7aec27c85f90d


chore(main): release 1.0.15

:robot: I have created a release beep boop
1.0.15 (2024-08-05)
Bug Fixes

remove home brew (b93bb35)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.0.15
:sunflower:


Direct links to the sections of the home page don't work

If I try to open an exact section of the home page using the URL it doesn't work. The page always opens at the top. E.g.
http://localhost:3000/#features
Leads to the top of the home page.
However, if I try to navigate to it internally within the home page using the Link it works fine:
<Link
      href="/#features"
      className="inline-block rounded-sm bg-black px-8 py-4 text-base font-semibold text-white duration-300 ease-in-out hover:bg-black/90 dark:bg-white/10 dark:text-white dark:hover:bg-white/5"
>
Read More
</Link>

This has been resolved on latest update


add new ethnic options

What's included?
Closes #2305
Who should test?
✅ Product owner
✅ Developers
✅ UTG
How to test?

Go to the preview link: https://jac-admin-develop--pr2343-feat-2305-align-cand-4my1zlmx.web.app/exercise/b96p6e9GTAkVUhbggHom/applications/applied/application/KbaGWWL5C6oTiOHa64Sg
Click Edit to enter editable mode
Find  the Ethnic group section, click change, the Roma, Arab should appear  in the selection list

Go to the preview link: https://jac-admin-develop--pr2343-feat-2305-align-cand-4my1zlmx.web.app/exercise/b96p6e9GTAkVUhbggHom/reports/diversity
Click Refresh to generate diversity report with latest data
Check stats of Ethnic minorities and White,  Roma candidate should count as White, Arab should count as Ethnic minorities

Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work
Additional context
Include screen grabs, video demo, notes etc.
Related permissions
Have permissions been considered for this functionality?

No permission changes required
Permissions have been added / updated. Details:

PREVIEW:DEVELOP
can be OFF, DEVELOP or STAGING

@KoWeiJAC Happy that this is now fully integrated :-) Have already approved, so good to go from my side once you have your other reviews.


Tesla Auth Flow Change

Looks like tesla has changed the auth flow today TM API now fails with this error:
2021-01-30 21:32:46.492 [warn] Token refresh failed: %TeslaApi.Error{   env: %Tesla.Env{     __client__: %Tesla.Client{adapter: nil, fun: nil, post: [], pre: []}     __module__: TeslaApi,     body: %{"response" => "endpoint_deprecated:_please_update_your_app."},
Looks like they've now migrated to SSO and deprecated direct auth on the owners API.
Flow that works is detailed here https://tesla-api.timdorr.com/api-basics/authentication#post-https-auth-tesla-com-oauth-2-v-3-token

@rthomson83 have you found a workaround?
The link only redirects me to the API's documentation.

nevermind, the new version of teslamate seems to address this. I'll upgrade.

When I logged this I hadn't released there was an edge release in docker registry that contained all the updated changes. Once I discovered that I closed off this ticket but should've posted the resolution back here.


Removal of UI blockage to access the changeOfferingForVolume API

Description
This PR corrects an incorrect behavior in the UI where users who have access to the changeOfferingForVolume API, but are not admins, cannot use it.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)
[ ] build/CI
[ ] test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
  Before

  After

How Has This Been Tested?

A role was created (based on the default user role) with permission to access the changeOfferingForVolume API.

An account and a user were created using this role.

The changeOfferingForVolume API icon appeared correctly in the UI (npm run server).

The change in the volume offer was made correctly

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/10135 (QA-JID-504)


[formrecognizer] AccountProperties -> FormRecognizerAccountProperties

team undecided if change is necessary, but this PR is ready to go if so

we will not make this naming change


useQuery returns responses from cache

useQuery hook keeps returning response from stored cache even when I set cache:"no-cache" in the Action
I use RN states to refresh I my app, it makes a call and returns the cachedResponse and not fresh data. It works fine when I kill and launch my app but does not help while refreshing

Yes, I also encountered this behavior. Here is my analysis:
To be more specific, useQuery() keeps returning response stored in its local state on re-renders. This local state is not synchronized with the cached state stored in cache provider (and local state is created even if you do not use cache provider at all - which is your case).
This is due to the use of useReducer in useQuery.ts:
const [state, dispatch] = useReducer(responseReducer as ResponseReducer<T>, {
    loading: cachedResponse ? false : initFetch,
    response: cachedResponse ? cachedResponse : { error: false },
  });```

The upshot of the above is this:
1. When you do not use cache, you are still getting the response fetched once, and then stored in local state. All subsequent re-renders will get this response. This response will be stored until your component is unmounted.
2. When you use cache with a timeout (the response should become stale after a certain amount of time), the timing out is not respected. You'll keep getting the locally stored response even if the cache-stored response has timed out and was removed from the cache.

The first behavior is kind of OK, since you probably do not want to re-fetch on every re-render. When you want to re-fetch, the workaround is to use the `query` function returned by the useQuery hook.
The second behavior is undesirable. Local state should not trump the cache. There should probably be an effect inside useQuery which resets the local state when it detects that the cached response is no longer valid. Something like

useEffect(() => {
if (!cachedResponse) {  // pseudo-code. This check needs to be more sophisticated
dispatch({ type: RESET });
}
}, [cachedResponse, dispatch])
Or something like that.

The use of useReducer in useQuery also causes the hook to override/reuse the cached response for other actions during re-renders. This causes the incorrect data to be displayed.
For example:
function Foo({ query }) {
  const { payload } = useQuery(SearchActionCreator(query));
  if (payload) {
    return (
      <pre>
        {query}
        {JSON.stringify(payload)}
      </pre>
    );
  }
  return null;
}

After payload is loaded in the code above and the query prop changes, payload is the cached response of the previous value of query. This is definitely a bug.
useSuspenseQuery doesn't have this issue since it doesn't use useReducer internally.
A workaround if useQuery must be used is to force the element to re-render by keying it with the value used by the action creator (e.g., <Foo key={query} query={query} />).

@marcin-piela: A fix for the bug in useQuery would be to reset the reducer whenever the action changes.
Simply adding handleReset() to  https://github.com/marcin-piela/react-fetching-library/blob/master/src/hooks/useQuery/useQuery.ts#L22-L33:
  useEffect(() => {
    isMounted.current = true;

    handleReset();

    if (initFetch && !cachedResponse) {
      handleQuery();
    }

    return () => {
      isMounted.current = false;
      handleAbort();
    };
  }, [convertActionToBase64(action)]);

@marcin-piela: A fix for the bug in useQuery would be to reset the reducer whenever the action changes.
Simply adding handleReset() to  https://github.com/marcin-piela/react-fetching-library/blob/master/src/hooks/useQuery/useQuery.ts#L22-L33:
  useEffect(() => {
    isMounted.current = true;

    handleReset();

    if (initFetch && !cachedResponse) {
      handleQuery();
    }

    return () => {
      isMounted.current = false;
      handleAbort();
    };
  }, [convertActionToBase64(action)]);

Fixed in 1.7.5 version

Fixed in 1.7.5 version


Authority broken in uSurvival

Reproduce:

latest uSurvival
copy Mirror master into it
build
server&play in editor
connect in client with admin2 account
see warning messages in editor

Warning message:
Command for object without authority [netId=5] conn=Mirror.ULocalConnectionToClient name=client
UnityEngine.Debug:LogWarning(Object)
Mirror.NetworkServer:OnCommandMessage(NetworkConnection, CommandMessage) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkServer.cs:992)
Mirror.<>c__DisplayClass7_0`1:<MessageHandler>b__0(NetworkMessage) (at Assets/uSurvival/Plugins/Mirror/Runtime/MessagePacker.cs:163)
Mirror.NetworkConnection:InvokeHandler(Int32, NetworkReader, Int32) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkConnection.cs:271)
Mirror.NetworkConnection:TransportReceive(ArraySegment`1, Int32) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkConnection.cs:325)
Mirror.ULocalConnectionToServer:Send(ArraySegment`1, Int32) (at Assets/uSurvival/Plugins/Mirror/Runtime/LocalConnections.cs:69)
Mirror.NetworkConnection:Send(CommandMessage, Int32) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkConnection.cs:183)
Mirror.NetworkBehaviour:SendCommandInternal(Type, String, NetworkWriter, Int32) (at Assets/uSurvival/Plugins/Mirror/Runtime/NetworkBehaviour.cs:218)
PlayerMovement:CmdFixedMove(Move) (at Assets/uSurvival/Scripts/PlayerMovement.cs:847)
PlayerMovement:FixedUpdate() (at Assets/uSurvival/Scripts/PlayerMovement.cs:960)

'conn' is the host's connection, but it should be the build client's connection
happens in uMMORPG too after a while.

started by commit 59e670a5b2760edcd9640758bfbb83f35fd890c7

Closing since master was reverted


Add support for dashboard descriptions

adds support for dashboard descriptions, via the dashboard_description field. also updates accompanying documentation and tests

Looks good!
I assume we need to wait until the public API support for this field is fully deployed before this can be merged (or, more specifically, before this version is tagged as a new release).

public api support is fully deployed!


Error: net::ERR_NETWORK_CHANGED

macOS version:    Big Sur (11.6.1)
Kap version:      3.4.2
Unhandled Promise Rejection
Error: net::ERR_NETWORK_CHANGED
at SimpleURLLoaderWrapper. (electron/js2c/browser_init.js:101:6400)
Steps to reproduce
I woke up my computer and connected to a VPN. My guess is that Kap was trying to do something and got caught by the network change.
Current behavior
Kap throws an error when switching networks (sometimes). It does not crash, just throws the error.
Expected behavior
No error pops up while connecting to a VPN.

Downloads are broken as well. 500 Error.

@timothyis yeah sorry that was a bit rushed from me. But it was on the website, getkao.co but now it seems to be working.


From private repo

@huypub : Thanks for your contribution! The author, @mattbriggs, has been notified to review your proposed change.


regression in Export Dashboard in the UI

In 1.3 branch, when you click on "Export Dashboard", the app loads interminably and never downloads the JSON.
This functionality worked in 1.2.  It's worth noting that 1.3 has an additional parameter with the endpoint it is hitting (token), that was not there in previous versions.
Also, if you hit the API endpoint directly, e.g., http://<domain_name>.com/api/v1/dashboard/export/?q=[6,7], exports work as expected.
Expected results
The dashboard should be downloaded almost instantaneously as a JSON.
Actual results
The app has the loading icon interminably and never downloads.
Logs when I attached to the container:
2021-06-29 14:54:53,420:ERROR:root:the JSON object must be str, bytes or bytearray, not NoneType
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/api/__init__.py", line 85, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/views/base_api.py", line 85, in wraps
    raise ex
  File "/app/superset/views/base_api.py", line 82, in wraps
    duration, response = time_function(f, self, *args, **kwargs)
  File "/app/superset/utils/core.py", line 1416, in time_function
    response = func(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/api/__init__.py", line 155, in wraps
    return f(self, *args, **kwargs)
  File "/app/superset/utils/log.py", line 228, in wrapper
    value = f(*args, **kwargs)
  File "/app/superset/dashboards/api.py", line 743, in export
    export = Dashboard.export_dashboards(ids)
  File "/app/superset/models/dashboard.py", line 338, in export_dashboards
    json_metadata = json.loads(dashboard.json_metadata)
  File "/usr/local/lib/python3.7/json/__init__.py", line 341, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not NoneType

Screenshots
1.3 (does not work)

1.2 (works correctly)

How to reproduce the bug

Go to https:///dashboard/list/
Create dashboard
Click on export
Watch it load interminably :(

(Issue also exists on dashboards with charts in them and the like, but wanted to make sure it wasn't my dashboard that was the issue.)
Environment

superset version: 1.3 branch
python version: Python 3.7.9
node.js version: 14

Checklist

[ x ] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[ x ] I have reproduced the issue with at least the latest released version of superset.
[ x ] I have checked the issue tracker for the same issue and I haven't found one similar.

hi @vermilioncity ,
Did you toggle on the VERSION_EXPORT feature_flag?

We hadn't!  We toggled it, and it does successfully download the JSON now.  However, the forever-loading icon remains, so there is a cosmetic bug.

Actually, update on this.  It helps if we use the same dashboard for testing ;).   The forever-loading-but-downloads happens with dashboards that use a physical dataset.  If using a virtual dataset, it forever-loads-and-also-doesn't-download.

Nm, we didn't set the flag correctly, it looks like.  All good here!  This can be closed :P

Nm, we didn't set the flag correctly, it looks like.  All good here!  This can be closed :P


X11docker fails to run with --weston --clipoard --debug flag

Here I have attached the logs.

Logs

./x11docker -F --weston --clipboard --desktop --debug -- x11docker/lxde
DEBUGNOTE[23:42:42,157]: check_host(): ps can watch root processes: yes
DEBUGNOTE[23:42:42,178]: host user: pkv 1000:1000 /home/pkv
x11docker WARNING: User pkv is member of group docker.
That allows unprivileged processes on host to gain root privileges.
DEBUGNOTE[23:42:42,295]: storeinfo(): cache=/home/pkv/.cache/x11docker/x11docker-lxde-56762039118
DEBUGNOTE[23:42:42,301]: storeinfo(): stdout=/home/pkv/.cache/x11docker/x11docker-lxde-56762039118/share/stdout
DEBUGNOTE[23:42:42,306]: storeinfo(): stderr=/home/pkv/.cache/x11docker/x11docker-lxde-56762039118/share/stderr
DEBUGNOTE[23:42:42,322]: storeinfo(): x11dockerpid=352709
DEBUGNOTE[23:42:42,361]:
x11docker version: 6.9.0-beta-1
docker version:    Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2
Host system:       "Ubuntu 20.04.2 LTS"
Host architecture: amd64 (x86_64)
Command:           './x11docker' '-F' '--weston' '--clipboard' '--desktop' '--debug' '--' 'x11docker/lxde'
Parsed options:     -F --weston --clipboard --desktop --debug -- 'x11docker/lxde'
x11docker WARNING: You are running GNOME desktop in outdated version
GNOME Shell 3.36.7
This might cause issues with host applications if using additional X servers.
It is recommended to use another desktop environment or GNOME >= 3.38.
Only otherwise discouraged option --hostdisplay might work as expected.
DEBUGNOTE[23:42:42,392]: Dependency check for --weston: 0
DEBUGNOTE[23:42:42,396]: Dependencies of --weston already checked: 0
DEBUGNOTE[23:42:42,399]: Dependencies of --weston already checked: 0
DEBUGNOTE[23:42:42,402]: Dependencies of --weston already checked: 0
DEBUGNOTE[23:42:42,405]: storeinfo(): xserver=--weston
x11docker note: Sharing clipboard with --weston is not supported
x11docker note: xfishtank not found. Can not show a fish tank.
Please install 'xfishtank' for option --xfishtank to show a fish tank.
You can look for the package name of this command at:
https://github.com/mviereck/x11docker/wiki/dependencies#table-of-all-packages
x11docker note: Option --xfishtank is not supported for --weston.
x11docker note: You are running a pure Wayland environment.
X applications without Wayland support will fail.
DEBUGNOTE[23:42:42,423]: container user: pkv 1000:1000 /home/pkv
DEBUGNOTE[23:42:42,442]: waitforlogentry(): tailstdout: Waiting for logentry "x11docker=ready" in store.info
DEBUGNOTE[23:42:42,442]: waitforlogentry(): tailstderr: Waiting for logentry "x11docker=ready" in store.info
DEBUGNOTE[23:42:42,456]: storepid(): Stored pid '353229' of 'watchpidlist':  353229 pts/0    00:00:00 bash
DEBUGNOTE[23:42:42,470]: storepid(): Stored pid '353248' of 'watchmessagefifo':  353248 pts/0    00:00:00 bash
DEBUGNOTE[23:42:42,789]: storeinfo(): WAYLAND_DISPLAY=wayland-136
DEBUGNOTE[23:42:42,795]: storeinfo(): XDG_RUNTIME_DIR=/run/user/1000
DEBUGNOTE[23:42:42,801]: storeinfo(): Xenv= WAYLAND_DISPLAY=wayland-136 XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland QT_QPA_PLATFORM=wayland CLUTTER_BACKEND=wayland SDL_VIDEODRIVER=wayland ELM_DISPLAY=wl ELM_ACCEL=opengl ECORE_EVAS_ENGINE=wayland_egl XDG_RUNTIME_DIR=/run/user/1000
x11docker WARNING: Option --no-auth: SECURITY RISK!
Allowing access to new X server for everyone.
DEBUGNOTE[23:42:42,809]: Compositor command:
weston
--socket=wayland-136
--backend=x11-backend.so
--config='/home/pkv/.cache/x11docker/x11docker-lxde-56762039118/weston.ini'
x11docker WARNING: Option --clipboard is not supported for --weston.
Fallback: Disabling option --clipboard.
DEBUGNOTE[23:42:42,814]: traperror: Command at Line 8917 returned with error code 1:
return 1
9060 - ::main::main
DEBUGNOTE[23:42:42,817]: storeinfo(): error=64
DEBUGNOTE[23:42:42,824]: time to say goodbye (traperror)
DEBUGNOTE[23:42:42,884]: storeinfo(): tini=/usr/bin/docker-init
DEBUGNOTE[23:42:42,891]: Users and terminal:
x11docker was started by:                       pkv
As host user serves (running X, storing cache): pkv
Container user will be:                         pkv
Container user password:                        x11docker
Getting permission to run docker with:          eval
Terminal for password frontend:                 bash -c
Running in a terminal:                          yes
Running on console:                             no
Running over SSH:                               no
Running sourced:                                no
bash $-:                                        huBE
DEBUGNOTE[23:42:42,895]: storeinfo(): containername=x11docker_X136_x11docker-lxde_56762039118
DEBUGNOTE[23:42:42,951]: waitforlogentry(): tailstdout: Stopped waiting for x11docker=ready in store.info due to terminating signal.
DEBUGNOTE[23:42:42,951]: waitforlogentry(): tailstderr: Stopped waiting for x11docker=ready in store.info due to terminating signal.
DEBUGNOTE[23:42:43,041]: Docker command:
docker run --tty --detach
--name x11docker_X136_x11docker-lxde_56762039118
--user 1000:1000
--userns host
--cap-drop ALL
--security-opt no-new-privileges
--security-opt label=type:container_runtime_t
--volume '/usr/bin/docker-init':'/usr/local/bin/init':ro
--tmpfs /run:exec --tmpfs /run/lock
--volume '/home/pkv/.cache/x11docker/x11docker-lxde-56762039118/share':'/x11docker':rw
--volume '/run/user/1000/wayland-136':'/wayland-136':rw
--workdir '/tmp'
--entrypoint env
--env 'container=docker'
--env 'WAYLAND_DISPLAY=wayland-136'
--env 'USER=pkv'
--env 'ECORE_EVAS_ENGINE=wayland_egl'
--env 'ELM_ACCEL=opengl'
--env 'ELM_DISPLAY=wl'
--env 'SDL_VIDEODRIVER=wayland'
--env 'CLUTTER_BACKEND=wayland'
--env 'QT_QPA_PLATFORM=wayland'
--env 'GDK_BACKEND=wayland'
--env 'XDG_SESSION_TYPE=wayland'
-- x11docker/lxde /usr/local/bin/init -- /bin/sh - /x11docker/containerrc
DEBUGNOTE[23:42:43,208]: Running xtermrc: Ask for password if needed (no)
DEBUGNOTE[23:42:43,210]: storepid(): Stored pid '353854' of 'containershell':  353854 pts/0    00:00:00 bash
DEBUGNOTE[23:42:43,218]: Running dockerrc: Setup as root or as user docker on host.
DEBUGNOTE[23:42:43,218]: waitforlogentry(): start_xserver(): Waiting for logentry "readyforX=ready" in store.info
DEBUGNOTE[23:42:43,252]: dockerrc: Found default Runtime: runc
DEBUGNOTE[23:42:43,261]: dockerrc: All  Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
DEBUGNOTE[23:42:43,269]: dockerrc: Container Runtime: runc
DEBUGNOTE[23:42:43,278]: storeinfo(): runtime=runc
DEBUGNOTE[23:42:43,317]: storeinfo(): xtermrc=ready
DEBUGNOTE[23:42:43,317]: waitforlogentry(): start_docker(): Waiting for logentry "dockerrc=ready" in store.info
DEBUGNOTE[23:42:43,450]: time to say goodbye (watchpidlist)
DEBUGNOTE[23:42:43,739]: waitforlogentry(): start_xserver(): Stopped waiting for readyforX=ready in store.info due to terminating signal.
DEBUGNOTE[23:42:43,757]: traperror: Command at Line 9046 returned with error code 1:
return 1
9060 - ::main::main
DEBUGNOTE[23:42:43,773]: storeinfo(): error=64
DEBUGNOTE[23:42:43,812]: time to say goodbye (traperror)
DEBUGNOTE[23:42:43,827]: time to say goodbye (main)
DEBUGNOTE[23:42:43,836]: waitforlogentry(): start_docker(): Stopped waiting for dockerrc=ready in store.info due to terminating signal.
DEBUGNOTE[23:42:43,846]: Terminating x11docker.
DEBUGNOTE[23:42:43,852]: traperror: Command at Line 6275 returned with error code 1:
return 1
8993 - ::start_docker::main::main
DEBUGNOTE[23:42:43,856]: time to say goodbye (finish)
DEBUGNOTE[23:42:43,860]: storeinfo(): error=64
DEBUGNOTE[23:42:43,873]: time to say goodbye (traperror)
DEBUGNOTE[23:42:43,878]: traperror: Command at Line 8993 returned with error code 1:
return 1
9060 - ::main::main
DEBUGNOTE[23:42:43,881]: finish(): Checking pid 353854 (containershell):  353854 pts/0    00:00:00 bash
DEBUGNOTE[23:42:43,882]: storeinfo(): error=64
DEBUGNOTE[23:42:43,891]: time to say goodbye (traperror)
DEBUGNOTE[23:42:43,895]: termpid(): Terminating 353854 (containershell):  353854 pts/0    00:00:00 bash
DEBUGNOTE[23:42:43,901]: traperror: Command at Line 947 returned with error code 141:
cut -c1-12
431 - ::timestamp::debugnote::setonwatchpidlist::main::main
DEBUGNOTE[23:42:43,904]: storeinfo(): error=64
DEBUGNOTE[23:42:43,913]: time to say goodbye (traperror)
DEBUGNOTE[23:42:43,917]: traperror: Command at Line 431 returned with error code 141:
cut -c1-12
721 - ::debugnote::setonwatchpidlist::main::main
DEBUGNOTE[23:42:43,920]: storeinfo(): error=64
DEBUGNOTE[23:42:43,929]: time to say goodbye (traperror)
DEBUGNOTE[23:42:44,048]: finish(): Checking pid 353248 (watchmessagefifo):  353248 pts/0    00:00:00 bash
DEBUGNOTE[23:42:44,071]: finish(): Checking pid 353229 (watchpidlist): (already gone)
DEBUGNOTE[23:42:44,114]: Removing container x11docker_X136_x11docker-lxde_56762039118
Error: No such container: x11docker_X136_x11docker-lxde_56762039118
DEBUGNOTE[23:42:44,139]: termpid(): Terminating 353248 (watchmessagefifo):  353248 pts/0    00:00:00 bash
DEBUGNOTE[23:42:44,273]: x11docker exit code: 64

It works when I pass --weston-xwayland, but not with --weston.

Understood ya !

I've uploaded a commit with the fix. Also fixed: The --no-auth warning that does not make sense for Wayland compositors.