Workflow Deployments Use Image Tag :latest

Checklist:

[x] I've included the version. v2.6.3
[x] I've included reproduction steps.
[ ] I've included the workflow YAML.
[x] I've included the logs.

What happened: I deployed version v2.6.3 to our company's development k8s cluster and a few weeks later the workflows stopped working with error Failed to list *v1alpha1.ClusterWorkflowTemplate: clusterworkflowtemplates.argoproj.io is forbidden: User
What you expected to happen: I expect not to have newer versions of the product show up unless I specifically apply them.
How to reproduce it (as minimally and precisely as possible): Deploy a previous version of argo workflows and submit a workflow. The deployments will have the :latest image version.
Anything else we need to know?:
Environment:

Argo Workflow Version: https://github.com/argoproj/argo/manifests/cluster-install?ref=v2.6.3

Argo version: v2.7.0

$ argo version
argo: v2.7.0-rc2
  BuildDate: 2020-03-23T17:54:57Z
  GitCommit: 240d7ad9298c60a69d4ce056e3d83ef9283a83ec
  GitTreeState: clean
  GitTag: v2.7.0-rc2
  GoVersion: go1.13.4
  Compiler: gc
  Platform: darwin/amd64

Kubernetes version : v1.14.10-gke.27

$ kubectl version -o yaml
clientVersion:
  buildDate: "2019-10-15T23:41:55Z"
  compiler: gc
  gitCommit: c97fe5036ef3df2967d086711e6c0c405941e14b
  gitTreeState: clean
  gitVersion: v1.16.2
  goVersion: go1.12.10
  major: "1"
  minor: "16"
  platform: darwin/amd64
serverVersion:
  buildDate: "2020-02-21T18:01:40Z"
  compiler: gc
  gitCommit: 145f9e21a4515947d6fb10819e5a336aff1b6959
  gitTreeState: clean
  gitVersion: v1.14.10-gke.27
  goVersion: go1.12.12b4
  major: "1"
  minor: 14+
  platform: linux/amd64

Other debugging information (if applicable):

workflow-controller logs:

alsq@UL1804VM:~/bin$ kubectl -n argo logs -f workflow-controller-74b4f4659b-w2d8c
[ excerpt ]
E0413 18:20:41.979797       1 reflector.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20191225075139-73fd2ddc9180/tools/cache/reflector.go:98: Failed to list *v1alpha1.ClusterWorkflowTemplate: clusterworkflowtemplates.argoproj.io is forbidden: User "system:serviceaccount:argo:argo" cannot list resource "clusterworkflowtemplates" in API group "argoproj.io" at the cluster scope
[ repeating ]

Message from the maintainers:
If you are impacted by this bug please add a 👍 reaction to this issue! We often sort issues this way to know what to prioritize.

This should not happen obviously. Can I ask questions please?
The executor image can be configure either in the config map or the deployment. Can you please attach:
kubectl get deploy workflow-controller
kubectl get cm workflow-controller-configmap

You should not see latest there.
Can you also attach the URL to the YAMLs you deployed? It should be https://raw.githubusercontent.com/argoproj/argo/v2.6.3/manifests/install.yaml but I cannot see latest there.

Just adding some potentially useful information in debugging this.
Another user had installed Argo from the stable tag, which had been pointing to a random commit between releases (hence :latest being on the manifests): https://github.com/argoproj/argo/issues/2693#issuecomment-614182828
Perhaps something similar happened here?

Here are those requested k8s objects.
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "4"
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"workflow-controller","namespace":"argo"},"spec":{"selector":{"matchLabels":{"app":"workflow-controller"}},"template":{"metadata":{"labels":{"app":"workflow-controller"}},"spec":{"containers":[{"args":["--configmap","workflow-controller-configmap","--executor-image","argoproj/argoexec:v2.6.3"],"command":["workflow-controller"],"image":"argoproj/workflow-controller:v2.6.3","name":"workflow-controller"}],"serviceAccountName":"argo"}}}}
  creationTimestamp: "2020-03-30T15:03:20Z"
  generation: 5
  labels:
    app: workflow-controller
  name: workflow-controller
  namespace: argo
  resourceVersion: "385162250"
  selfLink: /apis/extensions/v1beta1/namespaces/argo/deployments/workflow-controller
  uid: 97e5e0d0-7297-11ea-8a50-42010a8001fc
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: workflow-controller
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: workflow-controller
    spec:
      containers:
      - args:
        - --configmap
        - workflow-controller-configmap
        - --executor-image
        - argoproj/argoexec:v2.6.3
        command:
        - workflow-controller
        image: argoproj/workflow-controller:v2.6.3
        imagePullPolicy: IfNotPresent
        name: workflow-controller
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: argo
      serviceAccountName: argo
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2020-04-13T20:10:11Z"
    lastUpdateTime: "2020-04-13T20:10:11Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2020-03-30T15:03:20Z"
    lastUpdateTime: "2020-04-13T20:33:08Z"
    message: ReplicaSet "workflow-controller-848566d646" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 5
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1

apiVersion: v1
data:
  config: |-
    artifactRepository:
      s3:
        accessKeySecret:
          name: argo-artifact-creds
          key: accessKey
        secretKeySecret:
          name: argo-artifact-creds
          key: secretKey
        endpoint: storage.googleapis.com
        bucket: argo-artifacts-dev-1
kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"config":"artifactRepository:\n  s3:\n    accessKeySecret:\n      name: argo-artifact-creds\n      key: accessKey\n    secretKeySecret:\n      name: argo-artifact-creds\n      key: secretKey\n    endpoint: storage.googleapis.com\n    bucket: argo-artifacts-dev-1"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"workflow-controller-configmap","namespace":"argo"}}
  creationTimestamp: "2020-03-30T15:03:18Z"
  name: workflow-controller-configmap
  namespace: argo
  resourceVersion: "374737816"
  selfLink: /api/v1/namespaces/argo/configmaps/workflow-controller-configmap
  uid: 96e2b5c5-7297-11ea-8a50-42010a8001fc

And some additional info, I am using kustomize to deploy this. Here is my kustomization.yaml file.
# base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

namespace: argo

resources:
- resources/argo-artifact-creds.secret.yaml
- resources/argo-workflow-serviceaccount.yaml
- resources/argo-workflow-role.yaml
- resources/argo-workflow-role-binding.yaml
- github.com/argoproj/argo/manifests/cluster-install?ref=v2.6.3
- github.com/argoproj/argo-events/hack/k8s/manifests?ref=v0.13.0

patchesStrategicMerge:
  - overlays/argo-events-serviceaccount.yaml
  - overlays/gateway-controller-configmap.yaml
  - overlays/sensor-controller-configmap.yaml
  - overlays/argo-server-deployment.yaml
  - overlays/workflow-controller-deployment.yaml

After I ran into this issue I applied the following diff, originally every image for argo workflows was using :latest which can be seen at the specific tagged version of v2.6.3
argo-wf-set-image-tags-v2.6.3.txt

I think this is what's happening. Rather that using the manifests listed here you're directly referencing the source code because you are using Kustomize.
Since v2.5 these manifests/cluster-install and manifests/install contain latest, not the release tag.
It's open to discussion as to whether we support this.
Pro

Kustomize is a commonly used config management tool we might wish to formally support.
Regardless of whether or not people should use this, they will.

If we decide to support this, we should:

Fix the manifests and back-port.
Put in place guard rails.
Add these files to the public API.
Document it as a supported installation option.

Contra

We do not document this as an installation option, nor do we mention it in the release notes.
This is a risky method - not suitable for production - because tags can move and without taking steps to reduce this risk.
As this is the first time someone has raised this as an issue, we could conclude it is not commonly used.

If we do not support it, then we should:

Add a warning not to use this method.
Add the correct manifests to the public API.

@alexmt @jessesuen can I get your thought on whether or not we support Kustomize as an installation option.

We are also using Kustomize to deploy Argo. What we do is overwrite the image in our overlay:
images:
- name: argoproj/workflow-controller
  newTag: v2.7.2

However, I must admit that when pulling in a resource from a specific github tag, one would expect the containers included in the deployments to also match that tag version.
bases:
- git@github.com:argoproj/argo/manifests/namespace-install/?ref=v2.7.2

We will fix this and back-port to v2.7.5

Thanks I am new to managing k8s objects with kustomize, thanks for helping me understand the issue. And thank you for adjusting the workflow to support it.


Add README for wallet docs

Something went wrong with PR preview build please check

Preview is available here:http://developers-pr180.previews.kube001.services.stellar-ops.com


Skip old e2e tests if sds is enabled

Skip old e2e tests if SDS is enabled, since Istio won't support legacy JWTs anymore and e2e tests are running on k8s 1.11 with no trustworthy JWT support. More context #15568 (tl;dr: SDS is only possible on k8s >= 1.12)
I was gonna remove the SDS test target but I see that there is a Pilot test inside it, maybe this is a mistake? https://github.com/istio/istio/blob/master/tests/istio.mk#L209 @howardjohn
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[X] Security
[X] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: pitlv2109
To complete the pull request process, please assign rshriram
You can assign the PR to them by writing /assign @rshriram in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

tests/e2e/tests/pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@pitlv2109: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-presubmit-tests-master
48b35933b8e0781fc51918b0af3a847ac3483276
link
/test integ-new-install-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn I think you can override Pilot e2e test req?

do we still have e2e test cover sds workload provision case in presubmit test(either using legacy or trustworthy jwt) if this PR in ?

Yea we have security tests for the new framework. This is just for the old e2e framework.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: myidpt, pitlv2109
To complete the pull request process, please assign rshriram
You can assign the PR to them by writing /assign @rshriram in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

