Development

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

Coverage decreased (-1.9%) to 28.398% when pulling 4c9bbbf48f0c2cb1828e591f11e990ac9eb0b5ff on development into 975c9ce70ecb9591872507682ca8f4765a0acf7b on master.


Text overlapping on Fade transitions.

Hi,
I am making a carousel for a ticker which contains some text. But When I try to add fading effect to that carousel, text get overlap on fade transition.So Can You please help me to make it run smoothly or is there any way that I can delay the fade in until that slide fade out.
http://jsfiddle.net/deepaksbutola/mt4jdy6o/

http://jsfiddle.net/mt4jdy6o/1/ :)

Hey thanks @simeydotme , it works fine for me.

What if you don't have a background?
I recently upgraded slick and now I can't get the animations to run smooth for text without a background.

Hello,
Can anyone tell me why fade affect  is not working for this code,
wen i try the fade:true; its showing only one item and wen i remove fade:true; its showing two items.
i want items to fade and display at a time but its changing to one item wen i include fade:true;
can anyone help me with this
http://jsfiddle.net/mt4jdy6o/5/


Adapt trex-operator to operator-sdk v1.33.0

:t-rex:

@manurodriguez , there's some stuff that still needs to be checked, one of them will probably fix the issue you're currently having in the build PR check:
Error: trying to reuse blob sha256:815ca85c5fa5fc9734e54b86290a5b531f58edbee52f416db86a9c491c84fae6 at destination: pinging container registry openshift.io: invalid status code from registry 404 (Not Found)

it's because we're not using here the correct registry, I left one comment to fix that.
After fixing everything, then we can concentrate on why the PR is not being built correctly (it should pass, but let's see)

Thanks Ramon, my bad, I didn't see all those comments you made before, but I addressed them all and looks better now, I'll resume testing :love_you_gesture:

Looks better now, let's test it! thanks!

Mmm that's weird, but the trex-controller-manager pod is not even launched, maybe that's the first thing to check. Also, I'll probably check if all the changes from app/server to trexapp/trexserver are in place

BTW plese rebase the PR to avoid issues with this change already merged: https://github.com/openshift-kni/example-cnf/pull/62

check dallas ocp-4.15-vanilla example-cnf

The last successful job was just a tear-down, I'm using a cluster with 4.14 that already had example-cnf, to save time : )
dci-pipeline-check https://github.com/openshift-kni/example-cnf/pull/59 /home/dciteam/clusterconfigs-cluster4/kubeconfig example-cnf example-cnf:ansible_tags=kubeconfig,dci,job,success example-cnf:ansible_extravars=dci_teardown_on_success:true example-cnf:ansible_extravars=cnf_namespace:example-cnf

failed again without any relevant errors, I'll tear-down again and enable the debug as Tania suggested, then I'll try once more

@manurodriguez , in the last job, I can see the following error message in the failing task:
fatal: [jumphost]: FAILED! => {"changed": false, "msg": "Failed to find exact match for examplecnf.openshift.io/v1.TRexConfig by [kind, name, singularName, shortNames]"}

Compared with the current TRex, here we're changing the roles to use trexapp and trexconfig instead. Don't know if, maybe, the problem may be related to this, maybe we need to ensure that the correct CRD names are used in all places, also linked to the correct role names.

Yes, I checked those names and I believe all looks fine, but I also agree that this is one of the main differences, so I'll get back to the old names to discard I'm missing something.

from change #59:

FAILURE https://www.distributed-ci.io/jobs/07073e10-76d4-424b-99cf-de6c1d9864a6/jobStates

The impression I have is that it's not able to create a TRexConfig CR based on the CRD that is currently created in the OCP cluster. Maybe, to troubleshoot this, I'd block a cluster, launch a job with this change, and then check what's the CRD that is created for TRexConfig, and in parallel, try to create a TRexConfig CR to see what's the output.

from change #59:

FAILURE https://www.distributed-ci.io/jobs/07073e10-76d4-424b-99cf-de6c1d9864a6/jobStates

The impression I have is that it's not able to create a TRexConfig CR based on the CRD that is currently created in the OCP cluster. Maybe, to troubleshoot this, I'd block a cluster, launch a job with this change, and then check what's the CRD that is created for TRexConfig, and in parallel, try to create a TRexConfig CR to see what's the output.

Thanks for the inputs @ramperher, in the latest tests I made sure that there is no trex CRDs at all before running the job,  so I can confirm my PR is not able to create the CRDs, but it's a good idea to compare with a successful job in parallel to see if we can figure this out.
Also, in the last job I see there is an error in build log
/usr/local/bin/kustomize build config/manifests | ./bin/operator-sdk generate bundle -q --overwrite --version 0.2.17-pr59.884de89e  --default-channel=alpha
Error: accumulating resources: accumulation err='accumulating resources from '../default': '/home/runner/work/example-cnf/example-cnf/trex-operator/config/default' must resolve to a file': recursed accumulation of path '/home/runner/work/example-cnf/example-cnf/trex-operator/config/default': accumulating resources: accumulation err='accumulating resources from '../manager': '/home/runner/work/example-cnf/example-cnf/trex-operator/config/manager' must resolve to a file': recursed accumulation of path '/home/runner/work/example-cnf/example-cnf/trex-operator/config/manager': accumulating resources: accumulating resources from 'manager.yaml': MalformedYAMLError: yaml: line 72: mapping values are not allowed in this context in File: manager.yaml

The indentation in a template was not correct, I fixed it, let me test if this makes a difference.

What I can see in the last failed job is that the app role is blocked in the very first task, called requeue request. This uses requeue_after, which comes from operator_sdk libraries. This pauses reconciliation and resume it after the specified time (1 min).
In a normal execution, such as https://www.distributed-ci.io/jobs/c8c4e017-c36e-4e6b-8c63-70d13da5402e/files -> check trex-operator-controller-manager-84db999-7292s.log, we have something like this:
TASK [app : requeue request] ***************************************************
task path: /opt/ansible/roles/app/tasks/main.yml:2

<localhost> ESTABLISH LOCAL CONNECTION FOR USER:<PHONE_NUMBER>
<localhost> EXEC /bin/sh -c 'echo ~1000700000 && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /opt/ansible/.ansible/tmp `"&& mkdir "` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169 `" && echo ansible-tmp-1712821003.4116066-1014-30633987934169="` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169 `" ) && sleep 0'
ok: [localhost] => {
    "ansible_facts": {
        "network_resources": {
            "openshift.io/intel_numa0_res1": "1"
        }
    },
    "changed": false
}

TASK [server : Update count for network resource] ******************************
task path: /opt/ansible/roles/server/tasks/network-parse.yaml:60

skipping: [localhost] => (item={'key': 'openshift.io/intel_numa0_res1', 'value': '1'})  => {
    "ansible_loop_var": "item",
    "changed": false,
    "item": {
        "key": "openshift.io/intel_numa0_res1",
        "value": "1"
    },
    "skip_reason": "Conditional result was False"
}

TASK [server : print network_resources] ****************************************
task path: /opt/ansible/roles/server/tasks/network-parse.yaml:69

ok: [localhost] => {
    "network_resources": {
        "openshift.io/intel_numa0_res1": "1"
    }
}

TASK [server : set_fact] *******************************************************
task path: /opt/ansible/roles/server/tasks/network-parse.yaml:73

Using module file /opt/ansible/.ansible/collections/ansible_collections/operator_sdk/util/plugins/modules/requeue_after.py
<localhost> PUT /opt/ansible/.ansible/tmp/ansible-local-856nfigsgis/tmp8syvekgh TO /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169/AnsiballZ_requeue_after.py
<localhost> EXEC /bin/sh -c 'chmod u+x /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169/ /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169/AnsiballZ_requeue_after.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python3.8 /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169/AnsiballZ_requeue_after.py && sleep 0'
ok: [localhost] => {
    "ansible_facts": {
        "network_name_list": [
            "intel-numa0-net1"
        ]
    },
    "changed": false
}

TASK [server : print network_name_list] ****************************************
task path: /opt/ansible/roles/server/tasks/network-parse.yaml:76

ok: [localhost] => {
    "network_name_list": [
        "intel-numa0-net1"
    ]
}

TASK [server : debug] **********************************************************
task path: /opt/ansible/roles/server/tasks/network-parse.yaml:2

<localhost> EXEC /bin/sh -c 'rm -f -r /opt/ansible/.ansible/tmp/ansible-tmp-1712821003.4116066-1014-30633987934169/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
    "changed": false,
    "invocation": {
        "module_args": {
            "time": "1m"
        }
    },
    "period": "1m"
}

TASK [app : check if treconfig is available] ***********************************
task path: /opt/ansible/roles/app/tasks/main.yml:5
ok: [localhost] => {
    "msg": "Gather network info of network: intel-numa0-net2"
}

What I observe is that reconcilliation is stopped 1 minute, then we have some tasks from the server role in the middle, but then, the next task in the app role is executed, check if treconfig is available. Also, there are some references to module file requeue_after that retrieves correctly some ansible_facts, such as the network_name_list.
However, in your last failed job, I can see this (omitting logs from server role):
TASK [app : requeue request] ***************************************************
task path: /opt/ansible/roles/app/tasks/main.yml:3

<localhost> ESTABLISH LOCAL CONNECTION FOR USER:<PHONE_NUMBER>
<localhost> EXEC /bin/sh -c 'echo ~1001000000 && sleep 0'

