Connection refused

Description
Hi, I just followed quickstart guide to installed mayastor to test.
And stuck on place to start using plugin, for some reason it does not working:
Expected Behavior
# kubectl-mayastor get nodes
NAME                       STATE    AGE
aks-agentpool-12194210-0   online   8m18s
aks-agentpool-12194210-1   online   8m19s
aks-agentpool-12194210-2   online   8m15s

Current Behavior
# kubectl-mayastor get nodes
Failed to list nodes. Error error in request: error trying to connect: tcp connect error: Connection refused (os error 111)

Possible Solution
Implement verbose log for get command, to understand what exactly is it trying to do.
Steps to Reproduce

Screenshots

Your Environment

kubectl get nodes:

NAME             STATUS   ROLES                  AGE     VERSION
hf-kubevirt-01   Ready    control-plane,master   3d14h   v1.21.7
hf-kubevirt-02   Ready    worker                 3d      v1.21.7
hf-kubevirt-03   Ready    worker                 2d3h    v1.21.7

kubectl get pods --all-namespaces:

NAMESPACE                   NAME                                               READY   STATUS    RESTARTS   AGE
d8-cert-manager             annotations-converter-webhook-77864dd4d4-vkkn6     1/1     Running   4          3d
d8-cert-manager             cainjector-f6b59b5f4-sbqpq                         1/1     Running   19         3d
d8-cert-manager             cert-manager-647c6698c5-qz677                      2/2     Running   9          2d14h
d8-cert-manager             legacy-cert-manager-954ffffcc-rtcsm                2/2     Running   9          2d14h
d8-cert-manager             legacy-webhook-78d59854c4-64cfx                    1/1     Running   10         3d
d8-cert-manager             webhook-655fb4f8bd-2htgp                           1/1     Running   4          3d
d8-chrony                   chrony-4z7c5                                       1/1     Running   171        2d3h
d8-chrony                   chrony-5rxr5                                       1/1     Running   12         3d
d8-chrony                   chrony-b9nrz                                       1/1     Running   40         3d
d8-cloud-instance-manager   bashible-apiserver-69c6fb4bcf-jnpq7                1/1     Running   25         3d1h
d8-cni-flannel              flannel-mms6v                                      1/1     Running   6          2d3h
d8-cni-flannel              flannel-vpgvl                                      1/1     Running   180        3d13h
d8-cni-flannel              flannel-w9btd                                      1/1     Running   6          3d
d8-dashboard                cm-acme-http-solver-kwqgn                          1/1     Running   2          39h
d8-dashboard                dashboard-94db75f75-lt7wg                          1/1     Running   13         2d14h
d8-dashboard                dashboard-dex-authenticator-cd9d5446-xj7bj         2/2     Running   6          2d14h
d8-dashboard                metrics-scraper-86c6b54f9c-42skl                   1/1     Running   3          2d14h
d8-descheduler              descheduler-78b7fc8d68-zrmsz                       1/1     Running   140        2d14h
d8-monitoring               cm-acme-http-solver-plg4n                          1/1     Running   2          39h
d8-monitoring               cm-acme-http-solver-r4xdf                          1/1     Running   2          39h
d8-monitoring               control-plane-proxy-425f55b4-k9gc6                 3/3     Running   21         3d
d8-monitoring               grafana-85d5b5bc4-9mfcg                            3/3     Running   9          2d14h
d8-monitoring               grafana-dex-authenticator-568b694cfc-lhb82         2/2     Running   6          2d14h
d8-monitoring               kube-state-metrics-584f44bdf-kh5kk                 2/2     Running   12         2d14h
d8-monitoring               monitoring-ping-7tv5j                              1/1     Running   0          53m
d8-monitoring               monitoring-ping-j6785                              1/1     Running   0          53m
d8-monitoring               monitoring-ping-nszvr                              1/1     Running   0          54m
d8-monitoring               node-exporter-kzdr6                                3/3     Running   0          53m
d8-monitoring               node-exporter-mxqhq                                3/3     Running   0          53m
d8-monitoring               node-exporter-qswrp                                3/3     Running   0          54m
d8-monitoring               prometheus-longterm-0                              3/3     Running   6          39h
d8-monitoring               prometheus-main-0                                  3/3     Running   6          39h
d8-monitoring               prometheus-metrics-adapter-84b9d6bf77-tmb85        2/2     Running   28         3d
d8-monitoring               trickster-5dbd469c8-wb7zx                          2/2     Running   338        2d14h
d8-operator-prometheus      prometheus-operator-6d78d645b9-ncd56               2/2     Running   12         2d14h
d8-pod-reloader             pod-reloader-586f79f88f-4nkj2                      2/2     Running   6          2d14h
d8-system                   cm-acme-http-solver-j9tfs                          1/1     Running   3          2d4h
d8-system                   deckhouse-868d4b8544-tptmx                         1/1     Running   11         3d
d8-system                   deckhouse-web-7584fbf464-zdct2                     1/1     Running   3          2d14h
d8-system                   deckhouse-web-dex-authenticator-7cf54797f4-hxqbn   2/2     Running   6          2d14h
d8-system                   node-local-dns-88b4b                               2/2     Running   28         3d
d8-system                   node-local-dns-8spw6                               2/2     Running   21         3d
d8-system                   node-local-dns-9sztf                               2/2     Running   26         2d3h
d8-system                   webhook-handler-b5df967c7-22rvx                    1/1     Running   10         3d
d8-upmeter                  cm-acme-http-solver-llkjh                          1/1     Running   3          2d4h
d8-upmeter                  cm-acme-http-solver-wmtj4                          1/1     Running   2          39h
d8-upmeter                  cm-acme-http-solver-xx2d9                          1/1     Running   2          39h
d8-upmeter                  smoke-mini-a-0                                     1/1     Running   0          22s
d8-upmeter                  smoke-mini-b-0                                     1/1     Running   0          86s
d8-upmeter                  smoke-mini-c-0                                     1/1     Running   0          4m30s
d8-upmeter                  smoke-mini-d-0                                     1/1     Running   0          3m24s
d8-upmeter                  smoke-mini-e-0                                     1/1     Running   0          2m22s
d8-upmeter                  status-68dbb4fbdd-zr8tv                            1/1     Running   3          2d14h
d8-upmeter                  status-dex-authenticator-76c6589b5c-zd858          2/2     Running   6          2d14h
d8-upmeter                  upmeter-0                                          2/2     Running   4          39h
d8-upmeter                  upmeter-agent-cjqxn                                1/1     Running   19         3d
d8-upmeter                  upmeter-dex-authenticator-7644cb485b-v9svh         2/2     Running   6          2d14h
d8-upmeter                  webui-58b8c6d6c4-bn48s                             1/1     Running   3          2d14h
d8-user-authn               cm-acme-http-solver-dw767                          1/1     Running   2          39h
d8-user-authn               cm-acme-http-solver-wktl6                          1/1     Running   2          39h
d8-user-authn               dex-795bffbd5b-6g6f7                               1/1     Running   23         2d14h
default                     nsenter-u4r4er                                     1/1     Running   0          21m
kube-system                 d8-control-plane-manager-tfsw6                     6/6     Running   28         3d
kube-system                 d8-kube-dns-5c94c845c4-5k4nd                       2/2     Running   8          3d
kube-system                 d8-kube-dns-5c94c845c4-ldpzj                       2/2     Running   8          2d22h
kube-system                 d8-kube-proxy-b92hs                                2/2     Running   0          53m
kube-system                 d8-kube-proxy-bmx5j                                2/2     Running   0          54m
kube-system                 d8-kube-proxy-w84nv                                2/2     Running   0          53m
kube-system                 etcd-hf-kubevirt-01                                1/1     Running   8          3d
kube-system                 kube-apiserver-hf-kubevirt-01                      2/2     Running   26         3d
kube-system                 kube-controller-manager-hf-kubevirt-01             1/1     Running   8          3d
kube-system                 kube-scheduler-hf-kubevirt-01                      1/1     Running   7          3d
kube-system                 vpa-admission-controller-7754dc595f-l8pjl          1/1     Running   4          3d
kube-system                 vpa-recommender-5768f87788-lhms5                   1/1     Running   3          2d14h
kube-system                 vpa-updater-585545f74d-m26ln                       1/1     Running   3          2d14h
local-path-storage          local-path-provisioner-cc67d8db7-gcxjt             1/1     Running   0          114m
mayastor                    core-agents-698c9ff9f6-svmzz                       1/1     Running   0          110m
mayastor                    csi-controller-7cbdfbd6f8-cfr8t                    3/3     Running   0          110m
mayastor                    mayastor-8f9qv                                     1/1     Running   0          102m
mayastor                    mayastor-csi-2whpj                                 2/2     Running   0          110m
mayastor                    mayastor-csi-7br4q                                 2/2     Running   0          110m
mayastor                    mayastor-csi-nswn5                                 2/2     Running   0          110m
mayastor                    mayastor-etcd-0                                    1/1     Running   0          117m
mayastor                    mayastor-etcd-1                                    1/1     Running   0          117m
mayastor                    mayastor-etcd-2                                    1/1     Running   0          117m
mayastor                    mayastor-fv5xs                                     1/1     Running   0          102m
mayastor                    mayastor-p2dbp                                     1/1     Running   1          102m
mayastor                    msp-operator-6cfd9db65d-c784f                      1/1     Running   0          109m
mayastor                    nats-0                                             2/2     Running   0          117m
mayastor                    nats-1                                             2/2     Running   0          117m
mayastor                    nats-2                                             2/2     Running   0          116m
mayastor                    rest-5cd9665499-rkjvh                              1/1     Running   0          106m

