failed to terminate or stop with PNS executor

Summary
When i start a workflow with a PNS executor im unable to stop or teminate it, for this i run a simple sleep task.
argo version is 2.10.2 (also try with 2.9) and my container runtime is containerd
I think its due to the fact that the wait container is terminating:
 time="2020-09-17T13:23:10.705Z" level=info msg="Starting Workflow Executor" version=v2.10.2 time="2020-09-17T13:23:10.709Z" level=info msg="Creating PNS executor (namespace: argo, pod: lovely-dog, pid: 6, hasOutputs: false)" time="2020-09-17T13:23:10.709Z" level=info msg="Executor (version: v2.10.2, build_date: 2020-09-14T17:38:28Z) initialized (pod: argo/lovely-dog) with template:\n{\"name\":\"dogprint\",\"arguments\":{},\"inputs\":{},\"outputs\":{},\"metadata\":{},\"container\":{\"name\":\"main\",\"image\":\"us.gcr.io/k8s-artifacts-prod/ingress-nginx/controller:v0.34.1\",\"command\":[\"sh\",\"-c\"],\"args\":[\"sleep 200\"],\"resources\":{}},\"serviceAccountName\":\"argo\"}" time="2020-09-17T13:23:10.709Z" level=info msg="Waiting on main container" time="2020-09-17T13:23:10.866Z" level=info msg="main container started with container ID: cad3533a770168a7dbdbb8387e98863ff8cf294b11891934b92be44843ea305b" time="2020-09-17T13:23:10.866Z" level=info msg="Starting annotations monitor" time="2020-09-17T13:23:10.868Z" level=info msg="Starting deadline monitor" time="2020-09-17T13:23:10.869Z" level=info msg="containerID cri-containerd-cad3533a770168a7dbdbb8387e98863ff8cf294b11891934b92be44843ea305b mapped to pid 17" time="2020-09-17T13:23:10.869Z" level=warning msg="Ignoring wait failure: Failed to determine pid for containerID cad3533a770168a7dbdbb8387e98863ff8cf294b11891934b92be44843ea305b: container may have exited too quickly. Process assumed to have completed" time="2020-09-17T13:23:10.869Z" level=info msg="Main container completed" time="2020-09-17T13:23:10.869Z" level=info msg="No Script output reference in workflow. Capturing script output ignored" time="2020-09-17T13:23:10.869Z" level=info msg="Capturing script exit code" time="2020-09-17T13:23:10.869Z" level=info msg="Getting exit code of cad3533a770168a7dbdbb8387e98863ff8cf294b11891934b92be44843ea305b" time="2020-09-17T13:23:10.869Z" level=info msg="Annotations monitor stopped" time="2020-09-17T13:23:10.872Z" level=info msg="No output parameters" time="2020-09-17T13:23:10.872Z" level=info msg="No output artifacts" time="2020-09-17T13:23:10.872Z" level=info msg="Killing sidecars" time="2020-09-17T13:23:10.876Z" level=info msg="Alloc=5931 TotalAlloc=14287 Sys=70080 NumGC=4 Goroutines=9"