tests/e2e/tests/pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/cc @costinm @nmittler @andraxylia @GregHanson @hzxuzhonghu @rshriram @vadimeisenbergibm @zackbutcher
e2e pilot test owners, PTAL


A better name?

I'm still not superhappy with the name of the workshop, what do you think?

Some suggestions:

Software engineering best practices

some more ideas

good practices in research software
research software skills
reproducible research software

I will go for 'Good practices in research software engineering'. I hope everyone likes it.

is "engineering" necessary to include? Maybe "Good practices in research software development" or "Good practices in writing research software". I think "engineering" can make it more intimidating.


I can't get the buttons to be right.... (Tailwind)

I want them all same width all 4 side by side and centered.

I want them all same width all 4 side by side and centered.

Let me see.

I want them all same width all 4 side by side and centered.

Let me see.

have the tailwind documentation open at all times to prevent BREAKING...

I want them all same width all 4 side by side and centered.

Let me see.

have the tailwind documentation open at all times to prevent BREAKING...

I know!

fix this @hello-smile6

fix this @hello-smile6

Let me see

fix this @hello-smile6

Can I use a stylesheet? If I have to use only Tailwind, this is going to be really hard. If I can use a stylesheet, it'll be done in 5 minutes.

@hello-smile6 you can do it with tailwind, do it with tailwind. It isn't that hard to open up some docs.

@hello-smile6 you can do it with tailwind, do it with tailwind. It isn't that hard to open up some docs.

It's not that. It's almost impossible to do anything using element classes.

@hello-smile6 no its not, look at the layout classes and use them.

@hello-smile6 no its not, look at the layout classes and use them.

I'll make a solution with vanilla.

@hello-smile6 its gonna be tailwind or I don't accept it

vanilla CSS and tailwind don't mix well.

vanilla CSS and tailwind don't mix well.

I'll use !important and only use what I have to. Also, I'll test before I git commit.

@hello-smile6 its you learn tailwind or you dont develop SearchOcean.

@hello-smile6 its you learn tailwind or you dont develop SearchOcean.

I get it, but tailwind adds bloat and is counter-intuitive.

@hello-smile6 well too bad!
oh counter-intuitive? because you dont read docs?

@hello-smile6 well too bad! oh counter-intuitive? because you dont read docs?

I do read documentation. Also, I got a working copy almost done.

I got it. Want it?

The reason why @hello-smile6 is saying it adds bloat, because the current implementation of Tailwind adds a lot of bloat.

The reason why @hello-smile6 is saying it adds bloat, because the current implementation of Tailwind adds a lot of bloat.

Exactly! Thanks.

The CDN is meant for development. When you want to actually get people to use it, then you should probably use a bundler for tailwind

This is how Scratch looks normally.

I loaded Tailwind without even using it. This is how it looks now.

Does that help explain it?

It's because Scratch wasn't made for tailwind, and it includes a style reset for cross-browser compatibility.

It's because Scratch wasn't made for tailwind, and it includes a style reset for cross-browser compatibility.

Still, Tailwind messes up websites. If that wasn't enough proof, I'll do the GitHub homepage.

@hello-smile6 if a website wasn't adapted or made to use tailwind it wont work obviously, you are being stupid.

My point is, Tailwind adds CSS even when it's not used.

@hello-smile6 if a website wasn't adapted or made to use tailwind it wont work obviously, you are being stupid.

My point is, Tailwind adds CSS even when it's not used.

My point is, Tailwind adds CSS even when it's not used.

Do I care? its either you use tailwind or your PR gets denied

Okay. Fine.

Can you make a mock-up?

What I mean is explain a bit more. I'll read the conversation

Can you make a mock-up?

Sure. Wait a minute.

@webdev03 Here!
https://gist.github.com/hello-smile6/e2afb28f3f525ea365a426df04a11b4f

Mockup picture

I don't see any difference.

Mockup picture

I can do more. How about a screenshot?

@webdev03

It's either made in tailwind or its not made at all.

I can do it. Please wait 10 minutes.

I can do it. Please wait 10 minutes.

Or just merge #6 and have it done in 1 minute.

I want the search bar and go button side by side
new line
custom search engine bar and select button side by side
new line
all 3 preset buttons side by side.

I want the search bar and go button side by side new line custom search engine bar and select button side by side new line all 3 preset buttons side by side.

Okay

I want the search bar and go button side by side new line custom search engine bar and select button side by side new line all 3 preset buttons side by side.

Okay

done in tailwind.

I want the search bar and go button side by side new line custom search engine bar and select button side by side new line all 3 preset buttons side by side.

Okay

done in tailwind.

Okay. I'll make a new branch.

@hello-smile6 Sorry it's been assigned to @webdev03 because he said he was going to do it. And I can rest assured he'll actually do it right.

@hello-smile6 Sorry it's been assigned to @webdev03 because he said he was going to do it. And I can rest assured he'll actually do it right.

Fine.

@hello-smile6 Sorry it's been assigned to @webdev03 because he said he was going to do it. And I can rest assured he'll actually do it right.

Fine.

You never do it right, no matter how many times I said if it ain't gonna be done in tailwind it wont be merged.

@hello-smile6 Sorry it's been assigned to @webdev03 because he said he was going to do it. And I can rest assured he'll actually do it right.

Fine.

You never do it right, no matter how many times I said if it ain't gonna be done in tailwind it wont be merged.

Fine.

I'm back. Time to do it!

I'm back. Time to do it!

Okay! I'll just keep deleting my comments! Should I hit the other repos?

I'm back. Time to do it!

Okay! I'll just keep deleting my comments!

I'm back. Time to do it!

Okay! I'll just keep deleting my comments!

I'm not!

Literally the copyright year was meant to be the creation of the project not the latest year LMAO.

Do you mean to say this?

Also, why is grid and flex in the same element? This makes very little sense.  Literally the copyright year was meant to be the creation of the project not the latest year LMAO.

Yes, I did. https://github.com/chromium/chromium/pull/82

I'll make a tile design. Also, I literally forgot to fork the repo, so...

I'll make a tile design. Also, I literally forgot to fork the repo, so...

Yep, and I've made 4 perfectly good PRs.

No worries, I made it again.

I'll make a tile design. Also, I literally forgot to fork the repo, so...

Tailwind has stuff for tiles.

Tailwind is a utility library. Can you show me what you mean @JaydenDev ? I'd love to know.

I'll make a tile design. Also, I literally forgot to fork the repo, so...

Yep, and I've made 4 perfectly good PRs.

Tailwind is a utility library. Can you show me what you mean @JaydenDev ? I'd love to know.

it has CSS classes for tiles.

I'll make a tile design. Also, I literally forgot to fork the repo, so...

Yep, and I've made 4 perfectly good PRs.

I'm done with your incompetence.

Can you send a link to the docs?

i cant find em but i saw em earlier.

What are they called?

I mean't cards not tiles
https://v1.tailwindcss.com/components/cards

I'll make a tile design. Also, I literally forgot to fork the repo, so...

Yep, and I've made 4 perfectly good PRs.

That's v1 tailwind, we're using v3.

That's v1 tailwind, we're using v3.

it should still work.

I'll make a tile design. Also, I literally forgot to fork the repo, so...

Yep, and I've made 4 perfectly good PRs.

Tailwind doesn't include pre-designed card components out of the box, but they're easy to build using existing utilities.

It isn't natively in tailwind, they just gave an example of what you can make with tailwind :smile: I can implement it!

https://larainfo.com/blogs/tailwind-css-v3-cards-examples

https://larainfo.com/blogs/tailwind-css-v3-cards-examples

Wow, you can't use the official website.

@hello-smile6 ok im sick and tired of your stupidity. There is no docs for cards on the official website, go away.

VSCode isn't giving me autocomplete because you aren't using the correct Tailwind setup. 🤷

@hello-smile6 ok im sick and tired of your stupidity. There is no docs for cards on the official website, go away.

Have you even looked? Also, that's a blog.

Turns out I can block users so they cant reply make PRs or anything in my repositories.

This is it? I'll add the tiles if this is okay. I removed some of your workarounds and replaced them, though.

 This is it? I'll add the tiles if this is okay. I removed some of your workarounds and replaced them, though.

thats good, I just need buttons to all be equal width.

also centered

OK

all buttons and their input boxes must be centered, this doesn't include tiles or footers.

Also, can you set up a proper configuration for tailwind so VSCode works?

This?

Then I'll work on tiles.

@JaydenDev

@webdev03 footers stay at the bottom left

Oh, okay.

@webdev03 I have a suspicion you used prettier.

DID you use it? What's the check for prettier GH action then?

Check for prettier? Oops, I copied another action, but I didn't change the name. I DID NOT USE PRETTIER.

I'll change that up. Don't worry, I didn't use prettier, I needed to copy the part where they automatically format, but changed it to build tailwind.

Also where it says "Google" and "Search Engine" that's one clickable card that is not needed but optional. It's meant to be like the opera speed dial, or the chrome most used websites on the home page.

I'll be back tomorrow

OK, I'll try. Bye bye! :smile:

Close?

Close?


licence确认

What would you like to be added:
开源依赖的licence、有没有GPL、LGPL协议（包括间接依赖）
工具：https://github.com/apache/skywalking-eyes
Why is this needed:

Assign to me

Assign to me

have assigned 3 task to you, let me try this


Gitlab support is broken?