kubectl get services:

NAMESPACE                   NAME                              TYPE           CLUSTER-IP       EXTERNAL-IP                                 PORT(S)                               AGE
d8-cert-manager             annotations-converter-webhook     ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-cert-manager             cert-manager-webhook              ClusterIP      <IP_ADDRESS>    <none>                                      443/TCP                               3d
d8-cert-manager             legacy-cert-manager-webhook       ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-cloud-instance-manager   bashible-api                      ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d13h
d8-dashboard                cm-acme-http-solver-tnd7g         NodePort       <IP_ADDRESS>   <none>                                      8089:31074/TCP                        3d
d8-dashboard                dashboard                         ClusterIP      <IP_ADDRESS>   <none>                                      8443/TCP                              3d
d8-dashboard                dashboard-dex-authenticator       ClusterIP      <IP_ADDRESS>    <none>                                      443/TCP                               3d
d8-dashboard                dashboard-metrics-scraper         ClusterIP      <IP_ADDRESS>    <none>                                      8000/TCP                              3d
d8-monitoring               cm-acme-http-solver-4t6mw         NodePort       <IP_ADDRESS>     <none>                                      8089:31427/TCP                        3d
d8-monitoring               cm-acme-http-solver-rzqbs         NodePort       <IP_ADDRESS>   <none>                                      8089:30984/TCP                        3d
d8-monitoring               grafana                           ClusterIP      None             <none>                                      443/TCP                               3d
d8-monitoring               grafana-dex-authenticator         ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-monitoring               kube-state-metrics                ClusterIP      None             <none>                                      8080/TCP                              3d
d8-monitoring               kubelet                           ClusterIP      None             <none>                                      10250/TCP,10255/TCP,4194/TCP          3d
d8-monitoring               prometheus                        ClusterIP      None             <none>                                      9090/TCP                              3d
d8-monitoring               prometheus-longterm               ClusterIP      None             <none>                                      9090/TCP                              3d
d8-monitoring               prometheus-metrics-adapter        ClusterIP      <IP_ADDRESS>    <none>                                      443/TCP                               3d
d8-monitoring               prometheus-operated               ClusterIP      None             <none>                                      9090/TCP                              3d
d8-monitoring               trickster                         ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-system                   cm-acme-http-solver-7q64h         NodePort       <IP_ADDRESS>    <none>                                      8089:31675/TCP                        3d
d8-system                   conversion-webhook-handler        ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d13h
d8-system                   deckhouse-web                     ClusterIP      <IP_ADDRESS>    <none>                                      80/TCP                                3d
d8-system                   deckhouse-web-dex-authenticator   ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-system                   validating-webhook-handler        ClusterIP      <IP_ADDRESS>    <none>                                      443/TCP                               3d13h
d8-upmeter                  cm-acme-http-solver-jdrh8         NodePort       <IP_ADDRESS>    <none>                                      8089:30085/TCP                        3d
d8-upmeter                  cm-acme-http-solver-jv2w5         NodePort       <IP_ADDRESS>   <none>                                      8089:31326/TCP                        3d
d8-upmeter                  cm-acme-http-solver-xw5cp         NodePort       <IP_ADDRESS>    <none>                                      8089:31525/TCP                        3d
d8-upmeter                  smoke-mini                        ClusterIP      None             <none>                                      8080/TCP                              3d
d8-upmeter                  smoke-mini-a                      ClusterIP      None             <none>                                      8080/TCP                              120m
d8-upmeter                  smoke-mini-b                      ClusterIP      None             <none>                                      8080/TCP                              121m
d8-upmeter                  smoke-mini-c                      ClusterIP      None             <none>                                      8080/TCP                              119m
d8-upmeter                  smoke-mini-d                      ClusterIP      None             <none>                                      8080/TCP                              118m
d8-upmeter                  smoke-mini-e                      ClusterIP      None             <none>                                      8080/TCP                              118m
d8-upmeter                  status                            ClusterIP      <IP_ADDRESS>    <none>                                      80/TCP                                3d
d8-upmeter                  status-dex-authenticator          ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-upmeter                  upmeter                           ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
d8-upmeter                  upmeter-dex-authenticator         ClusterIP      <IP_ADDRESS>     <none>                                      443/TCP                               3d
d8-upmeter                  webui                             ClusterIP      <IP_ADDRESS>   <none>                                      80/TCP                                3d
d8-user-authn               cm-acme-http-solver-qnz9g         NodePort       <IP_ADDRESS>   <none>                                      8089:31460/TCP                        3d
d8-user-authn               cm-acme-http-solver-r4x28         NodePort       <IP_ADDRESS>   <none>                                      8089:30605/TCP                        3d
d8-user-authn               dex                               ClusterIP      <IP_ADDRESS>   <none>                                      443/TCP                               3d
default                     kubernetes                        ClusterIP      <IP_ADDRESS>       <none>                                      443/TCP                               3d14h
kube-system                 d8-kube-dns                       ClusterIP      <IP_ADDRESS>      <none>                                      53/UDP,53/TCP                         3d13h
kube-system                 kube-dns                          ExternalName   <none>           d8-kube-dns.kube-system.svc.cluster.local   <none>                                3d13h
kube-system                 vpa-webhook                       ClusterIP      <IP_ADDRESS>      <none>                                      443/TCP                               3d
mayastor                    mayastor-etcd                     ClusterIP      <IP_ADDRESS>    <none>                                      2379/TCP,2380/TCP                     117m
mayastor                    mayastor-etcd-headless            ClusterIP      None             <none>                                      2379/TCP,2380/TCP                     117m
mayastor                    nats                              ClusterIP      None             <none>                                      4222/TCP,6222/TCP,8222/TCP,7777/TCP   118m
mayastor                    rest                              NodePort       <IP_ADDRESS>    <none>                                      8080:30010/TCP,8081:30011/TCP         106m
root@docker-desktop