<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /opt/ansible/.ansible/tmp `"&& mkdir "` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523 `" && echo ansible-tmp-1712779635.1971033-770-254920554411523="` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523 `" ) && sleep 0'

...

Using module file /opt/ansible/.ansible/collections/ansible_collections/operator_sdk/util/plugins/modules/requeue_after.py

<localhost> PUT /opt/ansible/.ansible/tmp/ansible-local-750icrrye2f/tmpdd_pq5e_ TO /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/AnsiballZ_requeue_after.py

<localhost> EXEC /bin/sh -c 'chmod u+x /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/ /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/AnsiballZ_requeue_after.py && sleep 0'

<localhost> EXEC /bin/sh -c '/usr/bin/python3 /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/AnsiballZ_requeue_after.py && sleep 0'
{"level":"info","ts":"2024-04-10T20:07:15Z","logger":"runner","msg":"Ansible-runner exited successfully","job":"9191585421041408750","name":"trexconfig","namespace":"example-cnf"}

----- Ansible Task Status Event StdOut (examplecnf.openshift.io/v1, Kind=TRexConfig, trexconfig/example-cnf) -----

PLAY RECAP *********************************************************************
localhost                  : ok=43   changed=0    unreachable=0    failed=0    skipped=6    rescued=0    ignored=0

----------

<localhost> EXEC /bin/sh -c 'rm -f -r /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/ > /dev/null 2>&1 && sleep 0'
{"level":"info","ts":"2024-04-10T20:07:15Z","logger":"reconciler","msg":"Set the reconciliation to occur after 1m0s","job":"3254938556189571199","name":"trex-app","namespace":"example-cnf"}
ok: [localhost] => {
    "changed": false,
    "invocation": {
        "module_args": {
            "time": "1m"
        }
    },
    "period": "1m"
}
{"level":"error","ts":"2024-04-10T20:07:16Z","logger":"runner","msg":"\u001b[0;34mansible-playbook [core 2.15.6]\u001b[0m\r\n\u001b[0;34m  config file = /etc/ansible/ansible.cfg\u001b[0m\r\n\u001b[0;34m  configured module search path = ['/usr/share/ansible/openshift']\u001b[0m\r\n\u001b[0;34m  ansible python module location = /usr/local/lib/python3.9/site-packages/ansible\u001b[0m\r\n\u001b[0;34m  ansible collection location = /opt/ansible/.ansible/collections:/usr/share/ansible/collections\u001b[0m\r\n\u001b[0;34m  executable location = /usr/local/bin/ansible-playbook\u001b[0m\r\n\u001b[0;34m  python version = 3.9.18 (main, Sep 22 2023, 17:58:34) [GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] (/usr/bin/python3)\u001b[0m\r\n\u001b[0;34m  jinja version = 3.1.2\u001b[0m\r\n\u001b[0;34m  libyaml = True\u001b[0m\r\n\u001b[0;34mUsing /etc/ansible/ansible.cfg as config file\u001b[0m\r\n\u001b[0;34msetting up inventory plugins\u001b[0m\r\n\u001b[0;34mLoading collection ansible.builtin from \u001b[0m\r\n\u001b[0;34mhost_list declined parsing /tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/inventory/hosts as it did not pass its verify_file() method\u001b[0m\r\n\u001b[0;34mscript declined parsing /tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/inventory/hosts as it did not pass its verify_file() method\u001b[0m\r\n\u001b[0;34mauto declined parsing /tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/inventory/hosts as it did not pass its verify_file() method\u001b[0m\r\n\u001b[0;34mSet default localhost to localhost\u001b[0m\r\n\u001b[0;34mParsed /tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/inventory/hosts inventory source with ini plugin\u001b[0m\r\n\u001b[0;34mLoading collection operator_sdk.util from /opt/ansible/.ansible/collections/ansible_collections/operator_sdk/util\u001b[0m\r\n\u001b[0;34mLoading collection kubernetes.core from /opt/ansible/.ansible/collections/ansible_collections/kubernetes/core\u001b[0m\r\n\u001b[0;34mLoading callback plugin default of type stdout, v2.0 from /usr/local/lib/python3.9/site-packages/ansible/plugins/callback/default.py\u001b[0m\r\n\u001b[0;34mLoading callback plugin awx_display of type stdout, v2.0 from /usr/local/lib/python3.9/site-packages/ansible_runner/display_callback/callback/awx_display.py\u001b[0m\n\u001b[0;34mSkipping callback 'awx_display', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'default', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'minimal', as we already have a stdout callback.\u001b[0m\n\u001b[0;34mSkipping callback 'oneline', as we already have a stdout callback.\u001b[0m\n\r\nPLAYBOOK: d620838b3096462b9a3647527da144fe *************************************\r\n\u001b[0;34mPositional arguments: /tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/project/d620838b3096462b9a3647527da144fe\u001b[0m\r\n\u001b[0;34mverbosity: 4\u001b[0m\r\n\u001b[0;34mconnection: smart\u001b[0m\r\n\u001b[0;34mtimeout: 10\u001b[0m\r\n\u001b[0;34mbecome_method: sudo\u001b[0m\r\n\u001b[0;34mtags: ('all',)\u001b[0m\r\n\u001b[0;34minventory: ('/tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/inventory',)\u001b[0m\r\n\u001b[0;34mextra_vars: ('@/tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/env/extravars',)\u001b[0m\r\n\u001b[0;34mforks: 5\u001b[0m\n\u001b[0;34m1 plays in /tmp/ansible-operator/runner/examplecnf.openshift.io/v1/TRexApp/example-cnf/trex-app/project/d620838b3096462b9a3647527da144fe\u001b[0m\n\r\nPLAY [localhost] ***************************************************************\n\r\nTASK [app : requeue request] ***************************************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/app/tasks/main.yml:3\u001b[0m\n\u001b[0;34m<localhost> ESTABLISH LOCAL CONNECTION FOR USER:<PHONE_NUMBER>\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c 'echo ~1001000000 && sleep 0'\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p \"` echo /opt/ansible/.ansible/tmp `\"&& mkdir \"` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523 `\" && echo ansible-tmp-1712779635.1971033-770-254920554411523=\"` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523 `\" ) && sleep 0'\u001b[0m\n\u001b[0;34mUsing module file /opt/ansible/.ansible/collections/ansible_collections/operator_sdk/util/plugins/modules/requeue_after.py\u001b[0m\n\u001b[0;34m<localhost> PUT /opt/ansible/.ansible/tmp/ansible-local-750icrrye2f/tmpdd_pq5e_ TO /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/AnsiballZ_requeue_after.py\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c 'chmod u+x /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/ /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/AnsiballZ_requeue_after.py && sleep 0'\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c '/usr/bin/python3 /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/AnsiballZ_requeue_after.py && sleep 0'\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c 'rm -f -r /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.1971033-770-254920554411523/ > /dev/null 2>&1 && sleep 0'\u001b[0m\n\u001b[0;32mok: [localhost] => {\u001b[0m\r\n\u001b[0;32m    \"changed\": false,\u001b[0m\r\n\u001b[0;32m    \"invocation\": {\u001b[0m\r\n\u001b[0;32m        \"module_args\": {\u001b[0m\r\n\u001b[0;32m            \"time\": \"1m\"\u001b[0m\r\n\u001b[0;32m        }\u001b[0m\r\n\u001b[0;32m    },\u001b[0m\r\n\u001b[0;32m    \"period\": \"1m\"\u001b[0m\r\n\u001b[0;32m}\u001b[0m\n\r\nTASK [app : check if treconfig is available] ***********************************\r\n\u001b[1;30mtask path: /opt/ansible/roles/app/tasks/main.yml:6\u001b[0m\n\u001b[0;34m<localhost> ESTABLISH LOCAL CONNECTION FOR USER:<PHONE_NUMBER>\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c 'echo ~1001000000 && sleep 0'\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p \"` echo /opt/ansible/.ansible/tmp `\"&& mkdir \"` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965 `\" && echo ansible-tmp-1712779635.4739933-789-106948698014965=\"` echo /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965 `\" ) && sleep 0'\u001b[0m\n\u001b[0;34mLoading collection cloud.common from /opt/ansible/.ansible/collections/ansible_collections/cloud/common\u001b[0m\n\u001b[0;34mUsing module file /opt/ansible/.ansible/collections/ansible_collections/kubernetes/core/plugins/modules/k8s_info.py\u001b[0m\n\u001b[0;34m<localhost> PUT /opt/ansible/.ansible/tmp/ansible-local-750icrrye2f/tmp7jcs6e3_ TO /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965/AnsiballZ_k8s_info.py\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c 'chmod u+x /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965/ /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965/AnsiballZ_k8s_info.py && sleep 0'\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c '/usr/bin/python3 /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965/AnsiballZ_k8s_info.py && sleep 0'\u001b[0m\n\u001b[0;34m<localhost> EXEC /bin/sh -c 'rm -f -r /opt/ansible/.ansible/tmp/ansible-tmp-1712779635.4739933-789-106948698014965/ > /dev/null 2>&1 && sleep 0'\u001b[0m\n\u001b[0;31mThe full traceback is:\u001b[0m\r\n\u001b[0;31mTraceback (most recent call last):\u001b[0m\r\n\u001b[0;31m  File \"/tmp/ansible_kubernetes.core.k8s_info_payload_a48zd_yn/ansible_kubernetes.core.k8s_info_payload.zip/ansible_collections/kubernetes/core/plugins/module_utils/k8s/client.py\", line 351, in get_api_client\u001b[0m\r\n\u001b[0;31m    configuration = _create_configuration(auth_spec)\u001b[0m\r\n\u001b[0;31m  File \"/tmp/ansible_kubernetes.core.k8s_info_payload_a48zd_yn/ansible_kubernetes.core.k8s_info_payload.zip/ansible_collections/kubernetes/core/plugins/module_utils/k8s/client.py\", line 148, in _create_configuration\u001b[0m\r\n\u001b[0;31m    raise err\u001b[0m\r\n\u001b[0;31m  File \"/tmp/ansible_kubernetes.core.k8s_info_payload_a48zd_yn/ansible_kubernetes.core.k8s_info_payload.zip/ansible_collections/kubernetes/core/plugins/module_utils/k8s/client.py\", line 146, in _create_configuration\u001b[0m\r\n\u001b[0;31m    _load_config(auth)\u001b[0m\r\n\u001b[0;31m  File \"/tmp/ansible_kubernetes.core.k8s_info_payload_a48zd_yn/ansible_kubernetes.core.k8s_info_payload.zip/ansible_collections/kubernetes/core/plugins/module_utils/k8s/client.py\", line 120, in _load_config\u001b[0m\r\n\u001b[0;31m    kubernetes.config.load_kube_config(config_file=kubeconfig, **optional_arg)\u001b[0m\r\n\u001b[0;31m  File \"/usr/local/lib/python3.9/site-packages/kubernetes/config/kube_config.py\", line 813, in load_kube_config\u001b[0m\r\n\u001b[0;31m    loader = _get_kube_config_loader(\u001b[0m\r\n\u001b[0;31m  File \"/usr/local/lib/python3.9/site-packages/kubernetes/config/kube_config.py\", line 770, in _get_kube_config_loader\u001b[0m\r\n\u001b[0;31m    raise ConfigException(\u001b[0m\r\n\u001b[0;31mkubernetes.config.config_exception.ConfigException: Invalid kube-config file. No configuration found.\u001b[0m\r\n\u001b[0;31m\u001b[0m\r\n\u001b[0;31mThe above exception was the direct cause of the following exception:\u001b[0m\r\n\u001b[0;31m\u001b[0m\r\n\u001b[0;31mTraceback (most recent call last):\u001b[0m\r\n\u001b[0;31m  File \"/tmp/ansible_kubernetes.core.k8s_info_payload_a48zd_yn/ansible_kubernetes.core.k8s_info_payload.zip/ansible_collections/kubernetes/core/plugins/modules/k8s_info.py\", line 209, in main\u001b[0m\r\n\u001b[0;31m  File \"/tmp/ansible_kubernetes.core.k8s_info_payload_a48zd_yn/ansible_kubernetes.core.k8s_info_payload.zip/ansible_collections/kubernetes/core/plugins/module_utils/k8s/client.py\", line 356, in get_api_client\u001b[0m\r\n\u001b[0;31m    raise CoreException(msg) from e\u001b[0m\r\n\u001b[0;31mansible_collections.kubernetes.core.plugins.module_utils.k8s.exceptions.CoreException: Could not create API client: Invalid kube-config file. No configuration found.\u001b[0m\r\n\u001b[0;31mfatal: [localhost]: FAILED! => {\u001b[0m\r\n\u001b[0;31m    \"changed\": false,\u001b[0m\r\n\u001b[0;31m    \"invocation\": {\u001b[0m\r\n\u001b[0;31m        \"module_args\": {\u001b[0m\r\n\u001b[0;31m            \"api_key\": null,\u001b[0m\r\n\u001b[0;31m            \"api_version\": \"examplecnf.openshift.io/v1\",\u001b[0m\r\n\u001b[0;31m            \"ca_cert\": null,\u001b[0m\r\n\u001b[0;31m            \"client_cert\": null,\u001b[0m\r\n\u001b[0;31m            \"client_key\": null,\u001b[0m\r\n\u001b[0;31m            \"context\": null,\u001b[0m\r\n\u001b[0;31m            \"field_selectors\": [],\u001b[0m\r\n\u001b[0;31m            \"host\": null,\u001b[0m\r\n\u001b[0;31m            \"impersonate_groups\": null,\u001b[0m\r\n\u001b[0;31m            \"impersonate_user\": null,\u001b[0m\r\n\u001b[0;31m            \"kind\": \"TRexConfig\",\u001b[0m\r\n\u001b[0;31m            \"kubeconfig\": null,\u001b[0m\r\n\u001b[0;31m            \"label_selectors\": [],\u001b[0m\r\n\u001b[0;31m            \"name\": null,\u001b[0m\r\n\u001b[0;31m            \"namespace\": null,\u001b[0m\r\n\u001b[0;31m            \"no_proxy\": null,\u001b[0m\r\n\u001b[0;31m            \"password\": null,\u001b[0m\r\n\u001b[0;31m            \"persist_config\": null,\u001b[0m\r\n\u001b[0;31m            \"proxy\": null,\u001b[0m\r\n\u001b[0;31m            \"proxy_headers\": null,\u001b[0m\r\n\u001b[0;31m            \"username\": null,\u001b[0m\r\n\u001b[0;31m            \"validate_certs\": null,\u001b[0m\r\n\u001b[0;31m            \"wait\": false,\u001b[0m\r\n\u001b[0;31m            \"wait_condition\": null,\u001b[0m\r\n\u001b[0;31m            \"wait_sleep\": 5,\u001b[0m\r\n\u001b[0;31m            \"wait_timeout\": 120\u001b[0m\r\n\u001b[0;31m        }\u001b[0m\r\n\u001b[0;31m    },\u001b[0m\r\n\u001b[0;31m    \"msg\": \"Could not create API client: Invalid kube-config file. No configuration found.\"\u001b[0m\r\n\u001b[0;31m}\u001b[0m\n\r\nPLAY RECAP *********************************************************************\r\n\u001b[0;31mlocalhost\u001b[0m                  : \u001b[0;32mok=1   \u001b[0m changed=0    unreachable=0    \u001b[0;31mfailed=1   \u001b[0m skipped=0    rescued=0    ignored=0   \n","job":"3254938556189571199","name":"trex-app","namespace":"example-cnf","error":"exit status 2","stacktrace":"github.com/operator-framework/ansible-operator-plugins/internal/ansible/runner.(*runner).Run.func1\n\tansible-operator-plugins/internal/ansible/runner/runner.go:269"}

And here I reached the same point than you: we have an "invalid kube-config file" issue that, for me, it's the one that is causing the problems here.
bad thing is that this is the only operator where we call this requeue_after module... don't know if, maybe, it is worth to ask operator-sdk team for this particular issue.

Then, I don't know if we should play with that, I don't know, maybe trying with community.kubernetes, or removing kubernetes.core to see what happens. But it should not be happening, we already have kubernetes.core in the other operators and it's working fine, and also in the server role from this operator.

@ramperher yes, because I added  kubernetes.core to all tasks with k8s module, then even if we were installing community.kubernetes in reality it was not used, so I'll remove kubernetes.core to see what happens.

@manurodriguez I've seen this error while building eventtest-operator
kubernetes.config.config_exception.ConfigException: Invalid kube-config file. No configuration found

The solution in my case was to add x-kubernetes-preserve-unknown-fields: true in the CRD, to avoid k8s pruning the unknown field and displaying this unclear error with the kubeconfig while validating the schema. This displayed error was not the true error in my case, it happened because of an incorrect error handling
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
-- snip --
spec:
-- snip --
      schema:
-- snip --
            status:
              x-kubernetes-preserve-unknown-fields: true
              type: object
              properties:
-- snip --

@manurodriguez I've seen this error while building eventtest-operator
kubernetes.config.config_exception.ConfigException: Invalid kube-config file. No configuration found

The solution in my case was to add x-kubernetes-preserve-unknown-fields: true in the CRD, to avoid k8s pruning the unknown field and displaying this unclear error with the kubeconfig while validating the schema. This displayed error was not the true error in my case, it happened because of an incorrect error handling

Thanks for sharing @tkrishtop, I was checking and I see the trex CRDs  already have that setting set to true in my PR
manuel@fedora:~/RedHat/GIT/TelcoCI/github/example-cnf$ grep -B4 "x-kubernetes-preserve-unknown-fields" -r trex-operator/
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-            type: object
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-          spec:
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-            description: Spec defines the desired state of TRexApp
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-            type: object
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml:            x-kubernetes-preserve-unknown-fields: true
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-          status:
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-            description: Status defines the observed state of TRexApp
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml-            type: object
trex-operator/config/crd/bases/examplecnf.openshift.io_trexapps.yaml:            x-kubernetes-preserve-unknown-fields: true
--
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-            type: object
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-          spec:
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-            description: Spec defines the desired state of TRexConfig
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-            type: object
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml:            x-kubernetes-preserve-unknown-fields: true
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-          status:
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-            description: Status defines the observed state of TRexConfig
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml-            type: object
trex-operator/config/crd/bases/examplecnf.openshift.io_trexconfigs.yaml:            x-kubernetes-preserve-unknown-fields: true
--
trex-operator/trex-allinone.yaml-            type: object
trex-operator/trex-allinone.yaml-          spec:
trex-operator/trex-allinone.yaml-            description: Spec defines the desired state of TRexConfig
trex-operator/trex-allinone.yaml-            type: object
trex-operator/trex-allinone.yaml:            x-kubernetes-preserve-unknown-fields: true
trex-operator/trex-allinone.yaml-          status:
trex-operator/trex-allinone.yaml-            description: Status defines the observed state of TRexConfig
trex-operator/trex-allinone.yaml-            type: object
trex-operator/trex-allinone.yaml:            x-kubernetes-preserve-unknown-fields: true

I also tested removing kubernetes.core and force the use of community.kubernetes but the ansible-runner in the controller manager complains that there is no kubernetes.core module, more details in CILAB-1455.
I'll keep digging, thanks a lot!

I'm just wondering, should we try by removing the call to requeue_after in the app play? Because here: https://github.com/rh-nfv-int/nfv-example-cnf-deploy/blob/master/roles/example-cnf-app/tasks/trex/app.yaml#L31, we're already waiting for a correct status of TRexConfig, so then, we should not need to force a reconciliation loop after 1 minute since the resources should be already in place (before, it made sense because we were not waiting for resources to be ready, but now yes). Don't know if this may help but that's the only task that is a bit strange compared to the others

I'm just wondering, should we try by removing the call to requeue_after in the app play? Because here: https://github.com/rh-nfv-int/nfv-example-cnf-deploy/blob/master/roles/example-cnf-app/tasks/trex/app.yaml#L31, we're already waiting for a correct status of TRexConfig, so then, we should not need to force a reconciliation loop after 1 minute since the resources should be already in place (before, it made sense because we were not waiting for resources to be ready, but now yes). Don't know if this may help but that's the only task that is a bit strange compared to the others

@ramperher I agree that if we already have something to check for TrexConfig resources makes sense to remove it, and we schedule directly the trex-app job, this aligns with what I wanted to test, which is NOT to execute a task with k8s_info to see if there is a problem with that module, because the TrexConfig role only has k8s module tasks and that works. I'll give it a try. Thanks.

I'm resetting the last three commits to get back to kubernetes.core and force push the new changes.

Thanks for all the reviews and feedback, it's finally working! :smiling_face_with_tear:


data summary tab specialized selection for column variable

talk to @alesiahallmark for more thoughts on this.

mock-up as requested @sheilasaia!

Awesome, @atn38! Thank you for doing this. Maybe you, @wetlandscapes, and I can chat about how to make this work? We'd have to figure out how to figure out how to infer which summary report to choose based on their selection...which I think we'd need to get more info about before we can implement. @clnsmth, can you bring this up at our meeting this week?

It'd be awesome if you and @wetlandscapes can spare some time. Regardless
of how the data summary tab will look at this stage -- two options (1.)
Generate the complete HTML report, put that in an iframe for in-GUI display
(see #32), and include a download button, or (2.) Like the Paint mockup
above -- there's still the question of how to get the data+metadata list
objects once it is ingested to pass into the static report functions. To
that end I started looking into the GUI source code, and have a better idea
of what questions to ask compared to last week.
On Tue, Jun 25, 2019 at 9:20 AM Sheila<EMAIL_ADDRESS>wrote:

Awesome, @atn38 https://github.com/atn38! Thank you for doing this.
Maybe you, @wetlandscapes https://github.com/wetlandscapes, and I can
chat about how to make this work? We'd have to figure out how to figure out
how to infer which summary report to choose based on their
selection...which I think we'd need to get more info about before we can
implement. @clnsmth https://github.com/clnsmth, can you bring this up
at our meeting this week?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/IMCR-Hackathon/ggplotgui/issues/13?email_source=notifications&email_token=AKAZD5QNGG2DOBSI2WU2NGTP4ISSTA5CNFSM4HYBM2RKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYQM7OQ#issuecomment-505466810,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKAZD5TJQRH2Z3ADSF4X2ITP4ISSTANCNFSM4HYBM2RA
.

The app has moved enough away from this direction at this point, so I'm closing this.


Events for mouse keys and mouse scroll

Changes the meaning of &mmv to mean the amount of moves (pixels?) per second
Changes the meaning of &msc (new name for &mwh) to mean the amount of scroll events per second
Adds events for mouse keypresses: mouse-move-changed, mouse-button-changed and mouse-scroll-changed
Adds events for mouse ticks? mouse-move-tick and mouse-scroll-tick
Adds constant movement averaging based on actual tick timing
If the speed/scroll events are not neatly divisible by the number of ticks per second, carry the remainder over to the next tick.

Not ready for merge yet, i want to change more things


nixos/zeronet: fix settings option

Motivation for this change
The type for the settings option was not in line with the type of the defaultSettings or the given example making the option impossible to use.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

@ofborg eval
(Sorry, ofborg's certs recently had an issue, meaning that it was unable to
react to PRs. This has been fixed, but all PRs filed in this period will need
ofborg to be manually kicked off.)

Today, I came across this issue as well. Can't wait for someone to fix :}

Today, I came across this issue. Can't wait for this PR to get merged :}


Fix golint issue in volume_template_engine.go

File: volume_template_engine.go
Line 17: warning: package comment should be of the form "Package volume ..." (golint)

@lologarithm Please get the issue assigned before raising PR.
I am accepting this for now but please make sure you follow the procedure from next time.

Sorry about that -- ill make sure to do that next time.


Fix formatting if readme

@jethrolarson thanks for the contribution!
Could you please clarify the motivation under this PR?

Fixes the formatting of the markdown so evernthing isn't packed on the same line.


Random Loss increase between epochs

I use default config about configs/faster_rcnn_r50_fpn_1x.py, and train.py parameters are configs/faster_rcnn_r50_fpn_1x.py
I am using this on my own custom dataset but, I am getting random loss spikes. Sometimes these spikes result in a continuous increase in loss and segmentation fault.
I followed the suggestion in GETTING_STARTED.md and set my lr accordingly, but the result did not change. These spikes always occur at the start of a new epoch.
2020-02-07 08:09:11,774 - INFO - Epoch [85][700/702]	lr: 0.00001, eta: 1:12:12, time: 0.413, data_time: 0.006, memory: 3784, loss_rpn_cls: 0.0169, loss_rpn_bbox: 0.0154, loss_cls: 0.1619, acc: 95.7207, loss_bbox: 0.0654, loss: 0.2586 2020-02-07 08:09:33,983 - INFO - Epoch [86][50/702]	lr: 0.00001, eta: 1:11:51, time: 0.418, data_time: 0.011, memory: 3784, loss_rpn_cls:<PHONE_NUMBER>99534.0938, loss_rpn_bbox:<PHONE_NUMBER>3692.1758, loss_cls:<PHONE_NUMBER>10603.6875, acc: 95.6328, loss_bbox:<PHONE_NUMBER>1418.3047, loss:<PHONE_NUMBER>81001.1875 2020-02-07 08:09:54,643 - INFO - Epoch [86][100/702]	lr: 0.00001, eta: 1:11:30, time: 0.413, data_time: 0.006, memory: 3784, loss_rpn_cls: 0.0144, loss_rpn_bbox: 0.0178, loss_cls: 0.1575, acc: 95.8770, loss_bbox: 0.0648, loss: 0.2525

You might need to check your dataset; there might be some bug samples since it appears regularly.

The thing is that I tried to change the dataset structure, by taking items from different (train)set to another (test)set. However, no matter what I do, this always happens at the start of some new epoch. I am guessing that if it was a dataset problem It would occur regularly during the epoch, but it occurs when an epoch ends and a new one starts.

The thing is that I tried to change the dataset structure, by taking items from different (train)set to another (test)set. However, no matter what I do, this always happens at the start of some new epoch. I am guessing that if it was a dataset problem It would occur regularly during the epoch, but it occurs randomly when an epoch ends and a new one starts.

You can set a breakpoint when the loss is weird and chek which sample causes this problem.


Add fuse and spark Safe contracts addresses

Added Safe Contracts for Fuse and Spark based on this PR: https://github.com/gnosis/safe-deployments/pull/22

Sorry, I still see This branch has conflicts that must be resolved 😅 . I will merge as soon as you update the PR

@Uxio0 Sorry, I thought we were waiting for the contract verification, I fixed the conflicts. Thanks for reminding.

Thanks, done!


Feature Request: Contraint Modelling

Coming from the world of CAD I would really like it if constraints were available for modelling. They can be really useful when changing a design but wanting some features to be connected a certain way. The alternative way of doing this without constraints would be to scale every component independently and moving them around until thing look right.
I haven't seen in into any other program (other than point coincident contraint) and I think it would be really useful.

I don't have an example specific to 2D graphics (since none implement constraint but coming from a 3D cad environment one typically uses 2D sketches to implemnt certain aspect of a design

On the design below we can see various contraints in place (point coincident, horizontal, vertical contratins, symmetrical contraints, perpendicular constraints and midpoint constraints)

No if I were to change some aspect of this design all the contraint would be checked and the constraint solver would try and upheld them by changing some aspect of the design

A could program to play around with to get the hang of constraint and see how they might by useful would be solvespace https://github.com/solvespace/solvespace/

Finally another example could be a simpe clock design like so:

Where I could constraint the minute hand to be shorter than the radius of the clock and the hour hand to be shorter by some ratio than the minute hand and then modify my design until it is what I want

I hope that this is enought! I hope you like the idea and it fits into what you have envisioned for Graphite :)

Yeah, that is certainly very helpful @Keavon probably has more insight into to what extent that is already planned but these examples make your point very clear.

I would imagine this is also somewhat similar to how skeletal animation software does things with the concept of having something like joints

I haven't done any skeletal animations before but I would imagine that it would be useuful in that context as well! Nonetheless, I don't think that is a must have but rather a nice to have feature that once you get used to you won't want to go back 😋

I haven't replied yet to #217 and this one because I want to put in the time to write out my thoughts in detail. But very briefly, I am very excited that you have started a discussion about this in a venue where we can continue discussing it until eventually implementing the results of the proposals. The concept of CAD-like constrain systems, or more broadly the procedural/parametric approach used by CAD software, is something I have been wanting to learn more about to integrate those concepts into Graphite's procedural system. I see many uses for such a system, and probably this and #217 can be implemented in the same system to be useful for UIs and everything else. I'll try to get the time in the next few days to read through this thread and comment about what I imagine is possible and what needs further investigation and thought.

A good review of the space I have found is found in [1-3]. [1] is more relevant as it describes the problem of constraints in 2D. Early history of contraint solving is related to CAD modelling and the main people you should look research from are Glenn A. Kramer [4-6], Ioannis Fudos [7], Christoph M. Hoffmann [2,7]. This is from a quick research I did I havent read through them just skimmed them. I will update as I read more about them :)
References:
1
2
3
4
5
6
7


Reserved words

It seems like jshint is not checking for reserved words in variable names and function names.
For instance, this code passes jshint:
var x = { default: 3 };
x.delete = 3;
x.default = 5;
var export = 'test';

x.prototype.delete = function(){

};

Is jshint supposed to check for reserved words? Might some combination of settings be preventing it from working correctly?
The reason we care about this is that code that refers to a reserved word breaks the parser on iPad, iPhone, Android, etc.

Hmmm,
I get 5 errors if I paste your code into textbox on http://www.jshint.com/. I don't think there's an option to turn it off.
Maybe there are some reserved keywords that jshint does not recognize, but not in your example?
Currently, jshint looks for all working keywords (like delete, default) and these reserved ones:
class
const
enum
export
extends
import
super
let
yield
implements
interface
package
private
protected
public
static

Do you have other keywords or an older version of jshint?

@scriby, JSHint does complain when you use reserved keywords. See this report (I used the code from your example): http://www.jshint.com/reports/36004

I figured out the problem. If the ES5 flag is enabled, reserved words aren't checked. Is that intended behavior?

I checked the source and can see it's intended behavior. I guess my feature request would be to allow reserved word checking to be enabled / disabled explicitly.
From my testing, mobile browsers don't care about extra commas, but do break if using reserved words.


Grubhunt Goal

Add a goal for getting 46 grubs

Resolved on client side by https://github.com/ArchipelagoMW-HollowKnight/Archipelago.HollowKnight/commit/396610a16fdce6891a48bd999ef8096ec74873ff


[core / LoRA] Add safe_merge to bnb layers

What does this PR do?
Fixes: https://github.com/huggingface/peft/issues/1008
Analogous PR to #1001 but for bnb layers as well. Currently merge_and_unload fails for quantized models because merge does not have any positional argument.
This PR implements the safe_merge option for bnb layers
cc @pacman100 @BenjaminBossan

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Thanks, your comment makes sense!


Add external_addr to config (network section)

Motivation
Allow zebrad advertise address specified by user.

Solution

Add external_addr to config (network section).

In the diagram, I see that listen port (address) should be in AddressBook but I can not find code where listen_addr added to AddressBook. Can you help with this? https://github.com/ZcashFoundation/zebra/blob/2cecd52a106a8747f2510147481ceb3e372929a7/zebra-network/src/peer_set/candidate_set.rs#L46

The code in this pull request has:

[ ] Documentation Comments
[ ] Unit Tests and Property Tests

Related Issues

#1890
Follow Up Work

Allow set only IP address in listen_addr (default port from Network enum).
https://github.com/ZcashFoundation/zebra/blob/2cecd52a106a8747f2510147481ceb3e372929a7/zebra-network/src/peer_set/initialize.rs#L127-L128

In the diagram, I see that listen port (address) should be in AddressBook but I can not find code where listen_addr added to AddressBook. Can you help with this?

I think that diagram is a bit confusing, maybe we should say "Inbound Peer Connections to the zebrad listener port".

In the diagram, I see that listen port (address) should be in AddressBook but I can not find code where listen_addr added to AddressBook. Can you help with this?

I think that diagram is a bit confusing, maybe we should say "Inbound Peer Connections to the zebrad listener port".

#2036 might help here, I updated the docs.

I think we'll want to have separate IPv4 and IPv6 external addresses, and choose the external address based on the connection's IP version. (See #1890.)

It might be simpler to allow a list of external addresses, and:

choose a random one of the correct type for the Version response
put them all in the Peers response

That way, we support multi-homed nodes.

We might merge this as part of ticket #3117 when we get to it.


Pipeline save/load

Overview

As a pipelines user, I would like to pick a specific pipeline, store it and reload it for scoring purposes.
Acceptance Criteria

[x] Ability to pick the pipeline given an output
[x] Output can be at any stage of the pipeline
[x] Ability to store the pipeline to disk
[x] Ability to score the chosen pipeline

Questions

Assumptions

Reference

moved and closed


Question

Hello.
Can you share your research model trained in PASCAL-VOC?
And what is AEL in your paper?
thank you

Did you encounter any problems in reproducing the results?
AEL is a great work published in NeurIPS 2021.
https://proceedings.neurips.cc/paper/2021/file/b98249b38337c5088bbc660d8f872d6a-Paper.pdf

Hello.
I am doing some research on semi-supervised semantic segmentation.
Just to confirm some of your nice research, I could check through reproduction but just wanted to ask if PACAL-VOC is also shareable as you shared Checkpoints from Cityscapes for quick verification.
Thank you!

Checkpoints can be found here.

Oh, thank you so much!
Good luck!


add help overlay

What's this PR do?
adds a help overlay
Where should the reviewer start?
the new view and action
How should this be manually tested?
pull down branch, build, install, and press F1 after launch
What are the relevant tickets?
fixes #252

updated


Add some missing awaits and catch calls

There are still some instances where YesBot restarts on errors deleting messages so this PR adds some awaits and catch clauses in places where messages are deleted so it's not a problem if a user deletes their message faster than YesBot can.

Missing linting

Requires rebase

Couldn't spot any more missing catch and awaits. LGTM!

Oh WebStorm spotted plenty but the most recent crashes seemed to have been caused by errors in Message#delete calls, so those were my priority here. We can clean up the rest slowly but surely. The problematic ones will be easy to spot soon once null safety isn't an issue anymore!

Requires rebase

Done; merging then :)

Couldn't spot any more missing catch and awaits. LGTM!

Oh WebStorm spotted plenty but the most recent crashes seemed to have been caused by errors in Message#delete calls, so those were my priority here. We can clean up the rest slowly but surely. The problematic ones will be easy to spot soon once null safety isn't an issue anymore!

Requires rebase

Done; merging then :)

Should probably start using WebStorm then, I was going through major files 👀


[WIP] Display cluster name

Adding an option to display the cluster name for the question "Which alerts fire more than once per on-call shift (in the same cluster)?"
It will print the cluster name rather than the cluster ID

@anispate could you add a screenshot that demonstrates this UI change?

@anispate Looks like the style test is failing

Looks good. FWIW, the "osd-" string prefix not technically part of the cluster name. I'm not sure if it's worth the effort to remove it.

I don't think Zabbix is the correct title for this either

/label tide/merge-method-squash

@anispate Can you please squash the commits?

Left one nit. One more nit: Should we call the column "service" instead of "Cluster name", since that is honestly what we're using? Sometimes the service maybe dead man snitch which isn't really a cluster name.


Disable multi-threaded mode for gsutil in :destroy_tfstate

Due to unknown reasons gsutil rm hangs if multi-threaded mode enabled and there is nothing to remove:
bash-4.4# gsutil -m rm -r gs://gpii-gcp-dev-natarajaya-tfstate/dev/k8s
CommandException: 1 files/objects could not be removed.
^CCaught CTRL-C (signal 2) - exiting

LGTM


Do we need to define continuous and categorical features explicitly in mix type dataset?

Do we need to define continuous and categorical features explicitly in mix type dataset?

In this work, we don't make any assumptions about the underlying data. So, you don't need to define them explicitly. However, you can always choose to treat categorical and continuous features differently if you prefer it.
I will close this issue, but feel free to re-open it, or open another one if/when you have any further questions.

"you can always choose to treat categorical and continuous features differently if you prefer it." how? if there any option in the model setting?

For example, you can choose to add different type of noise to the features based on whether they are categorical or continuous. Or, you can add embedding layer for categorical features, and use their embeddings rather than raw categorical features. And so on...it is really up to your imagination.
You need to customise the code to do any of these things mentioned above. But, it should be fairly straightforward.

Thank you for your reply, It would be really helpful if you could add UCI Adult Income dataset settings for train and test.

UCI Adult dataset is publicly available, and well-studied dataset with separate train and test sets. Please download it from UCI website. I will assume that this issue is completed now.


Adding static http headers

Describe the bug
I'm trying to add static http headers to my API call like in the example.
@Headers(<String, dynamic>{
'Content-Type': 'application/json',
'Custom-Header': 'Your header',
})
But I'm getting an error 'Annotation must be either a const variable reference or const constructor invocation.'
Can someone help?
Steps to reproduce the behavior:
Add static http headers to any API call like below,
@GET('/api/endpoint')
@Headers(<String, dynamic>{
'Content-Type': 'application/json',
'Custom-Header': 'Your header',
})
Expected behavior
The headers must be added to the API request and should get success response.

I've got same issue but i solved.
import 'package:retrofit/http.dart' as http;

@http.Headers({"Content-Type": "application/json"})

It is working.
I think there is same naming issue with dio package's Headers.


QR-code not working

QR-code generate button is disabled
image from docker hub - ngoduykhanh/wireguard-ui:latest and 0.3.7

it's because the field "privkey" in profile's is empty... ;)

The document or UI needs to be adjusted to warn the user :)

Which private_key field?


feat: moved trace logic to a server.onLoad hook

Related issues

closes #
Short description and why it's useful

Screenshots of visual changes before/after (if there are any)

Which environment this relates to
Check your case. In case of any doubts please read about Release Cycle

[ ] Test version (https://test.storefrontcloud.io) - this is a new feature or improvement for Vue Storefront. I've created branch from develop branch and want to merge it back to develop
[ ] RC version (https://next.storefrontcloud.io) - this is a stabilisation fix for Release Candidate of Vue Storefront. I've created branch from release branch and want to merge it back to release
[ ] Stable version (https://demo.storefrontcloud.io) - this is an important fix for current stable version. I've created branch from hotfix or master branch and want to merge it back to hotfix

Upgrade Notes and Changelog

[x] No upgrade steps required (100% backward compatibility and no breaking changes)
[ ] I've updated the Upgrade notes and Changelog on how to port existing VS sites with this new feature

IMPORTANT NOTICE - Remember to update CHANGELOG.md with description of your change
Contribution and currently important rules acceptance

[ ] I read and followed contribution rules

hey @filrak you mean something like that?
When yes I would polish it a bit more and maybe move the whole serverModules logic to a hook to so you can just have different exports on like modules two for the server then. One that is loaded pretty early like now the tracing stuff needs to be and the second one for added routes or middlewares to the server.

@pkarw
I have moved the whole extend logic to a hook which takes the app, config.server and isProd as an object as a parameter.
Then I have changed the first hook to a be named trace hook so you know that is should be used to add your tracing library.

@ResuBaka would be awesome to add some additional hooks by this chance:

afterOutputRendered - so the users can adjust req/res/context doing some filtering etc - by having this we could have a Munich plugin not in the core as we currently have but asa separate module
beforeOutputRendered - passing the request context that can be modified / prepared + res / req so the users can adjust the headers or the context  - we can even do something like if the hook will return any continent / set any content or pass some flag or do req.end we can skip running ssr - I mean the way to use this hook to implement custom caching algorithm
beforeCacheInvalidated

I have added the new hooks but that is only a basic implementation as I am not 100% sure how to add each of them in the best way.
So it would be great when I get there some feedback on what they should be able to do.

@pkarw at this point before adding those hooks n89mI want you to decide if we want to be server-comaptible with nuxt in terms of hooks. The ones you proposed cannot be translated to other frameworks therefore will break potentially all server side modules.
Are we okay with that? I think if you see urgent need for them now we can be ok with that because we will drop support for those modules but have nuxt ones in return.
If you don't see urgent need for this hooks I would advice to wait with adding  (any) new APIs until they needed.

@ResuBaka I'll wait with a. review till @pkarw will answer because it takes into account function signatures as well

This PR should not be merged to fast.
As we should exactly know what each hook should do. As the MutatorHook I think needs a bit more thinking if there are right or not

@ResuBaka is it ready to be merged in? Are you still working on this?

@andrzejewsky it should work. I have not tested it, I only have written it after the logic of how each hook should work like from there internal logic.
So I would say that before we merge it there should be done a bit of QA of each hook so it we are 100% sure that it all works like every buddy would expect this works.


Power Consumption Too High

I'm using an ESP32-S3 qt py with a BME280 sensor. With a solar panel charging the 350mAh battery, once it gets dark it only lasts for less than 2 hours. Measuring the power draw with my multimeter it was using ~20-50 mA, but online I'm seeing the expected power consumption of the esp32-s3 at around 100+mA. I'd like to have the battery last through the night.
If I could wake on when the rain gauge flips, I could use sleep or deep sleep. I may need to use the raspberry pi Pico for that.

I could also use LoRa instead of wifi for reducing power usage too, but that adds complexity of another controller or computer needed to bridge between LoRa and Wifi. Could I connect the microcontroller to zigbee instead? What about matter/thread?


[reconciler] Skip Handler

We want to make sure no reconciliations "enter the abyss".

Pull Request Test Coverage Report for Build 9507

59 of 102 (57.84%)  changed or added relevant lines in 1 file are covered.
65 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.4%) to 78.103%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

reconciler/reconciler.go
59
102
57.84%

Files with Coverage Reduction
New Missed Lines
%

reconciler/reconciler.go
65
76.38%

Totals

Change from base Build 9435:
-0.4%

Covered Lines:
6841

Relevant Lines:
8759

💛  - Coveralls


Add examples for reset-batch and batch commands in help usage section

What changed?
Added some usage examples of reset-batch and batch commands

Why?
Cadence cli is bit complicated, with batch command you can get confused between terminating batch operation or batch terminating workflows. Hope provided examples will help.

How did you test it?
Tested locally only

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 0188529c-b95f-44af-96b4-99225f03853c

0 of 0   changed or added relevant lines in 0 files are covered.
6240 unchanged lines in 92 files lost coverage.
Overall coverage decreased (-0.08%) to 57.257%

Files with Coverage Reduction
New Missed Lines
%

common/persistence/taskManager.go
1
73.12%

service/matching/service.go
1
92.41%

tools/cli/flags.go
1
99.77%

common/cluster/metadata.go
2
88.24%

common/membership/hashring.go
2
83.54%

common/peerprovider/ringpopprovider/config.go
2
81.58%

common/persistence/nosql/nosqlplugin/types.go
2
60.0%

common/persistence/sql/common.go
2
50.65%

common/persistence/sql/sqlplugin/mysql/db.go
2
83.33%

common/rpc/middleware.go
2
95.52%

Totals

Change from base Build 018849b6-e2e9-4d8c-863f-96d6f17e44e5:
-0.08%

Covered Lines:
85864

Relevant Lines:
149962

💛  - Coveralls


clustering: influxdb 0.9.0-rc23 panics when doing a GET with merge_metrics in a 3 node cluster

influxdb.log: panic: distributed queries not implemented yet and there are too many shards in this group
the command I use to get the panic is: monasca measurement-list cpu.idle_perc 1970 --merge_metrics

I understand if this is a feature that hasn't been implemented yet, but the same commands worked with RC19, so we have written many regression tests with merge_metrics in the GET that now fail.

OK, this may be a regression since we did change the query engine.
Can you supply a sequence of curl commands (writing data, then reading it) which brings out this issue?
https://github.com/influxdb/influxdb/blob/master/CONTRIBUTING.md#bug-reports

this is the curl command I use to reproduce it:
curl -i -X GET -H 'X-Auth-User: mini-mon' -H 'X-Auth-Token: 46968286c92a423da87b2eae570c422a' -H 'X-Auth-Key: password' -H 'Accept: application/json' -H 'User-Agent: python-monascaclient' -H 'Content-Type: application/json' --cacert /usr/local/share/ca-certificates/monasca_test_ca.crt https://mon-ae1test-monasca01.useast.hpcloud.net:8080/v2.0/metrics/measurements?start_time=1970&merge_metrics=True&name=cpu.idle_perc

I just reproduce it with influxdb stand-alone as follows:

installed rc23 on 3 nodes, modified the join-urls on the 2 worker nodes to point to the master
ran the following curl commands (from the influxdb 0.9 doc. page):
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
curl -XPOST 'http://localhost:8086/write' -d '                                                       {
"database": "mydb",
"retentionPolicy": "default",
"points": [
{
"name": "cpu_load_short",
"tags": {
"host": "server01",
"region": "us-west"
},
"timestamp": "2009-11-10T23:00:00Z",
"fields": {
"value": 0.64
}
}
]
}
'
curl -G 'http://localhost:8086/query' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
influxdb fails with panic message from original comment

From: https://github.com/influxdb/influxdb/blob/master/tx.go#L144, it looks like this is triggered because the replication factor is less than the number of servers in the cluster.  I believe the default replication factor is 1 for the default retention policy and you are using a 3 node cluster.  You might try creating a retention policy w/ a replication factor of 3 and specifying that RP in your writes as a work around.
@otoolep is this panic still needed though?

Yeah, that could be an issue. Let me look into it, we may not need the explicit panic any longer.

How do I change the replication factor to 3 with 0.9 ? I was told that was taken out of the conf file, but I'm not sure what replaces it ?

I resolved the issue in my enviironment by adding DEFAULT to the database creation so that the correct retention policy and replication factor get set; no opinion on whether that panic should still occur if the replication factor doesn't match the clustered env, perhaps a more informative message would help.

Here is the requested documentation.
http://influxdb.com/docs/v0.9/query_language/database_administration.html#modifying-a-retention-policy

this works for me now

Facing the same issue on rc25. 3 server setup, all 3 are both broker and data-node.
Then I put some data
curl -XPOST 'http://influxdb:8086/write' -d '
{
    "database": "ilia",
    "retentionPolicy": "default",
    "points": [
        {
            "name": "cpu",
            "tags": {
                "host": "server1",
                "region": "nl"
            },
            "timestamp": "2015-04-10T15:00:00Z",
            "fields": {
                "value": 10.64
            }
        },
        {
            "name": "cpu",
            "tags": {
                "host": "server1",
                "region": "nl"
            },
            "timestamp": "2015-04-10T15:05:00Z",
            "fields": {
                "value": 20.00
            }
        },
        {
            "name": "cpu",
            "tags": {
                "host": "server1",
                "region": "nl"
            },
            "timestamp": "2015-04-10T15:10:00Z",
            "fields": {
                "value": 25.00
            }
        },
        {
            "name": "cpu",
            "tags": {
                "host": "server1",
                "region": "nl"
            },
            "timestamp": "2015-04-10T15:15:00Z",
            "fields": {
                "value": 35.01
            }
        }
    ]
}'

Then I run
curl -G http://influxdb:8086/query?pretty=true --data-urlencode "q=SELECT * FROM cpu" --data-urlencode "db=ilia"

And it crashed the node.
Then I found this issue. Created the policy with replicaN = 2 and it started to work. But that's weak,  default retention policy has replicaN = 1 (which is not more than the number of servers in the cluster). Why it is running into the panic?
Although, In <0.9.0 there was an option to set the default replica factor and in 0.9.0 there is not.

even though this works when the replication factor matches the number of nodes in the cluster, it sounds like there is still a question around whether the panic should occur if the replication factor is less than the number of clustered nodes.

@jwilder how do I configure default amount of shards?

@svscorp You should be able to change the replication factor using the CLI
$ influx
> alter retention policy "default" on "mydb" replication 3 default

You could also create new retention policy and mark is as default
$ influx
> create retention policy "myrp" on "mydb" duration 1d replication 2 default

@jwilder I get it, my question was about some kind of configuration, how it was done in <0.9. But that's okay, means I need to execute the ALTER query after I created a database.
But I think it would be wise to have a configuration for applying the default replication factor to all the new databases created with 'default' key. Because it's easy to lost that bit, you need to always make 1 query more to have the replication factor you need (or include it to the create db query).
What do you think?

Also, here it is hardcoded:
https://github.com/influxdb/influxdb/blob/master/server.go#L1104
maybe it make sense to define it as constant or something (or again, the configuration)?


remove unnecessary media types that were added by mistake in the new errors

@ArnaudDebray @lde-nside @lde-nside Would be nice if you finished all reviews so that we can merge these PRs and clean up the almost-finished work :)
Or else we can merge them with an override, if you don't mind.

Hello Narve,
If it s OK for you I will do it on Monday.
Today is a public holiday here in Belgium and I will be off tomorrow as
well.
Sorry for the inconvenience.
Chloe
Le jeu. 11 nov. 2021 à 10:36, Narve Sætre @.***> a
écrit :

@ArnaudDebray https://github.com/ArnaudDebray @lde-nside
https://github.com/lde-nside @lde-nside https://github.com/lde-nside
Would be nice if you finished all reviews so that we can merge these PRs
and clean up the almost-finished work :)
Or else we can merge them with an override, if you don't mind.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/euniversal/umei-api-specification/pull/21#issuecomment-966150939,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AWK44CVVAQXBCTQLYFPKZVTULOFCVANCNFSM5HYLQFTQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

No problem, we will pick this up on Monday then.


Way to manually poll instead of 'for_each'

Hallo
I have been trying to integrate the message-io in a game framework i am currently using. However , I have been experiencing blocking issues which I am not sure how to overcome (i am very to this). To explain: I have setup a simple Tcp server by following the server example which works well. However, I have setup the client in a different fashion, by integrating it (client example) into the game loop , which can run at 60fps. This is causing my game to freeze, and i think is because it runs an infinite loop (since client runs listener.for_each loop, which is itself inside the game loop). Of course i am quite new to this, but I was wondering; is there a way to manually poll, instead of using the for_each method? That way I could integrate the client exmaple directly in the game loop and not worry about blocking issues.  I have attached source file below, just run cargo run --release on server to open server, then cargo run --release on client (and notice how game window freezes to white)
Hope i explained well.. Thanks!
integration issue.zip

Hi @tree786,
Yeah, listener.for_each() will run forever (until you call NodeHandler::stop()), and it will block your game loop if you call from inside.
To use the NodeListener with a game loop you can use several patterns:
1. Shared state
let game_state: Arc<Mutex<GameState>> = Arc::new(Mutex::new(GameState::new()));

let task = listener.for_each_async(|event| { //The async version will not block
    //deserialize
    //modify the game state
});

loop {
    let state = game_state.lock().unwrap();
    // Your game logic
    //...

    // unlock state
    // wait for the next frame (in the meantime, the for_each function can access the state to update it)
}

2. Sending actions
let (sender, recevier) = mpsc::channel();
let task = listener.for_each_async(|event| { //The async version will not block
    //deserialize
    //idenfity the action
    sender.send(action):
});

let game_state = GameState::new();

loop {
    for action in receiver.try_iter() { // Do not block if try_iter is used
         //Do the network logic for each action
    }

    // Your game logic
    //...
}

3. Use listener.enqueue()
The easier way but it could reduce slightly the performance because it copies the message.
let game_state = GameState::new();
let (task, mut receiver) = listener.enqueue();

loop {
    for node_event in receiver.try_receive() { // Do not block if try_receive() is used
         //Deserialize the message here
         //Do the network logic for this message/event
    }

    // Your game logic
    //...
}

I hope it helps you!

Hi, Thanks very much for detailed answer! I have attempted to try point (3), however I still seem to be having infinite loop issues (i.e. freezing game) , due to my limited info on integrations. What I want to do is call the listener.enqueue() function once every frame (i.e. manually have control over execution rate), rather than allowing it to run infinitely in the game . Thanks and apoligyes for bothering you with this!

Hi @tree786,
The listener.enqueue() takes ownership of the NodeListener to transform it into an event queue. It must be called only once. The NodeListener::enqueue() will return an EventReceiver that is the receiver part of the event queue that can be used every frame in order to receive the events (it contains typical channel methods as receive(), receive_timeout(), try_receive().
Since the listener.enqueue() will make the node send asynchronously events into the EventReceiver it must be alive during that process. To achieve this, you need to assign the NodeTask entity to an variable to not drop it:
fn my_game() {
    let (task, mut receiver) = listener.enqueue();

    loop {
        // Use the receiver here (the task must live during that process, if not, no event will be received.
    }
    // task is dropped here. You could save it into a struct with a higher lifetime than the function scope
    // if you need the node "alive".
}

Hi , thanks very much again for detailed answer ! I think this is good, it works well however I am running into some issues when integrating it in the game framework I using. I think issue is due to the game framework, so I need to investigate that. But thanks again , I close this issue now!

I now working in the game framework. I will soon hopefully post video to show it in a basic 3D cars game multiplayer  intend to make with !

Cool! If you want, when you have it you can make a PR to add it in the open source projects section.

Sure that sounds great! :)

And just to show the basic progress so far, it is now working very well with the game framework, video here. This should be the basis for the networked car game I plan to work on shortly!

Hello
Apologies if this bad place to post, but not sure where else I should..
As a simple follow up to my posts above ,  I have kind of made the game where any number of clients can connect to server and ride a car.. Here is video
It uses the message-io for networking (mostly UDP, and tiny bit of TCP). There are many issues and problems to solve, and some I think i cannot do due to my lack of underastanding of networking etc
Thanks..

Sorry, I didn't answer that message. The video is so cool! Go it!
If you have a problem understanding some message-io concept, do not hesitate to open an issue :)

No problems  thanks for comment ! :) I have made a new thread here link where i post some update


CVE Incorrectly Assigned Chrome CPE

CISA has assigned Google Chrome CPE to a couple CVE incorrectly: CVE-2024-1694 and CVE-2023-7261 (at least).
In each case, CISA has assigned:
        "affected": [
          {
            "cpes": [
              "cpe:2.3:a:google:chrome:*:*:*:*:*:*:*:*"
            ],
            "vendor": "google",
            "product": "chrome",
            "versions": [
              {
                "status": "affected",
                "version": "<IP_ADDRESS>1"
              }
            ],
            "defaultStatus": "unknown"
          }
        ],

However, in each case this is incorrect. The vulnerability affects the Chrome updater and not Chrome itself. The version number <IP_ADDRESS>1 not a Chrome version (Chrome's current version is ~126).
The vendor even states this clearly by reporting the affected software is "Omaha" and not "Chrome"
      "affected": [
        {
          "vendor": "Google",
          "product": "Omaha",
          "versions": [
            {
              "status": "affected",
              "version": "<IP_ADDRESS>1",
              "lessThan": "<IP_ADDRESS>1",
              "versionType": "custom"
            }
          ]
        }
      ],

@j-baines Thanks for the report. I've sent this to our analysts for review.

@j-baines Our analysts reviewed and updated this. Thank you!


[SPARK-38002][BUILD] Upgrade ZSTD-JNI to 1.5.2-1

What changes were proposed in this pull request?
This PR aims to upgrade ZSTD-JNI to 1.5.2-1.
Why are the changes needed?
This will bring the following improvements.

https://github.com/luben/zstd-jni/commit/1cc38de0153dd83ccd465b115c72573fe7d97930 (Reducing synchronization in RecyclingBufferPool)
https://github.com/luben/zstd-jni/commit/16b841192635a02292a172c28fde57a425479eab (Import Zstd v1.5.2)
https://github.com/luben/zstd-jni/commit/fb16a195367d1fb6a1ed699f36fbd38b67a853b0 (Remove redundant reset)
https://github.com/luben/zstd-jni/commit/13711375c88ccc2291c4077f35be98552e6898be (Expose the default compression level)
https://github.com/luben/zstd-jni/commit/1e7ea4d4ec144ad2cd52a3f26ab02eb9938c9943 (Remove the tag on some tests that was added for)
https://github.com/luben/zstd-jni/commit/d786f6e6c157a289f7282d3a0116f3840d1e1f69 (Mark deprecated APIs with deprecated annotation.)

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass the CIs.

cc @williamhyun

Thank you so much, @williamhyun and @HyukjinKwon .
The first commit already passed and the second commit is adding benchmark results.
Merged to master for Apache Spark 3.3.


Localization of the description of the extension in the "details" tab

Hello, thanks for your work!
I do not understand browser extensions. Is it possible to localize the description of the extension in the "Details" tab (I use firefox browser)? I found the description text in chrome-web-store/en/description.txt. Need to create a similar file in the chrome-web-store/ru folder?

Thank you for your contribution.
The description of the extension can be localized.
If you translate the description into Russian and save it as web-store-assets/ru/description.txt (I renamed the folder just now), I will upload it to Firefox Add-ons and Chrome Web Store manually.

#35

Thank you. I've uploaded the Russian description to the web stores.


Home page

@janicez11, overall looks great, 1 spacing issue. Also, do remove the unneeded images (logos), we don't have a lot of disk real estate on our server.

@janicez11 looks great merging!


[Question] Clarifications on how the manifest endpoint should behave in the context of manifests of indexes referenced by other indexes

This is related to https://github.com/regclient/regclient/issues/808 and https://github.com/project-zot/zot/issues/2624.
The server contains the following index with digest sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c which can be retrieved using the manifests endpoint.
{
    "schemaVersion": 2,
    "mediaType": "application/vnd.oci.image.index.v1+json",
    "manifests": [
        {
            "mediaType": "application/vnd.oci.image.index.v1+json",
            "digest": "sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9",
            "size": 508
        }
    ]
}

The other index with digest "sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9" has been previously deleted by the user using delete on the manifests endpoint (by tag or digest, zot behaves the same at the moment). So "sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9" is no longer tracked as a manifest. It could still be present as a regular blob as it is referenced by the index sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c.
If I want to copy sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c, am getting:
regctl image copy -v debug andaaron-cs-bld.insieme.local:8080/test-index@sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c ocidir://local_copy:local-tag
DEBU[0000] Loading docker config                         api= blobChunk=0 blobMax=0 helper= hostname=aci-docker-reg.cisco.com mirrors="[]" name=aci-docker-reg.cisco.com pathPrefix= repoAuth=false tls=enabled user=andaaron
DEBU[0000] Loading docker config                         api= blobChunk=0 blobMax=0 helper= hostname="andaaron-cs-bld.insieme.local:8080" mirrors="[]" name="andaaron-cs-bld.insieme.local:8080" pathPrefix= repoAuth=false tls=enabled user=test
DEBU[0000] Loading host config                           api= blobChunk=0 blobMax=0 helper= hostname="localhost:32896" mirrors="[]" name="localhost:32896" pathPrefix= repoAuth=false tls=disabled user=
DEBU[0000] Loading host config                           api= blobChunk=0 blobMax=0 helper= hostname="andaaron-cs-bld.insieme.local:8080" mirrors="[]" name="andaaron-cs-bld.insieme.local:8080" pathPrefix= repoAuth=false tls=enabled user=test
DEBU[0000] Loading host config                           api= blobChunk=0 blobMax=0 helper= hostname=ghcr.io mirrors="[]" name=ghcr.io pathPrefix= repoAuth=false tls=enabled user=
DEBU[0000] regclient initialized                         VCSRef=832109d4e9ef96982c4a4a8614b276b752509e5b VCSTag=v0.5.7
DEBU[0000] Image copy                                    digest-tags=false recursive=false source="andaaron-cs-bld.insieme.local:8080/test-index@sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c" target="ocidir://local_copy:local-tag"
DEBU[0000] http req                                      method=GET url="https://andaaron-cs-bld.insieme.local:8080/v2/test-index/manifests/sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c" withAuth=false
DEBU[0000] Auth request parsed                           challenge="[{basic map[realm:zot]}]"
DEBU[0000] http req                                      method=GET url="https://andaaron-cs-bld.insieme.local:8080/v2/test-index/manifests/sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c" withAuth=true
DEBU[0000] Copy platform                                 digest="sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9" platform="<nil>"
DEBU[0000] http req                                      method=GET url="https://andaaron-cs-bld.insieme.local:8080/v2/test-index/manifests/sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9" withAuth=true
DEBU[0000] Request failed                                Status="Not Found" URL="https://andaaron-cs-bld.insieme.local:8080/v2/test-index/manifests/sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9"
copy failed, error getting source: failed to get manifest andaaron-cs-bld.insieme.local:8080/test-index@sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9: request failed: not found [http 404]: {"errors":[{"code":"MANIFEST_UNKNOWN","message":"manifest unknown","detail":{"description":"This error is returned when the manifest, identified by name and tag is unknown to the repository.","reference":"sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9"}}]

As you can see above, regctl does a call on the manifests endpoint for "sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9". But this blob is only present on the server as a blob, because as a manifest it was deleted using the manifests delete API.
I would have expected it to be downloaded using the blobs API instead, even if it is image metadata (same as you would download and read a config blob).
Question
So let's clarify the expected behavior, because on image copy regctl assumes a reference of type index can always be read using the manifests API, and this is not implemented as such in zot.
While zot assumes the respective reference needs to point to a valid blob accessible through the blobs API, the content may not be accessible using the manifests API if it was previously the target of a delete API call.
How to harmonize these implementations? (we still have some changes we need to do in zot, but the question is where do we want to get).
Do we:

Deny the initial call to delete a manifest or index if it is referenced by another index in order to keep consistency (for both tags and digest refences)?
or
We allow the initial call to delete to get through and delete the manifest/index making it accessible for the /blobs endpoint, but making it inaccessible to the /manifests endpoint.
or
We start differentiating between delete by tag and delete by digest, making delete by tag to keep the underlying blob, and making it available to the manifests endpoint using the digest, while delete by digest removes it entirely. In case of delete by digest, do we want to error if the digest is referenced by another index?

Version
VCSTag:     v0.5.7
VCSRef:     832109d4e9ef96982c4a4a8614b276b752509e5b
VCSCommit:  832109d4e9ef96982c4a4a8614b276b752509e5b
VCSState:   clean
VCSDate:    2024-02-06T21:25:52Z
Platform:   linux/amd64
GoVer:      go1.21.6
GoCompiler: gc

Environment
Downloaded binary  on Linux x86. Registry is zot.
Anything else

https://github.com/regclient/regclient/issues/808
https://github.com/project-zot/zot/issues/2624

Manifests and blobs are accessed by separate APIs and a manifest does not become a blob when it is deleted. There's nothing in the spec saying a registry should do that, and it would go against my own expectations. There is some code in regclient to support some unusual uses of an index to include blobs, but this is not used when the media type is a well known manifest, and registries have been known to reject an index that includes references to things that are not manifests. In general, everything listed in the index should only be a manifest and anything else is likely to experience compatibility issues.
There are registries that will reject the manifest delete by digest API because it can create dangling references like this. The API already differentiates between deleting a tag and deleting a digest. Deleting the digest both deletes the manifest and all tags that reference that manifest. Deleting a tag just removes that pointer to the digest and whether the underlying content is deleted is up to the garbage collection.
There is also a push to improve support for a "sparse index" where not all listed manifests are on that registry. This is particularly useful for mirrors in an organization that only needs to serve content for a limited number of platforms. Support for that is slowly getting there in regclient. Some places allow the list of platforms to be copied, but other parts treat a missing manifest as a hard failure.

Rereading the question, I think you want to go with option 3. Treat tags as symlinks to a manifest (digest), and a tag delete just deletes the symlink. Whether the underlying digest is later deleted is up to the garbage collection.

I would expect a behavior similar to option 3: If I delete the last tag of a manifest/index and it is still referenced by another index (via its digest), I would expect the manifest/index to still be available via the regular manifest API (via its digest).

@sudo-bmitch BTW: There is now a script available with the commands to reproduce the problem (as you originally requested in https://github.com/regclient/regclient/issues/808#issuecomment-2301918686). This script can be found here: https://github.com/project-zot/zot/issues/2624#issuecomment-2306587418

@sudo-bmitch BTW: There is now a script available with the commands to reproduce the problem (as you originally requested in #808 (comment)). This script can be found here: project-zot/zot#2624 (comment)

Thanks. FYI, there are a few bugs I see in the script. The size needs to be the original manifest size, so you'd want to use --format raw-body to get the unmodified body of the manifest to calculate that. Upstream tools may or may not format the json with whitespace, and could change the field ordering. Also, while not recommended, it's possible that the media type is not included in the manifest body.
You can get a full descriptor generated by regctl with a command like:
regctl manifest head --require-digest --format '{{json .GetDescriptor}}' ghcr.io/regclient/regctl:latest

And even easier is to have regctl create the index with a single command, which includes the needed copy commands:
regctl index create localhost:5002/demo/index:latest --ref ghcr.io/regclient/regctl:latest

Double checking to be sure (I think this is more of a dist spec question). On image UPLOAD, is there a guarantee the client would be pushing both the multiarch image index and the manifests using the /manifests endpoint? Or are clients allowed to push the manifests as blobs, and just the index to the /manifests endpoint?
In this specific case is there a dist spec guarantee "sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9" would be initially pushed to the manifests endpoint before "sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c"? Or the dist spec only guarantees "sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c" is pushed to the manifests endpoint?
Theoretically "sha256:9bfb6783db1a79ce62781b08afa14edf22912612e486da9ae7a49d68825e4d4c" could still be a valid image if "sha256:79ea4dd4b676f0059664fc75ed196eaee7e4d13de2e97bd6530f4de981586cb9" is present on the server after being pushed as a blob, right?

@sudo-bmitch BTW: There is now a script available with the commands to reproduce the problem (as you originally requested in #808 (comment)). This script can be found here: project-zot/zot#2624 (comment)

Thanks. FYI, there are a few bugs I see in the script. The size needs to be the original manifest size, so you'd want to use --format raw-body to get the unmodified body of the manifest to calculate that. Upstream tools may or may not format the json with whitespace, and could change the field ordering. Also, while not recommended, it's possible that the media type is not included in the manifest body.
You can get a full descriptor generated by regctl with a command like:
regctl manifest head --require-digest --format '{{json .GetDescriptor}}' ghcr.io/regclient/regctl:latest

And even easier is to have regctl create the index with a single command, which includes the needed copy commands:
regctl index create localhost:5002/demo/index:latest --ref ghcr.io/regclient/regctl:latest

Thank you for all the insights. I fixed the actual bug in the test script for now. Apart from that we will also consider to adjust our PoC tool implementation and replace the manual creation of manifests/indexes with these more powerful commands where appropriate.

Double checking to be sure (I think this is more of a dist spec question). On image UPLOAD, is there a guarantee the client would be pushing both the multiarch image index and the manifests using the /manifests endpoint? Or are clients allowed to push the manifests as blobs, and just the index to the /manifests endpoint?

I'd personally treat pushing or pulling an entry from the manifests in an index using the blob API as a bug. But there are broken implementations out there (specifically buildkit pushed its cache to registries with an index of blobs, which I think is now fixed). It would be best to follow up with distribution-spec to avoid implementing my personal opinions.

Opened https://github.com/opencontainers/distribution-spec/issues/550

Thanks. I'll close this out here and will follow the discussion over in distribution-spec.


windows 11 build fail

Env
OS: windows 11
Python: 3.9.0
Cuda: 12.2
Torch:                     1.12.0
Torchvision:               0.13.0
C compiler：Visual Studio 2022

Build Detail Info
D:\DeepSpeed> .\build_win.bat
No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2'
[WARNING] Torch did not find cuda available, if cross-compiling or running with cpu only you can ignore this message. Adding compute capability for Pascal, Volta, and Turing (compute capabilities 6.0, 6.1, 6.2)
DS_BUILD_OPS=1
test.c
LINK : fatal error LNK1181: 无法打开输入文件“aio.lib”
 [WARNING]  async_io requires the dev libaio .so object and headers but these were not found.
 [WARNING]  If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found.
系统找不到指定的文件。
 [WARNING]  cpu_adagrad requires the 'lscpu' command, but it does not exist!
 [WARNING]  cpu_adagrad attempted to query 'lscpu' after failing to use py-cpuinfo to detect the CPU architecture. 'lscpu' does not appear to exist on your system, will fall back to use -march=native and non-vectorized execution.
系统找不到指定的文件。
 [WARNING]  cpu_adagrad requires the 'lscpu' command, but it does not exist!
 [WARNING]  cpu_adagrad attempted to query 'lscpu' after failing to use py-cpuinfo to detect the CPU architecture. 'lscpu' does not appear to exist on your system, will fall back to use -march=native and non-vectorized execution.
 [WARNING]  cpu_adagrad cuda is missing or is incompatible with installed torch, only cpu ops can be compiled!
系统找不到指定的文件。
 [WARNING]  cpu_adam requires the 'lscpu' command, but it does not exist!
 [WARNING]  cpu_adam attempted to query 'lscpu' after failing to use py-cpuinfo to detect the CPU architecture. 'lscpu' does not appear to exist on your system, will fall back to use -march=native and non-vectorized execution.
系统找不到指定的文件。
 [WARNING]  cpu_adam requires the 'lscpu' command, but it does not exist!
 [WARNING]  cpu_adam attempted to query 'lscpu' after failing to use py-cpuinfo to detect the CPU architecture. 'lscpu' does not appear to exist on your system, will fall back to use -march=native and non-vectorized execution.
 [WARNING]  cpu_adam cuda is missing or is incompatible with installed torch, only cpu ops can be compiled!
 [WARNING]  sparse_attn cuda is not available from torch
 [WARNING]  please install triton==1.0.0 if you want to use sparse attention
Install Ops={'async_io': False, 'cpu_adagrad': 1, 'cpu_adam': 1, 'fused_adam': 1, 'fused_lamb': 1, 'quantizer': 1, 'random_ltd': 1, 'sparse_attn': False, 'spatial_inference': 1, 'transformer': 1, 'stochastic_transformer': 1, 'transformer_inference': 1}
version=0.10.1+ceccfa3e, git_hash=ceccfa3e, git_branch=master
install_requires=['hjson', 'ninja', 'numpy', 'packaging>=20.0', 'psutil', 'py-cpuinfo', 'pydantic<2.0.0', 'torch', 'tqdm']
compatible_ops={'async_io': False, 'cpu_adagrad': True, 'cpu_adam': True, 'fused_adam': True, 'fused_lamb': True, 'quantizer': True, 'random_ltd': True, 'sparse_attn': False, 'spatial_inference': True, 'transformer': True, 'stochastic_transformer': True, 'transformer_inference': True, 'deepspeed_not_implemented': False}
ext_modules=[<setuptools.extension.Extension('deepspeed.ops.adagrad.cpu_adagrad_op') at 0x2bb9069d070>, <setuptools.extension.Extension('deepspeed.ops.adam.cpu_adam_op') at 0x2bb908d3d90>, <setuptools.extension.Extension('deepspeed.ops.adam.fused_adam_op') at 0x2bbda2742e0>, <setuptools.extension.Extension('deepspeed.ops.lamb.fused_lamb_op') at 0x2bb9069d8e0>, <setuptools.extension.Extension('deepspeed.ops.quantizer.quantizer_op') at 0x2bb9069d340>, <setuptools.extension.Extension('deepspeed.ops.random_ltd_op') at 0x2bb9069dcd0>, <setuptools.extension.Extension('deepspeed.ops.spatial.spatial_inference_op') at 0x2bb9069d940>, <setuptools.extension.Extension('deepspeed.ops.transformer.transformer_op') at 0x2bb9069d9a0>, <setuptools.extension.Extension('deepspeed.ops.transformer.stochastic_transformer_op') at 0x2bb9069d4c0>, <setuptools.extension.Extension('deepspeed.ops.transformer.inference.transformer_inference_op') at 0x2bb9073e340>]
running bdist_wheel
running build
running build_py
copying deepspeed\git_version_info_installed.py -> build\lib.win-amd64-cpython-39\deepspeed
running egg_info
writing deepspeed.egg-info\PKG-INFO
writing dependency_links to deepspeed.egg-info\dependency_links.txt
writing entry points to deepspeed.egg-info\entry_points.txt
writing requirements to deepspeed.egg-info\requires.txt
writing top-level names to deepspeed.egg-info\top_level.txt
reading manifest file 'deepspeed.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST_win.in'
adding license file 'LICENSE'
writing manifest file 'deepspeed.egg-info\SOURCES.txt'
running build_ext

after running build_ext,the script finished

thanks,@loadams .Now I don't know how to get the error info. It's just end the script! Do you have some suggest to get the error info

@farmercode It looks like there are 2 things you will need to address:

The torch install doesn't seem to be finding CUDA in your environment:

No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2'
[WARNING] Torch did not find cuda available

You will need to disable AIO by setting the following environment variable: DS_BUILD_AIO=0

Getting DeepSpeed installed on Windows can be tricky, we highly recommend using Windows Subsystem for Linux (WSL) instead.

@mrwyattii @loadams thanks


align the icons in the navbar-end

Fix #928
The search and theme switcher were special-cased in wide screens.
This PR ensures that if a high number of icons are set in the navbar-end

converting back to draft. It gives strange results on our doc

@12rambau what is your intention for this one? Is it no longer an issue for you?

it's still an issue but only in documentations with a lot of navbar-end icons so not a priority. I was working on the bootstrap thing so I left it on stale. I'll soon come back to it

explaination can be found in #928


chore(main): release react 0.0.7-experimental

:robot: I have created a release beep boop
0.0.7-experimental (2024-11-03)
🐛 Bug Fixes

typedoc updated (fcfd4dd)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/open-socket/js-sdk/releases/tag/react-v0.0.7-experimental :sunflower:


feat: [Consign2] Add In Demand section

Addresses https://artsyproduct.atlassian.net/browse/GRO-34
This gets a first pass of the the In Demand Now section in.
Some follow-up items in next PR:

Verify data (diffusion) fields are correct
Sum up average of all artists' artwork prices for average in top-artists section
Replace graph image with svg (?)
A little more precise design QA (margins)

Also starts getting the overall page in shape, e.g., capping center content width for each section.
cc @artsy/grow-devs

Looks great! Merging to keep things moving 🚂


Make --sysctl inherit from system-wide configs?

Currently we set --sysctl by system defaults. There're several reasons to make it inheritable:

There's currently no support with --sysctl in docker-compose, which makes it impossible to configure.
This also breaks some level of  compatibility with previous docker versions, but not highlighted in change log of v1.12.

Make this inheritable will at least supply a trivial solution to some circumstances, and make upgrade work easier.

Sorry what do you mean by inheritable? I also do not understand what you
think is incompatible, could you explain.
You should open an issue on compose for missing functionality.
On 8 Sep 2016 6:12 a.m., "Kassian Sun"<EMAIL_ADDRESS>wrote:
Currently we set --sysctl by some hard-coded values. There're several
reasons to make it inheritable:

There's currently no support with --sysctl in docker-compose, which
makes it impossible to configure.
This also breaks some level of compatibility with previous docker
versions, but not listed in change log of v1.12.

Make this inheritable will at least supply a trivial solution to some
circumstances, and make upgrade work easier.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/docker/docker/issues/26407, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAdcPFaAEvOyBF_BV_7OXOmwZOLKBLqJks5qn5k7gaJpZM4J3neS
.

@justincormack If there is a server configured with somaxconn=2048,  before v1.12, all containers will has somaxconn configured as 2048, which is adequate for a production database/website server. After upgrade to v1.12, new container's somaxconn will fallback to 128, not an acceptable value for a production server.
Well, maybe I'm too harsh on 'compatibility'. And inheriting from system-wide setting will break some level of isolation. More like a trade-off than an issue, closed.

ping @justincormack ^^ something that needs to be looked into?


Make keywords case insensitive

Use external tokenizer

some progress, but further changes are difficult because it would change the AST.