text:
plugin installed via sidecar not working

I installed argocd-vault-plugin via sidecar, and I could generated the secret directly through the avp container in argocd-repo-server pod, but the same secret can't be injected automaticlly when creating it by argocd application. Following is my steps:

I have already prepared the approle and secret in vault, and created the secret named vault-configuration to save the avp configurations.
Log into the avp container:
k exec -it argocd-repo-server-cf6d987f4-d47hs -c avp -- sh
Created the secret.yaml:

kind: Secret
apiVersion: v1
metadata:
  name: example-secret
  annotations:
    avp.kubernetes.io/path: "kv/data/poc/argocd/example-secret"
type: Opaque
stringData:
  password: <example-secret>

Ran argocd-vault-plugin directly, and I got the correct password!

sh-4.4$ argocd-vault-plugin generate secret.yaml -s vault-configuration
(0x2954920,0xc000c864f0)apiVersion: v1
kind: Secret
metadata:
  annotations:
    avp.kubernetes.io/path: kv/data/poc/argocd/example-secret
  name: example-secret
stringData:
  password: test
type: Opaque
---

So I think the vault-configuration is correct.
However the plugin was not working when creating argocd application.
Following is the application manifest:
kind: Application
metadata:
  name: test-nginx
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    repoURL: 'xxxxxx'
    targetRevision: HEAD
    path: testapp

And in the testapp directory, I put the same secret.yaml. After applied, I checked the generated secret, the vaule still . I don't know how to find the cause.
Following is configmap for ConfigManagementPlugin:
apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cmp-plugin
data:
  avp.yaml: |
    apiVersion: argoproj.io/v1alpha1
    kind: ConfigManagementPlugin
    metadata:
      name: argocd-vault-plugin
    spec:
      allowConcurrency: true
      discover:
        find:
          command:
            - sh
            - "-c"
            - "find . -name '*.yaml' | xargs -I {} grep \"<path\\|avp\\.kubernetes\\.io\" {} | grep ."
      generate:
        command:
          - argocd-vault-plugin
          - generate
          - "-s"
          - "vault-configuration"
          - "."
      lockRepo: false
  avp-helm.yaml: |
    ---
    apiVersion: argoproj.io/v1alpha1
    kind: ConfigManagementPlugin
    metadata:
      name: argocd-vault-plugin-helm
    spec:
      allowConcurrency: true
      discover:
        find:
          command:
            - sh
            - "-c"
            - "find . -name 'Chart.yaml' && find . -name 'values.yaml'"
      generate:
        command:
          - bash
          - "-c"
          - |
            helm template $ARGOCD_APP_NAME -n $ARGOCD_APP_NAMESPACE -f <(echo "$ARGOCD_ENV_HELM_VALUES") . |
            argocd-vault-plugin generate - -s vault-configuration
      lockRepo: false
  avp-kustomize.yaml: |
    ---
    apiVersion: argoproj.io/v1alpha1
    kind: ConfigManagementPlugin
    metadata:
      name: argocd-vault-plugin-kustomize
    spec:
      allowConcurrency: true
      discover:
        find:
          command:
            - find
            - "."
            - -name
            - kustomization.yaml
      generate:
        command:
          - sh
          - "-c"
          - "kustomize build . | argocd-vault-plugin generate - -s vault-configuration"
      lockRepo: false

following is the argocd-repo-server patch file:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: argocd-repo-server
spec:
  template:
    spec:
      automountServiceAccountToken: true
      volumes:
        - configMap:
            name: argocd-cmp-plugin
          name: argocd-cmp-plugin
        - name: custom-tools
          emptyDir: { }
      initContainers:
        - name: download-tools
          image: registry.access.redhat.com/ubi8
          securityContext:
            allowPrivilegeEscalation: false
          env:
            - name: AVP_VERSION
              value: 1.11.0
          command: [ sh, -c ]
          args:
            - >-
              cd custom-tools &&
              curl -L https://github.com/argoproj-labs/argocd-vault-plugin/releases/download/v$(AVP_VERSION)/argocd-vault-plugin_$(AVP_VERSION)_linux_amd64 -o argocd-vault-plugin &&
              chmod +x argocd-vault-plugin
          volumeMounts:
            - mountPath: /custom-tools
              name: custom-tools
      containers:
        - name: avp
          command: [ /var/run/argocd/argocd-cmp-server ]
          image: registry.access.redhat.com/ubi8
          securityContext:
            allowPrivilegeEscalation: false
            runAsNonRoot: true
            runAsUser: 999
          volumeMounts:
            - mountPath: /var/run/argocd
              name: var-files
            - mountPath: /home/argocd/cmp-server/plugins
              name: plugins
            - mountPath: /tmp
              name: tmp

            # Register plugins into sidecar
            - mountPath: /home/argocd/cmp-server/config/plugin.yaml
              subPath: avp.yaml
              name: argocd-cmp-plugin

            # Important: Mount tools into $PATH
            - name: custom-tools
              subPath: argocd-vault-plugin
              mountPath: /usr/local/bin/argocd-vault-plugin
        - name: avp-helm
          command: [ /var/run/argocd/argocd-cmp-server ]
          image: registry.access.redhat.com/ubi8
          securityContext:
            allowPrivilegeEscalation: false
            runAsNonRoot: true
            runAsUser: 999
          volumeMounts:
            - mountPath: /var/run/argocd
              name: var-files
            - mountPath: /home/argocd/cmp-server/plugins
              name: plugins
            - mountPath: /tmp
              name: tmp

            # Register plugins into sidecar
            - mountPath: /home/argocd/cmp-server/config/plugin.yaml
              subPath: avp-helm.yaml
              name: argocd-cmp-plugin

            # Important: Mount tools into $PATH
            - name: custom-tools
              subPath: argocd-vault-plugin
              mountPath: /usr/local/bin/argocd-vault-plugin
        - name: avp-kustomize
          command: [ /var/run/argocd/argocd-cmp-server ]
          image: registry.access.redhat.com/ubi8
          securityContext:
            allowPrivilegeEscalation: false
            runAsNonRoot: true
            runAsUser: 999
          volumeMounts:
            - mountPath: /var/run/argocd
              name: var-files
            - mountPath: /home/argocd/cmp-server/plugins
              name: plugins
            - mountPath: /tmp
              name: tmp

            # Register plugins into sidecar
            - mountPath: /home/argocd/cmp-server/config/plugin.yaml
              subPath: avp-kustomize.yaml
              name: argocd-cmp-plugin

            # Important: Mount tools into $PATH
            - name: custom-tools
              subPath: argocd-vault-plugin
              mountPath: /usr/local/bin/argocd-vault-plugin

@jkayani Hi Josh, I think you are a expert of the plugin, could you please help me?

Try updating your App manifest with plugin: {} like the following:
kind: Application
metadata:
  name: test-app
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    repoURL: 'xxxxxx'
    targetRevision: HEAD
    path: testapp
    plugin: {}

Try updating your App manifest with plugin: {} like the following:
kind: Application
metadata:
  name: test-app
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    repoURL: 'xxxxxx'
    targetRevision: HEAD
    path: testapp
    plugin: {}

Also are you getting a specific error message when trying to sync?

@BMonsalvatge Hi Bryan, thanks for your suggestion. I didn't get any error when trying to sync. I added plugin: {} just now and yes, things became different, the plugin ran. However I got an error. I was confused, I obversely checked the installation documents several times, it said that with sidecar installation,  # No need to define plugin since Argo CD will figure it out!

Mind sharing the new error?

Mind sharing the new error?

couldn't find cmp-server plugin supporting repository
But I have executed the find command in the testapp directory, I can got the expected result.
/testapp$ find . -name '*.yaml' | xargs -I {} grep "<path\\|avp\\.kubernetes\\.io" {} | grep .
    avp.kubernetes.io/path: "kv/data/poc/argocd/example-secret"

And yesterday, I installed the plugin using argocd-cm configmap instead, everything worked well.

When using the sidecar method the plugin doesn't show up in the GUI as well.

When using the sidecar method the plugin doesn't show up in the GUI as well.

@Tizull When using the sidecar method, the plugin does not show up in the GUI, which is expected behavior. Because argocd should identify the correct plugin by itself, instead of manually selecting plugins for the application.
I think the sidecar method behaves like this:
When the discover.find.command defined by sidecar is executed, and the file can be returned, this plugin will be applied.

Mind sharing the new error?

couldn't find cmp-server plugin supporting repository But I have executed the find command in the testapp directory, I can got the expected result.
/testapp$ find . -name '*.yaml' | xargs -I {} grep "<path\\|avp\\.kubernetes\\.io" {} | grep .
    avp.kubernetes.io/path: "kv/data/poc/argocd/example-secret"

And yesterday, I installed the plugin using argocd-cm configmap instead, everything worked well.

I am facing the same error currently and since running plugins via argocdm-cm is no longer supported i want to use the sidecar method. Did you stick with the argocd-cm method or have you discovered the problem with the sidecar approach?

authors: BMonsalvatge Tizull cschlesselmann lixiaomei-git

repo: argoproj-labs/argocd-vault-plugin


text:
Suggestion: Improved support for Workflow Templates

Currently it can be fairly verbose to use WorkflowTemplates, can we somehow make it easier to use them such that we get type completion for inputs/outputs a workflow template expects.
We could also potentially investigate auto generating template code from templates already in the cluster.

The template auto generation can potentially be exposed as a CLI that looks like the following -
hera generate template <template-name> [--namespace <namespace] [--cluster-template]

fairly verbose to use WorkflowTemplates

Thank you for bringing this up! Do you mind describing a bit more of what makes usage challenging?

type completion for inputs/outputs a workflow template expects

Sounds very interesting! Does this mean something like auto-completion on the fields that a user needs to supply to templates?

The template auto generation can potentially be exposed as a CLI that looks like the following -

Again, very interesting 🚀 would the --namespace be autogenerated by the CLI and showcased to the user as the field that is missing?

I'm not opposed to the idea, but I feel like this is just sugar which requires integrations and a CLI we currently haven't planned for.
I think the first natural step would be to be able to create I/O interfaces for templates in general, and then the next step could perhaps include auto-generations from the cluster. But landing on a good system for I/O interfaces might take some time!