Is the support for Gitlab complete?
I pasted this random link (as an example) https://gitlab.com/dankremniov/holiday-confession/blob/900c112f5673b247830ec88d829011cfa4a5da62/build/images/backgrounds/1.jpg and the site generates the CDN hosted version as https://glcdn.githack.com/dankremniov/holiday-confession/raw/900c112f5673b247830ec88d829011cfa4a5da62/build/images/backgrounds/1.jpg.
However, that link simply redirects back to gitlab as seen below.
$ curl -I "https://glcdn.githack.com/dankremniov/holiday-confession/raw/900c112f5673b247830ec88d829011cfa4a5da62/build/images/backgrounds/1.jpg"
HTTP/1.1 301 Moved Permanently
Date: Tue, 08 Nov 2016 08:59:12 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Set-Cookie: __cfduid=df5855d81064f688ac6fd7077fd2177b01478595552; expires=Wed, 08-Nov-17 08:59:12 GMT; path=/; domain=.githack.com; HttpOnly
Location: https://gitlab.com/dankremniov/holiday-confession/raw/900c112f5673b247830ec88d829011cfa4a5da62/build/images/backgrounds/1.jpg
CF-Cache-Status: MISS
Expires: Wed, 08 Nov 2017 08:59:12 GMT
Cache-Control: public, max-age=31536000
Server: cloudflare-nginx
CF-RAY: 2fe7d3dbbeca31b0-SIN

Realised this is due to jpg not being a supported type. Fixed in #19.

Gitlab serves correct media type for the given link, so there is nothing wrong with the redirect.