this log:
"Ignoring wait failure: Failed to determine pid for containerID cad3533a770168a7dbdbb8387e98863ff8cf294b11891934b92be44843ea305b: container may have exited too quickly. Process assumed to have completed"
Any ideas?
Also i check with kubelet executor, in this case the wait container is ok, the kill command is forwarded, but pod is not killed (kill timeout
Thx
sigfrid

Maybe th 'cri-containerd-' prefix? like in the crio proble:
https://github.com/lippertmarkus/argo/commit/4a4f8300f6d9dc463f73dafc0c62b5b29e320be3

@sarabala1979 some kind of sleep work-around?

looks like it is know issue in PNS executor. If main container finished quickly, the wait container is not able to secure the FS.
Can you try using the emptydir as a workaround for above issue?
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: base-image-out-art-
spec:
  entrypoint: base-image-out-art
  volumes:
  - name: workdir
    emptyDir: {}
  templates:
  - name: base-image-out-art
    container:
      image: alpine:latest
      command: [echo, hello]
      volumeMounts:
      - name: workdir
        mountPath: /mnt/vol

Can you provide what error message you are getting on stop and terminate?

Hi everyone, I got the exact same issue.
@sarabala1979, I tried with your empty-dir example. I tweaked it a little bit to be able to send stop and terminate events (switched the alpine command from echo to sleep 30). Here are the outputs:
# From the workflow-controller
time="2020-09-21T07:49:19Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Updated phase  -> Running" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Pod node base-image-out-art-ng5hm initialized Pending" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Created pod: base-image-out-art-ng5hm (base-image-out-art-ng5hm)" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=19943 workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Updating node base-image-out-art-ng5hm message: ContainerCreating"
time="2020-09-21T07:49:19Z" level=info msg="Skipped pod base-image-out-art-ng5hm (base-image-out-art-ng5hm) creation: already exists" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=19946 workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:19Z" level=info msg="Skipped pod base-image-out-art-ng5hm (base-image-out-art-ng5hm) creation: already exists" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:20Z" level=info msg="insignificant pod change" key=argo/base-image-out-art-ng5hm
time="2020-09-21T07:49:20Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:20Z" level=info msg="Skipped pod base-image-out-art-ng5hm (base-image-out-art-ng5hm) creation: already exists" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:24Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:24Z" level=info msg="Updating node base-image-out-art-ng5hm status Pending -> Running"
time="2020-09-21T07:49:24Z" level=info msg="Workflow update successful" namespace=argo phase=Running resourceVersion=19969 workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:24Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:25Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm

[### STOP EVENT ###]
time="2020-09-21T07:49:35Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:35Z" level=info msg="Applying shutdown deadline for pod base-image-out-art-ng5hm" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:35Z" level=info msg="Updating execution control of base-image-out-art-ng5hm: {\"deadline\":\"0001-01-01T00:00:00Z\"}" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:35Z" level=info msg="Signalling base-image-out-art-ng5hm of updates" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:35Z" level=info msg="https://<IP_ADDRESS>:443/api/v1/namespaces/argo/pods/base-image-out-art-ng5hm/exec?command=sh&command=-c&command=kill+-s+USR2+%24%28pidof+argoexec%29&container=wait&stderr=true&stdout=true&tty=false"
time="2020-09-21T07:49:35Z" level=info msg="insignificant pod change" key=argo/base-image-out-art-ng5hm
time="2020-09-21T07:49:35Z" level=warning msg="Signal command failed: unable to upgrade connection: container not found (\"wait\")" namespace=argo workflow=base-image-out-art-ng5hm

[### TERMINATE EVENT ###]
time="2020-09-21T07:49:41Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:41Z" level=info msg="Applying shutdown deadline for pod base-image-out-art-ng5hm" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:41Z" level=info msg="Updating execution control of base-image-out-art-ng5hm: {\"deadline\":\"0001-01-01T00:00:00Z\"}" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:41Z" level=info msg="Signalling base-image-out-art-ng5hm of updates" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:41Z" level=info msg="https://<IP_ADDRESS>:443/api/v1/namespaces/argo/pods/base-image-out-art-ng5hm/exec?command=sh&command=-c&command=kill+-s+USR2+%24%28pidof+argoexec%29&container=wait&stderr=true&stdout=true&tty=false"
time="2020-09-21T07:49:41Z" level=warning msg="Signal command failed: unable to upgrade connection: container not found (\"wait\")" namespace=argo workflow=base-image-out-art-ng5hm

time="2020-09-21T07:49:54Z" level=info msg="Processing workflow" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:54Z" level=info msg="Updating node base-image-out-art-ng5hm status Running -> Succeeded"
time="2020-09-21T07:49:54Z" level=info msg="Updated phase Running -> Succeeded" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:54Z" level=info msg="Marking workflow completed" namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:54Z" level=info msg="Checking daemoned children of " namespace=argo workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:54Z" level=info msg="Workflow update successful" namespace=argo phase=Succeeded resourceVersion=20046 workflow=base-image-out-art-ng5hm
time="2020-09-21T07:49:54Z" level=info msg="Labeled pod argo/base-image-out-art-ng5hm completed"

# from "base-image-out-art-ng5hm" (wait container)
time="2020-09-21T07:49:21.384Z" level=info msg="Starting Workflow Executor" version=v2.9.3
time="2020-09-21T07:49:21.391Z" level=info msg="Creating PNS executor (namespace: argo, pod: base-image-out-art-ng5hm, pid: 6, hasOutputs: false)"
time="2020-09-21T07:49:21.391Z" level=info msg="Executor (version: v2.9.3, build_date: 2020-07-18T19:11:19Z) initialized (pod: argo/base-image-out-art-ng5hm) with template:\n{\"name\":\"base-image-out-art\",\"arguments\":{},\"inputs\":{},\"outputs\":{},\"metadata\":{},\"container\":{\"name\":\"\",\"image\":\"alpine:latest\",\"command\":[\"sleep\",\"30\"],\"resources\":{},\"volumeMounts\":[{\"name\":\"workdir\",\"mountPath\":\"/mnt/vol\"}]}}"
time="2020-09-21T07:49:21.391Z" level=info msg="Waiting on main container"
time="2020-09-21T07:49:23.367Z" level=info msg="main container started with container ID: 14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3"
time="2020-09-21T07:49:23.369Z" level=info msg="Starting annotations monitor"
time="2020-09-21T07:49:23.411Z" level=info msg="containerID cri-containerd-14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3 mapped to pid 17"
time="2020-09-21T07:49:23.411Z" level=warning msg="Ignoring wait failure: Failed to determine pid for containerID 14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3: container may have exited too quickly. Process assumed to have completed"
time="2020-09-21T07:49:23.412Z" level=info msg="Main container completed"
time="2020-09-21T07:49:23.412Z" level=info msg="No Script output reference in workflow. Capturing script output ignored"
time="2020-09-21T07:49:23.412Z" level=info msg="Capturing script exit code"
time="2020-09-21T07:49:23.412Z" level=info msg="Getting exit code of 14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3"
time="2020-09-21T07:49:23.412Z" level=info msg="Annotations monitor stopped"
time="2020-09-21T07:49:23.411Z" level=info msg="Starting deadline monitor"
time="2020-09-21T07:49:23.414Z" level=info msg="Deadline monitor stopped"
time="2020-09-21T07:49:23.418Z" level=info msg="No output parameters"
time="2020-09-21T07:49:23.418Z" level=info msg="No output artifacts"
time="2020-09-21T07:49:23.418Z" level=info msg="Killing sidecars"
time="2020-09-21T07:49:23.423Z" level=info msg="Alloc=6628 TotalAlloc=15340 Sys=70080 NumGC=4 Goroutines=8"

Hope it will be useful, I can get more outputs if needed.

@sarabala1979 can you please link the know issue you mentioned?

@alexec I did not dig into the source code but I do not think this issue is related to the emptyDir one. The container launched runs for more than 30 seconds so it is probably not a matter of starting/terminating to quickly.

@gmfmi you logs seem to show the container exiting after 2s.
time="2020-09-21T07:49:23.411Z" level=info msg="containerID cri-containerd-14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3 mapped to pid 17"
time="2020-09-21T07:49:23.411Z" level=warning msg="Ignoring wait failure: Failed to determine pid for containerID 14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3: container may have exited too quickly. Process assumed to have completed"

Can you please double check the logs of the main container?

@alexec I did not kept the logs of the "main" container but it was running for 30 secs (running status on Kubectl CLI and Argo UI) . If you look at the workflow controller logs, the pod starts at 2020-09-21T07:49:19Z and ends at 2020-09-21T07:49:54Z, so the hole process took 35 secs in total.
To me, it's much more an issue about the "wait" container that fails to watch/wait properly the "main" container than a misconfiguration of the "main". I think that's why @sigfridh is talking about a non-matching prefix issue.

@gmfmi is the past, users that has had this problem has had it because the main container exited too quickly. I think it therefore unlikely (but not impossible) that it is an issue with the wait container.
The section of logs you're provided for the wait container is <30s.
While the pod may run for 30s, it is possible for containers within the pod to run for less time, and this can be confirmed by either timestamps on the main log, or from the pod status /status/contaninerStatuses.
I want to be 100% sure that the main container ran for >=30s. Could I please ask you to provide either the main container logs or the full pod status.
Thank you.

@alexec, thank you for the context.
About the main container logs, it is empty because I only made a sleep 30. If it can be helpful, I can run a new test with (for example) something that prints out the date every seconds.
Now, by analysing the pod's description, we can see that the "main" container runs exactly 30s. I copied/pasted the entire output, it may helps you find something interesting.
$ kubectl -n argo describe pod base-image-out-art-ng5hm

Name:         base-image-out-art-ng5hm
Namespace:    argo
Priority:     0
Node:         node1/<IP_ADDRESS>
Start Time:   Mon, 21 Sep 2020 07:49:19 +0000
Labels:       workflows.argoproj.io/completed=true
              workflows.argoproj.io/workflow=base-image-out-art-ng5hm
Annotations:  cni.projectcalico.org/podIP: <IP_ADDRESS>/32
              cni.projectcalico.org/podIPs: <IP_ADDRESS>/32
              workflows.argoproj.io/execution: {"deadline":"0001-01-01T00:00:00Z"}
              workflows.argoproj.io/node-name: base-image-out-art-ng5hm
              workflows.argoproj.io/template:
                {"name":"base-image-out-art","arguments":{},"inputs":{},"outputs":{},"metadata":{},"container":{"name":"","image":"alpine:latest","command...
Status:       Succeeded
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  Workflow/base-image-out-art-ng5hm
Containers:
  wait:
    Container ID:  containerd://bb9b3925deacef264c760d1320a88263aa3ca6a1849f8dec13ce078e69e4723d
    Image:         kast-registry:30005/argoproj/argoexec:v2.9.3
    Image ID:      sha256:929b13037cf471c15db48778af2436caf0be4040f649a261fe824e8524f53eab
    Port:          <none>
    Host Port:     <none>
    Command:
      argoexec
      wait
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Mon, 21 Sep 2020 07:49:21 +0000
      Finished:     Mon, 21 Sep 2020 07:49:23 +0000
    Ready:          False
    Restart Count:  0
    Environment:
      ARGO_POD_NAME:                    base-image-out-art-ng5hm (v1:metadata.name)
      ARGO_CONTAINER_RUNTIME_EXECUTOR:  pns
    Mounts:
      /argo/podmetadata from podmetadata (rw)
      /mainctrfs/mnt/vol from workdir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8kl67 (ro)
  main:
    Container ID:  containerd://14480c4b36d996f2204e772b5503c822bc12dfe9c7c736b8098f2df1339cc4e3
    Image:         alpine:latest
    Image ID:      docker.io/library/alpine@sha256:185518070891758909c9f839cf4ca393ee977ac378609f700f60a771a2dfe321
    Port:          <none>
    Host Port:     <none>
    Command:
      sleep
      30
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Mon, 21 Sep 2020 07:49:22 +0000
      Finished:     Mon, 21 Sep 2020 07:49:52 +0000
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /mnt/vol from workdir (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8kl67 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  podmetadata:
    Type:  DownwardAPI (a volume populated by information about the pod)
    Items:
      metadata.annotations -> annotations
  workdir:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  default-token-8kl67:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-8kl67
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason     Age        From               Message
  ----    ------     ----       ----               -------
  Normal  Scheduled  <unknown>  default-scheduler  Successfully assigned argo/base-image-out-art-ng5hm to node1
  Normal  Pulled     2d9h       kubelet, node1     Container image "kast-registry:30005/argoproj/argoexec:v2.9.3" already present on machine
  Normal  Created    2d9h       kubelet, node1     Created container wait
  Normal  Started    2d9h       kubelet, node1     Started container wait
  Normal  Pulling    2d9h       kubelet, node1     Pulling image "alpine:latest"
  Normal  Pulled     2d9h       kubelet, node1     Successfully pulled image "alpine:latest"
  Normal  Created    2d9h       kubelet, node1     Created container main
  Normal  Started    2d9h       kubelet, node1     Started container main

I am now convinced. Can you please find me on Slack to discus maybe Zoom. I'm in PST.

@alexec, sorry for the delay I am mainly doing that on my free time. I send you a DM on Slack. UTC+2 for me...

See #4289

Root cause could be #4302.

Hi @cy-zheng, I would love to get these records but I won't get any access to my dev environment (I left the company). To me, it is exactly the same issue and I think that's also what @sigfridh was pointing out.
I think your solution will also close this issue, thanks a lot!

I think this may be fixed by #4253. Can you please try argoproj/argoexec:latest?

I think this may be fixed by #4253. Can you please try argoproj/argoexec:latest?

I will give it a try soon, expect an answer in the next 24 hours!

Just tested the latest release: everything works as expected. Thank you @cy-zheng ! @alexec, feel free to close the issue.


Possible bug with CheckCompatibilityCommand on v2.3.1

In previous version using:`
proto.lobby.CheckCompatibilityCommand({"ImplementedProtocolVersion": proto.__version__}).encode()

Would output to following format:
'{"CommandName": "CheckCompatibilityCommand", "ImplementedProtocolVersion": "2.2.0"}'

But now with 2.3.1 it outputs:
'{"CommandName": "CheckCompatibilityCommand", "ImplementedProtocolVersion": {"ImplementedProtocolVersion": "2.3.1"}}'

The fact the the version is not a string anymore but a json render this command useless because it is now incompatible with olser version of the protocol.
Also it feels weird to repeat "ImplementedProtocolVersion" for no reason.

since 2,3,1 in python using
proto.lobby.CheckCompatibilityCommand({"ImplementedProtocolVersion": proto.__version__}).encode()

is wrong. Constructor as changed.
You should simply use
proto.lobby.CheckCompatibilityCommand(proto.__version__).encode()


[SPARK-31471][TESTS] Add a python script to run multiple benchmarks

What changes were proposed in this pull request?
Added script from the PR https://github.com/apache/spark/pull/27078 which allows to run multiple benchmarks.
Why are the changes needed?
Currently, I have to track when one benchmark finishes to launch the next one. This is inconvenient, especially when need to run many benchmarks 3-5 or more. Need to periodically check that current benchmark completed already.
Does this PR introduce any user-facing change?
No
How was this patch tested?
By running the script manually

@HyukjinKwon @dongjoon-hyun I think this script is useful for anyone who cares about Spark performance.

Test build #121411 has started for PR 28244 at commit 2afdc11.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26094/
Test PASSed.

Test build #121411 has finished for PR 28244 at commit 2afdc11.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121411/
Test PASSed.

However, if this PR doesn't aim for all benchmark, I'm -1 for maintaining this partial one.

I don't understand you position. Let me ask you how often you run all benchmarks? My use case, and I believe this is most common use case is to run a few benchmarks and don't track each of them during night. Each time, I have to find my PR with the script and copy paste it to new EC2 instance.

For personal use cases, I'd like to recommend to maintain your custom one privately.

but why? why you don't want to make life of other developers easier?

for maintaining this partial one.

Maintaining? Don't think, the cost of maintaining of few lines is so high.

I'm not sure why you don't automate your environment. I'm using terraform to create the same benchmark machine and clone Spark and uploading my benchmark script. It's just a single shot.

cc @gatorsmile .

Thank you @dongjoon-hyun @HyukjinKwon for review. I am closing this.


Home button should reset page

If I filter subdatasets by any means, and then I select the home button I would expect to reset the filtering options to default. Also, if I click the home button I would expect it to reset to the subdatasets tab, if I were originally on funding or content tabs.

Note to self about the functionality:
Home button calls router.push(params) and when Vue Router realises that the user is trying to navigate to the same route that is currently active, it throws an error:
vue-router.3.5.3.min.js:11 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to current location: "/dataset/e132ac40-30c5-457d-8c7c-0dcbdbb95d9a/2954f6f464927b1ffd37ea0af8c716abf40d273a".
    at wt (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:16484)
    at _t.confirmTransition (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:19437)
    at _t.transitionTo (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:18762)
    at e.push (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:23180)
    at https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:26586
    at new Promise (<anonymous>)
    at Vt.push (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:26549)
    at rawFile.onreadystatechange (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/app_router.js:19:20)
    at beforeEnter (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/app_router.js:35:15)
    at y (https://psychoinformatics-de.github.io/sfb1451-projects-catalog/assets/vue-router.3.5.3.min.js:11:20045)
wt @ vue-router.3.5.3.min.js:11
_t.confirmTransition @ vue-router.3.5.3.min.js:11
_t.transitionTo @ vue-router.3.5.3.min.js:11
e.push @ vue-router.3.5.3.min.js:11
(anonymous) @ vue-router.3.5.3.min.js:11
Vt.push @ vue-router.3.5.3.min.js:11
rawFile.onreadystatechange @ app_router.js:19
beforeEnter @ app_router.js:35
y @ vue-router.3.5.3.min.js:11
n @ vue-router.3.5.3.min.js:11
n @ vue-router.3.5.3.min.js:11
vt @ vue-router.3.5.3.min.js:11
_t.confirmTransition @ vue-router.3.5.3.min.js:11
_t.transitionTo @ vue-router.3.5.3.min.js:11
e.push @ vue-router.3.5.3.min.js:11
(anonymous) @ vue-router.3.5.3.min.js:11
Vt.push @ vue-router.3.5.3.min.js:11
gotoHome @ app_component_dataset.js:380
Be @ vue.2.6.14.min.js:6
n @ vue.2.6.14.min.js:6
Qr.o._wrapper @ vue.2.6.14.min.js:6

vue-router.3.5.3.min.js:11 Uncaught (in promise) Error: Navigation cancelled from "/dataset/e132ac40-30c5-457d-8c7c-0dcbdbb95d9a/2954f6f464927b1ffd37ea0af8c716abf40d273a" to "/" with a new navigation.
    at wt (vue-router.3.5.3.min.js:11:16484)
    at gt (vue-router.3.5.3.min.js:11:16348)
    at y (vue-router.3.5.3.min.js:11:20032)
    at n (vue-router.3.5.3.min.js:11:15936)
    at vue-router.3.5.3.min.js:11:15955
    at vue-router.3.5.3.min.js:11:20411
    at rawFile.onreadystatechange (app_router.js:26:13)
    at beforeEnter (app_router.js:35:15)
    at y (vue-router.3.5.3.min.js:11:20045)
    at n (vue-router.3.5.3.min.js:11:15936)

I think the code should catch this redundant navigation attempt and call the necessary functionality.
Also, any refactoring of routing code should take into account route.push() and/or route.replace() for tab navigation, see https://github.com/datalad/datalad-catalog/issues/391.

The current idea is to run some logic in the goToHome() function on the dataset component, before navigation:
Current logic when pressing home button when located on any dataset page in a catalog:
If there is NO home page set:

if there is a tab name in the URL, navigate to current
else: don't navigate, only "reset"

If there IS a home page set:

if the current page IS the home page:

if there is a tab name in the URL, navigate to current
else: don't navigate, only "reset"

if the current page is NOT the home page, navigate to home

reset = clear filters and set tab index = 0


hw: update JLCPCB files for new LED

Add LCSC part number for LED to BOM
fix rotation on LED
Exclude D1 LED from POS by default

Thanks!


Ensure tests pass when sun.misc.Unsafe is not present

Motivation:
We need to ensure we pass all tests when sun.misc.Unsafe is not present.
Modifications:

Make *ByteBufAllocatorTest work whenever sun.misc.Unsafe is present or not
Let Lz4FrameEncoderTest not depend on AbstractByteBufAllocator implementation details which take into account if sun.misc.Unsafe is present or not

Result:
Tests pass even without sun.misc.Unsafe.

Cherry-picked into 4.1 (9b2b3e251263f101fb594651659cb6aed01a4a42) and 4.0 (73af7c92151d939cfebcbf78d0335651aa7c5513)


Users with access to a cluster should be able to use the cloud credential on the cluster

Describe the bug

After a lengthy discussion, it has been determine that if a user has access to a cluster then that user should be able to use the cloud credential associated to that cluster.
Currently for KEv2 clusters, if an admin creates a cluster and assigns a standard user as an owner, that cluster owner will not be able to edit the cluster from the UI because the cloud credential dropdown may not have an cloud credentials in it. A cluster owner should always have the ability to edit a cluster with the cloud credential that is currently on the cluster or change it to one they have direct access to.
To Reproduce

As an admin, create an EKS/GKE/AKS cluster
Create a standard user
Assign the standard user as cluster owner.
Log in as the standard user and try to edit the cluster.

Result
The user will not be able to proceed unless they specify a different cloud credential.
Expected Result

The user should be able to continue with the cloud credential currently on the cluster or change it to one they own.

Bumping out of 2.6.3 based on backend: https://github.com/rancher/rancher/issues/35413

Backend did complete after all. Maybe we can still get this in for 2.6.3 if it's quick.

Either the API change doesn't work or there was more than one problem with it.  Editing EKS for example isn't failing because the UI can't list the cloud cred (though it does display it empty on the edit screen, which isn't great).
The current value of eksConfig.amazonCredentialSecret is preserved and sent back to the API, but on PUT /v3/clusters/foo the server returns 404 {"baseType":"error","code":"NotFound","message":"error accessing cloud credential","status":404,"type":"error"}.

There was an oversight in the change in the backend: the check for access to the old cloud credential was removed when a user is trying to change the cloud credential, but Rancher shouldn't check for access to the cloud credential passed in the PUT request unless the cloud credential is being changed.
I will discuss this with @snasovich to see if we can still get this in v2.6.3. It's not a difficult change on the backend.

Update here:
When the cloud credential doesn't change, the UI doesn't send any cloud credential with the PUT request. In this case, the request will succeed.
However, when making a PUT request via the API and passing the cloud credential ID, then the error Vince is seeing appears. The backend change is very straightforward and I will push to get it in to v2.6.3.

Relevant backend change: https://github.com/rancher/rancher/pull/35675
However per https://github.com/rancher/dashboard/issues/4529#issuecomment-981823616 it looks like this is not blocking actual flow as UI doesn't seem to send cloud credential in PUT request in this case.
So to recap, the ask here is to have UI display currently set cloud credential in the dropdown rather than having it empty - similar to how RKE2 does it, e.g.:
https://user-images.githubusercontent.com/4569037/133878526-8cdcb9db-9b50-44b7-85dd-ea1de966e974.png

My checks PASSED
Reproduction Environment
Reproduced in: https://github.com/rancher/rancher/issues/35413

Validation Environment

Component
Version / Type

Rancher version
v2.6-03ed782ae89950ae664b9cfef899723cf5e60b4a-head

Rancher cluster type
Docker

Docker version
20.10.7, build 20.10.7-0ubuntu5~20.04.2

Helm version
v2.16.8-rancher1

Downstream cluster type
EKS

Downstream K8s version
1.21

Browser type
Google Chrome

Browser version
96.0.4664.55 (Official Build) (x86_64)

Validation steps

As an admin, create a EKS cluster
Create a standard user
Assign the standard user as a cluster owner of the EKS cluster
Logout as admin and login as the standard user
Edit the cluster and see if the cloud credential is available

RESULTS
The cloud credential appears, and the standard user with owner status is able to edit the cluster.
Additional Info
Also verified this is working with AKS, and GKE.


OmniSharp Agenda » Meeting Wednesday January 13th @ 19:00 UTC

PST (UTC-8)
EST (UTC-5)
London (UTC)
Zürich (UTC+1)
Helsinki (UTC+2)
Sydney (UTC+11)

11:00 AM
2:00 PM
7:00 PM
8:00 PM
9:00 PM
6:00 AM

Meeting info
Join skype meeting
Join by Phone
Toll-free number: +1<PHONE_NUMBER> or Toll number: +1<PHONE_NUMBER>
Find a local number
Conference ID: 280856
Help
Agenda
If you can think of any more agenda items, feel free to edit the issue (if you have permissions) or just comment on this thread and we'll make sure to group them up before the meeting.
Also feel free to discuss any agenda items early as part of this issue, we can make sure to recap during the start of the meeting, and may cut down on the time we have to spend on some of them.
Mailing List
Is there any value in setting up a mailing list to use for questions, discussions, etc?  Or should we keep it on Github?
Kestrel
https://github.com/OmniSharp/omnisharp-roslyn/pull/370#issuecomment-169793909

Internally in Kestrel (I'm assuming anyway) the response object is getting reused before the code that is writing out the response
This could be an ID10T error, but any help understanding the mechanics here would be great.
I hope to have something more before Wednesday.

Telemetry
There was some discussion about adding telemetry.  Basically it sounds like we're okay to explore telemetry so long as it is specificly something the user has to opt-in, from some setthing or prompt of the editor.  Each editor can decide how they want to handle this, but I think most of them will have a prompt of some sort.  If anyone has any insight into how to best handle the case of PII, or telemitry tools that already obfuscate PII for us, that would be good to know about.
C# Team's Ambitions for OmniSharp  via @dustincampbell
Last time there was a great discussion about potential ambitions that the C# team had for their tooling and how would OmniSharp fit into that.
@dustincampbell is there anything to add to that?  Should we invite the c# team again this round?
dotnet cli
Troy is working on a branch with support. (More below)
@filipw has an update for ScriptCS / CSI support using the branch.

I have been tinkering with Troy's branch to work off it, in order to facilitate scripting support.
I think the best approach down the road will be to move the "specialized" scriptcs codes, dealing with scriptcs specific to a plugin. But at the same time, we want to have "native", "built-in" support for basic CSX scripting in omnisharp - since scripting is a first class citizen in Roslyn and C# now.
So I have been working on separating the two, so that we still have some sort of scripting support out of the box in Omnisharp. Hopefully I will have something to share soon - it's been mostly demoware atm, and Troy's stuff has been volatile with dotnet and so on.

OmniSharp-atom

Nothing big has happened, I've been focusing on keeping things stable
Exploring RxJS5 for improved performance
Also exploring removing React in favor of something else or just manual HTML to avoid some React pitfalls.

OmniSharp-node-client

Exploring RxJS5 for improved performance
Peliminary plugin support exists, though it isn't fully wired up yet.

OmniSharp-code

Roslyn team is taking ownership of the OmniSharp plugin for vscode
There was discussion this would land under the OmniSharp github org.

Where are we at with this, still happening?

OmniSharp-roslyn

@troydai got a branch that now successfully builds, and appears to produce the correct artifacts for deployment.

I found an issue that appears to be Kestrel related, this might be a blocker.

@troydai is currently working on another branch with a dotnet related release.
Is there any other news?  We hit the holiday slow down with the rc2 branch, hopefully we can speed up for the next part of January.

OmniSharp-scaffolding

Any information / updates?

OmniSharp-brackets

Any information / updates?

OmniSharp-sublime

@jchannon said that sublime needed some love I think?
Do we have anyone that wants to work on this?
Any other information / updates?

OmniSharp-emacs

Seems to have a pretty active
Does the emacs team need any support?
Any other information / updates?
cc @ianbattersby

Additional agenda items?
Either update the issue, or add them in the comments below!
cc @OmniSharp/all

I've sent out a meeting invite, if you didn't get one and want one let me know.  If you did get one, and don't want it again, also let me know :smile:.

I have added the skype meeting info to the issue.

And I have been booked non-stop for my day job these past few weeks and haven't touched scaffolding. I'm a terrible human being and should be shunned for at least a week. I'll try to make some progress before Wednesday, though.

@david-driscoll Apologies for the delay getting back! Nothing new to report from me I'm afraid, the work to use the undo-tree for partial update diffs (opposed to the home-baked tracking it has now) unfortunately hasn't moved on since November, but I'm still keen to finish it.

I've banged out a SCRUD example that represents the kind of scaffolded output I would like to produce from OmniSharp-Scaffolding. I thought this might be useful for the discussion. It is also an example of the messiness I encountered caused by the lack of @Html.Action(). This is a work in progress, any ideas are appreciated.

We also have a Kestrel issue that may / may not block us shipping rc2, and then being able to move onto dotnet support.  Any input on how to work around it would be great.
https://github.com/OmniSharp/omnisharp-roslyn/pull/370#issuecomment-169793909
I dunno if @halter73 or @benaadams have any input for Wednesday, but if you're able to come, you're welcome. :smile:

You that time while you're writing out meaningful comments, and you're brain is just working on the problem for you while you're writing... I think I figured out the cause of the problem, which might actually be an issue on the OmniSharp side instead of on the Kestrel side of things.

@sayedihashimi is there any way to record the meeting, so we could keep it for anyone that wants to listen to it after the fact?

Sure we can record and upload to YouTube.

That'd be great!

I had to stay at work late with a project, dang, sorry follks! The minutes from the meeting would be great. could be via private gist/email.
Thanks!

Video posted at https://youtu.be/bwA-q897INk

Woops, i forgot it was tonight.

I have a few notes that I made that I'll be posting later, just hadn't had a chance yet!

Key points from the meeting:

Roslyn team is focused on making sure that vscode is working well, and making fixes to Roslyn and OmniSharp-roslyn as appropriate.

OmniSharp-roslyn, we'll select a version of dnx-rc2 and pin specifically to that version.  This will let us finish off the rc2 branch and release that so we can move on to dotnet cli.

We're going to look into what it will take to support dnx / dotnet cli side-by-side for a time.

If it's an easy win, or something that is just given too use based on the nature of how the tooling works, that will be good.
If it isn't an easy win we'll have to discuss what the best course of action is.
I'm going to see if I can get the rc2 branch released by the weekend, if anyone with a linux / mac machine has time to test the branch before then, that'd be a great help!

Scaffolding is on hold until all this dotnet cli non-sense dies down, to figure out the best way to move forward.

aspnet-generator will work on getting rc2 templates in place.

Thanks for writing these up @david-driscoll

:ack:
Thanks!

@peterblazejewicz, @sayedihashimi was going to let you know too. :smile:

Thanks David

I don't want anyone to feel like they got thrown under the bus, that's not what the meeting is about.

@david-driscoll is there going to be a February meeting?

Yeah going to put one together for next week
On Fri, Feb 5, 2016 at 1:02 AM John Rowley<EMAIL_ADDRESS>wrote:

@david-driscoll https://github.com/david-driscoll is there going to be
a February meeting?
—
Reply to this email directly or view it on GitHub
https://github.com/OmniSharp/OmniSharp/issues/7#issuecomment-180214343.

--
Thanks,
David


Sign in without the API login screen appearing?

Please stick to one distinct feature request per issue where possible and raise additional feature quests as separate issues. Try to avoid adding feature requests to existing issues in the comments of issues raised by other users.
Summary of proposed feature
A clear and concise description of the feature being proposed.
I'd love to either have the option to attach a special function to a button that directly calls a social auth provider without the api route screen appearing, or be able to add custom styling to the screen where the social auth buttons appear.
Purpose of proposed feature
A clear and concise description description of why this feature is necessary and what problems it solves.
Although the API screen looks very nice and minimal, I can't really use it in a production web app without creating more friction during the signing up process.
Detail about proposed feature
A detailed description of how the proposal might work (if you have one).
As mentioned before, I think it could be as easy as adding somewhat of a function where you pass a provider as a parameter so that, when called, it would take you directly to said providers login process.
Potential problems
Describe any potential problems or potential limitations or caveats that might apply to the proposed solution.
Not really sure if there are any.
Describe any alternatives you've considered
A clear and concise description of any alternative options you've considered.
I just started playing around with the library a couple of days ago and haven't found an alternate route to try, but I've already went through the docs and couldn't find anything
Additional context
Any other context, screenshots, etc.
Please indicate if you are willing and able to help implement the proposed feature.

So sorry, did not see this part of the doc https://next-auth.js.org/configuration/pages !


update scala_fs2 version

https://github.com/LesnyRumcajs/grpc_bench/wiki/2022-02-18-bench-results
I was a bit late. 😢

Now I see current results. 😵💫
I will also look around.


Why is all the documentation using reStructuredText?

That is, why isn't mistune being used to render it's own documentation? That seems as if it would be a good test case.

@larsks coz it's a Python package.


How do I use this tool?

Tried sending ?help in dms and on a server that bot and I are on, nothing works.
The tutorial is not clear on usage at all. The bot does show custom RPC, but as I said earlier no signs of life when entering commands.

Oh, and also, the guilded link doesn't work.

idk what guilded did

Tried sending ?help in dms and on a server that bot and I are on, nothing works. The tutorial is not clear on usage at all. The bot does show custom RPC, but as I said earlier no signs of life when entering commands.

um default prefix is &

idk what guilded did

Can you make it so that another user cpuld use the selfbot too and enter allowed users ids in config

idk what guilded did

Can you make it so that another user cpuld use the selfbot too and enter allowed users ids in config

yes it's in my TODO.md
So, the selfbot work for you ?

idk what guilded did

Can you make it so that another user cpuld use the selfbot too and enter allowed users ids in config

yes it's in my TODO.md
So, the selfbot work for you ?

Yeah, but it was really confusing in the part of how to use it because it's not said anywhere that you have to message from the bot account itself. I suggest you add that to ReadMe.md

fixed guilded weird thing

so i answered all of your question ? I can close the issue ?

@Futuraura

Thanks for replying and being helpful!

getting an error @Sitois
Traceback (most recent call last):
File "c:\Users\dn5x\Downloads\Nuclear\Nuclear\main.py", line 31, in
from commands import *
File "c:\Users\dn5x\Downloads\Nuclear\Nuclear\commands_init_.py", line 1, in
from .help import HelpCommands
File "c:\Users\dn5x\Downloads\Nuclear\Nuclear\commands\help.py", line 1, in
import discord
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord_init_.py", line 22, in
from . import abc as abc, opus as opus, utils as utils
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\abc.py", line 63, in
from .commands import ApplicationCommand, BaseCommand, SlashCommand, UserCommand, MessageCommand, command_factory
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands_init.py", line 26, in
from .context import *
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands\context.py", line 30, in
from discord.interactions import Interaction, InteractionMessage, InteractionResponse
ImportError: cannot import name 'InteractionMessage' from 'discord.interactions' (C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\interactions.py). Did you mean: 'InteractionType'?

getting an error @Sitois
Traceback (most recent call last):
File "c:\Users\dn5x\Downloads\Nuclear\Nuclear\main.py", line 31, in
from commands import *
File "c:\Users\dn5x\Downloads\Nuclear\Nuclear\commands_init_.py", line 1, in
from .help import HelpCommands
File "c:\Users\dn5x\Downloads\Nuclear\Nuclear\commands\help.py", line 1, in
import discord
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord_init_.py", line 22, in
from . import abc as abc, opus as opus, utils as utils
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\abc.py", line 63, in
from .commands import ApplicationCommand, BaseCommand, SlashCommand, UserCommand, MessageCommand, command_factory
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands_init.py", line 26, in
from .context import *
File "C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\commands\context.py", line 30, in
from discord.interactions import Interaction, InteractionMessage, InteractionResponse
ImportError: cannot import name 'InteractionMessage' from 'discord.interactions' (C:\Users\dn5x\AppData\Local\Programs\Python\Python312\Lib\site-packages\discord\interactions.py). Did you mean: 'InteractionType'?

Did u installed the discord library with git ?


[BUG]

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[X] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.5.3
What problem did you encounter?
.
Bloxstrap Log
N/A

ef yu'r a reil sigma yu woold bee osing thr lates Verizon of bloxtrap


[TempMail] ...

Extension
https://www.raycast.com/Joshlucpoll/tempmail
Description
When you try to open an email, you get "Something went wrong message".

TypeError: Right-hand side of 'instanceof' is not an object

Y6:message.tsx:135:37
Nr:index.js:6:2490
    at ray-navigation-stack
_o:index.js:6:2088

Steps To Reproduce

Open "Open Mailbox" in Raycast
Select an email
Hit ↵

Current Behaviour
No response
Expected Behaviour
No response

@MKReyesH I've pushed a new release for TempMail, can you update the extension and let me know if your problem is fixed? Thanks

Hello, thanks for the update. I do not get the "Something went wrong" error anymore, but I still cannot read the emails inside Raycast (I have to open them using the browser).

Do you have any idea why the email can be read from a local .html file in browser, but cannot be read from inside Raycast? Are you able to reproduce this behaviour? Thanks.


[Snyk] Security upgrade dateparser from 0.7.6 to 1.1.6

Snyk has created this PR to fix 2 vulnerabilities in the pip dependencies of this project.
Snyk changed the following file(s):

requirements.txt

⚠ Warning
statsmodels 0.13.5 requires scipy, which is not installed.
statsmodels 0.13.5 requires scipy, which is not installed.
scikit-learn 1.0.2 requires scipy, which is not installed.
pyaf 5.0 requires scipy, which is not installed.
plottoolbox 105.0.3 requires scipy, which is not installed.
matplotlib 3.5.3 requires fonttools, which is not installed.
matplotlib 3.5.3 requires pillow, which is not installed.

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the affected dependencies could be upgraded.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 56.999%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
737

Relevant Lines:
1293

💛  - Coveralls


Log file was not overwritten /var/log/openvpn/status.log

Tell me how to see the whole story (who and when connected to the server via openvpn).
less /var/log/openvpn/status.log displays only the currently connected clients.
I need something like [last]

nano /etc/openvpn/server.conf
og-append /var/log/openvpn/openvpnX.log


adding navbar feature

i fixed the navbar and the hero image positioning
this is how it is

these are the changes i made

Please resolve conflicts also add issue no. which issue you are solving like # issue_no

okay will work on it asap

@Tejashri-Taral the conflicts are resolved and I mentioned the issue no.

@Tejashri-Taral i made the required changes. please check the latest commit


Multiline string settings are now supported in the settings editor

Fixes #2859

alex i will be this stubborn in everything else, you can choose better after this is all done hh

From: Domagoj Barisic @.>
Sent: Tuesday 3 August 2021 12:44 PM
To: microsoft/vscode-pull-request-github @.>
Cc: Domagoj Barisic @.>; Your activity @.>
Subject: Re: [External] [microsoft/vscode-pull-request-github] Multiline string settings are now supported in the settings editor (#2878)
@baraBlz approved this pull request.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_microsoft_vscode-2Dpull-2Drequest-2Dgithub_pull_2878-23pullrequestreview-2D721096177&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=O1LBTSGo7pQe1b172Wucwd_08jF6O8rkydJf4bA0Gnw&m=-K2YOUTDL1WB_TES13nXQlKzv1VbEum6KT33gbntIo4&s=JQOShL1VDvCyk0rK7cs150uUWCxvkYdX7I0vtECApGc&e=, or unsubscribehttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_ASMEIYBTSWKBN2EI7U5IG43T27JBDANCNFSM5BOUTMDA&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=O1LBTSGo7pQe1b172Wucwd_08jF6O8rkydJf4bA0Gnw&m=-K2YOUTDL1WB_TES13nXQlKzv1VbEum6KT33gbntIo4&s=szQjhhlswGhvVoNIdffwHUwnn5SqLOuK28QJllHq3ys&e=.
Triage notifications on the go with GitHub Mobile for iOShttps://urldefense.proofpoint.com/v2/url?u=https-3A__apps.apple.com_app_apple-2Dstore_id1477376905-3Fct-3Dnotification-2Demail-26mt-3D8-26pt-3D524675&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=O1LBTSGo7pQe1b172Wucwd_08jF6O8rkydJf4bA0Gnw&m=-K2YOUTDL1WB_TES13nXQlKzv1VbEum6KT33gbntIo4&s=mjZLTWPaq1t62RusMyPXX5hdCMyK7Z-oLz-e1YY5NzE&e= or Androidhttps://urldefense.proofpoint.com/v2/url?u=https-3A__play.google.com_store_apps_details-3Fid-3Dcom.github.android-26utm-5Fcampaign-3Dnotification-2Demail&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=O1LBTSGo7pQe1b172Wucwd_08jF6O8rkydJf4bA0Gnw&m=-K2YOUTDL1WB_TES13nXQlKzv1VbEum6KT33gbntIo4&s=Zj6vahhhMYac6hzpwgj_KlRJ5jhelrc3F6oRFFRh-fM&e=.


Flag for a coverage summary

I like this addition. :+1:

I think this should be done with another tool, that parses the coverage file.

I think this should be done right here in your tool and not yet another until the upstream Go tool is good enough to finally support multiple packages.


[Enhancement] User-friendly timestamps

most people cannot meaningfully interpret UNIX timestamps. to improve the user-friendliness of backups, i recommend switching to some form or variant of ISO 8601, i.e.
yyyy-MM-dd  at HH:mm:ss a -----> 2022-05-21 at 05:30:27 AM

Good idea! I had intended to use Unix timestamps so that it would be easier to process with a "backup manager", but this might actually be better for people who don't want to use a fancy backup manager and just want to manage their backups on their own.

Done in v2


Use window.location.hash instead of parsing the href

I know this library is still in alpha but…figured I'd give it a shot anyway :)
In my alexa setup, I get directed to http://mywebsite.com/redirect-path#access_token Note that my url does not have the "?" that you include in getTokenFromUrl. I assume the "?" is something custom you setup in the Alexa Voice Services admin.
Thankfully, we can easily access the hash by just using window.location.hash and it will work in both cases.
In your URL "http://mywebsite.com/redirect-path?#access_token":
window.location.href === "redirect-path?#access_token"
window.location.search === ""
window.location.hash === "#access_token"

Ah good thinking, merged!


The ts type prompt in all .vue files is incorrect

The ts type prompt in all.vue files is incorrect, whether in vue2.7 or vue3

What's your ts version?

What's your ts and volar version?

The same problem happened in my workspace too.
vue.volar: v2.0.6
typescript: 5.3.3
vue: 3.4.21

And here is my package.json:
{
  "name": "workspace",
  "version": "0.0.0",
  "scripts": {},
  "private": true,
  "devDependencies": {
    "@nx/eslint": "18.0.5",
    "@nx/eslint-plugin": "18.0.5",
    "@nx/js": "18.0.5",
    "@nx/vite": "18.0.5",
    "@nx/vue": "^18.0.5",
    "@nx/web": "18.0.5",
    "@nx/workspace": "18.0.5",
    "@swc-node/register": "~1.8.0",
    "@swc/core": "~1.3.85",
    "@swc/helpers": "~0.5.2",
    "@types/node": "20.11.1",
    "@typescript-eslint/eslint-plugin": "^6.13.2",
    "@typescript-eslint/parser": "^6.13.2",
    "@vitejs/plugin-vue": "^4.5.0",
    "@vitest/coverage-v8": "^1.0.4",
    "@vitest/ui": "^1.3.1",
    "@vue/eslint-config-prettier": "7.1.0",
    "@vue/eslint-config-typescript": "^11.0.3",
    "@vue/test-utils": "^2.4.1",
    "eslint": "~8.48.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-vue": "^9.16.1",
    "jsdom": "~22.1.0",
    "nx": "18.0.5",
    "prettier": "^2.6.2",
    "sass": "^1.71.1",
    "typescript": "~5.3.2",
    "verdaccio": "^5.0.4",
    "vite": "~5.0.0",
    "vite-plugin-dts": "~2.3.0",
    "vitest": "^1.3.1",
    "vue-tsc": "^1.8.8"
  },
  "volta": {
    "node": "20.11.1"
  },
  "nx": {
    "includedScripts": []
  },
  "dependencies": {
    "date-fns": "^2.30.0",
    "axios": "^1.6.7",
    "consola": "^3.2.3",
    "vue": "^3.3.4",
    "vue-router": "^4.2.4"
  }
}

not only type prompt also prompt for import path

I found there is a conflict with Extension Nx Console. After disable it, prompt works well.

thank you, that's it!

Fixed by https://github.com/vuejs/language-tools/pull/4119


Use unzip instead of Python for unarchiving

File is not a Zip file on Mac, python version 2.7.16:

fixed by 28efdc33e3eb0eaca6260b7f0f80b1f8174c5638 and b06517de64856059c5dbf031fcf98b41e265683c


where can i find the alignment data?

We have introduced the composition of the alignment data. For in-house part, we are sorry but we will not release them in the current plan.


Cleanup unused bits in the 2i2c shared cluster

Jackeddy has been decomissioned for a while
The agu binder was decomissioned but the associated GAR was not
The pilot hubs artifact registry has never been used

I saw these while providing feedback on https://github.com/2i2c-org/infrastructure/pull/3749

Applied! Thanks @consideRatio


RamerDouglasPeuker not great for closed paths

Discussed in https://github.com/AngusJohnson/Clipper2/discussions/376

Originally posted by brianwinterpixel January 26, 2023
I'm trying out the function RamerDouglasPeuker, but it seems to not work well with closed paths.
When the points that need to be removed lie at the beginning or end of the path, the algorithm fails to identify them.
Example:

I attempted to resolve this by explicitly looping the path, like so:
template<typename T>
inline Paths<T> closedRamerDouglasPeucker(const Paths<T> &paths, double epsilon) {
	Paths<T> result;
	result.reserve(paths.size());
	for (const Path<T>& path : paths) {
		Path<T> looped_path = path; // copy
		looped_path.push_back(path.front()); // make the path loop back
		result.push_back(RamerDouglasPeucker<T>(looped_path, epsilon));
	}
	return result;
}

Unfortunately, while this appears to successfully clean up some polygons, it destroys important vertices in others.

It looks like RDP is intended for open paths, but the documentation recommends running this after offset operations.

Hi Brian and thank you for the helpful feedback.
I agree with you that my RDP implementation could be improved.
And from my brief review of this, RDP may well need to be executed twice solve.
That would solve removing a start or end point when they're very near or duplicates.
It would also solve the issue when a point not being removed when it should because it happens to be the point most distant from the start and end points. What I'm not sure about yet is how much to rotate the path on its second iteration (and whether this matters - which I suspect it does), and how best to minimize the impact on performance.

Here's my own just baked SimplifyPaths algorithm that works very well with polygons  (certainly better than RDP) and seems slightly faster too in my brief testing.
  template <typename T>
  inline double PerpendicDistFromLineSqrd(const Point<T>& pt,
    const Point<T>& line1, const Point<T>& line2)
  {
    double a = static_cast<double>(pt.x - line1.x);
    double b = static_cast<double>(pt.y - line1.y);
    double c = static_cast<double>(line2.x - line1.x);
    double d = static_cast<double>(line2.y - line1.y);
    if (c == 0 && d == 0) return 0;
    return Sqr(a * d - c * b) / (c * c + d * d);
  }

  inline size_t GetNext(size_t current, size_t high, std::vector<bool>& flags)
  {
    ++current;
    while (current <= high && flags[current]) ++current;
    if (current <= high) return current;
    current = 0;
    while (flags[current]) ++current;
    return current;
  }

  inline size_t GetPrior(size_t current, size_t high, std::vector<bool>& flags)
  {
    if (current == 0) current = high;
    else --current;
    while (current > 0 && flags[current]) --current;
    if (!flags[current]) return current;
    current = high;
    while (flags[current]) --current;
    return current;
  }

  template <typename T>
  inline Path<T> SimplifyPath(const Path<T> path, double epsilon)
  {
    const size_t len = path.size(), high = len -1;
    const double epsSqr = Sqr(epsilon);
    if (len < 4) return Path<T>(path);

    std::vector<bool> flags(len);
    std::vector<double> distSqr(len);
    size_t prior = high, curr = 0, start, next, prior2, next2;
    distSqr[high] = PerpendicDistFromLineSqrd(path[high], path[0], path[high - 1]);
    for (size_t i = 0; i < high; ++i)
    {
      distSqr[i] = PerpendicDistFromLineSqrd(path[i], path[prior], path[i + 1]);
      prior = i;
    }

    prior = high;
    for (;;)
    {
      if (distSqr[curr] > epsSqr)
      {
        start = curr;
        do
        {
          curr = GetNext(curr, high, flags);
        } while (curr != start && distSqr[curr] > epsSqr);
        if (curr == start) break;
      }

      prior = GetPrior(curr, high, flags);
      next = GetNext(curr, high, flags);
      if (next == prior) break;

      if (distSqr[next] < distSqr[curr])
      {
        flags[next] = true;
        next = GetNext(next, high, flags);
        next2 = GetNext(next, high, flags);
        distSqr[curr] = PerpendicDistFromLineSqrd(path[curr], path[prior], path[next]);
        distSqr[next] = PerpendicDistFromLineSqrd(path[next], path[curr], path[next2]);
      }
      else
      {
        flags[curr] = true;
        curr = next;
        next = GetNext(next, high, flags);
        prior2 = GetPrior(prior, high, flags);
        distSqr[curr] = PerpendicDistFromLineSqrd(path[curr], path[prior], path[next]);
        distSqr[prior] = PerpendicDistFromLineSqrd(path[prior], path[prior2], path[curr]);
      }
    }
    Path<T> result;
      result.reserve(len);
      for (typename Path<T>::size_type i = 0; i < len; ++i)
        if (!flags[i])
          result.push_back(path[i]);
      return result;
  }

  template <typename T>
  inline Paths<T> SimplifyPaths(const Paths<T> paths, double epsilon)
  {
    Paths<T> result;
    result.reserve(paths.size());
    for (const auto& path : paths)
      result.push_back(SimplifyPath(path, epsilon));
    return result;
  }

Amazing, thank you. It's hard to adequately express my appreciation for the work you do.


Administration on Touch devices should be possible

Hello
I presented this wonderful cms to my wife. And her first question was "can I administrate this page from my tablet?"
My first answer: "sure"
After testing it on android 4.2 on tablet, iPad with ios9 and smartphone with android 5.1 I came to the conclusion, it's not possible.
Why?
I assume that the JavaScript features like drag and drop in the backend block touch devices.
Examples: try to click via touch device on Dashboard > SITE - results: possible on smartphone due to the fact that there is a small menu list. But on tablets with symbols and text it's not possible.
2. If you try to click on a link, page or a widget, it's not possible
Best,
Ayko

Just had the same problem. Would good to be fixed.

Have same problem on iPad Pro 9.7. I think this should be changed from a suggestion to a defect/issue since navigating the admin is not possible on a tablet device. Otherwise, very excited about this promising new CMS. Great work so far.

You are right. We will improve on this.


add collaborators

this PR adds the names of contributors, collaborators, etc. in the README.
please do review and suggest any names that may have been missed and should be included.
otherwise feel free to close if this is not needed/recommended.

Oh we missed Kallie! :D

Oh we missed Kallie! :D

thanks, good catch... just added


Implicitly initialise null for nullables

I guess you have already been discussing this before, but I would like to hear the arguments for why TS have not choose to have implicit null initialisation. When a variable can be null and not undefined why you don't default initialise the variable to null?
class A {
   propA: string | null;
}
let a = new A()
a.propA // null

For me typing string | null = null it's very time consuming.
Before TS, i.e. in the old days, I use to just type the initialisation myself:
function A {
  this.a = null;
}

but now when TS introduced the null type it is very cumbersome to write string | null = null.  This syntax actually encourages people to use undefined everywhere, because everything default initialise to undefined, and it is less cumbersome to write. Though, I think using undefined in the above case is incorrect since it has a different meaning. It really would ease my life a lot if I don't have to write so long syntax for anything I declare as nullable, which is a lot.

I don't see us doing this. JavaScript already defines undefined as the default value and guarantees that initialization to undefined will occur in all cases. But we'd only be able to automatically initialize to null in some cases. For example, we wouldn't be able to do it for new array elements. Also, we generally don't want to do type-directed emitting of code because it makes it impossible to do single file compile-on-save without first typing checking the entire program. For example, imagine a property declared as propA: Foo. Without resolving Foo, which may be declared non-locally as a union type that includes null, we wouldn't know what to emit for that declaration.


Update guides index.md - spelling correction

Update guides index.md - spelling correction

I'll take this in, but it's a lot of overhead for a single spelling mistake.
You and I have a lot of steps to go through just to correct a single word. So in general best do larger pushes with more changes.


Emit an error if test data contains unrecognized section header

Currently if you have a section like
*** Setings ***
Documentation      Ooops, there was a typo above!
Library            ExampleLibrary

it will be ignored without any error or warning whatsoever. This can make it really hard to understand why certain tests don't pass (e.g. keywords they need aren't imported) and a typo in a test case header means tests are ignored altogether.
The reason for this seemingly strange behavior is that in the early days of Robot Framework test data was in HTML format (TSV was added later and plain text after that), the idea was that you can have also other data in those HTML files, and we didn't want tables with some other data to cause errors. Now that I look at this, I consider benefits of this functionality a lot smaller than the problems mentioned above. This is especially true when we are going to deprecate the support for HTML and TSV formats altogether (#2819).
My proposal is to change this so that we emit an error if there is a header that is unrecognized. To avoid backwards incompatibility issues, this error shouldn't stop the whole execution and rather just be shown in the console and in logs "Test Execution Errors" section. We can later consider making this a "fatal" exception that stops the whole test data parsing and prevents tests execution, but then we needed to think is that a suitable behavior with imported resource files as well.
Because there may be valid reasons to have some extra data in test case files, I propose we add support for separate *** Comments *** header that can be used explicitly to add comments or other extra data into these files. Other names for this header can be suggested.

*** Comments *** was added as part of 3c0ca87.


Mlflow UI getting Timeout and not being reachable again

Description
When I run kedro mlflow ui, which initially works correctly, after some time (usually one hour) I get a timeout and I am not able to reach again the UI.
Context
I am just using the service in a very standard kedro pipeline.
Steps to Reproduce
I simply run kedro mlflow ui and use it as intended.
I correctly reach the UI and use it. After a random time, usually a couple hours, the UI stops working, and I must restart the service.
I noticed that when the UI stops working I usually get an  [CRITICAL] WORKER TIMEOUT (pid:...) --> [ERROR] Error handling request (no URI read) in the log of mlflow.
I however see the service alive on the port on other pids through the command lsof -i :5000.
Expected Result
The service should never go down.
Actual Result
This is an extract of my log:
[2024-07-10 12:19:27 +0000] [5351] [INFO] Starting gunicorn 22.0.0
[2024-07-10 12:19:27 +0000] [5351] [INFO] Listening at: http://<IP_ADDRESS>:5002 (5351)
[2024-07-10 12:19:27 +0000] [5351] [INFO] Using worker: sync
[2024-07-10 12:19:27 +0000] [5352] [INFO] Booting worker with pid: 5352
[2024-07-10 12:19:27 +0000] [5353] [INFO] Booting worker with pid: 5353
[2024-07-10 12:19:27 +0000] [5354] [INFO] Booting worker with pid: 5354
[2024-07-10 12:19:27 +0000] [5355] [INFO] Booting worker with pid: 5355
[2024-07-10 12:33:07 +0000] [5351] [INFO] Handling signal: winch
[2024-07-10 12:33:07 +0000] [5351] [INFO] Handling signal: winch
[2024-07-10 12:33:07 +0000] [5351] [INFO] Handling signal: winch
[2024-07-10 13:29:49 +0000] [5351] [CRITICAL] WORKER TIMEOUT (pid:5353)
[2024-07-10 13:29:49 +0000] [5353] [ERROR] Error handling request (no URI read)
Traceback (most recent call last):
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 134, in handle
    req = next(parser)
          ^^^^^^^^^^^^
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/parser.py", line 42, in __next__
    self.mesg = self.mesg_class(self.cfg, self.unreader, self.source_addr, self.req_count)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/message.py", line 257, in __init__
    super().__init__(cfg, unreader, peer_addr)
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/message.py", line 60, in __init__
    unused = self.parse(self.unreader)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/message.py", line 269, in parse
    self.get_data(unreader, buf, stop=True)
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/message.py", line 260, in get_data
    data = unreader.read()
           ^^^^^^^^^^^^^^^
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/unreader.py", line 37, in read
    d = self.chunk()
        ^^^^^^^^^^^^
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/http/unreader.py", line 64, in chunk
    return self.sock.recv(self.mxchunk)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/brambilla/src/venv-11/lib/python3.11/site-packages/gunicorn/workers/base.py", line 203, in handle_abort
    sys.exit(1)
SystemExit: 1
[2024-07-10 13:29:49 +0000] [5353] [INFO] Worker exiting (pid: 5353)
[2024-07-10 13:29:50 +0000] [17110] [INFO] Booting worker with pid: 17110
[2024-07-10 14:04:03 +0000] [5351] [INFO] Handling signal: winch
[2024-07-10 14:04:03 +0000] [5351] [INFO] Handling signal: winch

Your Environment
Python 3.11.9
Kedro 0.19.5
MLflow 2.13.0
Kedro-mlflow 0.12.2
My Mlflow URI is localhost (<IP_ADDRESS>),
I work on an Azure remote VM with ssh-tunnel port forwarding.
The VM is an Ubuntu 22.0.4.
The laptop from where I am reaching the port is a Windows 10.
The ssh tunnel is performed through Visual Studio Code.
Does the bug also happen with the last version on master?
I have not tried.

Hi sorry to hear that. Unfortunately, this is something that will be really hard to debug it may be some network error given you setup but hardly possible to tell. Can you try
mlflow ui --backend-store-uri file:///path/to/mlruns --host <IP_ADDRESS> --port 5000
and see if the error still happen? If yes, this is a problem of mlflow / gunicorn / your network I can't reallly fix. If no, This is something I should investigate on kedro-mlflow side.

Hi @stefano-brambilla-venchi, did you get a chance to try with above suggestion? Are you still experiencing the error?

I close the issue since it is very likely not related to kedro-mlflow, but feel free to reopen if you have more details.


fix typo to avoid panic in operator controller

Toward #243
The current kfctl does seems to expect a repo name manifests as the code shows https://github.com/kubeflow/kfctl/blob/9e8a07225b04d96eccf37dd0316e02a9a1e72f67/pkg/kfapp/kustomize/kustomize.go#L397 using the const https://github.com/kubeflow/kfctl/blob/c5c55f6d1b79e285f28fa433d6e4e2e739cefb63/pkg/apis/apps/group.go#L52.
This PR only fixed the specific code error in the operator side where the error was not caught due to a typo.

This change is

/ok-to-test

/assign @gabrielwen please review.

@adrian555 I believe this just fix the error panic right? is it fixing the #243 with the repo name?

@Tomcli this only fixed the error panic in operator code as the title and description say. We can leave #243 open if we want to use it for supporting any repo name.

ok thanks @adrian555
/lgtm

/retest

/lgtm
/approve

/retest

/lgtm


Some question about convert doc to html

I want convert .docx file to html format, and execute the follows cmd:
curl --form<EMAIL_ADDRESS>http://localhost:8011/unoconv/html > myfile.html
the result seems very well except the image that in the doc file can not convert .
Is it need some another config or other command about it?

@zrrrzzt This appears to be an issue because the service only returns the converted HTML file, and not the linked images. In an HTML document, the images are external links to png files that are generated by unoconv, but those image files are not returned by the service, only the HTML document. Any idea if this is possible to fix?

You are right. This service only returns 1 file, even if there are several created by unoconv.
It might be possible to fix but I'm probably not going to do it. I'm not using this service myself anymore.
PRs are welcome though :-)

Just added support for multiple files in this service https://github.com/Alheimsins/micro-office-converter @kchapple
It is kind of the same but less tested :-)

Than you @zrrrzzt I will investigate the options. I appreciate your response!


Compatibility with ATMEGA architecture

The docs say that this project maintains hal crates for various architectures (RP2040, STM, NRF), but that "you can still use HALs from other projects with Embassy." Does this mean that I can use embassy with an ATMEGA32u4 microcontroller I have, or can I only use it with the architectures listed on the embassy-executor documentation? If I can use it with the ATMEGA32u4 chip, any tips on getting rid of the error I am getting:
| #[embassy_executor::main]
|                     ^^^^ could not find \`main\` in \`embassy_executor\`

Embassy-executor has some platform-dependent code required to support it, kind of like any embedded operating system.
Arguably it should not be very difficult to create a thread-mode (i.e. endless loop in main function) executor for AVR.
Regarding the error you're getting - the main macro is only defined if you select a valid architecture --> that's because it needs to know which platform-specific executor to use.
I'm not an embassy expert (just started using it a couple weeks ago on a toy project actually), but to me it looks like to add basic AVR support you'd need at least:

Add executor implementation to embassy-executor/src/arch/ - look at the cortex_m implementation for reference. Probably skip the interrupt executor --> make it fail if enabled.
Implement __pender in the same file
Add the main macro support to embassy-executor-macros

The simplest executor you can make is one that will do:
pub fn run(&'static mut self, init: impl FnOnce(Spawner)) -> ! {
    init(self.inner.spawner());
    loop { unsafe {self.iner.pool(); } }
}

For testing you can just start with using embassy_executor::raw::Executor (docs)
I did not even try to compile below code (never tried rust on AVR), but you could try something along those lines:
use embassy_executor::raw;
use static_cell::StaticCell;

static EXECUTOR: raw::Executor = StaticCell::new();

#[export_name = "__pender"]
/// Required by raw::Executor, but can do nothing
fn pender(_context: *mut ()) {}

pub fn main()
{
  let executor = EXECUTOR.init(raw::Executor::new(ptr::null_mut()));
  let _spawner = executor.spawner();

  loop {
    unsafe { executor.pool(); }
  }
}

Note that there is a PR open to add some support for AVR: https://github.com/embassy-rs/embassy/pull/2273


Prime API client that reads from CAC

Description
In preparation for using CACs against the staging/experimental environments I've created a golang replacement for scripts/prime-api utility (it is not fully complete as it only does one endpoint). For authentication it reads from either the config/tls/devlocal-mtls.* cert and key or a user CAC via a CAC reader using code I grabbed from transcom/nom. I've also updated the code for the milmove gen certs-migration so that it reads directly from an available CAC, avoiding the need to do a lot of work in bash.
First, ensure you have the correct prereqs:
cac-prereqs

Then populate your db:
make db_dev_e2e_populate

To use with mtls certs:
go run ./cmd/prime-api-client/main.go --insecure -v

To use with CAC you must first walk through the new steps for adding your CAC cert for your local development server.
rm -f bin/milmove && make bin/milmove
milmove gen certs-migration --name "${USER}_cac" --cac

CAC PIN: ******

2020/01/28 19:59:36 new migration file created at: "tmp/20200128195901_cgilmer_cac.up.sql"
2020/01/28 19:59:36 new migration file created at: "local_migrations/20200128195901_cgilmer_cac.up.sql"
2020/01/28 19:59:36 new migration appended to manifest at: "/Users/cgilmer/Projects/transcom/mymove/migrations_manifest.txt"

Then copy the cert over and migrate:
cp tmp/20200128195901_cgilmer_cac.up.sql local_migrations/
make db_dev_migrate

Then you can use the following command (and you need to enter your pin):
go run ./cmd/prime-api-client/main.go --insecure --cac | jq .
CAC PIN: ********

Note: If you get errors use --verbose to see log output.
In both cases you should get this output:
[
  {
    "createdAt": "2020-01-22",
    "id": "5d4b25bb-eb04-4c03-9a81-ee0398cb7791",
    "isAvailableToPrime": true,
    "isCanceled": false,
    "moveOrderID": "6fca843a-a87e-4752-b454-0fac67aa4981",
    "mto_service_items": [],
    "payment_requests": [],
    "updatedAt": "2020-01-22"
  }
]

@ntwyman - the warning has been there for any tool that compiles with the aws-vault code since MacOS deprecated the SecTrustedApplicationCreateFromPath function in Catalina. The aws-vault folks have a lot of comments on it and its unclear when Apple will resolve it (brew is also having the same problem fwiw).
I think your other problem is a null pointer reference I could catch that is related to not having the library installed. Try to brew install opensc which should get you in a good place. It's part of the setup docs for working with CACs here and also updated in this PR.

@ntwyman - as a follow up. I found that if you run the script without your CAC reader plugged in I could get the error above. Turns out my defer statement was in the wrong place so I moved it.

@reggieriser - I pushed some changes this morning, want to try again?

I pushed some changes this morning, want to try again?

I already did -- I should have been clearer in my last message.  I was getting the segfault, but then I saw your latest changes come through and pulled and tried again.  I then got appropriate (although a little cryptic) error messages at that point when trying with no CAC or a bad PIN.

I pushed some changes this morning, want to try again?

I already did -- I should have been clearer in my last message. I was getting the segfault, but then I saw your latest changes come through and pulled and tried again. I then got appropriate (although a little cryptic) error messages at that point when trying with no CAC or a bad PIN.

I am unsure if you should ever try a bad pin. I broke my CAC by using a bad pin twice and had to go get it re-issued. Should we be more clear that folks should not try bad pins?

I am unsure if you should ever try a bad pin. I broke my CAC by using a bad pin twice and had to go get it re-issued. Should we be more clear that folks should not try bad pins?

A warning is probably a good idea.  I've had a CAC at other jobs so I already knew that you'll get locked out after (I think) three consecutive failed attempts.  In this case, I first noticed the issue after accidentally putting in the wrong PIN.

I am unsure if you should ever try a bad pin. I broke my CAC by using a bad pin twice and had to go get it re-issued. Should we be more clear that folks should not try bad pins?

A warning is probably a good idea. I've had a CAC at other jobs so I already knew that you'll get locked out after (I think) three consecutive failed attempts. In this case, I first noticed the issue after accidentally putting in the wrong PIN.

I warned folks in Slack. Unsure if I should put that warning in the code somewhere.

Having issue generating migration file.
Lees-MBP:mymove lee$ milmove gen certs-migration --name "${USER}_cac" --cac
CAC PIN: ******

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4fc6856]

goroutine 1 [running]:
os.(*File).Name(...)
	/usr/local/Cellar/go/1.13.7/libexec/src/os/file.go:54
main.closeFile(0x0)
	/Users/lee/HostDev/mymove/cmd/milmove/gen.go:29 +0x56
main.createMigration(0x538adc3, 0x5, 0xc000041e00, 0x1d, 0xc0003eae80, 0x5250fe0, 0xc000578f60, 0x57e8b80, 0xc00000f060)
	/Users/lee/HostDev/mymove/cmd/milmove/gen.go:39 +0x34d
main.genCertsMigration(0xc00038ea00, 0xc000601f80, 0x0, 0x3, 0x0, 0x0)
	/Users/lee/HostDev/mymove/cmd/milmove/gen_certs_migration.go:200 +0xb54
github.com/spf13/cobra.(*Command).execute(0xc00038ea00, 0xc000601f50, 0x3, 0x3, 0xc00038ea00, 0xc000601f50)
	/Users/lee/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:826 +0x460
github.com/spf13/cobra.(*Command).ExecuteC(0xc0003b5180, 0xc0003e5f48, 0x1, 0x1)
	/Users/lee/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914 +0x2fb
github.com/spf13/cobra.(*Command).Execute(...)
	/Users/lee/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
main.main()
	/Users/lee/HostDev/mymove/cmd/milmove/main.go:132 +0x8e4

Having issue generating migration file.

I think this has to do with direnv and a misplaced defer statement fixed in https://github.com/transcom/mymove/pull/3395/commits/5007b000ba7746faf3b697b58da354740b33c9aa

@rdhariwal is reporting this error output: 2020/02/03 22:25:25 Get https://primelocal:9443/prime/v1/move-task-orders: pkcs11: 0x101: CKR_USER_NOT_LOGGED_IN

I am getting intermittent "bad request" responses when I run go run ./cmd/prime-api-client/main.go --insecure --cac. Sometimes it is using milmovelocal instead of primelocal as the hostname. I am not sure why.
I have yet to have a successful run of bin/prime-api-client after making it.

Mystery solved: create react app uses the HOST env, so I have it set to milmovelocal. Chris and I chatted and he is going to switch to a different variable name.

fyi  i kept getting this error on cli:
2020/02/03 22:25:25 Get https://primelocal:9443/prime/v1/move-task-orders: pkcs11: 0x101: CKR_USER_NOT_LOGGED_IN
if that happens to you

run brew info opensc
make sure you are on >= 0.20.0 if not run brew upgrade opensc

@rdhariwal - I added a script called check-opensc-version to the project and included it in the prereqs file. This should catch other folks with the same issue.
@tinyels - I updated the flag from host to hostname so that the .envrc will no longer cause an issue when running this script.
I plan to merge this when the tests pass.


Shapes: Add new shapes to library

Summary
Goes through and normalizes and formats svgs in templates to be normalized clip paths.
Relevant Technical Choices
Had to add an altered icon path so large shapes with small small stroke widths were visible
To-do
Go through templates and replace any placeholder pngs with these shapes.
User-facing changes
Adds new shapes to shapes panel:

Testing Instructions
Create a new template or alter and existing one and add all new shapes to the template and make sure they work and are visible.

Fixes #1895

All (the pull request submitter and all commit authors) CLAs are signed, but one or more commits were authored or co-authored by someone other than the pull request submitter.

That'd be you, @mariano-formidable. Could you please confirm to the bot that you're OK with your commit being added here?

@littlemilkstudio Could you resolve the merge conflicts?
PS. I updated the PR description & title a little bit.
ZenHub links don't work for the Fixes #... part. It needs raw GitHub issue numbers, not URLs.
Also, the title are currently used for the changelogs, so I'd like to keep those consistent :-)

@littlemilkstudio Another top-level question (and /cc @samitron7 ). Not all of these shapes can be used for clipping. We don't currently have any declarations that annotate our shapes as clipping and not clipping. Thus all the drop-target and display logic will apply. This could yield some pretty bad results at times. Not sure if this is concern in practice immediately.

@littlemilkstudio

I have a circle and the arrow shape on the page
I start to drag an image from the media library
The only available drop targets on the page should be the page and the circle. If the arrow has a blue box hilight around it then its a problem and we should either fix that or hide it in the shapes library for now.

@littlemilkstudio @samitron7 I think it'd be easy enough to do in theory - we'll need to add a boolean flag to indicate that a shape can be used as a mask. It might be a bit silly naming-wise that we will have arrowMask.isMask, but we can probably smooth that out. However, the concern I have is that maybe the shapes and masks shouldn't be merged at all? I.e. the fact that they are all on the "Shapes" tab doesn't mean that they should be the same thing. With that in mind:

Will we want to visually differentiate masks from shapes in the shapes panel? E.g. should "mask-vs-shape" be indicated somehow (badge, background, etc)? Or maybe they should be separated in two sections: Masks and Shapes?
Is a non-mask shape just a slightly different type of image? Can editor do anything with it other than what it can already do with images?

@dvoytenko When you drag an image from the media library, anything that is hilited in blue signifies it is a mask. We're missing a ftue step when you first do this. I purposefully didn't want to separate the two because at the end of the day they are all shapes. You should be able to use a circle for decoration and also as a mask. If we separated the circle out into one area, which area would it be in? and adding it to both adds bloat. This was one of the core principle for shapes and mask from the start.

FYI, I'm taking over this PR because Max is on PTO for this entire week.
@dvoytenko I've removed the older shapes that you mentioned (the blobs that are still there are part of the Wellness template).
@samitron7 I'm going to move this PR into QA to get it merged, and I'm going to create another ticket to allow us to tag shapes with isMask (or something like that as Dima mentioned) so we can enable/disable the masking on any shapes that we need.

@googlebot I agree

@littlemilkstudio Ok, we did more discussion here and the question for now: can we keep the code as is, but hide these shapes from the library until we get a chance to review the masking/stroke rules for them? E.g. maybe we can add showInLibrary boolean field for masks/shapes and use it to filter the shapes for the library. And then we can also follow up with a separate (non-Beta-blocking) pull request that set this flag for everything and do a QA round on it.

@mariano-formidable I see. Thanks for the update. I'm actually also OOO this week. PTAL the latest on this above. We can rediscuss, but we should do that asap then since I will be unavailable.

@dvoytenko @samitron7 Yeah, I can make a boolean to hide the masks from appearing in the panel, so user's won't be able to use them and we won't have the beta pressure to figure out all the correct UX stuff.


Resizable editors

There are currently three editors: source code, input and output editor. Each of them cannot be resized.
It would be great if each editor could be resized. Source code editor in up/down direction, and input and output editor in left/right direction.

I am interested. Can I make a PR?

@manaswinidas of course!


How to reduce the influence of glass on distance calculation between face descriptors

I use dlib test face recognition .
Two different person both with glass , the distance is 0.41 ; when they take off the glass,the distance is 0.66 .
So the influence of glass to face recognition is serious， is there any method reduce the influence?

collect your own face images, including glass and without glass for each person
then train them, good luck!


Opening sub window from menu item

MenuEventCtx currently does not have a way of spawning a sub window. I see MenuEventCtx doesn't store widget info the same way EventCtx does, so I'm unsure of how to make SubWindowDesc happy (it wants some IDs and a root widget).
My longer winded Zulip question on the matter

Ok, that's a good point. One option could be that we host the sub-window at the root widget, but that opens up some cross-platform issues because on macOS you can have a menu but no open windows (and so no root widget).
Would it be possible for you to use a new top-level window instead of a new sub-window? That feels like a better fit for opening from the menu...

yes, subwindows are probably not the right solution here; a subwindow is intended for something like a modal or a drop-down menu.


Research on Prisms interaction

I discussed with Sebastian the further steps of Prisms implementation.
The basic idea is:

Prism can be in one of the modes: normal,  active or edit.

Prism is active when the camera looks on it. In this mode we display a label with Prism's title, a button that activates the edit mode, and a button that closes the edit mode (and maybe more options in future).

In the edit mode we show the Prisms's boundary and user can manipulate the Prism (change its position, scale and rotation).

The mode can also be changed by setting a Prism's property. We will provide developers with listeners on mode change. There should be an option to enable only the desired functionality of Prisms interaction (highlighting, ways of possible manipulation, e.g. reposition only).
A nice feature would be a lookAtCamera property which would cause the Prism or the Prism's top menu is always rotated towards camera position, so user can always select the prism, without the need to rotate it manually.
As next steps we can provide a menu (a native view or better a JS component) from which the users could manage the Prisms.

MXSCOMP-211

Questions:

What is the normal mode?
How can we turn active mode on?

by looking at the prism?

Do we always show the buttons in active mode?

in Lumin we need to press the Home button in order to show the menu with buttons or press Trigger fo a longer time to activate edit mode

What should happen when we are in edit mode and start looking around (or even move around)?

there is a chance that we loose our edited prism
should we then do not allow to lose the prism (always show it in front on the camera)

How do we want to manipulate the prism?

how to move the prism? reticle interaction?
how to rotate and scale the prism?

@pleszkiewicz

normal mode: only the prism content is visible.
Yes, Prism activates when camera looks at it.
Currently yes, but I think we could add a property to be able to disable this feature.
Currently on Android this prism is still in edit mode in such the case. This should be discussed.
Moving should be discussed, but we can follow the android PoC implementation: keeping finger on the prism and moving the device in 3d space moves the prism.

As for scaling on Android I used pinch gesture (the default provided by Sceneform). Similar gesture for rotating - touch the Prism with 2 fingers and rotate left / right (currently we support only the Y axis - most useful).

We want to allow the application to decide whether prisms manipulation is allowed or not.  The news app may want to allow prism manipulation, but others will not.


fix junit xml with testsuites tag

fix: #1045

awesome, thanks! LGTM

also needs a gofmt to make travis happy.

LGTM. Going to push shortly.


Updating shell.nix to flakes

Updating the shell.nix to a flake.nix.
See the Issue on gdnative for more understanding.
https://github.com/godot-rust/gdnative/pull/1069#issuecomment-1971001997

Actually, im not a experienced user of NixOs, flakes and all that good stuff. I prefer that some other folks check the content too

Im commting the nix on non-nixos changes. May the Nixgl is not necessary at all.

Should the old content really be replaced altogether? On https://nixos.wiki/wiki/Flakes it is stated that (emphasis mine):

Nix flakes is an experimental feature of the Nix package manager.

Not everyone might want to enable experimental features for their package manager, and not everyone is using NixOS (instead of non-NixOS Nix environments, which the previous author apparently was on, and this setup is stated to not support). I'm not sure if the old directions should be removed, if it isn't superseded entirely.

Nix flakes are pretty widely used nowadays despite that warning. Even then, I agree we should keep previous instructions regarding default.nix and shell.nix (& co.) if they were already there. I'd be more in favor of having a separate section, e.g. "Using Flakes", with an alternative setup with flakes. They do deserve a mention, but that doesn't mean we have to remove or deprecate prior instructions.

Even then, I agree we should keep previous instructions regarding default.nix and shell.nix (& co.) if they were already there. I'd be more in favor of having a separate section, e.g. "Using Flakes", with an alternative setup with flakes.

If you have a Flake.nix it is trivial to extend that to a Nix shell.
The problem with Nix shells (outside of a Flake, i.e. default.nix or shell.nix) is that they are not reproducible and are tied to the users config and nixpkgs.

If you have a Flake.nix it is trivial to extend that to a Nix shell.

True, you have a point. You can use flake-compat to convert one format from the other.
Then, for the sake of maintainability, it might be better to just present the flake setup, and suggest using flake-compat if flakes are not enabled.
Alternatively, we can have some more high-level instructions indicating which packages you need to use gdnative with Nix, and then use the flake as an example.

Should the old content really be replaced altogether?
Well, thinking that is good if we have options to use on Nix... I think that we have to maintain those that work and not hold on to outdated technologies or ways to do the same thing. In every context that i used that file, i had problems.

Of note, unless we are doing something with some specific cursed dependencies, it's very likely a Nix setup - with flakes or otherwise - would work on non-NixOS environments as well. At least, it's worth testing in other distros with Nix installed (e.g. Ubuntu, Fedora, OpenSUSE).

So, the non-NixOs environment... In that context, as the previous docs say, we could have some problems with opengl and then we could use NixGl that... is something I couldn't get to work on my environment until now, i`ll give another try.
If my speak sound confusing, feel free to ask me again.

Of note, unless we are doing something with some specific cursed dependencies, it's very likely a Nix setup - with flakes or otherwise - would work on non-NixOS environments as well. At least, it's worth testing in other distros with Nix installed (e.g. Ubuntu, Fedora, OpenSUSE).

So, the non-NixOs environment... In that context, as the previous docs say, we could have some problems with opengl and then we could use NixGl that... is something I couldn't get to work on my environment until now, i`ll give another try. If my speak sound confusing, feel free to ask me again.

No you're right, I hadn't seen the NixGL dependency. That one can definitely be a pain outside of NixOS I believe. So it's fair enough.
I do, however, wonder if there's some escape hatch which would allow us to not depend on NixGL for non-NixOS users. But that will suffice for the goal of this PR.


PHOENIX-4668: Remove unnecessary table descriptor modification for SPLIT_POLICY column

Removed the code which: removed the SPLIT_POLICY in the system catalog
table descriptor and then added it and modified the table.
This was earlier done as a workaround for HBASE-12570.
We specifically add the SPLIT_POLICY when creating system tables already
as part of the patch for PHOENIX-1674, hence this is no longer required.

@twdsilva @JamesRTaylor please review. Thanks.

+1

@JamesRTaylor please review. Thanks!

+1. Will commit soon.


Child routing example

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[x] feature request
[ ] support request => Please do not submit support request here, instead see use [gitter](https://gitter.im/mgechev/angular2-seed) or [stackoverflow](https://stackoverflow.com/questions/tagged/angular2)

Current behavior
No example with complex child router-outlet.
Expected behavior
An example with child routing, lazy loading etc.
Minimal reproduction of the problem with instructions
N/A
What is the motivation / use case for changing the behavior?
I am quite new to Angular2 and web app dev in general. The seed project has helped me a lot in getting a sample angular2 app working, however I am having trouble setting up a nested child routing page.
A sample page which has child views and uses the same design principals as in the seed project would be a great help.
Please tell us about your environment:

Mac, IntelliJ

Angular Seed Version: aaaaf75
b93d7b0

Node: node --version =
7.2.1

For support requests you can use gitter or take a look at project's the wiki page in order to get more complete idea on how the it works.
I'd recommend you to take a look at the documentation of Angular to get more complete understanding of a way to go. Another direction you can take is to use Angular CLI which abstracts a lot of things which are let to developers in this seed project. The CLI might be a better starting point since it allows you to treat everything as a black box, compared to Angular Seed which gives you great flexibility but also requires more deep understanding.


Move code snippets to tabs

Description
Please describe the changes you made.
Issue
Link to the issue (if available)
Screenshots
For frontend updates, please include a screenshot.
Checklist

[ ] Everything passes when running mix test
[ ] Ran mix format
[ ] No frontend compilation warnings

@cheeseblubber