source: gharchive/issue

authors: Trollgeir flaviuvadan samj1912

repo: argoproj-labs/hera-workflows

license_type: permissive

license_source: github-api


text:
When configuring input.artifact  pull from S3 in init container, the first pull failed due to network reasons. The following 5 retries were reported that  fileName is a directory.i think it is  when calling minioClient's FGetObject method because the TMP folder already existed locally.

Summary
When configuring input.artifact  pull from S3 in init container, the first pull failed due to network reasons. The following 5 retries were reported that  fileName is a directory.i think it is  when calling minioClient's FGetObject method because the TMP folder already existed locally.
What happened/what you expected to happen?
Subsequent retries succeed after the first failure
What version of Argo Workflows are you running?
argo-workflow:3.0.1
Diagnostics
What Kubernetes provider are you using?
v1.21.2
What executor are you running? Docker/K8SAPI/Kubelet/PNS/Emissary
Kubelet
# Logs from the init container:

time="2021-11-26T09:49:47.294Z" level=info msg="Start loading input artifacts..."
time="2021-11-26T09:49:47.294Z" level=info msg="Downloading artifact: devops-codecompile-source-s3"

time="2021-11-26T09:49:47.294Z" level=info msg="S3 Load path: /argo/inputs/artifacts/devops-codecompile-source-s3.tmp, key: hello/world/src/code"
time="2021-11-26T09:49:47.294Z" level=info msg="Creating minio client minio:9000 using static credentials"
time="2021-11-26T09:49:47.295Z" level=info msg="Getting from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/code) to /arg
o/inputs/artifacts/devops-codecompile-source-s3.tmp"
time="2021-11-26T09:49:47.312Z" level=info msg="Getting directory from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/cod
e) to /argo/inputs/artifacts/devops-codecompile-source-s3.tmp"
time="2021-11-26T09:49:47.312Z" level=info msg="Listing directory from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/cod
e)"
time="2021-11-26T09:49:54.980Z" level=warning msg="Failed get directory: read tcp 172.40.165.83:55948->10.48.196.248:9000: read: connection reset by peer"

time="2021-11-26T09:49:57.065Z" level=info msg="S3 Load path: /argo/inputs/artifacts/devops-codecompile-source-s3.tmp, key: hello/world/src/code"
time="2021-11-26T09:49:57.065Z" level=info msg="Creating minio client minio:9000 using static credentials"
time="2021-11-26T09:49:57.065Z" level=info msg="Getting from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/code) to /arg
o/inputs/artifacts/devops-codecompile-source-s3.tmp"
time="2021-11-26T09:49:57.065Z" level=warning msg="Failed get file: fileName is a directory."

time="2021-11-26T09:50:01.340Z" level=info msg="S3 Load path: /argo/inputs/artifacts/devops-codecompile-source-s3.tmp, key: hello/world/src/code"
time="2021-11-26T09:50:01.340Z" level=info msg="Creating minio client minio:9000 using static credentials"
time="2021-11-26T09:50:01.340Z" level=info msg="Getting from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/code) to /arg
o/inputs/artifacts/devops-codecompile-source-s3.tmp"
time="2021-11-26T09:50:01.341Z" level=warning msg="Failed get file: fileName is a directory."

time="2021-11-26T09:50:09.393Z" level=info msg="S3 Load path: /argo/inputs/artifacts/devops-codecompile-source-s3.tmp, key: hello/world/src/code"
time="2021-11-26T09:50:09.393Z" level=info msg="Creating minio client minio:9000 using static credentials"
time="2021-11-26T09:50:09.393Z" level=info msg="Getting from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/code) to /arg
o/inputs/artifacts/devops-codecompile-source-s3.tmp"
time="2021-11-26T09:50:09.394Z" level=warning msg="Failed get file: fileName is a directory."

time="2021-11-26T09:50:25.644Z" level=info msg="S3 Load path: /argo/inputs/artifacts/devops-codecompile-source-s3.tmp, key: hello/world/src/code"
time="2021-11-26T09:50:25.644Z" level=info msg="Creating minio client minio:9000 using static credentials"
time="2021-11-26T09:50:25.644Z" level=info msg="Getting from s3 (endpoint: minio:9000, bucket: devops, key: hello/world/src/code) to /arg
o/inputs/artifacts/devops-codecompile-source-s3.tmp"
time="2021-11-26T09:50:25.644Z" level=warning msg="Failed get file: fileName is a directory."

time="2021-11-26T09:50:25.644Z" level=error msg="executor error: timed out waiting for the condition"
time="2021-11-26T09:50:25.645Z" level=info msg="Alloc=7046 TotalAlloc=24068 Sys=74321 NumGC=8 Goroutines=3"
time="2021-11-26T09:50:25.645Z" level=fatal msg="timed out waiting for the condition"

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@zcerhub can you provide your use-case and minio version? Is minio object get updated during the workflow execution?

I note you're running an old unsupported version. Have you tried in v3.2?

@zcerhub can you provide your use-case and minio version? Is minio object get updated during the workflow execution?

thank you for reply.
1)my minio version is minio RELEASE.2021-07-12T02-44-53Z.
2)for example: there are two tasks:codecheckout task and codecompile task.In the codecompile,the inputs.artifacts.s3'key is from codecheckout's outputs.artifacts.s3.key. the following is the my yaml:
- name: codecheckout-task
  inputs:
    parameters:
      - name: work-dir
        value: "/src/code"
      - name: workflow-instance-id
        value: "124312431313273"
      - name: current-task-name
        value: "checkoutcode-task"
  container:
    image: biyi/git-devops:1.0.0
    imagePullPolicy: IfNotPresent
    command: [ "bash","-c" ]
    args: [""]
  outputs:
    artifacts:
      - name: devops-codecheckout
        path: '{{inputs.parameters.work-dir}}'
        archive:
          none: { }
        s3:
          endpoint: minio.biyi:9000
          insecure: true
          bucket: devops-artifacts
          key: '{{inputs.parameters.workflow-instance-id}}/{{inputs.parameters.current-task-name}}{{inputs.parameters.work-dir}}'
          accessKeySecret:
            name: minio-secret
            key: accessKey
          secretKeySecret:
            name: minio-secret
            key: secretKey
    parameters:
      - name: code-minio-path
        value: "{{inputs.parameters.workflow-instance-id}}/{{inputs.parameters.current-task-name}}{{inputs.parameters.work-dir}}"
        globalName: 'code-minio-path'

- name: codecompile-task
  inputs:
    parameters:
      - name: work-dir
        value: "/src/code"
      - name: current-task-name
        value: "compilecode-task"
    artifacts:
      - name: devops-codecompile-source-s3
        path: '{{inputs.parameters.work-dir}}'
        s3:
          endpoint: minio.biyi:9000
          bucket: devops-artifacts
          insecure: true
          key: '{{workflow.outputs.parameters.code-minio-path}}'
          accessKeySecret:
            name: minio-secret
            key: accessKey
          secretKeySecret:
            name: minio-secret
            key: secretKey
  container:
    image: biyi/jdk8-maven311-devops:2.0.1
    imagePullPolicy: IfNotPresent
    command: [ bash,-c ]
    args: [""]

I note you're running an old unsupported version. Have you tried in v3.2?

thank you for reply.yes, the version is some elder.i am sorry for that it's hard to upgrade because of much of relevant testing.i search in issue lists but not find the same bug issue as me.in https://github.com/argoproj/argo-workflows/blob/master/docs/upgrading.md,i hasn't found message like my question.

I note you're running an old unsupported version. Have you tried in v3.2?

thank you for reply.yes, the version is some elder.i am sorry for that it's hard to upgrade because of much of relevant testing.i search in issue lists but not find the same bug issue as me.in https://github.com/argoproj/argo-workflows/blob/master/docs/upgrading.md,i hasn't found message like my question.

i search the code and notice that the argo use minioClienet.FGetObjects pull objects from minio.

i also view the source of minioClienet.FGetObjects.

obviously,the hint of my bugs is from go-sdk of minioclinet.the reason is the filepath is dir.

Latest 3.2.4 will have minio client update too. Please try the same scenario on v3.2.4

authors: alexec sarabala1979 zcerhub

repo: argoproj/argo-workflows


text:
Multiple workflow-controller support in a single cluster

A user may run multiple controllers for different purposes (e.g. a controller per namespace, or controller per application). The workflow-controller configmap supports this via label selectors. Currently these labels are not propagated to the created pods so this functionality will not yet work.

Correction: we already support namespaced controllers. To configure a controller to only operate on workflows in a particular namespace, edit the configmap and add a namespace field to the config:
$ kubectl edit cm workflow-controller-configmap -n kube-system
...
...
  config: |
    namespace: default
    executorImage: argoproj/argoexec:2.0.0-alpha2
...

Then restart the controller for the new watch to take effect:
$ kubectl delete pod -n kube-system -l app=workflow-controller

Operating workflows by labels will not work yet because of the propagation issue that I mentioned in the first comment.

repo: argoproj/argo


text:
🛑 ideasoft test site is down