I think for CDN URLs there must be no redirect (this address #20 as well). So, let's keep this open for now.

It has been fixed! Thank you, @ping, for the report. You can try it out (make sure your browser's cache is invalidated).


wheel production on linux references macosx?

@vjcitn: for future reference, what fixed this issue?

Jayaram, I swapped tabs.  I was computing on mac but thought I was on linux.  Wish I could delete the issue.  I will let you know if anything related pops up again.

no worries, thank you. I have folks reporting issues on new macos before so i thought this might be one of those.


Output changes

This PR makes two changes to output.

It provides a direct link to the jobs summary page in the console
It replaces a copy/pastable text block with a copy/pastable command to update .secrets.baseline

@jsoref see d6b41044b084e7128260c9744f070ff29fe79319 and 07bdcc216ce52a0702366908c7445bd070808481


Differences with the original paper

Hi there, very interested in the project and potentially in contributing (if my limited knowledge can be of any help).
I noticed that the original paper uses as a pretrained network the pascal-fcn8 network (can be obtained here http://www.vlfeat.org/matconvnet/models/beta22/pascal-fcn8s-dag.mat) instead of the VGG19 that you use. Also they suggest using SGD as an optimizer with 1e-4 learning rate (while I believe you use Adam).
So my basic questions is: could it be that VGG19 has already learnt "too much" and is therefore not optimizable any further? Why did you use it instead of FCN8?

I have run the code, but the result is not promising.  :(
Any improvement?

The setting in the original paper must be better. I just tried something faster to implement for me and wanted to implement the "Deep Automatic Portrait Matting" as soon as possible. Finally I found that the eccv2016 paper costs too much computation resource that I cannot afford and has limited value for applications. So I gave it up and stopped optimizing it.

@PetroWu so if I understand correctly the paper implements FCN8 which is too computationally intensive and you could only test it on VGG19. If computation resource is the issue I am confident my company could finance it. Would Google Cloud's Tesla K80 GPUs be fine for this job?

I have run the code, but it seems that training process ends on 6K iterations. The loss is still high and not converge. So, what should I do to keep training?


Querying unflushed-memory-chain

Signed-off-by: Tushar3099<EMAIL_ADDRESS>Fixes Issue: #378
Type Of Change

[x] Enhancement

Changes

Modified ExecWithoutEncode function to append in-memory chain to the chain retrieved from the secondary storage.
Modified /query and /query-matrix route handlers to access the in-memory chains and pass it to ExecWithoutEncode
Modified frontend fetch routes accordingly.

Results

Querying in-memory chain in Monitoring window and Test window.

Preview
https://user-images.githubusercontent.com/51849085/112421453-0d4fc400-8d55-11eb-865f-96bc8d36ddc7.mp4

@Harkishen-Singh I have accessed the in-memory chain of a particular hash using BRMatrix and then appended the chain to the chain obtained from secondary storage and sent this to the frontend. I assume the result is showing what was expected.
Please tell me if the approach I used is right.
Both the Testing window and Monitoring window are querying flushed data along with in-memory chains.

@Harkishen-Singh, Can you please reply to the comments so that I can improve the PR and make the necessary changes? Thank you.


Simplify image loading

Now it just loads it after computing style for an element. Much simpler.

This one is getting in the way of #276, so going ahead and landing it now.


Upgrade maven-surefire-plugin to the latest version

At the moment we use 2.18.1 - and the latest version is 2.22.1 with some bug fixes: https://blogs.apache.org/maven/entry/apache-maven-surefire-plugin-version1

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


What could explain a misaligned overlay?

On my blank test screen, cxtmenu appears perfectly aligned. But when I deploy it to my website - it is exported as a react component that is inside a div that is inside a surrounding div - the menu's interaction overlay appears misaligned, to the right, a hundred pixels or so. All other non-cxtmenu interactions are aligned correctly.
Trying to upload an animated gif here; not sure if github supports it.

I believe it may be a conflict with my surrounding stylesheet. I will update and close here if I can confirm that.

The issue is that the page's html: { } css has padding: 0 0 0 50px;  If I comment that out, the menu mouse actions are in the right place. However, commenting it out screws up the surrounding website design. Is there a way to adjust the cxtmenu css to work around this?
Not sure if this is a bug, but outside of cxtmenu, the mouse interactions are all in the right place.

I was able to work around this by avoiding "padding" in the distant ancestor, and instead using "margin" in that ancestor's child (the not-quite-as-distant ancestor). I am not sure if this is a bug, so I will leave it open. If Cytoscape consortium folks believe this to be in the category of "site owners are responsible for their own css", please feel free to close.

Is there an approach to avoid issues like this that would work generally?  There are so many layout css properties that I’m not sure whether it’s tractable to try to work around each one individually.

On May 8, 2020, at 3:35 AM, Curt Siffert<EMAIL_ADDRESS>wrote:
I was able to work around this by avoiding "padding" in the distant ancestor, and instead using "margin" in that ancestor's child (the not-quite-as-distant ancestor). I am not sure if this is a bug, so I will leave it open. If Cytoscape consortium folks believe this to be in the category of "site owners are responsible for their own css", please feel free to close.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/cytoscape/cytoscape.js-cxtmenu/issues/97#issuecomment-625682764, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHRO463F4DK3JKIMWSFLILRQOY4PANCNFSM4MZNS3ZA.

I assumed max's question was for other cityscape people and not for me, but my own sense is that since this behavior happens with cxtmenu and not the cytoscape graph itself (otherwise both would have been misaligned), then this suggests it is an opportunity to improve cxtmenu's handling of this scenario in a more general sense.

If anyone in the consortium or the community has an approach to address this in a general way, then they’re welcome to make a pull request for it.  I am not aware of a general approach that would work in all supported browsers.

On May 26, 2020, at 8:10 PM, Curt Siffert<EMAIL_ADDRESS>wrote:
I assumed max's question was for other cityscape people and not for me, but my own sense is that since this behavior happens with cxtmenu and not the cytoscape graph itself (otherwise both would have been misaligned), then this suggests it is an opportunity to improve cxtmenu's handling of this scenario in a more general sense.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/cytoscape/cytoscape.js-cxtmenu/issues/97#issuecomment-634345758, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHRO4ZEQULRIOLCGHG2QRTRTRK7PANCNFSM4MZNS3ZA.


Use manhole to provide a way to debug hung jobs

https://pypi.python.org/pypi/manhole
Signed-off-by: Zack Cerza<EMAIL_ADDRESS>

I have a few jobs running with this commit now and it doesn't seem to break anything.


Execute targets serially in domRunner generateScreenshots

We've been seeing some issues with our Happo jobs in CI. Occasionally,
they exit with status code 137, which seems to be how Kubernetes handles
processes that have exhausted all of the available memory. This always
seems to happen after "Generating screenshots in 6 targets..." is
logged. We are using the domRunner with the JSDOM prerendering.
I suspect that the call to executeTargetWithPrerender, which will
initialize a JSDOM environment and then execute our bundle in it, uses a
lot of memory. Since we are doing this 6 times in parallel, one for each
of the targets we have configured, this ends up using up too much
memory.
To resolve this, I think we need to dial back the parallelization here.
Since these tasks are not using separate threads or anything like that,
they are all sharing the same CPU core. And since these are all likely
CPU-bound tasks, it doesn't seem like we are getting much out of the
parallelization that Promise.all is providing us anyway. So, instead of
controlling the amount of concurrency here, I decided to just remove it
entirely.
As a followup, I think we should be able to further optimize this by
re-using the JSDOM environment across targets.

Indentation changed, so this is best reviewed while telling GitHub to ignore whitespace

@trotzig I think I've updated this PR with your feedback

I was able to keep the serial pre-rendering and still do remote execution in parallel (moved the api call to inside the serial for-loop). Thanks for working on this!


Try several times to build the become container

Seems this is the only point where the podman tests are still failing with the random network errors tracked in #2063. Let's give several attempts to build the container to reduce the failures.
Pull Request Checklist

[x] extend the test coverage

Issue reproduced here. Second attempt to create the image was successful. We'll just need to get rid of the rlRun asserts to make this a passing test.


[EDA] Prevent Deletion of Account Record  if There are Associated Child Records

Note: FOR INTERNAL USE ONLY. For support questions, please use the EDA Chatter group in The Power of Us Hub.
For feature requests, please use the Ideas tab in The Power of Us Hub.

Do you want to request a feature or report a bug?
Feature
What is the current behavior?
If an Account has related child records, the Account record is deleted.
What is the expected behavior?
If an Account has related child records, the Account record should not be deleted.
What is the motivation / use case for changing the behavior?
data integrity

**lurch: attach W-039899

Tracking W-039899


Plot: mixing 2D and 3D variables is problematic

Mixing 2D and 3D variables in Plot causes incorrect results
To reproduce:

Load Katrina
Open the plot utility, and plot the U10 variable with default settings. Note the plot
Add the variable U and plot again. U10 is not plotted, and U is a straight diagonal line (which is probably not correct either)

The reported behavior is gone with fix from PR #841. However, issue reported in #838 should still be examined.


Added a BottomSheetFragment to bottomsheet-commons that works like a DialogFragment.

After trying a few things I believe this is the best solution to support fragments in a bottom sheet. Fragments have a more complex lifecycle so it's far simpler to handle everything in the fragment itself instead of trying to deal with it in a view or other helper component. This implementation actually follows very closely to the support lib's DialogFragment.

Sorry about the delayed response, looking forward to reviewing this!

I like this a lot. The code itself looks sound, but I'd like to propose investigating an alternative approach if you haven't already. Requiring the user to extend our own BottomSheetFragment isn't ideal, as many developers prefer to use their own base implementations for fragments. Sure, sheets are intended to be simple, but it would be understandable for them to still prefer their own base implementations anyway.
In light of this, could we take a similar approach to AppCompatDelegate? It seems like the main fragment inheritance requirements for for hooking into the lifecycle, which could be proxied through a delegate. We can still keep the BottomSheetFragment class for easy drop-in use, but I think it would be useful to make its underlying implementation rely on a delegate.
This would be two parts:

BottomSheetFragmentInterface
BottomSheetFragmentDelegate

I've written up an implementation of this based on your PR here: https://github.com/Flipboard/bottomsheet/tree/z/bottomsheetfragmentdelegate
Let me know what you think! You too @markrietveld

Providing a delegate seems completely reasonable. I didn't do it originally since I was staying close to DialogFragment, but we can be better than them.

Cool, pending @markrietveld's thoughts then

Merged with the delgate approach. Thanks!


Fix the infinite loader if the QuestionnaireResponse is invalid

IMPORTANT: Where possible all PRs must be linked to a Github issue
Fixes [https://github.com/ona-health/sid-dto-fhir-resources/issues/224]
Engineer Checklist

[ ] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[ ] I have added any strings visible on UI components to the strings.xml file
[ ] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[ ] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[ ] I have built and run the FHIRCore app to verify my change fixes the issue and/or does not break the app
[ ] I have checked that this PR does NOT introduce breaking changes that require an update to Content and/or Configs? If it does add a sample here or a link to exactly what changes need to be made to the content.

Code Reviewer Checklist

[ ] I have verified Unit tests have been written for any new feature(s) and edge cases
[ ] I have verified any strings visible on UI components are in the strings.xml file
[ ] I have verifed the CHANGELOG.md file has any notable changes to the codebase
[ ] I have verified the solution has been implemented in a configurable and generic way for reuseable components
[ ] I have built and run the FHIRCore app to verify the change fixes the issue and/or does not break the app

Looks good. Fix failing test.


Plural of "pharmacy" is "pharmacies"

When I run the following, it returns "pharmacys".  Shouldn't this return "pharmacies"?
console.log(pluralize.plural("pharmacy")) --> "pharmacys"

This appears to be working correctly in the node package and in the current source code


Maybe a Typo in README

The cron job line in README * 23 * * * seems to be run every minutes between 11:00PM and 11:59PM according to crontabguru.
The correct syntax could be 0 23 * * *.

Thank you @subbyte that was indeed an oversight; and a really mean one! I have addressed that in #21.


[Bug] GPU Memory Not Releasing After Testing and "OOM" During Stress Testing

Checklist

[X] 1. I have searched related issues but cannot get the expected help.
[X] 2. The bug has not been fixed in the latest version.
[X] 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.

Describe the bug
Description:
When testing the sglang LLM inference framework, I observed that the GPU memory utilization increased from 73.16 GiB to 77.06 GiB. After completing the tests, the GPU memory did not return to its initial state.
Following this, I started the stress testing script again, and encountered the following error from sglang serve:
[gpu_id=0] Prefill batch. #new-seq: 1, #new-token: 2147, #cached-token: 0, cache hit rate: 21.58%, #running-req: 0, #queue-req: 0
[gpu_id=0] Prefill batch. #new-seq: 3, #new-token: 6417, #cached-token: 0, cache hit rate: 21.42%, #running-req: 1, #queue-req: 0
[gpu_id=0] Prefill batch. #new-seq: 6, #new-token: 6418, #cached-token: 6495, cache hit rate: 21.85%, #running-req: 4, #queue-req: 0
Exception in ModelTpServer:
Traceback (most recent call last):
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/tp_worker.py", line 186, in exposed_step
    self.forward_step()
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/tp_worker.py", line 202, in forward_step
    self.forward_prefill_batch(new_batch)
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/tp_worker.py", line 443, in forward_prefill_batch
    output = self.model_runner.forward(batch, ForwardMode.EXTEND)
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/model_runner.py", line 336, in forward
    return self.forward_extend(batch)
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/model_runner.py", line 293, in forward_extend
    input_metadata = InputMetadata.create(
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/infer_batch.py", line 770, in create
    init_flashinfer_args(
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/sglang/srt/managers/controller/infer_batch.py", line 910, in init_flashinfer_args
    model_runner.flashinfer_prefill_wrapper_paged.begin_forward(
  File "/mnt/llm_dataset/willhe/miniconda3/envs/sglang/lib/python3.10/site-packages/flashinfer/prefill.py", line 778, in begin_forward
    self._wrapper.begin_forward(
RuntimeError: RuntimeError: Out of workspace memory in AlignedAlloactor

Expected Behavior:

GPU memory should return to the initial state after the completion of tests.
No runtime errors should occur when starting the stress testing script again.

Actual Behavior:

GPU memory utilization increased from 73.16 GiB to 77.06 GiB and did not decrease after testing.
Encountered "Runtime Error: Out of workspace memory in AligndAllocator" during the subsequent stress testing.

Reproduction

launch server

python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B
server_args=ServerArgs(model_path='meta-llama/Meta-Llama-3.1-8B', tokenizer_path='meta-llama/Meta-Llama-3.1-8B', tokenizer_mode='auto', load_format='auto', dtype='auto', trust_remote_code=False, context_length=None, quantization=None, chat_template=None, host='<IP_ADDRESS>', port=30000, additional_ports=[30001, 30002, 30003, 30004], mem_fraction_static=0.89, max_prefill_tokens=None, max_running_requests=None, schedule_heuristic='lpm', schedule_conservativeness=1.0, tp_size=1, stream_interval=1, random_seed=408493183, log_level='info', log_level_http=None, log_requests=False, show_time_cost=False, api_key='', dp_size=1, load_balance_method='round_robin', disable_flashinfer=False, disable_radix_cache=False, disable_regex_jump_forward=False, disable_cuda_graph=False, disable_disk_cache=False, enable_torch_compile=False, attention_reduce_in_fp32=False, enable_p2p_check=False, efficient_weight_load=False, nccl_init_addr=None, nnodes=1, node_rank=None)
[gpu_id=0] Init nccl begin.
[gpu_id=0] Load weight begin. avail mem=78.94 GB
Loading safetensors checkpoint shards:   0% Completed | 0/4 [00:00<?, ?it/s]
Loading safetensors checkpoint shards:  25% Completed | 1/4 [00:01<00:04,  1.64s/it]
Loading safetensors checkpoint shards:  50% Completed | 2/4 [00:02<00:02,  1.02s/it]
Loading safetensors checkpoint shards:  75% Completed | 3/4 [00:03<00:01,  1.30s/it]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:05<00:00,  1.50s/it]
Loading safetensors checkpoint shards: 100% Completed | 4/4 [00:05<00:00,  1.41s/it]

[gpu_id=0] Load weight end. type=LlamaForCausalLM, dtype=torch.bfloat16, avail mem=63.86 GB
[gpu_id=0] Memory pool end. avail mem=7.61 GB
[gpu_id=0] Capture cuda graph begin. This can take up to several minutes.
[gpu_id=0] max_total_num_tokens=452003, max_prefill_tokens=16384, max_running_requests=2047, context_len=131072
INFO:     Started server process [130608]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:30000 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:40952 - "GET /get_model_info HTTP/1.1" 200 OK
[gpu_id=0] Prefill batch. #new-seq: 1, #new-token: 6, #cached-token: 0, cache hit rate: 0.00%, #running-req: 0, #queue-req: 0
INFO:     <IP_ADDRESS>:40954 - "POST /generate HTTP/1.1" 200 OK
The server is fired up and ready to roll!

benchmark

python3 bench_serving.py --backend srt --port 30000 --tokenizer meta-llama/Meta-Llama-3.1-8B --num-prompt 300 --request-rate 16 --input-len 2048 --output-len 128
Namespace(backend='srt', host='http://localhost', port=30000, dataset=None, input_len=2048, output_len=128, range_ratio=1.0, tokenizer='meta-llama/Meta-Llama-3.1-8B', best_of=1, use_beam_search=False, num_prompts=300, request_rate=16.0, seed=0, trust_remote_code=False)
100%|█████████████████████████████████████████████████████████████| 300/300 [00:36<00:00,  8.28it/s]
Total time: 55.23 s
Request throughput: 5.43 requests/s
Decoding throughput: 695.25 token/s
Average latency: 35.28 s
Average latency per token: 0.02 s
Average latency per output token: 0.28 s

I started the stress testing script again, and encountered the OOM error from sglang serve.
Environment
Python: 3.10.0 (default, Mar  3 2022, 09:58:08) [GCC 7.5.0]
CUDA available: True
GPU 0: NVIDIA A800-SXM4-80GB
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 12.3, V12.3.107
CUDA Driver Version: 470.182.03
PyTorch: 2.3.1+cu121
sglang: 0.2.5
flashinfer: 0.1.1+cu121torch2.3
requests: 2.32.3
tqdm: 4.66.4
numpy: 1.26.4
aiohttp: 3.9.5
fastapi: 0.111.1
hf_transfer: 0.1.8
huggingface_hub: 0.24.2
interegular: 0.3.3
packaging: 24.1
pillow: Module Not Found
psutil: 6.0.0
pydantic: 2.8.2
uvicorn: 0.30.3
uvloop: 0.19.0
zmq: 26.0.3
vllm: 0.5.3.post1
openai: 1.37.1
anthropic: 0.31.2
NVIDIA Topology:
        GPU0    CPU Affinity    NUMA Affinity
GPU0     X      0-115   0

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

ulimit soft: 1048576

Try this https://github.com/sgl-project/sglang/blob/main/test/killall_sglang.sh

@hxer7963 May you try the latest version?

@hxer7963 May you try the latest version?

The latest version appears to have resolved the issue, and the GPU memory usage was fixed during testing. Awesome, thanks to zhyncs.


NIFI-9927 Initial Commit to clean up all extraneous version/group dec…

…larations.

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Enables X functionality; fixes bug NIFI-YYYY.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically main)?

[ ] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

This initial commit is intended as a WIP commit.  I plan to have another that follows.  But the next one is more adventurous/dangerous so wanted to keep it separate for now.


[Feature Reques] Fine-grained control over printing

I'm allowing people to add arbitrary tags, however diagnostic_information() is causing some formatting I don't love. However I don't see any good way to create my own version of that function and get the formatting I would like. The closest I've come to seeing a solution is here
https://stackoverflow.com/questions/48191012/how-to-iterate-over-all-error-infos-in-boostexception
Thanks for any help or workarounds and apologies if this isn't where I should submit something like this

The output from diagnostic_information is not designed to be user-friendly. The intended use of the "arbitrary tags" with Boost Exception is that you'd catch and handle every possible exception type, and in each catch block access the additional info to format a user-friendly message (which in general includes localization); then follow with catch(...) that outputs the diagnostic information, which you would treat as a bug (you're missing a necessary catch statement for some exception type that formats a user-friendly message).
That said, you do have some control over the automatic conversion to string, by providing to_string overloads for error_info<Tag, t>. See https://www.boost.org/doc/libs/1_83_0/libs/exception/doc/diagnostic_information.html.

Thanks @zajo, that gets me closer.
I don't believe I'm using boost::exception in an unintended manner. I have a main program/service with libraries that call libraries, and with C++17 on, we have the ability to nest exceptions. I don't necessarily know what's in those library thrown boost exceptions, so my only recourse for printing it out for logs is to use diagnostic_information(). If I could iterate over the set of error_infos, I could handle the ones I need to with a cast to the types I know about and otherwise print out unknown ones with the generic to_string(). I will say that with the exception of getting the information out of it, this is all working amazingly well. And I can live with the diagnostic_output to my logs, but I was hoping for a more flexible option.
If you can think of any way for me to get this information out, I would really appreciate it. If not, I hope you'll consider this for a feature request. Thanks again!

Do I understand correctly that you want the diagnostic info to only include error_infos you don't know about? Otherwise I don't see a point in iterating over them, you don't need iteration in order to handle the error_infos you need.
Do you mind me asking if this is some legacy project? If not, I'd recommend Boost LEAF over Boost Exception.

@diehard2 apparently as @zajo explained this great lib wasn't designed with the idea of further extensibility and customization in mind so I also have had to find my ways to get to its internals and also implement few derived/custom classes (error_info, error_info_container etc.) to achieve what I wanted, including localizable and custom per instance error info descriptions etc.
so for example

	this code
	eh::AddErrorInfoDescription<eh::throw_chain>(eh::language_id_t{ "en" }, ">>>>> throw exception chain <<<<<");
	eh::AddErrorInfoDescription<eh::errinfo_file_name>("<file name>");
	try
	{
		try
		{
			auto const address = net::ip::make_address("localhost");
		}
		catch (std::exception const& e)
		{
			boost::variant2::variant<int, char const*> someVar{ "1352345" };
			RETHROW(/*BOOSTED_EXCEPTION*/(e)
				<< MAKE_ERROR_INFO("rethrowing here", "some description")
				<< MAKE_ERROR_INFO((boost::variant2::variant<int, char const*>{"1352345"}), "variant"s)
				<< MAKE_ERROR_INFO(someVar)
				<< MAKE_ERROR_INFO(someVar,"custom var description")
				<< eh::errinfo_file_name(__FILE__)
				<< eh::errinfo_file_name(__FILE__,"this file")
				<< eh::errinfo_api_function("net::ip::make_address")
				<< MAKE_ERROR_INFO(std::make_tuple(__FILE__, __LINE__, "test", 5), "custom tuple description"sv)
				<< MAKE_ERROR_INFO(std::make_tuple(__FILE__, __LINE__, "test", 5))
				<< MAKE_ERROR_INFO(std::make_tuple(__FILE__, __LINE__, "test", 5),"another tuple")
				<< eh::errinfo_at_line(__LINE__)
				<< eh::errinfo_file_name(__FILE__, "duplicate eh::errinfo_file_name")
			);
		}
	}
	catch (...)
	{
		HANDLE_EXCEPTION();
	}

will produce following report:
2023-11-24 08:47:50.8047075: #1 (1)

C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\ip\impl\address.ipp(112): Throw in function make_address
Dynamic exception type: class vavan::eh::boosted_exception<class boost::system::system_error>
std::exception::what: An invalid argument was supplied [system:10022]
"system" error #10022
[errno] = int(22)
[some description] = const char *(rethrowing here)
[variant] = class boost::variant2::variant<int,char const *>(1352345)
[someVar] = class boost::variant2::variant<int,char const *>(1352345)
[custom var description] = class boost::variant2::variant<int,char const *>(1352345)
[<file name>] = class vavan::filesystem::path(C:\Project\Test\helperCommon\test_all\test_all.cpp)
[this file] = class vavan::filesystem::path(C:\Project\Test\helperCommon\test_all\test_all.cpp)
[API function name] = const char*(net::ip::make_address)
[custom tuple description] = class std::tuple<char const *,long,char const *,int>(C:\Project\Test\helperCommon\test_all\test_all.cpp, 73, test, 5)
[std::make_tuple("C:\\Project\\Test\\helperCommon\\test_all\\test_all.cpp", (__LINE__Var+28), "test", 5)] = class std::tuple<char const *,long,char const *,int>(C:\Project\Test\helperCommon\test_all\test_all.cpp, 73, test, 5)
[another tuple] = class std::tuple<char const *,long,char const *,int>(C:\Project\Test\helperCommon\test_all\test_all.cpp, 73, test, 5)
[at line #] = int(73)
[duplicate eh::errinfo_file_name] = class vavan::filesystem::path(C:\Project\Test\helperCommon\test_all\test_all.cpp)

[init exception callstack] =  0# vavan::eh::boost_exception at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:14028
 1# vavan::eh::make_boosted_exception<boost::system::system_error> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:14212
 2# vavan::eh::ThrowExceptionImpl<boost::system::system_error const &> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15124
 3# vavan::eh::ThrowExceptionImpl<boost::system::system_error> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15143
 4# boost::throw_exception<boost::system::system_error &> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:21268
 5# boost::asio::detail::do_throw_error at C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\detail\impl\throw_error.ipp:33
 6# boost::asio::detail::throw_error at C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\detail\throw_error.hpp:43
 7# boost::asio::ip::make_address at C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\ip\impl\address.ipp:113
 8# test_rethrow at C:\Project\Test\helperCommon\test_all\test_all.cpp:56
 9# main at C:\Project\Test\helperCommon\test_all\test_all.cpp:133
10# invoke_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79
11# __scrt_common_main_seh at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
12# __scrt_common_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331
13# mainCRTStartup at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17
14# BaseThreadInitThunk in KERNEL32
15# RtlUserThreadStart in ntdll

[>>>>> throw exception chain <<<<<] =
0: 2023-11-24 08:47:50.8046388 thread #23360( "main" )
C:\Project\Test\helperCommon\test_all\test_all.cpp(73) : Throw in function void __cdecl test_rethrow(void)
 0# vavan::eh::detail::add_throw_level at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:13946
 1# vavan::eh::boosted_exception<std::exception>::rethrow at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:14163
 2# vavan::eh::RethrowImpl<std::exception> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15232
 3# `test_rethrow'::`1'::catch$16 at C:\Project\Test\helperCommon\test_all\test_all.cpp:61
 4# _CallSettingFrame_LookupContinuationIndex at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm:98
 5# __FrameHandler4::CxxCallCatchBlock at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp:1439
 6# RtlCaptureContext2 in ntdll
 7# test_rethrow at C:\Project\Test\helperCommon\test_all\test_all.cpp:56
 8# main at C:\Project\Test\helperCommon\test_all\test_all.cpp:133
 9# invoke_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79
10# __scrt_common_main_seh at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
11# __scrt_common_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331
12# mainCRTStartup at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17
13# BaseThreadInitThunk in KERNEL32
14# RtlUserThreadStart in ntdll

1: 2023-11-24 08:47:50.8044530 thread #23360( "main" )
C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\ip\impl\address.ipp(112) : Throw in function make_address
 0# vavan::eh::detail::add_throw_level at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:13946
 1# vavan::eh::ThrowExceptionImpl<vavan::eh::boosted_exception<boost::system::system_error> > at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15116
 2# vavan::eh::ThrowExceptionImpl<boost::system::system_error const &> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15126
 3# vavan::eh::ThrowExceptionImpl<boost::system::system_error> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15143
 4# boost::throw_exception<boost::system::system_error &> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:21268
 5# boost::asio::detail::do_throw_error at C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\detail\impl\throw_error.ipp:33
 6# boost::asio::detail::throw_error at C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\detail\throw_error.hpp:43
 7# boost::asio::ip::make_address at C:\Project\Libs\vcpkg\installed\x64-windows-static\include\boost\asio\ip\impl\address.ipp:113
 8# test_rethrow at C:\Project\Test\helperCommon\test_all\test_all.cpp:56
 9# main at C:\Project\Test\helperCommon\test_all\test_all.cpp:133
10# invoke_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79
11# __scrt_common_main_seh at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
12# __scrt_common_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331
13# mainCRTStartup at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17
14# BaseThreadInitThunk in KERNEL32
15# RtlUserThreadStart in ntdll

caught in thread #23360( "main" ) at
 0# vavan::eh::HandleExceptionImplExceptionCommon<std::exception> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:14822
 1# vavan::eh::HandleExceptionImplException<std::exception,char const * &> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:14961
 2# vavan::eh::HandleExceptionImplException<std::exception,char const * &> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:14968
 3# `vavan::eh::HandleExceptionImpl<char const *>'::`1'::catch$2 at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15031
 4# _CallSettingFrame_LookupContinuationIndex at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm:98
 5# __FrameHandler4::CxxCallCatchBlock at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp:1439
 6# RtlCaptureContext2 in ntdll
 7# vavan::eh::HandleExceptionImpl<char const *> at C:\Project\Test\helperCommon\test_all\helperCommonNew.h:15027
 8# `test_rethrow'::`1'::catch$17 at C:\Project\Test\helperCommon\test_all\test_all.cpp:82
 9# _CallSettingFrame_LookupContinuationIndex at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\amd64\handlers.asm:98
10# __FrameHandler4::CxxCallCatchBlock at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp:1439
11# RtlCaptureContext2 in ntdll
12# test_rethrow at C:\Project\Test\helperCommon\test_all\test_all.cpp:56
13# main at C:\Project\Test\helperCommon\test_all\test_all.cpp:133
14# invoke_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79
15# __scrt_common_main_seh at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
16# __scrt_common_main at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331
17# mainCRTStartup at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17
18# BaseThreadInitThunk in KERNEL32
19# RtlUserThreadStart in ntdll

@zlojvavan if you make a MR with your changes I'll take a look.

@zlojvavan great minds think alike, that's at least partially what I'm doing. with only about 50 lines of code plus boost::exception plus boost stacktrace you can essentially get Java and C# style exceptions.

Do you mind me asking if this is some legacy project? If not, I'd recommend Boost LEAF over Boost Exception.

@zajo my place largely uses exceptions and its unlikely we would switch to a return code paradigm at this late stage. There's just too many millions of lines. I think what would be ideal is if I could remove error_info's. Instead of get_error_info that returns a raw pointer, maybe a unique_ptr? That way I could handle the ones I know about and let diagnostic_information print out the ones I don't. But if I could just iterate over them like diagnostic_information does that would make my life much easier. For people who use exceptions, this library is really great. Thanks for all your hard work.

@diehard2 Boost LEAF works great with exceptions, you can think of it as a better Boost Exception. See https://www.boost.org/doc/libs/1_83_0/libs/leaf/doc/html/index.html#boost_exception.

@diehard2 despite not being designed to such customizations the library is still flexible enough to leave some backdoors allowing to implement required functionality through exploiting of boost::exception public methods and friend structs. in my mini-framework I replace standard boost implementation provided error info container with my own derived class providing needed methods. I believe you could do the same to achieve what you wish. so whenever my code throws new exception or rethrows caught exception thrown somewhere outside my control I install/replace my container into boost::exception instance copying already inserted error info from standard container into my one if any
@zajo I was able to implement all required functionality without modifying/patching existing boost sources (though not in the most comfortable way) so not sure what changes would be acceptable for you. I already tried to ask you to enhance library in the past (as in https://github.com/boostorg/exception/issues/25) to no avail so I've had to find my own ways to achieve what I wanted then the way resembling @apolukhin approach from https://github.com/boostorg/stacktrace/pull/147

it seems you have some kind of system for customizing the conversion of error_info to string

well, yes I have rather primitive formatting capabilities. for example if in code above replace catch block with the following:
	catch (...)
	{
		eh::handle_exception_params_t hep;
		auto& dip = hep.diagnostic_info_params;
		dip.nameFormat = "\"%s\": ";
		dip.valueFormat = ">%s<";
		dip.showTypeNames = false;
		dip.types = V_EXCLUDE_DIAG_INFO_TYPES(eh::errinfo_file_name/*, eh::throw_chain, eh::throw_callstack, eh::errinfo_init_callstack, eh::errinfo_nested_exception*/);
		/*hep.invokeCustomHandlers = true;
		hep.getDiagnosticInfo = true;
		hep.async = true;
		auto& dup = hep.dup;
		dup.handle = true;
		dup.ignoreDuration = std::chrono::seconds{ 5 };
		dup.useWhat = true;*/
		HANDLE_EXCEPTION(hep);
	}

it will change first part of produced report to
/opt/vcpkg/installed/x64-linux/include/boost/asio/ip/impl/address.ipp(112): Throw in function address boost::asio::ip::make_address(const char *)
Dynamic exception type: vavan::eh::boosted_exception<boost::system::system_error>
std::exception::what: Invalid argument [system:22]
"system" error #22
"some description": >rethrowing here<
"variant": >1352345<
"someVar": >1352345<
"custom var description": >1352345<
"API function name": >net::ip::make_address<
"custom tuple description": >/home/vavan/.vs/test_all/test_all.cpp, 69, test, 5<
"std::make_tuple("/home/vavan/.vs/test_all/test_all.cpp", 70, "test", 5)": >/home/vavan/.vs/test_all/test_all.cpp, 70, test, 5<
"another tuple": >/home/vavan/.vs/test_all/test_all.cpp, 71, test, 5<
"at line #": >72<

I'm offering to take a look at it

well, atm it doesn't exist as a patched/modified boost sources but is part of my "super header" containing lots of stuff I tend to use across different projects, so it may take indefinite time to produce PR containing only subset of available functionality in digestable form

@zajo well, for me there's no need to convert anything to json, ATM I'm fine with my exception handling and reporting stuff and been using it for years. there are still some inconveniences with throw sites that do not use boost::throw_exception though but with p2370 and some tricks as in mentioned above from_exception I hope we'll finally get there sooner than later

@zajo do you mean it is able to get callstacks of all throw expressions throughout the entire application and all used rtl and thirdparty libs that do not use LEAF?
anyway as already been explained several times switching libraries in existing codebases isn't always an option

Yes, LEAF is able to do that. Switching from Boost Exception to Boost LEAF is very straightforward, even for a large codebase, I've done it in an afternoon. It doesn't mean that it's always a good idea, but it should be considered.


WPS returns datasets : access band_data variable

In notebook 02 using the PAVICS beta image stats_resp.get(asobj=True) returns an xr.Dataset  ... plotting requires accessing the band_data variable
See https://github.com/Ouranosinc/pavics-jupyter-env-issues/issues/7
Note this will break the notebook when using current image.  Do not merge until all fixes are ready

@tlogan2000 The "current" image copies notebooks based on the master branch? Doesn't the RavenPy version lag by several months already?
We should change this setup.

@tlogan2000 The "current" image copies notebooks based on the master branch? Doesn't the RavenPy version lag by several months already?
We should change this setup.

I'm not sure how this works exactly ... we'd need to ask @tlvu which version of the notebooks are pulled. Ideally the notebooks pulled would be based on a ravenpy release that is deployed in each pavics image but I have a feeling that it is straight from master

I suspect this might have to do with : https://github.com/bird-house/birdy/pull/240/files

coverage: 81.685%. remained the same
when pulling 2c8894c4664ee1c5378691129f1fa32652aa67d8 on fixnbs_pavics_betaimage
into e33769fffc546c4cc357587619b14895dc5e53c2 on master.

This PR would revert to returning a DataArray
https://github.com/bird-house/birdy/pull/248


Add Puppeteer e2e tests

There should be automated e2e tests to cover core user functionality. I propose using the puppeteer framework and automating front end tests with github actions.

Hey there, #2238 describes the need for a head tester using Cypress, which is an E2E testing suite. I think we will be using that, but @benawad will be the one who can confirm that.

I would recommend to use WebdriverIO (fyi: I am the maintainer 😉 ) for this as it provides the ability to control multiple browser within a single test abstracted into a single API and testrunner framework.

I believe we have Cypress now


get all blocknumber with batch utility

Detail - Fetch all utility txs for the first time when we bootstrap.

Right, so this is the part where we use UNcover to give us all the blocks that have nft, which now include batch stuffs. Do we need to re-scan again to pick up the batch since Feb?

Right, so this is the part where we use UNcover to give us all the blocks that have nft, which now include batch stuffs. Do we need to re-scan again to pick up the batch since Feb?

Yes, we need to re-scan again


Update CLI extensions available doc

Update CLI extensions available doc.
Triggered by Azure/azure-cli-extensions - TRAVIS_BUILD_ID=509080086
https://github.com/Azure/azure-cli-extensions/commit/1a91d655d10f005503335cfd5bcb66e9460c65ef

OPS Build status updates of commit 6f31456:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-list.md
:white_check_mark:Succeeded
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Allow few commands to be usable in Private messages

Tbh, I had no idea thats how you get commands to work in PMs. Though i'd like to test this beforemerging to confirm.


How to access scan response data with Nimble stack (IDFGH-5128)

Hi, I have posted this question on esp32.com but it is quite difficult to get answers there...
so far I have been using BLE with Nimble stack taking the 'blecent' example as a reference for my development but always connecting to the remote devices and then subscribing for notifications.
Now I need to read the data sent by a device as a scan response. If I am not wrong, first I need to set 'passive' field from 'ble_gap_disc_params' struct to 0 to configure an active scan. But then I am quite lost and the documentation available at http://mynewt.apache.org/ is very poor.
In which GAP event type am I supposed to get the scan response data? Any example on how I can read it? Should I work with BLE_GAP_EVENT_DISC and parse event->disc.data?
Thanks

Hi @afcec
Your understanding is correct. By default, in the existing blecent example provided as part of sdk, passive scan is enabled. As you pointed out, yes , there is a need to modify disc_param.passive as 0 in the blecent example's main.c file.  This will enable scan request.
Also, BLE_GAP_EVENT_DISC event is generated for scan response data too. ( which is handled in the blecent_gap_event function).
I would like to point to the current header file for more information. i.e.  https://github.com/espressif/esp-nimble/blob/nimble-1.3.0-idf/nimble/host/include/host/ble_gap.h#L404   , we can see that event_type can be used to differentiate between different ADV PDU type.
So, i think, in your modified code, if the event_type field ( disc->event.event_type ) value is checked, it should help to do the needed parsing for the data accordingly.
Thanks,
Rahul

Hi  @RahulEspressif ,
thank you very much for your prompt reply, I will give it a try.

@afcec Thanks for reporting, would you please help share if any updates? Thanks.

@afcec Thanks for reporting, would you please help share if any updates? Thanks.

Thanks for reporting, will close due to short of feedback, feel free to reopen with more updates. Thanks.


Basic Training (ColBERTv1-style)  -> ujson.JSONDecodeError: Expected object or value

seems like  triples="/path/to/MSMARCO/triples.train.small.tsv" (qid, pid+, pid-)  are not supported for training anymore,
The triples = '/path/to/examples.64.json' should be like this.

I do not understand what the figures stand for?

I'm also having this error when trying to add documents to an index created with RAGatouille (colbert-ir/colbertv2.0)
[Oct 11, 14:25:17] #> Optimizing IVF to store map from centroids to list of pids..
[Oct 11, 14:25:17] #> Building the emb2pid mapping..
Traceback (most recent call last):
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/ragatouille/RAGPretrainedModel.py", line 258, in add_to_index
    self.model.add_to_index(
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/ragatouille/models/colbert.py", line 179, in add_to_index
    self.model_index.add(
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/ragatouille/models/index.py", line 398, in add
    self.build(
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/ragatouille/models/index.py", line 243, in build
    indexer.index(name=index_name, collection=collection, overwrite=overwrite)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexer.py", line 80, in index
    self.__launch(collection)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexer.py", line 89, in __launch
    launcher.launch_without_fork(self.config, collection, shared_lists, shared_queues, self.verbose)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/infra/launcher.py", line 93, in launch_without_fork
    return_val = run_process_without_mp(self.callee, new_config, *args)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/infra/launcher.py", line 109, in run_process_without_mp
    return_val = callee(config, *args)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/collection_indexer.py", line 33, in encode
    encoder.run(shared_lists)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/collection_indexer.py", line 76, in run
    self.finalize() # Builds metadata and centroid to passage mapping
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/collection_indexer.py", line 396, in finalize
    self._build_ivf()
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/collection_indexer.py", line 482, in _build_ivf
    _, _ = optimize_ivf(ivf, ivf_lengths, self.config.index_path_)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/utils.py", line 13, in optimize_ivf
    all_doclens = load_doclens(index_path, flatten=False)
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/loaders.py", line 32, in load_doclens
    all_doclens = [ujson.load(open(filename)) for filename in doclens_filenames]
  File "/home/username/repo_name/.venv/lib/python3.10/site-packages/colbert/indexing/loaders.py", line 32, in <listcomp>
    all_doclens = [ujson.load(open(filename)) for filename in doclens_filenames]
ujson.JSONDecodeError: Expected object or value


Support for ENV values in audit URLs

This PR adds support for ENV values in audit URLs.
It can be helpful when you cannot use local path but want to test current build. (e.g. next.js with SSR).
Env variable name should follow this regex /[A-Z_]+/ and should be surrounded by ${ } just like in JS string templates
Example:
  [[plugins.inputs.audits]]
    url = "https://${DEPLOY_PRIME_URL}/home"

@mrcool-ru I'm going to close this PR for now, as I think the new behaviour I mention above will achieve the desired outcomes. However once you have a chance to check it out via the steps above, we can always re-open this PR if the ENV values are still needed - please just let me know!

Thanks for the update. That is what I need. Works fine with this config
[[plugins]]
  package = "@netlify/plugin-lighthouse"

  [plugins.inputs]
    run_on_success = "true"
  [[plugins.inputs.audits]]
    path = "home"


Changed default webpack builder to Webpack4 from Webpack5

This change seems to have fixed some compatibility issues involving Webpack5 that result in a failed build upon fresh install/build of the repo.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[ModuleInterface] Preserve SPI information for indirect conformances

Mark the generated extensions representing synthesized or indirect conformances to SPI protocols with the same SPI group name.
rdar://73082943

@swift-ci Please smoke test

@swift-ci Please smoke test

I would usually prefer to use getSPIGroups to also list implicit SPI groups, but I think that in the case of a protocol it should always have the SPI attributes declared explicitly on the protocol.

I would usually prefer to use getSPIGroups to also list implicit SPI groups, but I think that in the case of a protocol it should always have the SPI attributes declared explicitly on the protocol.


Add CI

Thanks @davidbrochart
Merging for now. @bswck feel free to PR your changes. I don't know enough about GA to review.


skin.ini for copy of skins are incorrect if name option contains brackets

very_helpful_logs.txt
Provide details about the bug below:
When modifying a skin, you are given the option to make a copy of it. The skin.ini file that is generated for the copy bugs and turns any option containing brackets into a new section, leading to certain settings not getting properly read by the game when using those skin copies.

Original skin.ini
Copied skin.ini

Notice that when the skin with the name option of - Seoul v11 - [Test] is copied it it creates a new section in the skin.ini called [Test], or whatever bracketed text is there, which leads to the settings not being processed, since it expects them to be under the [General] section

Fixed in the latest release, launch osu! skin mixer to update


Dev vggish

Testing if removing relative imports in vggish .py files breaks testing.
e.g., imports used to be:
from . import vggish_inputs
now they are:
import vggish_inputs

Hi Saumya - can you please merge this branch with the remove VGGish branch?
I've improved how the model imports modules to make it work on a local and remote machine, as well as added information and parameters on how to create different times in examples.


feat: bump socket-io to v3 (wip)

BREAKING CHANGE:
Bump socket-io v2 to v3
Closes: #3569

Would need some help with naming Type and Scope of the commit messages. Think the bump might be chore but should I include the fix in it too? I also thought breaking changes must be prepended with a ! in before the type.

https://github.com/karma-runner/karma/blob/ad820a1d0998f0a81eb1d231e3f9b034d8ff21c6/docs/dev/06-git-commit-msg.md

:white_check_mark: Build karma 2790 completed (commit https://github.com/karma-runner/karma/commit/a4498cdb01 by @muuvmuuv)

Some tests are locally failing but I really do not know why:
7) Scenario: Completion command help # test/e2e/cli.feature:158
   ✔ Before # test/e2e/step_definitions/hooks.js:3
   ✔ When I execute Karma with arguments: "completion --help" # test/e2e/step_definitions/core_steps.js:57
   ✖ Then the stdout is exactly: # test/e2e/step_definitions/core_steps.js:111
       """
       Karma - Spectacular Test Runner for JavaScript.

       COMPLETION - Bash/ZSH completion for karma.

       Installation:
         karma completion >> ~/.bashrc

       Options:
         --help  Print usage and options.                                     [boolean]
       """
       Error: Expected output to be exactly as above, but got:

       Karma - Spectacular Test Runner for JavaScript.

       COMPLETION - Bash/ZSH completion for karma.

       Installation:
         karma completion >> ~/.bashrc

       Optionen:
         --help  Print usage and options.                                     [boolean]
           at World.<anonymous> (/karma/test/e2e/step_definitions/core_steps.js:118:15)
   ✔ After # test/e2e/step_definitions/hooks.js:7

Test output seems equal.

"Options" vs "Optionen". Maybe related to your locale?

@devoto13 you are right, I have totally overseen that. Anyway to force my locale or tell the tests they should use "en"?

@muuvmuuv Not sure out of my head, but please send a PR if you figure it out. Ideally force tests to use "en".


App shows "you have no recording" while it is still loading

I know even slowing down it is still really fast on the gif, but it was very noticeable for the first time around. I see two things that could be done:

Start with empty_view gone and (maybe) instance the onEmptyViewVisibility later.

Modify the adapter to do it automatically, like I did (https://github.com/bernaferrari/ChangeDetection/blob/master/app/src/main/java/com/bernaferrari/changedetection/ui/RecyclerViewWithEmptyState.kt), inspired on FastHub (https://github.com/k0shk0sh/FastHub/blob/development/app/src/main/java/com/fastaccess/ui/widgets/recyclerview/DynamicRecyclerView.java)

Wow. That was like. Really. Really. Really fast. Thanks!

Since you probably already have the project open, I would like to suggest making the toolbar translucent while scrolling, like Messages. I don't think this deserves its own issue, but if you want I can open it.


Analytics error fallback, fix opt-out

Fixed the analytics opt-out functionality to check if the user has opted out before using Insight library for analytics. Checks if something in the Insight library failed (i.e. on initialization) and if so, trip the no-analytics flag.

I think the lint part is missing in the contribution guide, I need to update it later my bad 🐳

I've learned that I know even less about git through the CLI than I thought... I think I've got everything figured out though, opening another pull request here in a sec with the comments fixed. Thanks for the info, learned some new things about JS today (I still suck at JS, but hey, learning is fun lol)


feedback json em

hello, I am using ec-50 together with streamdeck, and there is a nuance, let's say I select destaux and the button in the program lights up blue, and I would like the event master to send a command to the companion so that it changes the color of the button in the companion too. relatively speaking, we need a feedback of json commands so that the companion can listen to what actions are taking place in the program. is it possible to add such functions to this module?

Hi at this moment not. There are some subscribed events possible for the Eventmaster but programming them without an actual machine is hard. I'll keep this open because I need to add some functions to the module, I might be able to look at it.

059801

okay ready to help, conduct some tests, I think this will be a good contribution to development, automation

I can make a machine available to you - remote - if it helps.

I do not understand json and scripts, but I roughly understand how the connection between event masters and e2 itself occurs, I am ready to allocate time for parsing, and remote access to management (within reason)


[bug] pouch images "" return err

Issue Description
The following CMD should not return error:
pouch images ""

Describe what happened:
#pouch images ""
Error: unknown command "" for "pouch images"
unknown command "" for "pouch images"

Describe what you expected to happen:
How to reproduce it (as minimally and precisely as possible):
1.
2.
3.
Anything else we need to know?:
The same issue for CMD: ps ,
Environment:

pouch version (use pouch version):
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

Why pouch images "" should not return error?
Could you add more explanation here? @Letty5411

For example :
#docker images ""
REPOSITORY                                              TAG                            IMAGE ID            CREATED             SIZE
reg.docker.alibaba-inc.com/letty_ll/pouch               test5                          6dfe673c0d83        2 weeks ago         708.2 MB
<none>                                                  <none>                         399fa381f288        2 weeks ago         675.4 MB
reg.docker.alibaba-inc.com/letty_ll/pouch               test                           8faf19a55066        2 weeks ago         737.6 MB

The purpose of the usage is writing a script like follwing:
args=("" "-a" "xxx")

args is NULL is a use scenario.

Hello letty, well I don't think you should use docker's reaction to test other software, because it's a design rather than a contradistinction.
Any quoted arguments should be treated as a single argument to the program, if you modified the arguments I typed, you break the rule.
For example:
➜  /tmp touch
touch: missing file operand
Try 'touch --help' for more information.
➜  /tmp touch ""
touch: cannot touch '': No such file or directory
➜  /tmp ls ""
ls: cannot access '': No such file or directory
➜  /tmp cd ""
➜  /tmp cd
➜  ~
➜  ~

Just as I said, either touch, ls, cd treated the "" as its argument, and returns an error if the program thought the argument is wrong. While the cd is special, it will change the directory to your home if received an empty argument. Both cd "" and docker images "" work "properly" but I considered it as a feature, not a bug.
It's good to add this feature, but I doubt the use scenario you provided, because even docker doesn't support this "scenario":
➜  ~ docker images -a ubuntu
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              ccc7a11d65b1        3 months ago        120MB
➜  ~ docker images "" -a ubuntu
"docker images" requires at most 1 argument(s).
See 'docker images --help'.

Usage:  docker images [OPTIONS] [REPOSITORY[:TAG]]

List images
➜  ~

What's your opinion, @allencloud ?


Enable skipped tests

Also fixes path for integration test configs

let's also remove it from def test_oasst_data_automatic_split(tmp_path):

Will be done in #438 once tests are fixed


links fenced with backticks are not detected

A link such as monospaced are not detected by vscode markdown services and removed during "organize link definitions" source action
[`monospaced`][link1]

[link1]: #someref

Duplicate of #66


Add JniBuildItem to extensions that need JNI

See https://github.com/apache/camel-quarkus/pull/603#discussion_r367375039

Can't we close this one after https://github.com/apache/camel-quarkus/pull/701 ?


slashing aggregator v2

Hey,
This PR is the next attempt to introduce the slashing aggregator "partly"
What does this
It enables the functionality of what to do each severity level instead of specifying strictly based on misbehavior.
It introducing the following:

Slashing module for keeping track of history and slash.
AfterSlashing implementation for Staking
Generic interface ReportSlash and DoSlash
RollingWindow Module

By introducing the traits ReportSlash and DoSlash for a generic interface to slash misbehavior(s) with support of a RollingWindow which will keep the last n sessions of misbehaviors. The number of sessions is determined by the misconduct type.
Additionally, the basic Misconducts kinds are pre-defined in the runtime with a window length as input which needs to be initialized by the concrete misconduct such as BabeEquivocation. So, for example, GrandpaEquivocation may need a different window than BabeEquivocation and so on.
However, it is assumed that the window_length and base_severity is static for the concrete misconduct. I have two different macros for them but they are basically the same with different function names because I think it will be easier to use and you might not need both,
See the example use-case below which is probably easier to understand
What is missing

Misbehavior reporting
Misbehavior implementations (such as BabeEquivocation, Unresponsiveness and similar)
Rewarding

Example use-case
See test implementation in substrate/srml/staking/src/slash.rs

In the example, it should be
type FullId<T, K> = <<T as Trait>::KeyOwner as KeyOwnerProofSystem<(KeyTypeId, K)>>::FullIdentification;

let footprint = (b"babe_equivocation", &proof.author, equivocated_slot).using_encoded(|s| T::Hashing::hash_of(s));

This will give you the hash of the encoding of the byte slice/Vec that is the encoding of s. i.e. it'll be double encoded because hash_of already encodes implicitly.
Instead it should just be:
let footprint = T::Hashing::hash_of((b"babe_equivocation", &proof.author, equivocated_slot));

@rphmeier this looking ok to you?

this code doesn't seem to do the slashing; presumably that must be added in a later PR?
also, i don't see any way that you'd be able to ensure that different (though compounding) slashes over a window end up being all for the same amount. is it assumed that the slashes would only happen at the end of a session? where would the disabling happen? don't we need a central slashing aggregator to extensibly have these sort of events? indeed, this PR seems pretty light on logic overall.

yeah - this looks rather incomplete for its title and description.

this code doesn't seem to do the slashing; presumably that must be added in a later PR?

slashing is performed by srml_staking::StakingSlasher in this PR but it is not really used because we are missing Reporting (Consensus mod) and ReportSlash (actual misconduct implmentations)

also, i don't see any way that you'd be able to ensure that different (though compounding) slashes over a window end up being all for the same amount.

The assumption is that severity is calculated based on misbehaviors in the current window and each one gets slashed according to the severity of their exposure. So it may be a different amount for the punished ones. Is that a problem or am I misunderstanding something?

is it assumed that the slashes would only happen at the end of a session?
Not necessarily but I guess it would common because we want to reward misbehavior reporters and that is done at the end of a session AFAIU

where would the disabling happen? don't we need a central slashing aggregator to extensibly have these sort of events? indeed, this PR seems pretty light on logic overall.

Yes, basically based on the slashing we need to estimate misconduct level and apply appropriate action such as disable the validator, kick out the validator from the next NPoS election and so on. I wrote a bit about it in the PR description to follow up

So it may be a different amount for the punished ones. Is that a problem or am I misunderstanding something?

yeah this is an issue, i think. the order of reports coming in shouldn't result in different punishments. each additional slash should raise the slash of the previously slashed guys to the same level as the newly slashed guy.

Yes, ideally for things we want to slash more with correlation, later reports against other validators should cause earlier reported validators who committed the same fault to be slashed more.
Ideally for multiple slashable faults occuring at the same time, a validator should be slashed the maximum amount, not the sum, and this should hold whenever the reports arrive.
If either of these is hard to implement, we can relax them a bit, especially for historical slashing. But for the first, we really don't want validators to be able to frontrun their own misbehaviour reports to get off lightly.
But @AlfonsoCev , who designed the latest spec might have other opinions.

Yes, ideally for things we want to slash more with correlation, later reports against other validators should cause earlier reported validators who committed the same fault to be slashed more.

Ok, makes sense. I think that doesn't need to be handled by the rolling window.  Instead, the slashing or reporting need to have a list with the previously slashed validators for a certain kind which have to be iterated over and apply slash iff the severity was lower than the current. (might be a poor abstraction if the slasher needs to know about the kind)

Ideally for multiple slashable faults occuring at the same time, a validator should be slashed the maximum amount, not the sum, and this should hold whenever the reports arrive.

Ok, multiple faults may be different kinds right? I mean we will have different reporters for different kinds and might need some coordination then.

I see that you added quite a few more things. Is it ready for another round of reviews? something missing?

@marcio-diaz it is close, will probably be reviewable tomorrow

it's looking better, however there's still a structural issue with that fat enum which expects you to manually enumerate all possible offences. instead, just restrict offences to types that implement a trait to an associated type of the configuration trait. the offence trait can include an ID and window size as well as a function to determine how much the slash should be.

Thanks Gav
However, I'm not sure that fn slash_amount(offender_count: u32, balance: u32) -> Self::Balance is what we want because it would require us to have an API to retrieve the entire slashing history for a certain kind (currently handled by slash mod) and ReportSlash would need the concrete type of the slashing victim and its exposure.
Thus, ReportSlash impl would be more complex and I have tried to keep it as simple as possible so far(i.e, just pass data and call some functions)
Well, I can try to implement it and so it how goes...