kubectl get sc:

NAME              PROVISIONER                  RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local-path        rancher.io/local-path        Delete          WaitForFirstConsumer   false                  114m
manual            rancher.io/local-path        Delete          WaitForFirstConsumer   false                  113m
piraeus-ssd       linstor.csi.linbit.com       Delete          Immediate              true                   5h23m
rook-ceph-block   rook-ceph.rbd.csi.ceph.com   Delete          Immediate              true                   21h

kubectl get pv:

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                           STORAGECLASS      REASON   AGE
pvc-3ea19863-2354-4d5b-ae1c-1141d3f86537   2Gi        RWO            Delete           Bound      mayastor/data-mayastor-etcd-0   manual                     113m
pvc-e5e6d77c-ec99-4a83-a1b0-d650fc67af00   2Gi        RWO            Delete           Bound      mayastor/data-mayastor-etcd-2   manual                     113m
pvc-f1946355-8fea-4b00-85c9-fbe6a6132cf9   2Gi        RWO            Delete           Bound      mayastor/data-mayastor-etcd-1   manual                     113m

kubectl get pvc:

NAMESPACE   NAME                   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mayastor    data-mayastor-etcd-0   Bound    pvc-3ea19863-2354-4d5b-ae1c-1141d3f86537   2Gi        RWO            manual         119m
mayastor    data-mayastor-etcd-1   Bound    pvc-f1946355-8fea-4b00-85c9-fbe6a6132cf9   2Gi        RWO            manual         119m
mayastor    data-mayastor-etcd-2   Bound    pvc-e5e6d77c-ec99-4a83-a1b0-d650fc67af00   2Gi        RWO            manual         119m

OS (from /etc/os-release):

NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Kernel (from uname -a):

Linux hf-kubevirt-03 5.4.0-54-generic #60-Ubuntu SMP Fri Nov 6 10:37:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Install tools:
Deckhouse
Others:

Strace output showed that plugin is trying to establish connection on <IP_ADDRESS>:30011
connect(9, {sa_family=AF_INET, sin_port=htons(30011), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = -1 EINPROGRESS (Operation now in progress)

This is nodeport of service -n mayastor svc/rest. Of course this will not work on my local computer.
But the interesting fact is that it is not working even on node, kube-proxy don't set nodeport rules for localhost 🤷

Thanks for reporting this issue @kvaps.
By default the plugin will attempt to use the information stored in the KUBECONFIG file. You can override this behaviour using the plugins -r option and supplying the REST endpoint:
kubectl-mayastor -r http://<ip_address>:<port> get nodes
If you do this, does it resolve the issue?

Thanks for explanation.
Wouldn't it be better to always go through apiserver-proxy?
So this will make rest-server accessible outside of the cluster:
kubectl get --raw /api/v1/namespaces/mayastor/services/rest:http/proxy/v0/nodes
[{"id":"hf-kubevirt-03","spec":{"grpcEndpoint":"<IP_ADDRESS>:10124","id":"hf-kubevirt-03"},"state":{"grpcEndpoint":"<IP_ADDRESS>:10124","id":"hf-kubevirt-03","status":"Online"}},{"id":"hf-kubevirt-02","spec":{"grpcEndpoint":"<IP_ADDRESS>:10124","id":"hf-kubevirt-02"},"state":{"grpcEndpoint":"<IP_ADDRESS>:10124","id":"hf-kubevirt-02","status":"Online"}},{"id":"hf-kubevirt-01","spec":{"grpcEndpoint":"<IP_ADDRESS>:10124","id":"hf-kubevirt-01"},"state":{"grpcEndpoint":"<IP_ADDRESS>:10124","id":"hf-kubevirt-01","status":"Online"}}]

Hi @kvaps yes it would indeed we've already discussed using the kube api to avoid exposing the node port where possible, this will hopefully be done for next release.


[BUG] Create security contact doesn't include 201 as successful response

Schema: https://github.com/Azure/azure-rest-api-specs/blob/1959aa63dd7a626aac36cc0e6b8c656dd2c1791d/specification/security/resource-manager/Microsoft.Security/preview/2017-08-01-preview/securityContacts.json#L148

What happened?
When creating a security contact the API returns status code 201 (as expected), however, this is not included among successful status codes in the API schema.

What did you expect or want to happen?
201 should be considered a successful status code for PUT https://management.azure.com/subscriptions/<subscription_id>/providers/Microsoft.Security/securityContacts/default1?api-version=2017-08-01-preview

This seems to be fixed in newer versions of the API specs (https://github.com/Azure/azure-rest-api-specs/blob/8d7bacd13dc8b1b260578c8ff74ef317c562c3ed/specification/security/resource-manager/Microsoft.Security/preview/2020-01-01-preview/securityContacts.json#L114).

Actually, the API specs require fixing, cause the API v2017-08-01-preview does return 201 in some cases, I was able to reproduce.

Duplicate of #10717.


Update to 22.1.1

Compiled and verified: https://hub.docker.com/repository/docker/vbabenkoru/cockroachdb-arm64/tags?page=1&ordering=last_updated

I was successful in making ARM builds with their new bazel build system. It's working well in my ARM/AMD K8S cluster.
https://github.com/jrcichra/cockroachdb-multiarch-bazel

Closing since CockroachLabs started publishing arm64-base images to Docker.


Model consuming RaggedTensors fails during evaluation in a distributed setting

Please go to TF Forum for help and support:
https://discuss.tensorflow.org/tag/keras
If you open a GitHub issue, here is our policy:
It must be a bug, a feature request, or a significant problem with the documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
Here's why we have that policy:.
Keras developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.
System information.

Have I written custom code (as opposed to using a stock example script provided in Keras): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Colab and Debian 10
TensorFlow installed from (source or binary): Binary
TensorFlow version (use command below): 2.6.0
Python version:
Bazel version (if compiling from source):
GPU model and memory: V100 (16 GB)
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with:
python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the problem.
We have a model that consumes multiple ragged tensors in a batch. Our model runs perfectly fine on a single GPU. But the moment we introduce distributed training, its evaluation fails.
Note that the training during the distributed settings proceeds smoothly but it's during the evaluation it fails. Since we cannot provide the original data and model, we are using we are providing a minimal snippet in the following notebook that reproduces the issue. You can use Colab to reproduce the issue as well as a multi-GPU machine. We have verified on both and the issue persists.
Describe the current behavior.
Model consuming RaggedTensors fails during evaluation in a distributed setting.
Describe the expected behavior.
The model should run during evaluation without any errors when exposed to a distributed setting.
Contributing.

Do you want to contribute a PR? (yes/no): No.
If yes, please read this page for instructions
Briefly describe your candidate solution(if contributing):

Standalone code to reproduce the issue.
Colab Notebook: https://colab.research.google.com/drive/1U9oeed5OMAH1KvN5T455kAsB2Nsh1-KF?usp=sharing.
Source code / logs.
ValueError: in user code:

    /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:1330 test_function  *
        return step_function(self, iterator)
    /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:1319 step_function  **
        data = next(iterator)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:693 __next__
        return self.get_next()
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:744 get_next
        self, self._strategy, return_per_replica=False)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:611 _get_next_as_optional
        iterator._iterators[i].get_next_as_list())  # pylint: disable=protected-access
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:1990 get_next_as_list
        strict=True,
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:206 wrapper
        return target(*args, **kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/deprecation.py:549 new_func
        return func(*args, **kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/control_flow_ops.py:1254 cond
        return cond_v2.cond_v2(pred, true_fn, false_fn, name)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/cond_v2.py:95 cond_v2
        op_return_value=pred)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/func_graph.py:1007 func_graph_from_py_func
        func_outputs = python_func(*func_args, **func_kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:1989 <lambda>
        lambda: _dummy_tensor_fn(data.element_spec),
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:1853 _dummy_tensor_fn
        return nest.map_structure(create_dummy_tensor, value_structure)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/nest.py:869 map_structure
        structure[0], [func(*x) for x in entries],
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/nest.py:869 <listcomp>
        structure[0], [func(*x) for x in entries],
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/input_lib.py:1849 create_dummy_tensor
        dummy_tensor, (row_splits,) * spec._ragged_rank, validate=False)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:206 wrapper
        return target(*args, **kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/ragged/ragged_tensor.py:745 from_nested_row_splits
        result = cls.from_row_splits(result, splits, validate=validate)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:206 wrapper
        return target(*args, **kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/ragged/ragged_tensor.py:454 from_row_splits
        return cls._from_row_partition(values, row_partition, validate=validate)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/ragged/ragged_tensor.py:348 _from_row_partition
        return cls(values=values, internal=True, row_partition=row_partition)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/ragged/ragged_tensor.py:294 __init__
        values.shape.with_rank_at_least(1)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/tensor_shape.py:1078 with_rank_at_least
        raise ValueError("Shape %s must have rank at least %d" % (self, rank))

    ValueError: Shape () must have rank at least 1

Cc: @Nilabhra

Adding to the above. I noticed that this error can be avoided by using infinite datasets for both train and validation (.repeat()). If either or both of the train and validation datasets are non-infinite, the same or a similar error pops up.
If training is done with with a non-infinite dataset (irrespective of the nature of the validation set), the same error pops up, but during the training phase.
All of the above holds for tf.distribute.MirroredStrategy() at least. Hope this helps.

I am able to reproduce the reported issue in colab with TF 2.6 and TF 2.7 as well. Please find the gist here. Thanks!

Could you help make this repro a little more minimal to be able to triangulate what's going wrong? Do we know the minimum piece of code to trigger this error?
One thing just browsing that did look suspicious is that the ragged tf.keras.Input was not actually created with ragged=True, though that may not be related to the error being seen here.

Could you help make this repro a little more minimal to be able to triangulate what's going wrong? Do we know the minimum piece of code to trigger this error?

Actually, we minimalized our implementation to a great extent to produce the current snippet. In our understanding, this is the minimum piece of code that triggers the error.

@mattdangerw @sayakpaul
I created another notebook that has the bare minimum (or as close as I could get to bare minimum) code needed to reproduce the issue. Note that the notebook is fetching a different set of TFRecords from the previous notebook.
Please find the notebook here: shorturl.at/auBFJ
I hope this helps!

@Nilabhra , Could you please check the links of the files you have attached, both the links giving 404 error.

@sachinprasadhs Thanks for letting me know, I have updated the link in the comment.

@mattdangerw
@Nilabhra has further simplified the notebook reducing the amount of code needed to reproduce the said issue. Let us know if you'd need anything else.

It looks like there's a bug in the create_dummy_tensor function in distribute/input_lib.py, where it does something fairly nonsensical if the rank of the feature is unknown.  I'm not entirely clear on how these "dummy tensors" get used, but my best guess is that this could be fixed on TensorFlow's end by a change such as this (new lines marked with "NEW"):
[tensorflow/python/distribute/input_lib.py, in create_dummy_tensor]
    if isinstance(spec, ragged_tensor.RaggedTensorSpec):
      if not dims:                                               ## NEW
        dummy_tensor = tf.zeros([0], feature_type)               ## NEW
      row_splits = array_ops.zeros(1, spec._row_splits_dtype)
      dummy_tensor = ragged_tensor.RaggedTensor.from_nested_row_splits(
          dummy_tensor, (row_splits,) * spec._ragged_rank, validate=False)

Alternatively, you could modify your data-loading code to ensure that at least the rank of the input feature is known.  E.g., if I change read_ragged_feature in the linked colab to the following definition, then the colab works:
def read_ragged_feature(feature_name, feature, ragged_rank):
    ragged_feature = {}
    ragged_feature[feature_name] = deserialize_composite(
        feature, tf.RaggedTensorSpec(dtype=tf.int32, ragged_rank=ragged_rank),
    )
    ragged_feature[feature_name].flat_values.set_shape([None])  # NEW
    return ragged_feature

(This assumes that you statically know the rank of your input tensors -- in this case, I was assuming that there are no "uniform inner" dimensions beyond the ragged dimensions, but you could adjust it if that's not the case for you.  If you don't statically know the rank of your input tensors, then this won't help, but I think having unknown ranks for input tensors is fairly rare.)

@edloper Thank you so much for taking the time to work on this bug. I guess I can incorporate either of the solutions your provided, the second one being the easier one to do so. I hope the dev team takes notice of this and patches the issue soon.


Ignore organization does not work

The setting to ignore repositories from a certain git organization does not work after the migration from old settings to new, which meant that it was showing my private work without me even knowing. I've tried using a plain string, a slug and a regex but no matter what it will not ignore based on organization.

Hey,
This seems to be working for me / I cannot recreate this. What field is being leaked? I tested with all the below fields, and they all seem to be working? What behaviour do you expect this to do?
{git_owner}
{git_provider}
{git_repo}
{git_branch}
{git_url}

Gosh i just rubber ducky debugged myself in a git issue. I could've sworn it was showing the org name and a view repo button now matter what i changed in the ignore org settings, but now all of those fields are reduced to whitespace and only in matching orgs...


Add hfun_requiredfill

Just a suggestion. Feel free to close this if you don't like the idea :slightly_smiling_face:

Thanks!
Two notes for discussion:

I think that now with the fail_on_warning option to serve, it would be a similar behaviour?
Generally I'd rather not have lots of new hfuns and lxfuns in Franklin but rather make those part of a side repo or a set of side repos like FranklinUtils so that maintenance is easier and decoupled

Wdyt?

Yeah, that's what I thought. However, fill doesn't throw an error if the value is empty. It used to be like that but got changed somewhere between 0.42 and 0.52 (these numbers are by heart so might be wrong).
Would you rather have fill fail on empty or me opening a PR at FranklinUtils.jl?

Hmm probably a PR in FranklinUtils please
In the next major version I'll try to think with a bit more rigour about what should fail / warn / do nothing, but it'll end up being a bit breaking so I don't want to rush this.
If you have thoughts on that topic btw, please open an issue and let me know :-)

Hmm probably a PR in FranklinUtils please

You also seem to have some doubts and me too. Let's not do it. The functionality is reasonably trivial.

No I think the util is useful, my hesitation is that I'm preparing a monster release which, while it will try to preserve most of the Franklin surface as it is today, changes pretty much everything in the background and I was thinking about where contribs like yours should live. The thing is that FranklinUtils will also need to be revamped following that release as the way lxfuns are processed will be simplified (that of hfuns will remain pretty much identical). That's for the context :)
Maybe once this has been done and the dust has settled, I'd like to discuss with you if you're interested how we could try to  encourage "plugins" for Franklin where people would load packages a bit like .sty files in LaTeX with a bunch of useful hfun_* and lxfun_* as well as utils to make it easy to write those.


Subset of 3-center integral tensor for density fitting

To obtain density fitting (DF) coefficients, I compute the 3-center integral tensor (ij|P) as explained here . For large systems, this tensor is too large to fit in memory, so I would like to compute only a necessary part of it needed for a given batch.
from pyscf import gto, scf, dft, lib, df

#mol, Amol
mol = gto.M(atom='Ar 0 0 0', basis='def2-qzvp'); Amol = df.addons.make_auxmol(mol, 'def2universaljkfit')
#3c2e needed for DF is of shape (mol.nao, mol.nao, Amol.nao)
ints_3c2e = df.incore.aux_e2(mol, Amol, intor="int3c2e")

I would like to compute a piece of "ints_3c2e" directly without computing the whole tensor, since I only need a specific subset of the tensor for a given batch when calculating DF coefficients. For example, how can I compute the following piece directly?
i1 = 0; i2 = 5; j1 = 5; j2 = 10
piece_ints3c2e = ints_3c2e[i1:i2, j1:j2, :]

You could modify the shell slices here
https://github.com/pyscf/pyscf/blob/7000be6e0abc4c3d4edc8d314bcb5304e666ef0f/pyscf/df/incore.py#L54
In the future, I think it's better to expose it as an argument.


improve error message

As requested by @kim, the error message must follow this convention:
{"jsonrpc":"2.0","error":{"code":-2146233033,"message":"One of the identified items was in an invalid format."},"id":1}
To find more about the context of this issue read here
TODO: refactor the errors methods in the  errors.go file accordingly and amends all tests.

Today my PR was merged into neo-project/neo, and I can change that in our repo

Wait until #135 will be merged


Geiger counter view

Glancing across the dashboard several times a minute is a bad thing to do if you're doing something that requires concentration. However, you probably want to notice if something goes wrong.
Your visual attention is usually taken by terminals and text editors, but hearing is probably left underused. This patch adds a view that emits a "click" sound when it gets an event, almost like a Geiger radiation counter. When bound to a stream that emits an event on every exception in your system, it should sound pretty rarely and your mind will tune it out eventually, but when something goes wrong, the amount of clicks will sharply rise, changing the sound and grabbing your attention to the issue.
On the technical side: this thing uses WebAudio's AudioBuffers to cache sounds. Sounds can be played concurrently, so to smooth out the volume all playing sounds are mixed into a hard limiter and then to an amplifier node. Amplifier gain is controlled with a volume slider in view options. I've experimented for a bit and it seems like a quadratic relationship between slider value and gain is very intuitive.
Included sound files are a Geiger counter click (geiger.wav) and a short 1000hz beep (beep.wav).

This sounds brilliant (pun intended)!

Neat!

This is an excellent idea, thanks so much @gfv !
Using beep.wav you almost feel like in a hospital ER ;-)

@gfv how do you activate this view?


re-fix broken link

The issue
A broken link on the index page.
The fix
Replaced with the correct location in Kenneth's webiste.

Thanks for the PR


Support for Nx monorepo setup

What is this feature?
When developing in a nx.dev monorepo setup the following setup is quite normal: An app has two (lazy loading) feature modules mounted:

BooksModule mounted under books
OrdersModule mounted under orders

In a loosely coupled way, both features contain components that point to components of the other feature. For example, books has a routerLink pointing to orders/new and orders/{orderId} has a routerLink which points to books/{bookId}.
One of the advantages of using nx.dev is that libraries (the feature modules) can be reused in multiple apps. Currently RouterKit supports generating routes based upon an Angular app, resulting in {ROOT}/{APP_NAME}.routes.d.ts. Referencing the routes created from app 'A' in a feature lib is actually putting the dependency the wrong way around. From the internal dependency graph which the nx.dev tooling creates for you, app 'A' is using the feature lib. With the (described below) new features RouterKit can (probably) be used in a nx-dev monorepo setup.
How the feature should work?
I think the following is needed so RouterKit can be used in a nx-dev monorepo setup:

support for generating routing types for a lazy loaded feature lib (it currently does not support it, an error is thrown: Can't find file with relative path @my-solution/app/feature/feature.module.ts)
configuration of the output path of the resulting routing types, as they probably should end up in a separate library so nx.dev tooling can determine the dependency graph properly

Is your feature request related to a problem?
Yes, it's described in issue #49.

@JoepKockelkorn thanks
We will back to this after major release 😊


Respect describe/context blocks?

I have an issue when generate docs for structure like this:
resource "Users" do
  get "/users" do
    include_context :json
    it_behaves_like :ok_request
  end

  get "/users/:id" do
    include_context :json
    it_behaves_like :ok_request
  end
end

While the log produces:
GET /users
    * returns JSON
  behaves like ok_request
    * has status 200
GET /users/:id
    * returns JSON
  behaves like ok_request
    * has status 200

the files are generated with the same name and overwrite each other. Nesting is not preserved.
Seems that I don't understand how to use it correctly to produce nice documentation.
In this case an explanation in README would be great.
You can see the entire specs below:
https://github.com/crasome/mysterious-api/blob/2a88c810935dfff04e7f105e44baba4e299a65bd/spec/acceptance/users_spec.rb

I've begun working on the option to include context descriptions in the examples - https://github.com/zipmark/rspec_api_documentation/pull/283 -, but the solution could use some feedback.


"always" not showing is the visualizer

Bug
When specifying always in the state directly it work in app, but it doesnt show up in the visualizer, vice versa it doesnt work if always is set inside the on but it show in the visualizer. this concern : https://xstate.js.org/viz/
EDIT: Id like to mention that it work as expected in https://statecharts.io/
Description:
//Doesnt show in the visualizer, but work in app
...
{stateA:{
    always: [{ target:"stateB", cond:"guard1"} ]
    on: {
          EVENT1: "stateB"
    }
}}
...

//vs inside, it show in the visualizer but doesnt work in app

...
{stateA:{

    on: {
           always: [{ target:"stateB", cond:"guard1"}],
          EVENT1: "stateB"
    }
}}
....

(Bug) Expected result:
It should show in the visualizer
Possible Cause
im using "xstate": "^4.14.1", probably the visualizer is using an older version

Duplicate: #1640 #1477
I'll work on revamping the current visualizer to support it.


Correctly validate orig_src_service_acct_names

Signed-off-by: Spike Curtis<EMAIL_ADDRESS>Description
Fixes a validation bug in model.Rule
Todos

[X] Tests

Release Note

None required

we only do non-trivial validation on the selector types. I could add reject cases for those...


React event does not persist

Do not merge, QA is testing

Coverage remained the same at 28.601% when pulling 5801b5871bd26432cc89729ad5fc2fbbba00f966 on qingweibinary:qingwei/fix_stake_card into 4f8f6c1e08850da5593a513463543a83ea5110b6 on binary-com:master.

QA test passed


⚠ Bofrost.at has degraded performance

In c135204, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1258 ms

Resolved: Bofrost.at performance has improved in 336a9b2.


int as argument for Sender's functions doesn't work.

int as argument does not work.
Fails concatenating the final command string arg_string = " ".join([u(x) for x in args])
s.history('user_name', 10)
# log/stacktrace shows:
DEBUG:pytg.sender:Parsing history: Argument user_name - <user> (needed)
DEBUG:pytg.sender:Parsing history: Argument 10 - [limit] (needed)
DEBUG:pytg.sender:Skipping missing optional parameter #2 [offset] (type NonNegativeNumber) in function history.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/path/to/pytg/pytg/sender.py", line 548, in command_alias
    return self.execute_function(command_name, *args, **kwargs)
  File "/path/to/pytg/pytg/sender.py", line 252, in execute_function
    result = self._do_command(command_name, new_args, answer_timeout=self.default_answer_timeout, retry_connect=retry_connect, enable_preview=enable_preview, reply_id=reply_id)
  File "/path/to/pytg/pytg/sender.py", line 356, in _do_command
    arg_string = " ".join([u(x) for x in args])
TypeError: sequence item 1: expected str instance, int found
>>> from pytg.sender import Sender ; import logging
>>> s.execute_function('history', 'user_name', 10)
DEBUG:pytg.sender:Parsing history: Argument user_name - <user> (needed)
DEBUG:pytg.sender:Parsing history: Argument 10 - [limit] (needed)
DEBUG:pytg.sender:Skipping missing optional parameter #2 [offset] (type NonNegativeNumber) in function history.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/path/to/pytg/pytg/sender.py", line 252, in execute_function
    result = self._do_command(command_name, new_args, answer_timeout=self.default_answer_timeout, retry_connect=retry_connect, enable_preview=enable_preview, reply_id=reply_id)
  File "/path/to/pytg/pytg/sender.py", line 356, in _do_command
    arg_string = " ".join([u(x) for x in args])
TypeError: sequence item 1: expected str instance, int found```

from #31

Fixed

Still broken for python 3. Because python-utils/luckydonaldUtils/encoding.py does not include commit with this bugfix.

Eargh

Please update luckydonald-utils to v0.017 or newer.
v0.017 Package is called 0.17 in pip.

I assume this as fixed and working.


Add support for semantic highlighting

https://reddit.com/r/neovim/comments/12gvms4/this_is_why_your_higlights_look_different_in_90/

Need support this feature


Clarify the $csp rules usage

$csp rules use the regular matching algorithm. e.g. $csp=script-src 'none',domain=example.org will match the https://example.org: https://github.com/AdguardTeam/AdguardBrowserExtension/issues/1474.
$csp rules are applied to both DOCUMENT resources: https://stackoverflow.com/questions/54203764/content-security-policy-csp-header-onto-each-file-or-only-the-actual-html-pag:

"The resources which can be requested (and subsequently embedded or executed) on behalf of a specific Document or Worker"

We should figure out what to do with the Workers part. It seems that it does not really work in Chrome, only in FF.

works as intended
already discussed


There should be an option to hide completely the notification slider, including the tab.

either when there are no notifications, or just completely. It is distracting and many people don't need it.

Sure. Will do. In 17.21


OCM-4512 | fix: align list upgrade output when no avl upgrades

Output an informative message when there is no available upgrades for node pools to align with control plane.
Before:
rosa list upgrades -c ad-int4 --machinepool workers
VERSION  NOTES

After:
rosa list upgrades -c ad-int4 --machinepool workers
I: There are no available upgrades for machine pool 'workers'

Related: OCM-4512

/lgtm


Handler for non-ipfs data for on-chain art

We would like slowly start showing on-chain NFTs as there is an existing project to demonstrate this on GLMR https://onchaindudes.com/
https://t.me/@Mohd429 is author for future consulting, check issue in package.
Generally, it should be a handler to render SVG in first prototype :)
Ref

https://github.com/kodadot/packages/issues/46

Adding some details about how the URL format along with examples:
Sample Contract: 0xa0c72e1c6616888cb5a9e6393F96183c1aA4f17d
tokenURI call on the contract returns a string as following:
Format:
data:;base64,<Base64 Encoded String/JSON>
Example:
data:application/json;base64,eyJuYW1lIjogIk9uQ2hhaW4gRHV.....
The above mentioned URL is by default supported by any modern browser. It decodes the encoded string and renders/displays the content. which in this case is JSON.
The marketplace may have to handle the decode part internally in order to get the JSON.
The format of the JSON is as given below:
JSON Format:
{
"name": "",
"attributes": [{"trait_type": "","value": ""},{"trait_type": "","value": ""},........],
"image": "data:;base64,<Base 64 Encoded String/SVG>"
}
JSON Example:
{
"name": "Dude ICard #1",
"attributes": [{"trait_type": "Style","value": "Karate"},{"trait_type": "Weight Class","value": "Middleweight"},{"trait_type": "Weight","value": "94"},{"trait_type": "Card Color","value": "Spindle"},{"trait_type": "First Name","value": "Gunther"},{"trait_type": "Last Name","value": "Cutler"},{"trait_type": "Dude","value": "1"}],
"image": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3........."
}
The JSON is pretty much self explanatory.

'name' field which is a string. It is the name of the NFT.
'attributes' field is an array of objects containing two fields namely, 'trait type' and 'value'. This gives us the list of attributes associated with this NFT.
'image' is a data field which contains an encoded data URI. the decoded string here will be an SVG.

Note that the content type can be kept generic such that it can handle other content types as well and not only SVGs.
There are collections on ethereum which are javascript based NFTs. so in that case the content type is text/html for instance.
Following contract is one such example from ethereum.
Contract: 0x3e743377417cd7ca70dcc9bf08fac55664ed3181
OpenSea Link: https://opensea.io/assets/ethereum/0x3e743377417cd7ca70dcc9bf08fac55664ed3181/1

Hey hopefully we could bring more onchain nifties, coincidence I've been backlogging it elsewhere

ah cool. can you share the link to that issue please?

@razi429 we will support onchain NFTs on Polkadot Assets Hub
we will expand here soon https://hello.kodadot.xyz/multi-chain/supported-networks/polkadot-asset-hub

#6498
#6500


Code does not continue after reading, with further query

I'm running the latest revision here, and the code will end with a question from "Emily" but it summarily closes down the reading/chat so you cannot continue.   This seems like a bug.

Hi there -- are you running your own local copy of this, or accessing emilytarot.com?
How did you come across this repo? I don't think I've advertised it anywhere but on my linkedin profile, its was just an experiment I did to learn streamlit and LLMs last year, though I've certainly thought about expanding Emily and particularly supporting alternative models like Claude to see how it alters the readings.

Thanks for replying.
I am now running my own private instance, under Docker in Linux (via MacOS), using my own OpenAI key.   I'm enjoying it, and I see a lot of future with this.   I was discussing something like this with someone else a while back, as I have been submitting card draws to ChatGPT -- without specific format instruction, it does an OK job interpreting.
How did I find the repo?  I think it was via Google.  I can't recall.
I'd love to see longer readings like Celtic Cross.  It would also be easy for the end user to provide his/her own imagery (for tarot cards), perhaps add the visuals for the draw, etc.   Cosmetics.
I'd also be interested in how the other engines interpret.  I did at one point try comparing ChatGPT and Bard (no Gemini) and they seemed pretty similar at the time, in their interpretation.  I've made sure to draw the cards separately, as I don't really trust that the AI is truly objective -- they could be given instructions to always keep something positive, etc.  You know what I mean.

I encountered another error where the chat session halted without continuance -- it was about to explain the draw of three cards.  It started and then ended with "link to session" without any further continuance or prompt. FYI.  It's not yet clear to me where the bug is -- it may be something in the API calls?

I've recently updated this repo to use the new GPT 4 Omni Mini model -- this model is significantly smarter and better at following instructions, I'd highly recommend you update as well.
I saw several sessions that terminated as you have indicated, and in all cases it wasn't necessarily a bug just GPT 3.5 not sending any further actual user questions or tarot instructions in the response, which is how the app recognizes that the session has ended. I'd wager that 4 Omni Mini is much less likely to send a response like this -- very incredible model.


Account sorting

Currently accounts are sorted by address, which is not very usable. Allow to sort by name as well. Also sorting by amount would be nice to have.

@scco can you please make a design how it can look. It doesn't look like a big change, maybe an icon right after ACCOUNTS title?


Add lint checks in CI and update ESLint to next major version

We currently do not have lint checks in CI and this is breaking the current ESLint scripts.
Originally posted by @raducristianpopa in https://github.com/interledger/web-monetization-extension/issues/297#issuecomment-2146811697

Ok the eslint ecosystem isn't ready yet for upgrade. We can write more code to make it work, but not worth it. I tried, and failed.
We'll get enough unmet peer dependencies warnings, and the legacy/compat packages don't work too well together - missing warnings, false positives.
For migration, I used https://eslint.org/blog/2024/05/eslint-configuration-migrator/, it was helpful, but still missing warnings.
So, let's keep it in backlog.


Quick Links URLs

Hello,
I ran into an issue with the quick link urls that I think could be fixed quite easily. I was running this on a VM and when I pulled up the IP of the VM on a different machine on my network, the quick links did not work because the quick links use local host.

phpinfo()

phpMyAdmin

Test DB Connection

I feel like this could easily be resolved by changing the links as follows:

phpinfo()

<a href="//<?php print $_SERVER{'SERVER_NAME'}; ?>:8080">phpMyAdmin

Test DB Connection

I would be happy to submit a PR if this is ok.
Thank you

Hi @tsh3rman ,
thank your for you participation ! Please feel free to create a pull request for each php version branch.

I submitted a pull request on each branch.

merged