In d3f4e0d, ideasoft test site (https://ops.ideasoft.dev) was down:

HTTP code: 0
Response time: 0 ms

Resolved: ideasoft test site is back up in 312b958.

repo: aribatturan/hcdev

license: MIT


text:
Birthday list

The dataset that we are using has the date of birth field. Using this data, we can display the victims having birthdays on today's date.

Interesting, I'll what I can do. Elixir is new to me.

Interesting, I'll see what I can do. Elixir is new to me.

Thanks, mas! Let me know if you face any trouble running the web server.
Btw, Elixir is also new to me, so please not be surprised with how I wrote the code 😅

I think I misunderstood what you wanted earlier.
Could you please elaborate on what you want? Is it to have a separate list on the victims that should have a birthday today?
I merely assume you wanted to display the victim's age, that's why I created this pr.

My initial intention was to have a separate UI component that lists victims having birthdays on a given date. Think of it like Facebook's Friends Birthdays. This is one way that I think can help us preserve their lives and memories, by celebrating their birthday.
I'm still not sure about the copywriting here, what I have right now is something like this:

{Martyr name} would be XX years old today. Remember him/her.

As for your PR, I've seen it and I would like to merge it because it aligns with the UI design in Figma where it displays the age of the victims. Cc: @randyvarianda

authors: AsadSaleh ariefrahmansyah

repo: ariefrahmansyah/remembergaza


text:
🛑 Git is down

In 8155509, Git ($GITLAB) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Git is back up in 08bda08 after 7 minutes.

repo: arillo/upptime


text:
🛑 guide.unibz.it is down

In 9d3c36e, guide.unibz.it (https://guide.unibz.it/health/check) was down:

HTTP code: 502
Response time: 8832 ms

Resolved: guide.unibz.it is back up in c8296d3 after 9 minutes.


text:
L2 vlans marked with a tag are not imported

Issue Summary
When tagging some SVIs and l2vlans with a tag in the tenant file:
          svis:
            255:
              name: V255-T-UTIL-IDMZ-APP_UTIL_OPER
              enabled: true
              tags: [ VH_UTIL_IDMZ ]

      l2vlans:
        55:
          name: V55-T-UTIL-IDMZ-Back-FW-to-VPN
          tags: VH_UTIL_IDMZ

With the same tag, vlan 255 gets imported, but not vlan 55.
After removing the filter tags, both get imported in the configuration. Could you please check?
Which component(s) of AVD impacted
eos_cli_config_gen
How do you run AVD ?
Ansible CLI (with virtual-env or native python)
Steps to reproduce
Tag l2vlans and filter based on the tags.

Relevant log output
No response
Contributing Guide

[X] I agree to follow this project's Code of Conduct

I think the tags is a list.
l2vlans:
55:
name: V55-T-UTIL-IDMZ-Back-FW-to-VPN
tags: [VH_UTIL_IDMZ]
reference: https://avd.sh/en/releases-v3.x.x/docs/how-to/first-project.html#l2-services

absolutely my script missed to output that in the l2 case. thanks for the second pair of eyes!

repo: aristanetworks/ansible-avd


text:
Best way to unit test VM's that call UserDialogs.Instance?

Winphone 8 is not supported
Please refrain from +1's, nuget library update requests (this is not an issue with the library), and requesting timelines for something.  Please also make sure you have read the FAQ section on the README

Please check all of the platforms you are having the issue on

[] iOS
[x] Android
[] UWP
[x] PCL

Please state the issue to the best of your ability below
This is more of a question than a problem: is there a good "best practice" for unit testing viewmodels that call UserDialogs.Instance.xxx? There doesn't seem to be a good unit-testing practice when Xamarin.Forms is in the picture, but it has to be if we call UserDialogs from our viewmodels.

Please copy and paste the exception details below.  If you are having a crash and this detail is missing, your issue will be closed without warning.

You should never use UserDialogs.Instance in your app period other than when registering it will an ioc container.  I inject IUserDialogs into every viewmodel I use it in.  From there, I can use mocks.
However, there is nothing to stop you from mocking IUserDialogs and setting that on userdialogs.instance for each test

Perfect.  Thanks.  We'll do some refactoring around the IUserDialogs.  We're already using ninject in the project.  Follow-on question: what do you actually bind to IUserDialogs? Do you use a method injection to return UserDialogs.Instance?

UserDialogs.Instance is a get/set.
var mock = new Mock();
... setup what methods you want to mock on IUserDialogs if any
UserDialogs.Instance = mock.Object;

trying to use Moq with IUserDialogs and my test runner in VSTS chokes because it can't find Mono.Android.dll. I am only referencing the portable version of Acr.UserDialogs.Interface.dll in my unit test project and all my tests run successfully in Xamarin Studio. Any ideas?

If you need UserDialogs.Instance in your unit tests, you will also have to include the PCL version of Acr.UserDialogs.dll.  Why android libs are involved is beyond me.  Nothing to do with this library.  In any case, this is now outside of what I'm willing to support.  Best of luck

We're not testing UserDialogs.Instance, just IUserDialogs.  The android stuff is perplexing.  Thanks for your help today.

authors: aritchie mrbelk

repo: aritchie/userdialogs

license: mit

license_source: bigquery


text:
Input delay on wrong pattern

Hi there,
great library!
I want to add a simple time delay to this view so it doesn't accept input for a certain amount of time after the pattern has been input wrong.
Is there an easy way to achieve this?
My current code with missing parts:
Single
  .fromCallable {
      patternLockView
              .setViewMode(PatternLockView.PatternViewMode.WRONG)
      // TODO: disable touch input
  }
  .delay(1, TimeUnit.SECONDS)
  .observeOn(Schedulers.io())
  .subscribeOn(AndroidSchedulers.mainThread())
  .subscribeBy(onSuccess = {
      patternLockView
              .clearPattern()
      // TODO: enable touch input
  })

Ok so I was able to implement it this way (just in case anyone else is interested):
@CallSuper
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super
                .onViewCreated(view, savedInstanceState)

        patternLockView
                .setOnTouchListener { view: View, motionEvent: MotionEvent ->
                    !isTouchable
                }
    }

and where I check the result of the pattern:
private fun checkPattern(pattern: List<PatternLockView.Dot>?) {
        val correctPattern = preferenceHandler
                .getValue(PreferenceHandler.LOCK_PATTERN)
        val patternAsString = patternToSha1(patternLockView, pattern)

        if (patternAsString == correctPattern) {
            Single
                    .fromCallable {
                        patternLockView
                                .setViewMode(PatternLockView.PatternViewMode.CORRECT)
                        isTouchable = false
                    }
                    .bindUntilEvent(this, Lifecycle.Event.ON_PAUSE)
                    .delay(250, TimeUnit.MILLISECONDS)
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribeOn(AndroidSchedulers.mainThread())
                    .subscribeBy(onSuccess = {
                        unlockScreen()
                        patternLockView
                                .clearPattern()
                        isTouchable = true
                    })
        } else {
            Single
                    .fromCallable {
                        patternLockView
                                .setViewMode(PatternLockView.PatternViewMode.WRONG)
                        isTouchable = false
                    }
                    .bindUntilEvent(this, Lifecycle.Event.ON_PAUSE)
                    .delay(1, TimeUnit.SECONDS)
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribeOn(AndroidSchedulers.mainThread())
                    .subscribeBy(onSuccess = {
                        patternLockView
                                .clearPattern()
                        isTouchable = true
                    })
        }
}

repo: aritraroy/PatternLockView


text:
Zoom on Hover

Nice to be able to automatically zoom on hover.
Similar to how amazon does product preview images.
Hover to position, and zoom to 200%

Can be part of #98

authors: bumbu villanus

repo: ariutta/svg-pan-zoom


text:
phantomjs doesn't support html5 video tag

benjamin...@gmail.com commented:

With Phantomjs 1.7.0 binary (on windows or linux)
What steps will reproduce the problem?

try to open a webpage with video tag (http://www.808.dk/?code-html-5-video)
do a render of the webpage (page.render('html5-video.png');
open the png file

What is the expected output? you should see the first image of the video after the HTML 5 video h3 tag.
What do you see instead? it displays alternative text : Video not playing ? ...

Disclaimer:
This issue was migrated on 2013-03-15 from the project's former issue tracker on Google Code, Issue #839.
:star2:   2 people had starred this issue at the time of migration.

PhantomJs 2 Is out, can anyone confirm that this is work in phantomjs 2 ?
I'm using ubuntu. currently, it has no binary support  for ubuntu.

Nope, still doesn't work in PhantomJS2.
@ariya, do you have any thoughts on at least implementing the required interfaces without supporting any codecs?

Is there any update?

During the build, it seems to be looking for certain packages in order to support, or not, videos.

Any news on this?

This feature will not be implemented, likely, in near future.

does it support html5 video tag now?

@listen-lavender not, it doesn't. Please see my answer above.

Would like this to be working though :)

not yet?

Is this why my $('video').attr('src') is undefined?  I can't scrape it.

video element is added but properties of the tags are undefined. I just mimicked the functions play and pause on the video element. It is working now.

@shmdhussain
Can you paste the code?

var videoArray = [];
$("body").find('video').each(function(index, video) {
var videoId = $(video).attr('id').replace("my-video-", "");
videoArray.push({});
video.play = (function() {
var videoIdClosure = videoId;
return function() {
videoArray[videoIdClosure].isPlayed = true;
}
})();
video.pause = (function() {
var videoIdClosure = videoId;
return function() {
videoArray[videoIdClosure].isPaused = true;
}
})();
});

Any hope that PhantomJS will support video? Sometimes we can have elements (buttons, fields and others) over the video tag and we can't get access to elements

I found this ticket a few days ago and was thinking a lot about this issue.
From my opinion it's ok to leave out the full html5 video player support in PhantomJS.
Would it make sence to handle video containers with existing poster attribute as images?
So we could at least see the Poster as in my usecase would be exact the same output as the user get in his browser.
My wanted usecase input

My wanted usecase output (skip full video support, but handle poster url as image source)

What thinks the PhantomJS core team about this?
Regards

Actually, PhantomJS can be built with video and audio tags support. Video and audio tags support depends entirely on WebKit, not on PhantomJS itself. So, all you need to do is to build WebKit with video and audio support enabled. I don't know what happens with its headlessness in this case, but I was able to run my phantomjs in openssh terminal.

I was able to build a PhantomJS with video and audio tags support. Actually, you just need to enable video and audio tags support when building your WebKit.

@umokk how you did it? Can you please tell me step by step?

The media tags (audio and video) support depends entirely on WebKit, not on PhantomJS. So to enable it you have to turn on appropriate features of your WebKit (ENABLE_VIDEO, ENABLE_WEB_AUDIO) when you build it.

Great answer! Could you please give me more details about how to build webkit enabling video on linux?

You may find all the details about configuring WebKit in its config and readme files. They will explain this process way better than I could be it.
I made such a build of phantomjs (with video tag support) for my customer, but unfortunately they didn't buy it. They don't need it any more.

I downloaded the source of webkit from https://github.com/WebKit/webkit , inside it I was reading the radme.md file but it is not clear to me how to behave then to enable the video compiling the source.
Searching in the source file names I can find more of 100 times the word VIDEO.., so huge quantity make me hard to know where to watch.
Here I found enable and disable video: https://github.com/adobe/webkit/blob/master/Source/cmake/OptionsEfl.cmake
Maybe the main problem is that the readme don't tells me where is the config file?
what about if I skip the problem and move on https://slimerjs.org/ ?

Yes, ENABLE_VIDEO and ENABLE_WEB_AUDIO in Options(Elf|GTK).cmake are essential to make Webkit support video and audio tags. So, you turn them on and build WebKit.
I didn't pay much attention to other headless web browsers because my customer used PhantomJS and they wanted this particular headless web browser to be HTML5 compatible.

document.querySelector('video').innerHTML
returns
<source type="video/mp4" src="" />

@matteoraggi,  You succeeded for build phantomjs with video and audio supported ?

@victorhazbun @matteoraggi @SeNaP to build phantomjs with video/audio support:
For building I used Ubuntu 14.04 Vagrant Box

Follow the instruction Getting the Code
Remove build options from buildQtWebKit function in build.py:

Before:
configureOptions = [
    # disable some webkit features we do not need
    "WEBKIT_CONFIG-=build_webkit2",
    "WEBKIT_CONFIG-=netscape_plugin_api",
    "WEBKIT_CONFIG-=use_gstreamer",
    "WEBKIT_CONFIG-=use_gstreamer010",
    "WEBKIT_CONFIG-=use_native_fullscreen_video",
    "WEBKIT_CONFIG-=video",
    "WEBKIT_CONFIG-=web_audio",
]

After:
configureOptions = [
    # disable some webkit features we do not need
    "WEBKIT_CONFIG-=build_webkit2",
    "WEBKIT_CONFIG-=netscape_plugin_api"
 ]

Follow the instruction Compile and Link to build phantomjs

@DroneZzZko thanks! Now my build phantomjs supports video & audio ( tested on a htm5test.com site ) , but i can't play video or audio through HTML5 player. Your it can?

authors: DroneZzZko Musikar RebOOter Rimander SeNaP Vitallium andyearnshaw ariya bekicot jahrock joelhandwell listen-lavender matteoraggi orporan orsonteodoro shmdhussain steverob umokk victorhazbun wernight

repo: ariya/phantomjs


text:
IfW のもうつかわないだろう，というファイルを消す

詳細

[ ] https://github.com/arkedge/c2a-core/blob/develop/IfWrapper/aa.h
[ ] https://github.com/arkedge/c2a-core/blob/develop/IfWrapper/dc.h

使われてしまってるので，GPIOにしていく作業をきちんとやる必要あり

[ ] https://github.com/arkedge/c2a-core/blob/develop/IfWrapper/pa.h
[ ] https://github.com/arkedge/c2a-core/blob/develop/IfWrapper/spwire.h

使う可能性ありそうだけどサポートめんどいので一旦消して良さそう

close条件
けしたら

DC については v4 で消す．理由は以下．

名前が伝わらなさすぎる
既に使われてしまってはいるが，一部の C2A user に限られている

また，それ以外の C2A user では独自に GPIO のインターフェース定義が行われている
↑ こちらの方が DriverSuper に乗っていない素直な実装なので，c2a-core に置くとしたらこれに置き換えたい

これを一旦 c2a-core に残してリファクタするよりも，一度消してやり直す方が整理として適切

GPIO は DriverSuper の仕組みに乗っているべきではないので，段階的な移行を試みてもほぼ書き換えにしかならない
当然 breaking change になるが，使っている C2A user も一旦ヘッダを user 側に置けば延命可能

authors: meltingrabbit sksat


text:
Fix missing system rename

概要
#54 での rename 漏れがあったので修正
Issue / PR

#10
#54

詳細
see diff
検証結果
CI が通ればよし
影響範囲
c2a-core 内の使われていないコードと docs

rebase

source: gharchive/pull-request


text:
No Popup in CK Editor

We are using the commercial EasyRedmine extensions and HTML which seems to be based on CKEditor as well.
When typing @ there is no popup with the user names.
Could this be fixed?
We might be able to sponsor the fixing of this issue.

This is actually almost working:
https://github.com/yuku-t/jquery-textcomplete/issues/90
https://github.com/soxhub/jquery-textcomplete/commit/89729d4a5cfc0046d5c18290c9498e2fd38799dd

I changed the invocation to this: https://github.com/arkhitech/redmine_mentions/blob/master/app/views/hooks/redmine_mentions/_edit_mentionable.html.erb#L14
But actually I called this manually because initially it did not work. I guess I would have to call it after the CKEditor initialization
But when I type now something like @foo and press Tab, I end up in @foo o.
Also I get the error
Uncaught TypeError: Cannot read property 'clientTop' of undefinedCKEDITOR.tools.extend.getDocumentPosition @ ckeditor.js:104U @ ckeditor.js:975r @ ckeditor.js:977v.mouseNear @ ckeditor.js:964(anonymous function) @ ckeditor.js:981

I was able to fix the "clientTop" error by removing the .overlay() call on the CKEditor

my current version - but still problems with completion
https://github.com/arkhitech/redmine_mentions/compare/master...iMi-digital:fix-37-ck-editor?expand=1

will try to plan development over this in 2-3 week's. Doesn't look possible to invest time at this time.

@hishammalik that sounds good. Did you have a look at my changes? The patch for redmine_mentions seems to work quite well. With the jquery.textcomplete the problem seems to be that keydowns are not properly catched. Are you planning to fix this in jquery.textcomplete?

@hishammalik Sorry to bother you. Can you give me feedback what is the plan? In case we can support you with anything ...

@hishammalik Would appreciate a short feedback, what is the plan with this issue - is it about the javascript fixing?

I will have a look at it again now ...

O. I will tested it later. Thanks. @amenk

I tried to reproduce the issue without redmine, just the CK editor and textcomplete https://github.com/soxhub/jquery-textcomplete/commit/89729d4a5cfc0046d5c18290c9498e2fd38799dd - this actually works well .. have to dig further - might be an issue of the redmine specific config

I got it working also in redmine using the latest CK editor and the just mentioned patch. Will you merge it from @soxhub?

Current Problem: It is not working with the CKEditor "tabs" Plugin which is used in EasyRedmine - so will try another approach.

authors: amenk archonwang hishammalik


text:
Inconsistent output of Poseidon CRH between native and constraints

I was helping @mfaghihi debugging the code, and found that the native code and constraints of Poseidon CRH in crypto-primitives seem to return different results.
Here are the tests I wrote: https://github.com/tsunrise/Poseidon/blob/debug/src/test.rs (the test failed)
Is there a bug in the Poseidon CRH implementations, or the Poseidon parameter is not correct?
(Could someone add unit tests for the CRH implementations if they have time? Thanks)
(btw, @mfaghihi 's implementation is using 0.2 release, but I have not changed the implementation of Poseidon CRH since then so I'd assume same problem will happen in 0.3 release)
cc: @drewstone @weikengchen

Let me first refer @mfaghihi to the ark-sponge implementation of the Poseidon hash function, which I think would also do the work for his project.
I would not have time this time to do a pass this week. But the Poseidon CRH has not been extensively tested.
At this moment, I think instead of adding more unit tests to Poseidon CRH, we may better just reconcile Poseidon CRH with the ark-sponge implementations.
Later, we may need to refactor the TwoToOneCRH trait again. The current TwoToOneCRH requires left and right to be [u8], but it is much better if TwoToOneCRH requires the left and right to be TwoToOneCRH::Output as well.

make sense to me 🆗

The current Poseidon CRH implementation has a few nice works that reduce the SBOX cost for common alpha. Our ark-sponge currently uses the generic pow_by_constant.
Later we may go back to this. pow_by_constant could be improved via finding the NAF of the number. There are many works ahead to bring ark-sponge in without losing the efficiency of a specialized implementation.

Let me first refer @mfaghihi to the ark-sponge implementation of the Poseidon hash function, which I think would also do the work for his project.
I would not have time to do a pass this week. But the Poseidon CRH has not been extensively tested.
At this moment, I think instead of adding more unit tests to Poseidon CRH, we may better just reconcile Poseidon CRH with the ark-sponge implementations.
Later, we may need to refactor the TwoToOneCRH trait again. The current TwoToOneCRH requires left and right to be [u8], but it is much better if TwoToOneCRH requires the left and right to be TwoToOneCRH::Output as well.

Thank you!
I was going to use the  ark-sponge implementation sine it may be enough for my task. Using permutation-based Poseidon is interesting to do and may be more efficient for some applications

I suppose this may also be fixed in the current PR open for updating the Poseidon implementation.

authors: drewstone mfaghihi tsunrise weikengchen

repo: arkworks-rs/crypto-primitives


text:
Add Proof of Work

Description

Add Cryptographic hash function trait, and proof of work.
closes: #74
blocking: arkworks-rs/bcs#2 (currently is a private repo)

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[x] Wrote unit tests
[x] Updated relevant documentation in the code
[x] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer

For the record, in nimue we do have excellent PoW support from Remco and Giacomo.

authors: mmaker tsunrise


text:
Synchronize with ark-algebra

Description
I am trying to resolve some of the circular dependencies challenges, and this is one of the steps.
We fix the non-R1CS part first. Then, after r1cs-std and its long line of dependencies are stable, we do the R1CS part.

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[x] Re-reviewed Files changed in the Github PR explorer

N/A:

[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md

:) just realized that merge requires all the tests to pass -> let us wait for a few PRs to be stable before moving forward, otherwise our patches.io will need to resort to small branches.

This PR now contains all changes needed for the PR to pass, though it relies on a few branches of pending PRs in other repos.


text:
merge package from arlac77/npm-package-template

package.json

chore(package): documentation@^11.0.0
chore(scripts): cover@#overwrite c8 --temp-directory build/tmp ava && c8 report -r lcov -o build/coverage --temp-directory build/tmp
chore(package): add main from template
chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template
chore(package): remove unknown value for main ({{main}})

.travis.yml

chore(travis): remove node versions 12.1.0
chore(travis): add node versions -10,-11,-12,12.2.0

Pull Request Test Coverage Report for Build 1438

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.065%

Totals

Change from base Build 1435:
0.0%

Covered Lines:
289

Relevant Lines:
290

💛  - Coveralls


text:
Please update to version 0.23.0

... thanks in advance!

@christian-schlichtherle thanks for raising this, updated to the latest version.

Awesome - thanks!


text:
StickyTable header flickering on Scroll in Firefox 62.0 (32-bit)

@armaaar Replaced with the latest css and js and also cleared the cache before checking but still facing issue while scrolling in Mozilla (Firefox version 62) and 32 bits Window 8.
PLEASE TAKE A NOTE:  Working fine in Linux Mozilla (Firefox version 43).
Here is the small video of not working demo, Please have look on it:
(url https://www.screencast.com/t/gjLCe87gQr)
Please Find JS and CSS attach in zip file which we have used in the demo.
Used-css-js.zip

Sorry for late reply
those are not the latest js and css files.
please use there files instead
sticky.zip
inform me if your issue is resolved

Tested for Firefox version 62 and works fine.

Thanks for your reply,
Is it working in Edge and IE11 in your?
Coz its still having same issue with me.

@armaaar I already created new issue with named "Sticky Table Reload in EDGE While Inspecting the content in table", I have also provided video for that.

repo: armaaar/JQuery-Sticky-Table


text:
More explicit types in examples

And some other minor tidying.
Closes https://github.com/armanbilge/calico/issues/189. @hejfelix were these the ones you were thinking, any others I should add to?

Yeah. I think adding them to all the *.md code would hammer home the point that components are Resource[F, HtmlElement[F]].

authors: armanbilge hejfelix

repo: armanbilge/calico


text:
chore(release): Automated agent plugin release notes (v0.11.42)

Automated PR

Merged on https://github.com/armory/docs/pull/2014

authors: AdanUrbanReyesArmory armory-astrolabe

repo: armory/docs


text:
🛑 NWTFV is down

In af978b9, NWTFV (https://nwtfv.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NWTFV is back up in fbebe5c.

repo: arnef/status


text:
🛑 NWTFV is down

In 08e0685, NWTFV (https://nwtfv.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NWTFV is back up in 0d84853.


text:
🛑 NWTFV is down

In 49a0924, NWTFV (https://nwtfv.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: NWTFV is back up in 67e96ab.


text:
Freeze Issue

Occasionally the program may freeze (and also lock up the computer).  There may be an infinite loop or deadlock somewhere.

One of the string pools?

Closing for now.  It appeared to be a system issue, not a program one.

repo: aroelke/mtg-workstation


text:
Safely access the alphabet consts

I feel like the manner in which the alphabet array is being accessed is unsafe.
Would much prefer access to be performed through functions that return errs - rather than panicking when we encounter an out of bounds error (for example)

See PR #6

repo: arosspope/cipher-crypt


text:
Check for non-empty vector

This came up on my Valgrind log while using the API.

Thanks!


text:
Suggestions for new operation: countDistinct

countDistinct would tabulate the number of distinct values appear in opCol

Hi Malcom,
Indeed! I have added this to my local bedtools repository (I moved groupby back into bedtools as of v2.15.0, but confusingly haven't removed/updated this repo - sorry).  I am in the middle of some other changes, so I haven't pushed those changes to the public repo, but hope to very soon.

Hi Malcolm,
I just updated the bedtools repository with a version of groupBy that includes "distinct" and "count_distinct" options.


text:
data imports

https://github.com/hermann-bahr/bahr-textverzeichnis-data/blob/main/data/indices/listperson.xml
https://github.com/hermann-bahr/bahr-index/blob/main/tsn/listPerson_TSN_1.xml

and additionally after that
https://github.com/hermann-bahr/bahr-index/blob/main/tsn/listwork_TSN_1.xml
uris are temporary as everything will get pmb-uris. but in general this gives the pmb a third leg after schnitzler and kraus – hermann 'the guy from the day after tomorrow' bahr

Das gilt natürlich auch für die TSN-Personen. Sauber wäre, wir würden den Verweis angeben. Und damit wäre die PMB als Generalregister für die Bände zu benutzen und die verlinkte univie-Seite obsolet

We need to revisit this issue as this created an incredible amount of useless data:
https://pmb.acdh.oeaw.ac.at/apis/entities/entity/person/2292/detail
Either we go back to one title for the complete edition and then just the vols. and pages (i.e. I, 233) or at least mention only the volumes in which a person is mentioned, which would mean at most 5 titles

Or easier still: Write "Hermann Bahr: Tagebücher, Skizzenbücher, Notizhefte. Hg. Moritz Csáky. Wien, Köln, Weimar: Böhlau 1994-2003, https://bahr.univie.ac.at/node/49702" that way the register is linked

And easier still: we create an URI that links to "https://bahr.univie.ac.at/node/49702" plus some random text afterwards, i.e.
https://bahr.univie.ac.at/node/49702?URI=TSNperson11122
that way the link works and everyone can look for the page numbers

I was thinking of creating PMB-Works for all of those volumes and linking the entities properly via PersonWork Relation with a type "erwähnt" in and writing the exact page number(s) into the reference field of the relation; by doing so we can answer questions like which person/work is referenced how often

This of course would work but I don't think we should start with this. The questions you asked are possible to solve by using the listperson and listbibl. Can we just make it easy? Remove the huge amount of text and I give you a list of URIs which I need to give you for the Textverzeichnis anyways? I think that's the quickest solution

repo: arthur-schnitzler/pmb-service


text:
Revendor emsdk headers as of 2.0.9-upstream

Followup to #1305 and #1306.
rm -r artichoke-backend/vendor/emscripten/system/*
cp -r ../playground/emsdk/upstream/emscripten/system/* artichoke-backend/vendor/emscripten/system/

These headers will match the version of emscripten used to compile the
playground with Rust 1.54.0 which requires LLVM 12.
See also rust-lang/rust#85821 for how this emsdk version was chosen.

This PR is a dependency for merging https://github.com/artichoke/playground/pull/606.

repo: artichoke/artichoke


text:
Multi-gpu training example?

Testing 4bit qlora training on 33b llama and the training runs fine on 1x gpu but fails with the following using torchrun on 2x gpu.  I am referring to parallel training where each gpu has a full model.
Anyone got multiple-gpu parallel training working yet?
WORLD_SIZE=2 torchrun --rdzv-endpoint=localhost:23456 --nproc_per_node=2
device_map = {"": "cuda:" + str(int(os.environ.get("LOCAL_RANK") or 0))}

 File "/root/miniconda3/lib/python3.10/site-packages/transformers-4.30.0.dev0-py3.10.egg/transformers/trainer.py", line 2804, in training_step
    loss.backward()
  File "/root/miniconda3/lib/python3.10/site-packages/torch/_tensor.py", line 488, in backward
    torch.autograd.backward(
  File "/root/miniconda3/lib/python3.10/site-packages/torch/autograd/__init__.py", line 204, in backward
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
  File "/root/miniconda3/lib/python3.10/site-packages/torch/autograd/function.py", line 274, in apply
    return user_fn(self, *args)
  File "/root/miniconda3/lib/python3.10/site-packages/torch/utils/checkpoint.py", line 226, in backward
    torch.autograd.backward(outputs_with_grad, args_with_grad)
  File "/root/miniconda3/lib/python3.10/site-packages/torch/autograd/__init__.py", line 204, in backward
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: Expected to mark a variable ready only once. This error is caused by one of the following reasons: 1) Use of a module parameter outside the `forward` function. Please make sure model parameters are not shared acro
ss multiple concurrent forward-backward passes. or try to use _set_static_graph() as a workaround if this module graph does not change during training loop.2) Reused parameters in multiple reentrant backward passes. For example
, if you use multiple `checkpoint` functions to wrap the same part of your model, it would result in the same set of parameters been used by different reentrant backward passes multiple times, and hence marking a variable ready
 multiple times. DDP does not support such use cases in default. You can try to use _set_static_graph() as a workaround if your module graph does not change over iterations.
Parameter at index 557 has been marked as ready twice. This means that multiple autograd engine  hooks have fired for this particular parameter during this iteration. You can set the environment variable TORCH_DISTRIBUTED_DEBUG
 to either INFO or DETAIL to print parameter names for further debugging.

That's perfect information

Not sure if it's right, but in my case adding ddp_find_unused_parameters=False makes it work.

On my side, when I run the following command, it is working on multiple GPUs. But the GPUs are under-used, while one CPU core is at 100%, the rest at 0%. It seems like the full power of the machine is not used.
python qlora.py --model_name_or_path /path/to/model-7B

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  On   | 00000000:06:00.0 Off |                    0 |
| N/A   35C    P0    70W / 400W |   4037MiB / 40960MiB |      1%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA A100-SXM...  On   | 00000000:07:00.0 Off |                    0 |
| N/A   33C    P0    57W / 400W |   3021MiB / 40960MiB |     34%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA A100-SXM...  On   | 00000000:08:00.0 Off |                    0 |
| N/A   35C    P0    62W / 400W |   3021MiB / 40960MiB |     21%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA A100-SXM...  On   | 00000000:09:00.0 Off |                    0 |
| N/A   35C    P0    61W / 400W |   3021MiB / 40960MiB |     11%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   4  NVIDIA A100-SXM...  On   | 00000000:0A:00.0 Off |                    0 |
| N/A   35C    P0    60W / 400W |   3021MiB / 40960MiB |     11%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   5  NVIDIA A100-SXM...  On   | 00000000:0B:00.0 Off |                    0 |
| N/A   34C    P0   158W / 400W |   3021MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   6  NVIDIA A100-SXM...  On   | 00000000:0C:00.0 Off |                    0 |
| N/A   37C    P0    84W / 400W |   3021MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   7  NVIDIA A100-SXM...  On   | 00000000:0D:00.0 Off |                    0 |
| N/A   36C    P0    60W / 400W |   7435MiB / 40960MiB |     15%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

I have the same issue. Do you have solution ?

I didn't get work till now for DDP with deepspeed.
I got a multiplication error:
File "/export/home2/fangkai/anaconda3/envs/torch2.0/lib/python3.9/site-packages/transformers-4.30.0.dev0-py3.9.egg/transformers/models/llama/modeling_llama.py", line 194, in forward
    query_states = self.q_proj(hidden_states).view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2)
File "/export/home2/fangkai/anaconda3/envs/torch2.0/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
File "/export/home2/fangkai/anaconda3/envs/torch2.0/lib/python3.9/site-packages/peft/tuners/lora.py", line 348, in forward
    result = F.linear(x, transpose(self.weight, self.fan_in_fan_out), bias=self.bias)
RuntimeError: mat1 and mat2 shapes cannot be multiplied (44x6656 and 1x22151168)

Same problem:
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/transformers/model │
│ s/llama/modeling_llama.py:194 in forward                                                         │
│                                                                                │
│   191 │   ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:       │
│   192 │   │   bsz, q_len, _ = hidden_states.size()                                               │
│   193 │   │                                                                                │
│ ❱ 194 │   │   query_states = self.q_proj(hidden_states).view(bsz, q_len, self.num_heads, self.   │
│   195 │   │   key_states = self.k_proj(hidden_states).view(bsz, q_len, self.num_heads, self.he   │
│   196 │   │   value_states = self.v_proj(hidden_states).view(bsz, q_len, self.num_heads, self.   │
│   197                                                                                │
│                                                                                │
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/torch/nn/modules/m │
│ odule.py:1501 in _call_impl                                                                      │
│                                                                                │
│   1498 │   │   if not (self._backward_hooks or self._backward_pre_hooks or self._forward_hooks   │
│   1499 │   │   │   │   or _global_backward_pre_hooks or _global_backward_hooks                   │
│   1500 │   │   │   │   or _global_forward_hooks or _global_forward_pre_hooks):                   │
│ ❱ 1501 │   │   │   return forward_call(*args, **kwargs)                                          │
│   1502 │   │   # Do not call functions when jit is used                                          │
│   1503 │   │   full_backward_hooks, non_full_backward_hooks = [], []                             │
│   1504 │   │   backward_pre_hooks = []                                                           │
│                                                                                │
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/peft/tuners/lora.p │
│ y:768 in forward                                                                                │
│                                                                                │
│   765 │   │   │   │   self.active_adapter = adapter_name                                         │
│   766 │   │   │                                                                                │
│   767 │   │   │   def forward(self, x: torch.Tensor):                                            │
│ ❱ 768 │   │   │   │   result = super().forward(x)                                                │
│   769 │   │   │   │                                                                              │
│   770 │   │   │   │   if self.disable_adapters or self.active_adapter not in self.lora_A.keys(   │
│   771 │   │   │   │   │   return result                                                          │
│                                                                                │
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/bitsandbytes/nn/mo │
│ dules.py:219 in forward                                                                          │
│                                                                                │
│   216 │   │   │   x = x.to(self.compute_dtype)                                                   │
│   217 │   │                                                                                │
│   218 │   │   bias = None if self.bias is None else self.bias.to(self.compute_dtype)             │
│ ❱ 219 │   │   out = bnb.matmul_4bit(x, self.weight.t(), bias=bias, quant_state=self.weight.qua   │
│   220 │   │                                                                                │
│   221 │   │   out = out.to(inp_dtype)                                                            │
│   222                                                                                │
│                                                                                │
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/bitsandbytes/autog │
│ rad/_functions.py:564 in matmul_4bit                                                             │
│                                                                                │
│   561                                                                                │
│   562 def matmul_4bit(A: tensor, B: tensor, quant_state: List, out: tensor = None, bias=None):   │
│   563 │   assert quant_state is not None                                                         │
│ ❱ 564 │   return MatMul4Bit.apply(A, B, out, bias, quant_state)                                  │
│   565                                                                                │
│                                                                                │
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/torch/autograd/fun │
│ ction.py:506 in apply                                                                            │
│                                                                                │
│   503 │   │   if not torch._C._are_functorch_transforms_active():                                │
│   504 │   │   │   # See NOTE: [functorch vjp and autograd interaction]                           │
│   505 │   │   │   args = _functorch.utils.unwrap_dead_wrappers(args)                             │
│ ❱ 506 │   │   │   return super().apply(*args, **kwargs)  # type: ignore[misc]                    │
│   507 │   │                                                                                │
│   508 │   │   if cls.setup_context == _SingleLevelFunction.setup_context:                        │
│   509 │   │   │   raise RuntimeError(                                                            │
│                                                                                │
│ /cpfs/user/chendelong/anaconda3/envs/openflamingo/lib/python3.9/site-packages/bitsandbytes/autog │
│ rad/_functions.py:512 in forward                                                                 │
│                                                                                │
│   509 │   │                                                                                │
│   510 │   │   # 1. Dequantize                                                                    │
│   511 │   │   # 2. MatmulnN                                                                      │
│ ❱ 512 │   │   output = torch.nn.functional.linear(A, F.dequantize_fp4(B, state).to(A.dtype).t(   │
│   513 │   │                                                                                │
│   514 │   │   # 3. Save state                                                                    │
│   515 │   │   ctx.state = state                                                                  │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1011x4096 and 1x8388608)

@ChenDelong1999 I find disable zero, i.e., set zero=0 can help resolve this problem. But I cannot train 30B model on two A6000 due to OOM.

@SparkJiao Sorry but what do you mean by zero=0?
By the way, I just find that removing model.cuda() or model.eval() help me to solve the multiplication error:
model = AutoModelForCausalLM.from_pretrained(
      args.lm_path,
      torch_dtype=torch.bfloat16,
      load_in_4bit=True,
      device_map={"": 0}
  )

# model = model.cuda().eval() <- DO NOT ADD THIS

Where do I look for that line? Not in the qlora code, it seems.

Yes, my own code has this additional line model = model.cuda().eval() originally, and I find that removing it solves my multiplication error.

@Qubitium,
Based on the information provided, it seems that when running the training command with multiple GPUs, you encountered a runtime error related to variable readiness. This error message suggests that there might be issues with sharing module parameters across multiple concurrent forward-backward passes.
To address this issue, we recommend trying the following approaches:

Ensure that the torch.distributed package is installed and up to date. You can install or update it using the following command:

pip install torch.distributed

Modify your training script to include the following line of code before starting the training loop:

torch.distributed.init_process_group(backend="nccl")

This line initializes the distributed training process group using the NCCL backend, which is commonly used for multi-GPU training with PyTorch.

In your script, set the environment variable TORCH_DISTRIBUTED_DEBUG to either "INFO" or "DETAIL". This will provide additional information for debugging purposes and may help identify the root cause of the issue.

Additionally, we recommend checking the compatibility and version requirements of the libraries and frameworks you are using. Ensuring that all dependencies are up to date can help resolve potential compatibility issues.

added multi gpu reference: https://github.com/artidoro/qlora/pull/68

Temporarily disable gradient-checkpointing can help training on multi-gpu.

@bliu3650 Can you share the command you used?

By this way, qlora can use deepspeed.
I have two gpu devices.
local_rank = int(os.environ.get("LOCAL_RANK", 0))
if local_rank ==0:
max_memory = {0 : "{0}MB".format(45 * 1024), 1: "0MB"}
else:
max_memory = {1: "{0}MB".format(45 * 1024), 0: "0MB"}

By this way, qlora can use deepspeed. I have two gpu devices. local_rank = int(os.environ.get("LOCAL_RANK", 0)) if local_rank ==0: max_memory = {0 : "{0}MB".format(45 * 1024), 1: "0MB"} else: max_memory = {1: "{0}MB".format(45 * 1024), 0: "0MB"}

I tried to do this and it‘s indeed effective, but I encountered a deadlock during the training process. Have you ever encountered this?

@bliu3650 Can you share the command you used?

Code change in qlora.y:
line 273:
device_map = 'auto'  -> device_map = {"": "cuda:" + str(int(os.environ.get("LOCAL_RANK") or 0))}
line 175:
gradient_checkpointing: bool = field(default=True, ... -> gradient_checkpointing: bool = field(default=False, ...
Run command:
WORLD_SIZE=2 torchrun --nproc_per_node=2 qlora.py --model_name_or_path <path_or_name>

On my side, when I run the following command, it is working on multiple GPUs. But the GPUs are under-used, while one CPU core is at 100%, the rest at 0%. It seems like the full power of the machine is not used.
python qlora.py --model_name_or_path /path/to/model-7B

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12    Driver Version: 525.85.12    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  On   | 00000000:06:00.0 Off |                    0 |
| N/A   35C    P0    70W / 400W |   4037MiB / 40960MiB |      1%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA A100-SXM...  On   | 00000000:07:00.0 Off |                    0 |
| N/A   33C    P0    57W / 400W |   3021MiB / 40960MiB |     34%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA A100-SXM...  On   | 00000000:08:00.0 Off |                    0 |
| N/A   35C    P0    62W / 400W |   3021MiB / 40960MiB |     21%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   3  NVIDIA A100-SXM...  On   | 00000000:09:00.0 Off |                    0 |
| N/A   35C    P0    61W / 400W |   3021MiB / 40960MiB |     11%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   4  NVIDIA A100-SXM...  On   | 00000000:0A:00.0 Off |                    0 |
| N/A   35C    P0    60W / 400W |   3021MiB / 40960MiB |     11%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   5  NVIDIA A100-SXM...  On   | 00000000:0B:00.0 Off |                    0 |
| N/A   34C    P0   158W / 400W |   3021MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   6  NVIDIA A100-SXM...  On   | 00000000:0C:00.0 Off |                    0 |
| N/A   37C    P0    84W / 400W |   3021MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+
|   7  NVIDIA A100-SXM...  On   | 00000000:0D:00.0 Off |                    0 |
| N/A   36C    P0    60W / 400W |   7435MiB / 40960MiB |     15%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

Faces similar case.

@bliu3650 Can you share the command you used?

@SkyAndCloud Code change in qlora.py:
line 273: device_map = 'auto' -> device_map = {"": "cuda:" + str(int(os.environ.get("LOCAL_RANK") or 0))} line 175: gradient_checkpointing: bool = field(default=True, ... -> gradient_checkpointing: bool = field(default=False, ...
Run command: WORLD_SIZE=2 torchrun --nproc_per_node=2 qlora.py --model_name_or_path <path_or_name>

RuntimeError: Expected to mark a variable ready only once. This error is caused by one of the following reasons: 1) Use of a module parameter outside the `forward` function. Please make sure model parameters are not shared across multiple concurrent forward-backward passes. or try to use _set_static_graph() as a workaround if this module graph does not change during training loop.2) Reused parameters in multiple reentrant backward passes. For example, if you use multiple `checkpoint` functions to wrap the same part of your model, it would result in the same set of parameters been used by different reentrant backward passes multiple times, and hence marking a variable ready multiple times. DDP does not support such use cases in default. You can try to use _set_static_graph() as a workaround if your module graph does not change over iterations.
Parameter at index 255 has been marked as ready twice. This means that multiple autograd engine  hooks have fired for this particular parameter during this iteration. You can set the environment variable TORCH_DISTRIBUTED_DEBUG to either INFO or DETAIL to print parameter names for further debugging.

Using the ddp_find_unused_parameters fix from #222, I can launch training on multiple GPUs (accelerate launch qlora.py) and I see the expected utilization on all cards in nvidia-smi, but the actual speed of training isn't faster than using a single GPU. Has anybody else been seeing this behavior?

I found DDP to significantly reduce training time. One reason why you might not see that is because using DDP changes the way per_device_train_batch_size is interpreted.

When you are NOT using DDP and use the standard qlora.py scripts the batch size is global regardless of how many gpus you use. Note that using more GPUs in this setup means you spread the model over several GPUs according to device_map. This helps fit large models on GPUs that are not large enough individually.
When you ARE using DDP, the batch size is per device. So if you use 4 GPUs and per_device_train_batch_size=3 you have an effective batch size of 12. Here the model is replicated on each GPU so you need to have a GPU that is large enough to fit the model. Each GPU sees a portion of the batch (in our example each GPU sees 3 data points). I found this setup to significantly reduce the training time.

I found DDP to significantly reduce training time. One reason why you might not see that is because using DDP changes the way per_device_train_batch_size is interpreted.

When you are NOT using DDP and use the standard qlora.py scripts the batch size is global regardless of how many gpus you use. Note that using more GPUs in this setup means you spread the model over several GPUs according to device_map. This helps fit large models on GPUs that are not large enough individually.
When you ARE using DDP, the batch size is per device. So if you use 4 GPUs and per_device_train_batch_size=3 you have an effective batch size of 12. Here the model is replicated on each GPU so you need to have a GPU that is large enough to fit the model. Each GPU sees a portion of the batch (in our example each GPU sees 3 data points). I found this setup to significantly reduce the training time.

can you please give example of how to make this work?
I also can't for the same reasons as everyone else is having trouble.

On my side, when I run the following command, it is working on multiple GPUs. But the GPUs are under-used, while one CPU core is at 100%, the rest at 0%. It seems like the full power of the machine is not used.

Faces similar case. All GPUs has distributed VRAM, but under-utilized for GPU

Finally, it works.
Now it utilized all GPUs
!pip install bitsandbytes==0.41.1
!pip install transformers==4.31.0
!pip install peft==0.4.0
!pip install accelerate==0.21.0 einops==0.6.1 evaluate==0.4.0 scikit-learn==1.2.2 sentencepiece==0.1.99

*change qlora.py
device_map='auto' > device_map = {"": "cuda:" + str(int(os.environ.get("LOCAL_RANK") or 0))}

!accelerate launch qlora_2048-multiGPU.py --model_name_or_path="Ichsan2895/Merak-7B-v2" \
    --dataset="/workspace/your_dataset.csv" \
    --do_eval=True --eval_steps=500 --lr_scheduler_type="cosine" \
    --learning_rate=0.0002 \
    --evaluation_strategy=steps --eval_dataset_size=512 --do_mmlu_eval=True \
    --gradient_checkpointing=True --ddp_find_unused_parameters=False

Tested in Runpod environment with Python 3.10 and Torch 2.0.0+cu117

@ichsan2895 Interesting result with gradient_checkpointing off and on. Using it causes 33% slowdown in qlora in multi-gpu yet the train/e loss values are identical. Did you see exact wandb graphs between this two over the full fine-tune? Also was there a huge memory diff between gradient_checkpointing on/off? Thanks.

@ichsan2895 Interesting result with gradient_checkpointing off and on. Using it causes 33% slowdown in qlora in multi-gpu yet the train/e loss values are identical. Did you see exact wandb graphs between this two over the full fine-tune? Also was there a huge memory diff between gradient_checkpointing on/off? Thanks.

when gradient_checkpointing is False, yet it will be faster. But it more consumes more GPU VRAM.
For example if one GPU, it needs 20 GBs of VRAM.
If two GPUs, it needs 202=40 GB total,
If three GPUs, it needs 203 GB=60 GB total.
when gradient_checkpointing is True, a little bit slow. But it spread all GPU VRAM usage.
For example if one GPU, it needs 20 GBs of VRAM.
If two GPUs, it needs 20/2=10 GB/GPU,
If three GPUs, it needs 20/3 GB=6,67 GB/GPU.
But I am sorry I don't use Wandb for tracking logs.

@ichsan2895 your solution above worked. Do you know how we can extend it to multi-node multi-gpu?

authors: AlpinDale ChenDelong1999 Qubitium SkyAndCloud SparkJiao WallE-Chang artidoro bliu3650 chu-tianxiang ehartford hemangjoshi37a ichsan2895 shawnanastasio shubhanjan99 varunmayya whcisci yea0 zhangluoyang

repo: artidoro/qlora


text:
TypeError: init() got an unexpected keyword argument 'load_in_4bit'

When I use the command below I got an error:
 python3 qlora.py –learning_rate 0.0001 --model_name_or_path <llama33b_model_path>

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/tiger/qlora/qlora/qlora.py:758 in                                                  │
│                                                                                │
│   755 │   │   │   fout.write(json.dumps(all_metrics))                                            │
│   756                                                                                │
│   757 if name == "main":                                                                 │
│ ❱ 758 │   train()                                                                                │
│   759                                                                                │
│                                                                                │
│ /home/tiger/qlora/qlora/qlora.py:590 in train                                                    │
│                                                                                │
│   587 │   if completed_training:                                                                 │
│   588 │   │   print('Detected that training was already completed!')                             │
│   589 │                                                                                │
│ ❱ 590 │   model = get_accelerate_model(args, checkpoint_dir)                                     │
│   591 │   training_args.skip_loading_checkpoint_weights=True                                     │
│   592 │                                                                                │
│   593 │   model.config.use_cache = False                                                         │
│                                                                                │
│ /home/tiger/qlora/qlora/qlora.py:263 in get_accelerate_model                                     │
│                                                                                │
│   260 │                                                                                │
│   261 │   print(f'loading base model {args.model_name_or_path}...')                              │
│   262 │   compute_dtype = (torch.float16 if args.fp16 else (torch.bfloat16 if args.bf16 else t   │
│ ❱ 263 │   model = AutoModelForCausalLM.from_pretrained(                                          │
│   264 │   │   args.model_name_or_path,                                                           │
│   265 │   │   load_in_4bit=args.bits == 4,                                                       │
│   266 │   │   load_in_8bit=args.bits == 8,                                                       │
│                                                                                │
│ /home/tiger/.local/lib/python3.9/site-packages/transformers/models/auto/auto_factory.py:467 in   │
│ from_pretrained                                                                                │
│                                                                                │
│   464 │   │   │   )                                                                              │
│   465 │   │   elif type(config) in cls._model_mapping.keys():                                    │
│   466 │   │   │   model_class = _get_model_class(config, cls._model_mapping)                     │
│ ❱ 467 │   │   │   return model_class.from_pretrained(                                            │
│   468 │   │   │   │   pretrained_model_name_or_path, *model_args, config=config, **hub_kwargs,   │
│   469 │   │   │   )                                                                              │
│   470 │   │   raise ValueError(                                                                  │
│                                                                                │
│ /home/tiger/.local/lib/python3.9/site-packages/transformers/modeling_utils.py:2611 in            │
│ from_pretrained                                                                                │
│                                                                                │
│   2608 │   │   │   init_contexts.append(init_empty_weights())                                    │
│   2609 │   │                                                                                │
│   2610 │   │   with ContextManagers(init_contexts):                                              │
│ ❱ 2611 │   │   │   model = cls(config, *model_args, **model_kwargs)                              │
│   2612 │   │                                                                                │
│   2613 │   │   # Check first if we are from_pt                                                 │
│   2614 │   │   if use_keep_in_fp32_modules:                                                      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: init() got an unexpected keyword argument 'load_in_4bit'

What version of transformers are you using?
If you used the usual pip install you have the wrong version (since the argument is not yet implemented).
In the README it states that you should install using git, that worked for me.

pip install git+https://github.com/huggingface/transformers

authors: jb-01 jvhgit muziyongshixin


text:
RpmOptions.java:41-42: Add unit test for this class to...

The puzzle 275-eee2e5ba from #275 has to be resolved:
https://github.com/artipie/rpm-adapter/blob/f5d7c1c115a1bee78dcd6bb3472899ca45c4a544/src/main/java/com/artipie/rpm/RpmOptions.java#L41-L42
The puzzle was created by @olenagerasimova on 22-Jun-20.
Estimate: 30 minutes,  role: DEV.
If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

@g4s8/z, @olenagerasimova/z please, pay attention to this issue

@0crat in

The job #282 assigned to @paulodamaso/z, here is why; the budget is 30 minutes, see §4; please, read §8 and §9; if the task is not clear, read this and this; there will be a monetary reward for this job

@0crat wait for #295 review

There is an unrecoverable failure on my side. Please, submit it here:
PID: 4@0580059e-ceba-491e-980a-2a75bcaf1058, thread: PQ-CT2E6TK9B
com.jcabi.xml.StrictXML[124] java.lang.IllegalArgumentException: 2 error(s) in XML document: -1:-1: cvc-pattern-valid: Value 'gh:Week 27' is not facet-valid with respect to pattern '[a-z]{2}:[A-Z0-9a-z.\-#/]+' for type 'milestoneID'.;-1:-1: cvc-complex-type.2.2: Element 'successor' must have no element [children], and the value must be valid.

0.53.15: CID: c1266f37-0b4e-4145-806a-dd023c35f812, Type: "Job milestoned"

The puzzle 275-eee2e5ba has disappeared from the source code, that's why I closed this issue.

@sereshqua/z please review this job completed by @paulodamaso/z, as in §30; the job will be fully closed and all payments will be made when the quality review is completed

@0crat quality good

@0crat quality good (here)

@sereshqua There is an unrecoverable failure on my side. Please, submit it here:
PID: 4@661823d7-f32c-4fcc-bf9e-6e35e0472a13, thread: PQ-CT2E6TK9B
com.zerocracy.farm.reactive.StkRuntime[76] java.lang.IllegalStateException: org.codehaus.groovy.runtime.InvokerInvocationException in com.zerocracy.stk.pm.cost.pay_cash
org.codehaus.groovy.reflection.CachedMethod[105] org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.OutOfMemoryError: unable to create new native thread
java.lang.Thread[-2] java.lang.OutOfMemoryError: unable to create new native thread

0.53.15: CID: 4aa07560-f9b0-401b-91b7-c5bc9161d80b, Type: "Pay cash"

repo: artipie/rpm-adapter


text:
#226 - class to find file in directory

For #226 created class to search for the file by substring in the directory.

Codecov Report

Merging #252 into master will decrease coverage by 0.26%.
The diff coverage is 66.66%.

@@             Coverage Diff              @@
##             master     #252      +/-   ##
============================================
- Coverage     80.50%   80.24%   -0.27%
- Complexity      230      231       +1
============================================
  Files            38       39       +1
  Lines          1216     1225       +9
  Branches         53       53
============================================
+ Hits            979      983       +4
- Misses          228      232       +4
- Partials          9       10       +1

Impacted Files
Coverage Δ
Complexity Δ

src/main/java/com/artipie/rpm/misc/FileInDir.java
66.66% <66.66%> (ø)
3.00 <3.00> (?)

src/main/java/com/artipie/rpm/Rpm.java
45.63% <0.00%> (-1.35%)
27.00% <0.00%> (-2.00%)

Continue to review full report at Codecov.

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

This pull request #252 is assigned to @carlosmiranda/z, here is why; the budget is 15 minutes, see §4; please, read §27 and when you decide to accept the changes, inform @g4s8/z (the architect) right in this ticket; if you decide that this PR should not be accepted ever, also inform the architect; this blog post will help you understand what is expected from a code reviewer; there will be a monetary reward for this job

@carlosmiranda thanks, done

Job was finished in 5 hours, bonus for fast delivery is possible (see §36)

Job audit: performer @carlosmiranda/z/z didn't make CR comments

authors: 0crat codecov-commenter olenagerasimova


text:
Fix weird preload issue

Not sure why original |> didn't work but this should be fine...

Missing unit test here .... should be able to add it

repo: artsy/aprb


text:
feat(onboarding): add context module for onboarding follows and saves

The type of this PR is: feat

This PR resolves GRO-1153
Description

Adding missing onboarding flow context module: context_module: ContextModule.onboardingFlow per this onboarding analytics spreadsheet here -->
https://docs.google.com/spreadsheets/d/12wj1rt-j5SguboPJMuaM1GqJD-5B5u5piipw8MQ5Zuk/edit?pli=1#gid=275928850

:rocket: PR was released in v4.61.0 :rocket:

authors: TMcMeans artsyit

repo: artsy/cohesion


text:
feat(FX-4248): add Activity screen

Demo
https://user-images.githubusercontent.com/3513494/191985250-347a8018-1342-4215-86e6-4fd20e2c7fa6.mp4

This PR resolves FX-4248
QA Testing

Acceptance Criteria

Setup Instructions

PR Checklist

[x] I tested my changes on iOS / Android.
[x] I added screenshots or videos to illustrate my changes.
[ ] I added Tests and Stories for my changes.
[ ] I added an app state migration.
[x] I hid my changes behind a feature flag.
[ ] I have prefixed changes that need to be tested during a release QA with [NEEDS EXTERNAL QA] on the changelog.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

add Activities screen - dimatretyak

Need help with something? Have a look at our docs, or get in touch with us.

One request: can you also add though the route to src/main/AndroidManifest.xml like the docs reference?
The reason is for the deep linking to work if we enable them in the feature (sometimes we forget to add it to manifest and it takes some time to realize that this is the reason that they don't work)

oh, really good catch 🙏

The reason is for the deep linking to work if we enable them in the feature (sometimes we forget to add it to manifest and it takes some time to realize that this is the reason that they don't work)

addressed in f21d5b8

repo: artsy/eigen


text:
refactor: move ArtworkMaker to different component

This PR resolves []
Description

Small refactor that removes the artist name component logic from ArtworkTombstone
PR Checklist

[x] I tested my changes on iOS / Android.
[ ] I added screenshots or videos to illustrate my changes.
[ ] I added Tests and Stories for my changes.
[ ] I added an app state migration.
[ ] I hid my changes behind a feature flag.
[ ] I have prefixed changes that need to be tested during a release QA with [NEEDS EXTERNAL QA] on the changelog.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

#nochangelog

Need help with something? Have a look at our docs, or get in touch with us.

question: I think we don't need to query this data anymore. right?

question: I think we don't need to query this data anymore. right?

haha, yeah I have removed this in many prs already hahaha removed it in this before you told me also 😂 but also removed it here

authors: dimatretyak gkartalis


text:
fix(auction): adds og image

Adds og:image to auction pages.

You just happened to notice this missing?

@jonallured https://artsy.slack.com/archives/C03N12SR0RK/p1668705726840149

authors: dzucconi jonallured

repo: artsy/force


text:
chore: (AMBER-367) Added modal for condition information in auction lots.

The type of this PR is: Chore

This PR solves AMBER-376
Description

Bidders can now see a breakdown of what different condition levels mean and make an informed decision when bidding on an artwork by clicking "Condition" which opens a modal.
[This design/copy might change? TBD. WIP.]

Checked to see if there any tests for ArtworkDefinitionList, but no go. I think this is fine to merge as is 👍

authors: JanaeHijaz damassi


text:
Update rollback docs

During a rollback earlier today, we saw that there was a seemingly extraneous step in there about checking CircleCI — this just removes that.

👍

authors: anandaroop damassi


text:
Build upon the default configuration

When I supply an empty configuration file, the defaults are being run.
Now I want to suppress the MagicNumber rule:
style:
  MagicNumber:
    active: false

It seems that detekt now runs nothing at all. Is it possible to use detekt so it only disables this one but keeps all the other defaults?
I trust in this library to provide good defaults and only want to suppress some, without copy-pasting a 500-line configuration and updating each time you change your recommendations / add rules.

Thats actually a valid point and I would expect the same.
I will look into this.

I ran into the same problem. Not good documented but it already works. Try this:
# Enable all rules by default
failFast: true

# Configure rules and override default values
style:
  MagicNumber:
    active: false

As far as I understand this does not enable the defaults. It rather just enables everything.

Isn't everything enabled the default?

Nope
If you don't set a config this is being used:
https://github.com/arturbosch/detekt/blob/master/detekt-cli/src/main/resources/default-detekt-config.yml
And that's whati want to build upon.

But everything in default detekt config is generated from the KDoc of the rules which is based on the hard coded defaults in the rule itself. So what @passsy writes should be what you want?

authors: PaulWoitaschek arturbosch passsy

repo: arturbosch/detekt


text:
CLI built off master currently not working

I guess this is the same Issue as discussed in #275 but currently detekt-cli is not working for me when I build master.
Repro steps on my machine (of current master HEAD bd9a2db3ee8fd9c98e12c6edfd069eaeb8b69cc3):

./gradlew build shadow
java -jar detekt-cli/build/libs/detekt-cli-1.0.0.RC1-all.jar -i . throws:

Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
	at io.gitlab.arturbosch.detekt.cli.Main.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 1 more

Yes it is the same problem. When changing to compile again it works for me. Need to read more about implementation config but I think changing back to compile for now is the preferred way? Thx for opening the issue.

authors: Mauin arturbosch


text:
🛑 Yami Space Engineers Server is down

In fbf7752, Yami Space Engineers Server (207.254.235.202) was down:

HTTP code: 503
Response time: 354 ms

Resolved: Yami Space Engineers Server is back up in 6cb76ed.


text:
Mup Deploy kills folder of uploaded files

Each time I deploy it is successful, but it kills any files that are in a separate ".uploads" folder. Is there a way to exclude a directory from being affected?
I ask because I can't deploy and kill all the files/folders on the server each time, just curious if anyone knows a solution.

+1

Is there a way to perhaps save files outside of the docker container higher up in the folder hierarchy?

How did you do that? I am not sure I have access to the root of the server since it is in a docker container... you literally put the folders in "/uploads" and that worked?
I am using meteor-uploads package (https://github.com/tomitrescak/meteor-uploads).

I'm using https://github.com/VeliovGroup/Meteor-Files and its allow to do that.

I now know that I was actually using a slighter newer version of mup. Which uses docker, which doesn't allow access out of the container unless you mount the volume by changing "start.sh".

@MeDBejoHok Привет! Не мог бы ты объяснить, какой путь ты описал в "storagePath"?
Я использовал '/assets/app/uploads/avatars' и он запихивает файлы в докер.
Т.е. при редеплое все файлы, само собой, остаются вне поля видимости новой сборки.

@Tbutnyakov Привет. Я использую старую версию мупа, так что вряд ли смогу тебе помочь. Путь указал относительно корня сервера ("storagePath": "/data/photos")

@MeDBejoHok да, я уже понял это. У тебя версия метеора ниже 1.3?

@Tbutnyakov Да, 1.1.15.

authors: MeDBejoHok Tbutnyakov msj121

repo: arunoda/meteor-up