LEAP outage due to all core nodes being replaced

Reported in https://2i2c.freshdesk.com/a/tickets/1141, and I investigated immediately, and could catch it in the act.
I noticed that the core nodes were new, and looking at the versions, see that it's uneven:

And the core nodes had just updated, even though auto upgrade is set to false

Unfortunately, gcloud container operations list returns empty, and looking at cloud audit events with the following query also returns nothing:
logName="projects/leap-pangeo/logs/cloudaudit.googleapis.com%2Factivity"
resource.type="k8s_cluster"
-protoPayload.methodName=~"io.k8s.*"

So the question is:

[ ] Why did this auto upgrade happen?
[ ] What can we do to prevent this?

It happened again, and not due to an upgrade. It's possible the previous time was not an upgrade either - I had just assumed that due to the fact that it was a different version, but entirely possible that was the prior version too. I did see the instancegroup change, but that may have been just the autoscaler bringing nodes up.

Almost all of them say Deleting node gke-leap-cluster-core-pool-1592e1d3-nshx because it does not exist in the cloud provider after the post NodeNotReady, so let's go look at the cloud provider to see what is up.

And at the instance group's page (https://console.cloud.google.com/compute/instanceGroups/details/us-central1-c/gke-leap-cluster-core-pool-1592e1d3-grp?project=leap-pangeo), you can see this oscillation:

I looked at all audit events that involved this particular instance group with:
resource.type="gce_instance_group"
resource.labels.instance_group_name="gke-leap-cluster-core-pool-1592e1d3-grp"

and I could find 'removeInstance' calls here:
{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "authenticationInfo": {
      "principalEmail"<EMAIL_ADDRESS>    },
    "requestMetadata": {
      "callerSuppliedUserAgent": "GCE Managed Instance Group for GKE"
    },
    "serviceName": "compute.googleapis.com",
    "methodName": "v1.compute.instanceGroups.removeInstances",
    "resourceName": "projects/893029493037/zones/us-central1-c/instanceGroups/gke-leap-cluster-core-pool-1592e1d3-grp",
    "request": {
      "@type": "type.googleapis.com/compute.instanceGroups.removeInstances"
    }
  },
  "insertId": "-7730icc6ko",
  "resource": {
    "type": "gce_instance_group",
    "labels": {
      "location": "us-central1-c",
      "instance_group_name": "gke-leap-cluster-core-pool-1592e1d3-grp",
      "instance_group_id": "6913061100848177061",
      "project_id": "leap-pangeo"
    }
  },
  "timestamp": "2023-11-27T23:08:58.552687Z",
  "severity": "NOTICE",
  "logName": "projects/leap-pangeo/logs/cloudaudit.googleapis.com%2Factivity",
  "operation": {
    "id": "operation-1701126538034-60b2a63047c98-3683f7b7-a451b88b",
    "producer": "compute.googleapis.com",
    "last": true
  },
  "receiveTimestamp": "2023-11-27T23:08:58.780982280Z"
}

Note that the requestor user agent is GCE Managed Instance Group for GKE
Still no idea why this happened.

Now I've picked a random node that died, and am looking at all the logs from the node itself, with:
resource.type="k8s_node"
resource.labels.node_name="gke-leap-cluster-core-pool-1592e1d3-sbmp"

I also took a quick look at https://status.cloud.google.com/summary to note that there is nothing listed there for today

Looking at autoscaler logs with:
logName="projects/leap-pangeo/logs/container.googleapis.com%2Fcluster-autoscaler-visibility"

Further drilling down to look at the logs for the specific node that we were looking at earlier, with:
logName="projects/leap-pangeo/logs/container.googleapis.com%2Fcluster-autoscaler-visibility"
jsonPayload.decision.scaleDown.nodesToBeRemoved.node.name="gke-leap-cluster-core-pool-1592e1d3-sbmp"

the output is:
{
  "insertId": "bd568b29-2e3a-41a4-875f-3c81dad94ecf@a1",
  "jsonPayload": {
    "decision": {
      "eventId": "c105c267-7b7c-4e5d-8217-35c06f27c1a9",
      "scaleDown": {
        "nodesToBeRemoved": [
          {
            "node": {
              "memRatio": 81,
              "name": "gke-leap-cluster-core-pool-1592e1d3-sbmp",
              "cpuRatio": 29,
              "mig": {
                "name": "gke-leap-cluster-core-pool-1592e1d3-grp",
                "zone": "us-central1-c",
                "nodepool": "core-pool"
              }
            },
            "evictedPodsTotalCount": 32,
            "evictedPods": [
              {
                "name": "api-prod-dask-gateway-7f996d588d-67xxv",
                "controller": {
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet",
                  "name": "api-prod-dask-gateway-7f996d588d"
                },
                "namespace": "prod"
              },
              {
                "name": "hub-6674d988b9-gfzk6",
                "namespace": "staging",
                "controller": {
                  "name": "hub-6674d988b9",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                }
              },
              {
                "name": "konnectivity-agent-autoscaler-5d9dbcc6d8-fwmrf",
                "controller": {
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet",
                  "name": "konnectivity-agent-autoscaler-5d9dbcc6d8"
                },
                "namespace": "kube-system"
              },
              {
                "controller": {
                  "name": "kube-dns-57594cd98b",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                },
                "namespace": "kube-system",
                "name": "kube-dns-57594cd98b-p7q5p"
              },
              {
                "name": "metrics-server-v0.5.2-866f85748c-jpmdq",
                "controller": {
                  "kind": "ReplicaSet",
                  "name": "metrics-server-v0.5.2-866f85748c",
                  "apiVersion": "apps/v1"
                },
                "namespace": "kube-system"
              },
              {
                "controller": {
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1",
                  "name": "cert-manager-webhook-5c64c6c6f9"
                },
                "namespace": "cert-manager",
                "name": "cert-manager-webhook-5c64c6c6f9-hwjrb"
              },
              {
                "namespace": "staging",
                "controller": {
                  "name": "shared-volume-metrics-67db75cdb7",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                },
                "name": "shared-volume-metrics-67db75cdb7-rrwdm"
              },
              {
                "namespace": "cert-manager",
                "name": "cert-manager-cainjector-676b44b449-2b4n5",
                "controller": {
                  "kind": "ReplicaSet",
                  "name": "cert-manager-cainjector-676b44b449",
                  "apiVersion": "apps/v1"
                }
              },
              {
                "name": "event-exporter-gke-d4b7ff94-d4kxv",
                "namespace": "kube-system",
                "controller": {
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet",
                  "name": "event-exporter-gke-d4b7ff94"
                }
              },
              {
                "namespace": "prod",
                "controller": {
                  "name": "shared-volume-metrics-6d54b49fb",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                },
                "name": "shared-volume-metrics-6d54b49fb-wkvvj"
              },
              {
                "namespace": "prod",
                "controller": {
                  "name": "proxy-8546bf999",
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet"
                },
                "name": "proxy-8546bf999-tpw69"
              },
              {
                "controller": {
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1",
                  "name": "calico-typha-horizontal-autoscaler-69db457f8b"
                },
                "name": "calico-typha-horizontal-autoscaler-69db457f8b-rxv7c",
                "namespace": "kube-system"
              },
              {
                "controller": {
                  "apiVersion": "apps/v1",
                  "name": "calico-typha-vertical-autoscaler-6c7559fb46",
                  "kind": "ReplicaSet"
                },
                "name": "calico-typha-vertical-autoscaler-6c7559fb46-57qzm",
                "namespace": "kube-system"
              },
              {
                "name": "kube-dns-autoscaler-fbc66b884-229tb",
                "namespace": "kube-system",
                "controller": {
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1",
                  "name": "kube-dns-autoscaler-fbc66b884"
                }
              },
              {
                "name": "support-prometheus-server-56dd89dc6c-hw59q",
                "controller": {
                  "apiVersion": "apps/v1",
                  "name": "support-prometheus-server-56dd89dc6c",
                  "kind": "ReplicaSet"
                },
                "namespace": "support"
              },
              {
                "name": "calico-node-vertical-autoscaler-5b74bb6b99-sswz6",
                "namespace": "kube-system",
                "controller": {
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1",
                  "name": "calico-node-vertical-autoscaler-5b74bb6b99"
                }
              },
              {
                "controller": {
                  "kind": "ReplicaSet",
                  "name": "support-ingress-nginx-controller-6bff6fd4c",
                  "apiVersion": "apps/v1"
                },
                "namespace": "support",
                "name": "support-ingress-nginx-controller-6bff6fd4c-rcgws"
              },
              {
                "namespace": "staging",
                "name": "api-staging-dask-gateway-d4948d477-486c9",
                "controller": {
                  "apiVersion": "apps/v1",
                  "name": "api-staging-dask-gateway-d4948d477",
                  "kind": "ReplicaSet"
                }
              },
              {
                "name": "hub-85b69c7d9c-vh9pk",
                "namespace": "prod",
                "controller": {
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1",
                  "name": "hub-85b69c7d9c"
                }
              },
              {
                "controller": {
                  "name": "cert-manager-544cd78564",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                },
                "name": "cert-manager-544cd78564-vrb6p",
                "namespace": "cert-manager"
              },
              {
                "name": "controller-prod-dask-gateway-86dc8d496-k82zv",
                "namespace": "prod",
                "controller": {
                  "name": "controller-prod-dask-gateway-86dc8d496",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                }
              },
              {
                "name": "support-grafana-7d6d64bb7f-chrlb",
                "controller": {
                  "apiVersion": "apps/v1",
                  "name": "support-grafana-7d6d64bb7f",
                  "kind": "ReplicaSet"
                },
                "namespace": "support"
              },
              {
                "name": "calico-typha-675d755d5d-7fhkb",
                "controller": {
                  "apiVersion": "apps/v1",
                  "name": "calico-typha-675d755d5d",
                  "kind": "ReplicaSet"
                },
                "namespace": "kube-system"
              },
              {
                "name": "shared-dirsize-metrics-7c85cff47c-7tgxz",
                "namespace": "prod",
                "controller": {
                  "name": "shared-dirsize-metrics-7c85cff47c",
                  "kind": "ReplicaSet",
                  "apiVersion": "apps/v1"
                }
              },
              {
                "name": "konnectivity-agent-589849f68d-mdvc5",
                "namespace": "kube-system",
                "controller": {
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet",
                  "name": "konnectivity-agent-589849f68d"
                }
              },
              {
                "controller": {
                  "apiVersion": "apps/v1",
                  "name": "traefik-staging-dask-gateway-5f6876c4d8",
                  "kind": "ReplicaSet"
                },
                "name": "traefik-staging-dask-gateway-5f6876c4d8-762pw",
                "namespace": "staging"
              },
              {
                "namespace": "kube-system",
                "name": "konnectivity-agent-589849f68d-7tbzq",
                "controller": {
                  "name": "konnectivity-agent-589849f68d",
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet"
                }
              },
              {
                "name": "traefik-prod-dask-gateway-6859d58dfb-v6m4s",
                "namespace": "prod",
                "controller": {
                  "kind": "ReplicaSet",
                  "name": "traefik-prod-dask-gateway-6859d58dfb",
                  "apiVersion": "apps/v1"
                }
              },
              {
                "name": "support-kube-state-metrics-b995676d9-ch5cd",
                "controller": {
                  "kind": "ReplicaSet",
                  "name": "support-kube-state-metrics-b995676d9",
                  "apiVersion": "apps/v1"
                },
                "namespace": "support"
              },
              {
                "namespace": "staging",
                "controller": {
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet",
                  "name": "proxy-55dd457c6d"
                },
                "name": "proxy-55dd457c6d-77sls"
              },
              {
                "controller": {
                  "name": "controller-staging-dask-gateway-f689b7ccd",
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet"
                },
                "namespace": "staging",
                "name": "controller-staging-dask-gateway-f689b7ccd-mgpzp"
              },
              {
                "namespace": "staging",
                "name": "shared-dirsize-metrics-7c85cff47c-wjxqj",
                "controller": {
                  "apiVersion": "apps/v1",
                  "kind": "ReplicaSet",
                  "name": "shared-dirsize-metrics-7c85cff47c"
                }
              }
            ]
          }
        ]
      },
      "decideTime": "1701136909"
    }
  },
  "resource": {
    "type": "k8s_cluster",
    "labels": {
      "location": "us-central1",
      "project_id": "leap-pangeo",
      "cluster_name": "leap-cluster"
    }
  },
  "timestamp": "2023-11-28T02:01:49.041790032Z",
  "logName": "projects/leap-pangeo/logs/container.googleapis.com%2Fcluster-autoscaler-visibility",
  "receiveTimestamp": "2023-11-28T02:01:49.377227792Z"
}

This is extremely helpful, as it shows that it's the autoscaler that killed this node and caused this bounce. And if you look under evictedPods, you will see it's the node on which the hub, proxy, etc all pods were. And they were thrown out regardless! what.

Something stirred in my memory, as I remember putting a lot of work during the initial creation of z2jh to prevent this from happening, and I found https://github.com/2i2c-org/infrastructure/issues/202#issuecomment-774080986 :)

My understanding with https://github.com/2i2c-org/infrastructure/issues/202#issuecomment-774194655 was that the pdb would be replaced by an annotation by default upstream, but instead it looks like the annotation was not added by default but merely documented.
I don't understand why the cluster autoscaler is bouncing around, but I'm going to temporarily add this annotation to prevent this.

Ok, so next step here is:

[ ] Understand why this annotation is not already present in all hub or proxy pods by default (given https://github.com/2i2c-org/infrastructure/issues/202)
[ ] Try understand why this autoscaler is bouncing around right now

I think the safe-to-evict annotation wasn't added because it was forgotten.
This happened in https://github.com/2i2c-org/infrastructure/issues/3363#issuecomment-1789769506 as well, and I blamed the node-auto provisioner autoscaler to not respect the safe-to-evict annotation.
Even without safe-to-evict, one may ask why the autoscaler made the bouncing happen - its a faulty behavior no matter what I figure. With safe-to-evict I would imagine the only difference should be that a node isn't drained for a workload to be put on another node instead. Was the cluster-autoscaler believing that draining a node would make it able to re-schedule it on another node but ended needing to scale one back up?

Based on https://github.com/jupyterhub/zero-to-jupyterhub-k8s/pull/1938/files#diff-0ff08f0a0977624bf1e3d520eb16c5ff5388612888af206492c6b822416c935c, it seems that it was not forgotten but documented to be an optional add in.

     Note that if you aim to block scaling down a node with the
     hub/proxy/autohttps pod that would cause disruptions of the
     deployment, then you should instead annotate the pods of the
     Deployment [as described
     here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-types-of-pods-can-prevent-ca-from-removing-a-node).
         "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"

I figure my historical reasons to hesitate making this the default and documenting it instead could have been:

adding the annotation should be conditional if its added, for example on not having a PDB defined on how to evict, and not collide with an user-set annotation rendering an annotation declared twice.
adding the annotation would favor stability over lower cost, which isn't an obvious preference

At least in our case (2i2c), I think next steps are:

[ ] Investigate if adding this annotation prevents node upgrades and drains from working
[ ] If it doesn't, just add that annotation everywhere.

As for the problem of proxy and hub being on multiple nodes, if that is a problem, we can fix that with pod affinities suggesting these be scheduled on the same node where preferable.


Added Habitat-Lab link as experiment framework to Readme

Motivation and Context
There is no mentions of Habitat-Lab from the Readme. That can lead to users re-inventing the wheel for embodied AI experiments. Added Habitat-Lab link as experiment framework to Readme.

How Has This Been Tested

Types of changes

[X] Docs change / refactoring / dependency upgrade

Should we maybe make this more visible? Like with a Badge? Otherwise, looks good to me.

Badge would be great, can be separate PR as require some design skills.


Error importing as ES Module with TypeScript

Typescript raises an error because it is unable to find a corresponding type. It looks like the package.json is missing the types entry under exports. See the TypeScript docs for more context (scroll to the bottom).

Hi! Thanks you for the report, please try to upgrade to the 0.4.0 and see if the issue is fixed.

Closing since stale, feel free to reopen if the issue persists.


SSL_read http response with content body splitted, almost 2 month havent solutions

i was write openssl proxy server in c++
but my development is stuck at Handling ssl_read and ssl_write, exchange data between client and server
can someone help me, to find a solution
i write data exchange like this below

but i cannot read  until end of

could someone, that has contribute or expert on proxy, give me a better code, to implement ssl_read ssl_write exchange client server with select keep alive non-blocking mode
the code is working, i can load websites, but i think my ssl_read implementation is wrong even if its working, could someone help me, and give me a better code please. or reference.
i cannot solve this for 2 months.

Are you using blocking or non-blocking sockets?

Are you using blocking or non-blocking sockets?

non-blocking socket

It's unclear what you mean by the response is split. I assume some of the data is missing? Its also unclear how the data you are displaying on your second image is being displayed. Is this the data that the remote server has received?
I can see from your code sample that you are performing some processing on the incoming data before writing it out. Are you able to confirm that the complete data on the incoming connection (prior to your subsequent processing) is being read?
You seem to be ignoring errors coming from SSL_write() (i.e. you just continue if SSL_write() is less than 0). Do errors ever actually occur in the scenario where you are seeing a problem?

It's unclear what you mean by the response is split. I assume some of the data is missing? Its also unclear how the data you are displaying on your second image is being displayed. Is this the data that the remote server has received?
I can see from your code sample that you are performing some processing on the incoming data before writing it out. Are you able to confirm that the complete data on the incoming connection (prior to your subsequent processing) is being read?
You seem to be ignoring errors coming from SSL_write() (i.e. you just continue if SSL_write() is less than 0). Do errors ever actually occur in the scenario where you are seeing a problem?

splite = mean missing, but website load successfully with full html data, but the html data cannot shown on terminal
ssl_write is (not problme), even if i ignore it, i just care of ssl_read
if i show more of my code, would you help me solve my problem

Ok, so if I understand you correctly, you are calling SSL_read() repeatedly, and sometimes some of the data that you were expecting to be there is missing. Correct?

if i show more of my code, would you help me solve my problem

I can try. Is it possible for you to reduce your code down to a small reproducer that demonstrates the problem?

Ok, so if I understand you correctly, you are calling SSL_read() repeatedly, and sometimes some of the data that you were expecting to be there is missing. Correct?

if i show more of my code, would you help me solve my problem

I can try. Is it possible for you to reduce your code down to a small reproducer that demonstrates the problem?

not lost, the proof is in the browser the html data from the server is complete
but why i can't display full data in terminal
I want to know
how to use ssl_read to read to "end of response" or "\r\n\r\n"

not lost, the proof is in the browser the html data from the server is complete

So, your browser is connecting to your proxy, and the proxy is connecting to the server? The full response data from the server is making it back to the browser via your proxy? But when you try to print the response data to the terminal from your proxy
some of it is not there?
Do I understand all of that correctly? If so I'm wondering why you think the problem is OpenSSL related? It sounds like something in your terminal printing code?

how to use ssl_read to read to "end of response" or "\r\n\r\n"

SSL_read() just reads data. It doesn't interpret it or look at its contents. It will treat "\r\n\r\n" the same as any other 4 byte sequence that you might send. It will have to be up to your application to parse the response data to try and find the "end of response"
Can you show the piece of code that attempts to parse the "end of response" from the data read by OpenSSL?

i dont implement parse the "end of response", thats why i asking here, i was finding "an sample code" on google, i havent found it yet

Hmm. This doesn't sound like a problem related to OpenSSL at all. This is a C programming question, i.e. "how do I parse a buffer of data to find a sub-sequence of bytes?". I might suggest something like memmem would do the trick (https://man7.org/linux/man-pages/man3/memmem.3.html) but this is not really the forum to ask this question. I suggest you ask this one on stackoverflow. Or possibly this is more of an HTTP question (e.g. to take account of content-length headers etc). Again you would need to address this question to a more suitable forum. OpenSSL does not handle the HTTP layer at all.

i just want to know, how to make keep alive ssl (continue loop), i was setselect timeout to 60, but non keepalive connection is not killed.

select doesn't kill the connection for you after the timeout. It is up to your code to decide what to do in the event that a timeout is exceeded.  Again though this is not an OpenSSL question - its a socket programming question. You need to ask this on a different forum.

Why do you keep deleting the question?
This makes it a lot less helpful for others dealing with similar problems.


Can't receive sats into wallet after onboarding

Tested on the latest test version.

Fund wallet with 56300 sats
Opened and closed a few positions
Opened and closed the app a couple of times in between.
Tried to receive funds, which shows me initially that I can receive up to 66,113
Enter some amount and the value what I can receive up to changes to 0.

I think it would be best to action this ticket https://github.com/get10101/10101/issues/1008, reproduce the bug in a test and then add a fix.

Trying to reproduce this locally right now and it seems to work for me. Here is my history:

The latest payment is after receiving money.
If you fund with 56 300 sats and then later transfer out 22 413 sats to get to 33 887 sats, it is my understanding that you should be able to receive 22 413 sats, correct?

New test case.
Wallet history:

Initial allowance:

Updated allowance:

Is anyone able to reproduce this? I can't from a clean setup

It is definitely reproducible that the receivable amount is changing once an amount is entered.

Yes, I think we can action that swiftly but the other half of the ticket (which is somewhat more important I'd argue) I can't reproduce yet

Got ya! Well I think this might have only been a special case of the bug.
With can't receiving I meant the amount I can receive is 0. purely uk validation.

@holzeis I've updated the ticket name, please doublecheck if it still conveys the problem

Sounds good 👍

After logging all the key values, here are the ones that change in order to change the amount to receive:

I think blocking the loading of the UI on the channel info call would be bad, so we should rather somehow defer displaying the max amount to receive until all relevant info. Maybe a loading spinner could be displayed (but where?)

There's a bit of asymmetry between the design of ChannelInfoService and WalletInfoService. Specifically, WalletInfoService keeps a cached copy in Flutter which refreshes regularly, so the create invoice screen can simply read the cached values without them changing in most cases. On the other hand, the ChannelInfoService keeps no cached copy, so the create invoice screen has to request it and cache its own copy. During the request, dummy data is shown.
Is there a reason for these two different approaches? Another potential fix would be to align ChannelInfoService to WalletInfoService's design.

Maybe you can change the text slightly and split the dynamic values out which can be replaced with spinners in case they are not yet loaded?

This would definitely be possible - in that case would you prefer not to go the ChannelInfoService route? This might be overall cleaner. It might still have the jump if a transaction happens as you open the screen, but this would happen anyway, as the widget is rebuilt when the channel info is updated regardless

Unassigning this since #1094 includes a fix


Fix a few issues with the forbidden syscalls test

Here are a couple of fixes for issues found when porting gaol to ppc64le.

@bors-servo r+

:pushpin: Commit 13b9fa7 has been approved by metajack

:hourglass: Testing commit 13b9fa7 with merge af768e1...

:sunny: Test successful - status-travis


Caps Lock Prevents Mac OS from Cycling Through Visual Studio Code Windows

Issue Type: Bug
Step 1: Open visual studio code.
Step 2: On the file menu, select "New Window"
Step 3: On the file menu, select "New Window" again, so there are atleaset 2 windows
Step 4: Turn the keyboards caps lock key on.
Step 5: Press command+~ to cycle through the windows.
Actual result:
Mac OS does not cycle through all of the Visual Studio Code windows.
Expected result:
Mac OS does cycle through all of the Visual Studio Code windows.
VS Code version: Code 1.38.1 (b37e54c98e1a74ba89e03073e5a3761284e3ffb0, 2019-09-11T13:31:32.854Z)
OS version: Darwin x64 17.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz (8 x 2200)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
2, 3, 3

Memory (System)
16.00GB (2.69GB free)

Process Argv
/Users/jngo2/Developer/Projects/lib_dev_proj

Screen Reader
no

VM
0%

Extensions: none

Same behavior in plain electron.

I just encountered this and thought something had seriously broken my VSCode install or gotten into some kind of bad system-wide state. It persisted after a relaunch. It was extremely alarming. It's easy to miss that I've inadvertently pressed caps lock if my finger is obscuring the caps lock light.
I'm reasonably certain all native Mac keyboard shortcuts are case-insensitive. But this is even more surprising because caps lock doesn't affect the `/~ key.

Just to be clear, the actual Mac key combination is Command+`, not Command+~. And Caps Lock is definitely not supposed to affect any keyboard shortcuts on a Mac. So, for example, Cmd+F will always perform Find, not Find in Files, whether or not Caps Lock is on. (Note that that works fine.)

Unable to repro in recent versions.


Unable to create AWS M5 instances

Hi there,
I tried to create an M5 machine on AWS with docker-machine and got the following error:
Error creating machine: Error in driver during machine creation: Error launching instance: InvalidParameterCombination: Enhanced networking with the Elastic Network Adapter (ENA) is required for the 'm5.xlarge' instance type. Ensure that you are using an AMI that is enabled for ENA.

Seems like the docker-machine AMI is too old. Is there a way to specify a newer one?

You can use --amazonec2-ami option.
BTW, m5 seems to work well with 1e3b6b64:
$ docker-machine create --driver amazonec2 --amazonec2-region "eu-west-3" --amazonec2-instance-type "m5.xlarge" testm5
$ for data in instance-type ami-id; do docker-machine ssh testm5 curl --silent http://<IP_ADDRESS>/latest/meta-data/$data; done
m5.xlarge
ami-9465d3e9


fixed bugs of eventing module

this pr fixes issue #899 #901 #902
@Jayesh333 i have changed the method from get to post of edit profile url, verify if once.
and also test the issue #902
@YourTechBud what should be the warning message for issue #901

@sharadregoti The warning message can be Event source (batch_id)  not accepting any responses

@sharadregoti have you solved #902? What changes did you make for that?

@Jayesh333 can you test if the issues are fixed?

No need for this


Custom with Image inside doesn't trigger hover events

A Custom widget with an Image widget inside doesn't receive hover events (and by that, also no mouse_down, mouse_up, etc. events)
Example code:
use cushy::figures::units::Lp;
use cushy::kludgine::include_texture;
use cushy::widget::MakeWidget;
use cushy::Run;
use cushy::styles::{Color, CornerRadii, Dimension};
use cushy::styles::components::{CornerRadius, IntrinsicPadding};
use cushy::widgets::{Custom, Image, Space, Stack};

fn main() -> cushy::Result {
    Stack::columns(
        Custom::new(
            Space::colored(Color::new(255,0,0,255))
            .expand()
        ).on_hover(|_,_| {
            println!("Space hover");
            None
        })
        .expand()
        .and(
            Custom::new(
                Image::new(include_texture!("./ferris-happy.png").expect("valid image"))
            )
                .on_hover(|_,_| {
                    println!("Image hover");
                    None
                })
            .expand()
        )
    )
    .expand_vertically()
    .into_window()
    .run()
}

The left side does receive events, the right side doesnt.
Also happens if there are other widgets taking up space inside the Custom:
use cushy::figures::units::Lp;
use cushy::kludgine::include_texture;
use cushy::widget::MakeWidget;
use cushy::Run;
use cushy::styles::{Color, CornerRadii, Dimension};
use cushy::styles::components::{CornerRadius, IntrinsicPadding};
use cushy::widgets::{Custom, Image, Space, Stack};

fn main() -> cushy::Result {
    Stack::columns(
        Custom::new(
            Stack::rows(
                Space::colored(Color::new(255,0,0,255))
                .expand()
                .and(
                    Space::colored(Color::new(0,0,255,255))
                        .expand()
                )
            )
            .expand()
        ).on_hover(|_,_| {
            println!("Space hover");
            None
        })
        .expand()
        .and(
            Stack::rows(
                Custom::new(
                    Image::new(include_texture!("./ferris-happy.png").expect("valid image"))
                )
                    .on_hover(|_,_| {
                        println!("Image hover");
                        None
                    })
                .expand()
                .and(
                    Space::colored(Color::new(255,0,0,255))
                    .expand()
                )
            )
            .expand()
        )
    )
    .expand_vertically()
    .into_window()
    .run()
}

Even the lower right side doesn't receive events.

This is some missing documentation for the mouse_ events -- the documentation for all relevant functions should note that hit_test() must return true for the related events to be directed to the widget in question. The way hit testing and input routing is handled has an overview here.
In short, adding .on_hit_test(|_, _| true) will make your widget be a target for relevant input events when hovered.

Ah, that explains things
I actually saw that .hit_test needs to return true for mouse events to work.
What I missed was that Space actually has a hit_test implementation while image does not.
So maybe adding documentation on what widgets do hit test and which do not might be good as well.

Thank you again for reporting this and the suggestions! I hope the new documentation will help future users not get hit by this same issue.


Multiplication Table Extension

Is your feature request related to a problem? Please describe.
In this tech savvy world, kids need an efficient way of memorising  tables
Describe the solution you'd like
A simple multiplication table extension
Describe alternatives you've considered
Mobile apps but they take up a lot of your storage
Additional context
GSSoC'24

Please assign me this issue


Cleared the zip from faulty AgentNames

I'm pretty sure this Closes #9 of @matt-slalom
Some of them contained ["] inside the UserAgent value so I just did a search on all of them and removed the enclosing quotes
Oh, also added an init parrametter in case you simply wanna get all the possible 300k configurations for some reason, I mean this god forsaken package loads all of them in your memoery at init eitherway, you might as well use them

I mean last update was 5 years ago This might as well be my start in open source contributing

Some of them contained ["] inside the UserAgent value so I just did a search on all of them and removed the enclosing quotes
Oh, also added an init parrametter in case you simply wanna get all the possible 300k configurations for some reason, I mean this god forsaken package loads all of them in your memoery at init eitherway, you might as well use them

It'd be cool if you did, @iVictory2004. If you need a list of headers to start with, this thread is a good starting spot: https://gist.github.com/pzb/b4b6f57144aea7827ae4

It'd be cool if you did, @iVictory2004. If you need a list of headers to start with, this thread is a good starting spot: https://gist.github.com/pzb/b4b6f57144aea7827ae4

I already did yo, look at the commit, try to unzip it and see it no longer has that. Problem is they won't merge it to main. Might have to fork it?

Lookin' at the last time there was a merge into this repo, it would likely be good to just fork it.

O shi I forgot how this works, sure will

Lookin' at the last time there was a merge into this repo, it would likely be good to just fork it.

https://github.com/iVictory2004/random_user_agent aight here you go idk how you import it or just clone it but here you go

Based on how I understand pip, you should likely update the README for your version so that it makes use of this: https://mathdatasimplified.com/2021/07/28/pip-install-e-install-forked-github-repository-using-pip/

Based on how I understand pip, you should likely update the README for your version so that it makes use of this: https://mathdatasimplified.com/2021/07/28/pip-install-e-install-forked-github-repository-using-pip/

learning sum new erryday, thanks a lot man, have no idea how i didn't see this 2 weeks ago

Can you please share the list of the updated User Agent entries in a separate ".txt" file? It will be easy for me to verify the updated user agents if I can have the list of updated user agents.

I honestly don know if I can still find the ones I've changed but I'mma look up the code I used for it later aigjt


[tool_crash] FileSystemException: Creation of temporary directory failed, OS Error: Access is denied., errno = 5

Command
flutter run -d chrome

Steps to Reproduce

...
...
...

Logs
FileSystemException: Creation of temporary directory failed, OS Error: Access is denied.
, errno = 5
#0      _Directory.createTempSync (dart:io/directory_impl.dart:181:7)
#1      ForwardingDirectory.createTempSync (package:file/src/forwarding/forwarding_directory.dart:28:21)
#2      LocalFileSystem.systemTempDirectory (package:flutter_tools/src/base/file_system.dart:227:46)
#3      ForwardingFileSystem.systemTempDirectory (package:file/src/forwarding/forwarding_file_system.dart:33:49)
#4      new ResidentRunner (package:flutter_tools/src/resident_runner.dart:1055:24)
#5      new ResidentWebRunner (package:flutter_tools/src/isolated/resident_web_runner.dart:102:8)
#6      DwdsWebRunnerFactory.createWebRunner (package:flutter_tools/src/isolated/resident_web_runner.dart:61:12)
#7      RunCommand.createRunner (package:flutter_tools/src/commands/run.dart:537:32)
<asynchronous suspension>
#8      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:671:35)
<asynchronous suspension>
#9      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1209:27)
<asynchronous suspension>
#10     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#11     CommandRunner.runCommand (package:args/command_runner.dart:209:13)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:281:9)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#14     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
<asynchronous suspension>
#15     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:9)
<asynchronous suspension>

[✓] Flutter (Channel stable, 3.3.10, on Microsoft Windows [Version 10.0.19044.2486], locale en-US)
    • Flutter version 3.3.10 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (7 weeks ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at C:\Users\ASUS\AppData\Local\Android\sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.4.3)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.4.33205.214
    • Windows 10 SDK version 10.0.22000.0

[✓] Android Studio (version 2020.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] Android Studio (version 2021.3)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] IntelliJ IDEA Community Edition (version 2019.3)
    • IntelliJ at D:\random\IntelliJ IDEA Community Edition 2019.3.3
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.74.2)
    • VS Code at C:\Users\ASUS\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.17.0

[✓] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19044.2486]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 109.0.5414.120
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 109.0.1518.78

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Flutter Application Metadata
Type: app
Version: 1.0.0+1
Material: true
Android X: false
Module: false
Plugin: false
Android package: null
iOS bundle identifier: null
Creation channel: stable
Creation framework version: 135454af32477f815a7525073027a3ff9eff1bfd

Hi @Trnvv11
Does this issue occur continuously? Can you retry on the latest stable and master channels to check if it still occurs?

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.7.1, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.7.1 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7048ed95a5 (11 hours ago), 2023-02-01 09:07:31 -0800
    • Engine revision 800594f1f4
    • Dart version 2.19.1
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio Dolphin 2021.3.1.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio Dolphin 2021.3.1.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[!] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.74.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.58.0

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D                         • android-arm64  • Android 11 (API 30)
    • iPhone (mobile)  • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.2 19H218
    • macOS (desktop)  • macos                                    • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome                                   • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.8.0-4.0.pre.25, on macOS 13.0.1 22A400 darwin-x64, locale en-VN)
    • Flutter version 3.8.0-4.0.pre.25 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f5394a5c (19 hours ago), 2023-02-04 23:06:19 -0800
    • Engine revision 2a104cdfcd
    • Dart version 3.0.0 (build 3.0.0-204.0.dev)
    • DevTools version 2.21.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Users/huynq/Library/Java/JavaVirtualMachines/corretto-1.8.0_302/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment Corretto-8.302.08.1 (build 1.8.0_302-b08)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14B47b
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.75.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.58.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 13 (API 33)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 13.0.1 22A400 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.


Fix typo in spell description prepend

Tiny error in the refactor Mr Shark, we lost our Areas 👀

thx QA department


Problem using open on Ubuntu

p.27 of sct course London
On a fresh ubuntu 18.04, running open batch_single_subject.sh doesn't work and returns
Couldn't get a file descriptor referring to the console
Using xdg-open instead of open works and opens the file in the text editor
Edit :
Looks like open is macOS specific : link

Same using xopen at p.66

thanks @olix86. Yes, this is the purpose of page 25 of the course material: define the generic $open_cmd command to accommodate both Linux and OSX. However, this is a bit cumbersome, so when convenient, I will simply remove the "open" command so people will double click on the file via their OS GUI instead (or they can use the Terminal command if they are familiar with it).


Add ability to provide custom kubernetes service ip and host value during cluster import

Rancher versions:
rancher/server or rancher/rancher: v2.0.2
rancher/agent or rancher/rancher-agent: v2.0.2
It would be nice to have ability to provide custom kubernetes service ip and host value during cluster import from UI. This can be done right now only by adding extra variables to cattle-cluster-agent deployment kubectl -n cattle-system edit deployment cattle-cluster-agent:
        - name: KUBERNETES_SERVICE_HOST
          value: kubernetes-master-ubuntu
        - name: KUBERNETES_SERVICE_PORT
          value: "1443"

This is needed in my case to be able to connect from rancher to dedicated kubernetes LB endpoint.

And btw diagram https://rancher.com/docs/rancher/v2.x/en/installation/references/ which illustrate flows for the imported cluster is not fully right as we need to have communication from rancher to imported cluster :)

Anyone? @superseb ?


Installing vscode-php adapter fails with certificate error

Getting Failled Finished Installing adapter: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] ... unable to get local issuer certificate
The URL has changed maybe?

Actually the URL https://marketplace.visualstudio.com/_apis/public/gallery/publishers/felixfbecker/vsextensions/php-debug/latest/vspackage seems to be working so it's a problem with unhandled certficaite.

Any workarounds on how to install the PHP adapter?

Assuming you are both on dev builds then this should be fixed in 0.2.4 (as well as the unstable st4 branch)

WFM now. Thanks :)


Factions do not display properly in the factions window in game

When adding factions, only Popsicles is selectable in the list. This can be worked around by adding new faction groups. The new group shows and when select, changes to its first faction entry and allows you to play with that faction, but the list that displays factions will still only show and allow Popsicles to be selected.

Issue is now fixed in 1.0.7


Update bundles and README with 1.7.0 refs

DO NOT MERGE THIS YET. We first need 1.7/stable snaps

Should we also update the Core bundle with the channel option of 1.7/stable?

@ktsakalozos Yes please.


ENH: Add an option to take directories with no file extension, and more output formats

This will try to read all files in a directory as dicom files, and anonymize them accordingly.
Need to add a few more output formats.

Add .nrrd as an input format? This will not be able to go through the Slicer's DICOM database. So we'll need to figure out how to add them to the DB.


SyntaxError in Python <3.12

Steps to reproduce:

Run the example usage:

from pypdl import Pypdl

dl = Pypdl()
dl.start('http://example.com/file.txt')

Expected result:
Download starts and completes.
Actual result:
SyntaxError: f-string: expecting '}'

in pypdl/factory.py", line 219,
    download_stats = f"Downloading...{" " * 95}\n"

The new f-string usage is only available in Python 3.12.
Environment:

Python 3.9.18
pypdl 1.4.0

fixed in https://github.com/mjishnu/pypdl/commit/30bac2339a0c89ec849b2334943f0f927ba5ff74

forgot to test it on older versions I was testing on 3.12, sorry for the delay my pc was busted, fixed the issue in this commit 30bac23 (working in python 3.8.10)

Should I upgrade now? pip install --upgrade pypdl like this?

I didn't publish yet making few more changes. as a temp fix just manually apply the changes I made in the commit

Thanks for reporting, with v1.4.1 this should be fixed.


[MENFORCER-323] - Improve output of "Some plugins are missing valid versions" error

The old output could be:
Some plugins are missing valid versions:(LATEST RELEASE SNAPSHOT are not allowed )
org.apache.maven.plugins:maven-release-plugin.  The version currently in use is 2.5.3
org.apache.maven.plugins:maven-resources-plugin.        The version currently in use is 3.0.2

If that if branch wasn't taken, then there wouldn't even be a newline, which would make the output even uglier.

Following this checklist to help us incorporate your
contribution quickly and easily:

[x] Make sure there is a JIRA issue filed
for the change (usually before you start working on it).  Trivial changes like typos do not
require a JIRA issue.  Your pull request should address just this issue, without
pulling in other changes.
[x] Each commit in the pull request should have a meaningful subject line and body.
[x] Format the pull request title like [MENFORCER-XXX] - Fixes bug in ApproximateQuantiles,
where you replace MENFORCER-XXX with the appropriate JIRA issue. Best practice
is to use the JIRA issue title in the pull request title and in the first line of the
commit message.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Run mvn clean verify to make sure basic checks pass. A more thorough check will
be performed on your pull request automatically.

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.
To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

[x] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004

[x] In any other case, please file an Apache Individual Contributor License Agreement.

I'm happy to adjust the commit message if someone provides direction (it's also ok in my book if someone rewrites my commit message when they integrate the commit).

@jsoref
Please create an issue here:
https://jira.apache.org/jira/projects/MENFORCER/issues/MENFORCER-267?filter=allopenissues
then format the pull request title like [MENFORCER-XXX] -This is the title.....,
where you replace MENFORCER-XXX with the appropriate JIRA issue. Best practice
is to use the JIRA issue title in the pull request title and in the first line of the
commit message
for example:
[MENFORCER-xxx] Improve output in case of "Some plugins are missing valid versions" error
Essentially just follow the list of checkboxes in the PR
Remember to fix the  System.lineSeparator() issue as @khmarbaise and @Tibor17  are requesting.
The change would still trivial, I think you won't need to submit a full iCLA for this (please @khmarbaise  / @Tibor17 chime in if this not true).

I've created a distinct PR for the newline changes. If you merge it first, I'm happy to deal w/ the merge conflicts.
However, it should be clear from the PR that it's much larger than the tiny incremental change I'm trying to make here and is totally inappropriate to mix with this PR.
Personally, having worked on larger projects, the change for #48 should be given significant review and consideration before being accepted, it might not be the right behavior, it might break things/expectations, it isn't a trivial change. Diffstat also reports it exceeds the trivial CLA requirements.
This PR otoh is a much smaller change which can be reviewed and should be dealt w/ on its own.

@jsoref Creating a separate PR for the newline change is the right way to keep the change short and focused on a particular thing...and it's good that you realized that \n has been used on the files instead of System.lineseparator
Furthermore it would be a good idea to shorten the commit message and clean up the text. A detailed explanation can be done in the JIRA ticket...

@khmarbaise are you ok with this change ?
I have already imported it and build passed on CI.
I will wait for your approval and then merge to master

LGTM

I am merging this

merged to master.
thank you @jsoref

I'm closing this. I guess I should have had "closes #47" in my commit message to get it to auto-close?

For reference, this was merged as 5ac7679

Thank you.
We are not (yet) using that github way of closing prs as our primary system is on Apache GIT repo + JIRA.


flag: Emulate stdlib behavior and do not print ErrHelp

I know this repo is not seeing much activity but I figured I'd include this fix.
Fixes #306

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Prevents default values of VSNodeCustom from overriding by a script

Fixes #47805, by adding an internal property for VisualShaderNodeCustom (initialized) which set to true when a node is placed on the graph, and added few internal methods to prevent a tool script from modifying the input ports when the script attached to them. Note: You need to re-save your shader in order this new property has been applied to existed custom nodes in graph. set_default_input_port should still correctly worked when the node just placed on the graph but afterward the default will be under user control.

Thanks!


Convert IonPyDict to regular Python dict, so that it is compatible with dataframe library like pandas polars

My company are using DynamoDB heavily and use DynamoDB export to convert a DynamoDB table into a bunch of parquet file. We want to parse the exported ion file and then convert it to polars dataframe. However, polars dataframe doesn't recognize IonPyDict.

As of version 0.12.0 you can control that using IonPyValueModel.STRUCT_AS_STD_DICT.
See https://github.com/amazon-ion/ion-python/blob/master/amazon/ion/simpleion.py#L208
For example:
load(f, single_value=False, parse_eagerly=False,
                           value_model=IonPyValueModel.STRUCT_AS_STD_DICT)

Feel free to reopen if this doesn't meet your needs or somehow doesn't work for you.


Create libv86.js

We should create a build target for libv86.js, which would allow people to use the emulator without building it.
The build shouldn't include adapters (or code from browser/ or node/), since they are directly related to what the emulator is used for.

I've thrown out the nodejs-specific code and built a browser-only API that is (hopefully) easier to use:
https://github.com/copy/v86/blob/master/docs/api.md


🐛 (eks sync-core-components): Increase maxEKSBuild, do binary search

Description
Fixes #214
Replaces #215
The maximum number of builds (sub-patches?) to search for with eks compnent images was hard coded to 10 (actually 9, since the last one has to error / miss for the code to work), but there are in fact 10 builds of eks/coredns:1.9.3-eksbuild. This massively jumps the threshold to 128, and switches to doing a binary search rather than a forward crawl to keep the request count down.
At present any attempt to create / update an EKS cluster using version 1.24 through 1.26 will error (see #214).
$ curl https://602401143452.dkr.ecr.us-west-2.amazonaws.com/v2/eks/coredns/manifests/v1.9.3-eksbuild.10 -H "Authorization: Basic $token"
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 739,
         "digest": "sha256:ccd971aef1b9e189ec21a2e70ba93ed6a339ea8be071f28cff6833db833fd742",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 739,
         "digest": "sha256:00905877cf1be0c1440cde988319f5a6fff848dd783a4517db3c848fd7ef9c5c",
         "platform": {
            "architecture": "arm64",
            "os": "linux"
         }
      }
   ]
}

[x] Ensure the branch is named correctly with the issue number. e.g: feature/new-vpc-endpoints-955 or bug/missing-count-param-434.
- [ ] Update the docs.
[x] Keep the changes backward compatible where possible.
[ ] Run the pre-commit checks successfully.
- [ ] Run the relevant tests successfully.

Release Notes
Find eksbuild's via binary search, Fixes #214

I feel this is a more permanent solution than #215, and it makes performance more consistent across the board. But I acknowledge it's much more complex so I'll leave it to the maintainers to decide.

Hi @ThisGuyCodes , we are testing this PR now. Can you confirm what version of kubergrunt you are using just for an apples to apples comparison? We'll take a look at both PR's that were opened, but might go with #215 initially. Will follow up either way.

I'm using the latest release, v0.13.0

Hi @ThisGuyCodes, we got #215 merged and released. v0.13.1 addresses the issue (I just verified). Thanks again for the contribution!
We can keep this PR open if you would like. I plan to circle back to function to update to a more robust solution that is less constrained with the limits and the overall implementation.

Happy to keep it open!


No update for winetricks

https://github.com/NayamAmarshe/gameready/blob/4d21fbfa4f7eb2775f62d4fcc159e5dc9784de23/gameready.sh#L31-L33
That's not the best way to install winetricks, basically, you are doomed on the same version. You either install it through some kind of package manager or repo, or include winetricks --self-update  command somewhere to keep it updated.

Ah got it. These instructions were actually taken from the WINE website. I'll see what I can do about this. Thank you!

Fixed!


Make things more plugin-y

This makes things more plugin-y -- every "plugin" (commands, journals, rkt, files, etc) gets its own package in the mayday/mayday/plugins directory. it implements tarable, optionally using tarable.Header() to do so (not automatically, but as a helper function).
Current downsides:

files are copied into memory when loaded, before anything else is run, and not when they're being copied in, which means memory usage

because I'm having some problems with how my buffers are working. I'm pretty sure I can get this fixed fairly simply though.

we still can't configure these plugins by config files, but that's next (and for another PR).

LGTM


gopls: 0.15.2 -> 0.15.3

Changelog: https://github.com/golang/tools/releases/tag/gopls/v0.15.3
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release 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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@SuperSandro2000 any reason @r-ryantm doesn't do this ?

@SuperSandro2000 any reason @r-ryantm doesn't do this ?

I don't know, maybe it didn't get to that package yet? It has some public logs you can check.


[logging] added tests around logging and levels

Overview
There were previously no tests around logging, so hopefully these new
tests will prevent accidental mistakes, as well as illustrate how
logging can be used throughout the codebase.
In addition, microseconds seems to be a better choice for the timestamp.

/land


Getting a "The specified key does not exist" error even though the object is present in S3

Hi,
I have just deployed v4.0 of this solution. After I upload an image to the source S3 bucket I get the following message, even though the object exists and is public (I can access it directly via an S3 URL):
{"status":500,"code":"NoSuchKey","message":"The specified key does not exist."}
Here's an example:

https://d3g99zcrnlow87.cloudfront.net/subfolder/4simon.jpg (500)
https://image-handler-testing.s3.amazonaws.com/subfolder/4simon.jpg (200)

Oddly, when I upload an image to the root of the bucket, I can retrieve the image via the API/distribution without any issue:

https://d3g99zcrnlow87.cloudfront.net/simoncoveney.jpg (200)
https://image-handler-testing.s3.amazonaws.com/simoncoveney.jpg (200)

What's weirder again is that if I then re-upload that second example to a sub-folder, after first uploading it to the root, it can be retrieved via the API/distribution:

https://d3g99zcrnlow87.cloudfront.net/subfolder/simoncoveney.jpg
https://image-handler-testing.s3.amazonaws.com/subfolder/simoncoveney.jpg

We can see here that the 500 response is not coming from CloudFront, but from the API (or something further along the process): https://wc9am3chn1.execute-api.us-east-1.amazonaws.com/image/subfolder/4simon.jpg
Can anyone give any insight into what's going on?
Conor

What you are seeing is most likely this issue with the the Thumbor mapping:
https://github.com/awslabs/serverless-image-handler/issues/112
The reason it works when you re-upload it to a subfolder is because it always looks in the root, no matter what path you give it, so it still exists in the root then it will work.

Implemented a fix for this as follows:
https://github.com/awslabs/serverless-image-handler/pull/130/files#diff-08e877f927a879fa2fe8faa4d6b1a1de
You may use the above for the specific issue you are facing, but if you're willing to re-pack the node_modules of your function, you might use the PR where the fix above is a part of:  https://github.com/awslabs/serverless-image-handler/pull/130 It contains several other fixes such as /fit-in/ behavior, strange "{}" return for images captured with samsung cams, improper resizing if 'x' is part of filename etc.

I've just deployed the version 4 (as I too have just my sites break...) and I can't get it to work either.
I just deployed the "front end demo site" or whatever that is called and I have confirmed that the demo program CANNOT handle folders whatsoever.
If you have a folder in the root and you have an image within that then it is impossible to get it to load in the front end demo.
If you place the image itself in the root then it works no problem.
I've tried all manor of quotes, escapes and encodings and yet nothing I've tried works.
I tried the resultant URLs as well just in case it was a display issue with the front end demo however none of them worked either.
Since you can not MOVE objects in S3 (you can with custom code...) most people would have to download everything and re-upload to the root.
Do we have a fix for the folder issue on the horizon?
FYI: When you specify a file in the root it is WITHOUT the LEADING slash.
GOOD: my-file.jpg
BAD: /my-file.jpg
NEVER GOING TO HAPPEN: my-folder/my-file.jpg

I've just deployed the version 4 (as I too have just my sites break...) and I can't get it to work either.
I just deployed the "front end demo site" or whatever that is called and I have confirmed that the demo program CANNOT handle folders whatsoever.
If you have a folder in the root and you have an image within that then it is impossible to get it to load in the front end demo.
If you place the image itself in the root then it works no problem.
I've tried all manor of quotes, escapes and encodings and yet nothing I've tried works.
I tried the resultant URLs as well just in case it was a display issue with the front end demo however none of them worked either.
Since you can not MOVE objects in S3 (you can with custom code...) most people would have to download everything and re-upload to the root.
Do we have a fix for the folder issue on the horizon?
FYI: When you specify a file in the root it is WITHOUT the LEADING slash.
GOOD: my-file.jpg
BAD: /my-file.jpg
NEVER GOING TO HAPPEN: my-folder/my-file.jpg

see my reply above yours, the only fix right now is for you to go to your Lambda function, Actions -> Export Function. Unzip the package, modify the code, re-zip and re-upload the function package with your changes. The changes needed are outlined in the my comment above, you may also apply the whole PR which fixes several other issues.

Any updates on when this will be properly fixed? This is still an issue for newly created stacks.

Any fix? Im facing this same problem

@andyfurniss4 , @adrianosmateus , we have fixed this in our fork, we have a pre-bundled export you can use readily:
https://github.com/innovationlove/serverless-image-handler/releases/tag/4.0.1-ilove
Use at your own risk.

We have updated our solution, and I believe your issue has been fixed. If you still see the issue with the latest version (v4.2), please feel free to reopen the issue.
You can refer to the recent changes here

we have similar issue happening with a spring batch job. but when the batch job is re-run  the job is successful. I am not sure if there is any latency between write and read operations when this is happening .
Can anyone explain the cause?

we also have same issue like this . we implemented aws-sdk in our angular application and we get the object file sometimes it gives error no specified key found even the key is proper . when i checked in the requested url we have %20  text instead of ' ' space . any solution to resolve this

I have the same issue, but not permanently. Sometimes the image is found and resized correctly, sometimes I get a 404 for the same image but with different parameters. It seems not really deterministic, so it is hard to give steps to reproduce :-/

@sbiastoch Can you check the Lambda log in CloudWatch to see if anything is being logged that might indicate what is happening?
A key not found error return may log more information that might be helpful.

We have not been able to duplicate this report and are closing it.
If it occurs again, please re-open the issue and provide details for

version
region
relevant CloudWatch log entries for errors and request details that might impact request processing
if possible, provide a request that produces the issue


Made the submit button functional

Description
Added functionality to the submit button. When the submit button is clicked, it displays the messaged, "thank you for submitting your feedback" and refreshes. If the form is not filled and the submit button is clicked,it displays"Pease fill the feedback form "message
-## Closes #703
Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes]
https://github.com/Anishkagupta04/RAPIDOC-HEALTHCARE-WEBSITE-/assets/142666229/b4c3852f-b001-45d5-bc13-162679feb9da
Checklist

[ ] I have gone through the contributing guide
[ ] I have updated my branch and synced it with project main branch before making this PR
[ ] I have performed a self-review of my code
[ ] I have tested the changes thoroughly before submitting this pull request.
[ ] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[ ] I have commented my code, particularly in hard-to-understand areas.

Additional context:
[Include any additional information or context that might be helpful for reviewers.]

Please review my pull request @varshith257 @Anishkagupta04

@samarsajad Is emoji checking is needed?
If yes, you can put a case when !emojichecked to display user to check emoji

It's already there. Check the code in the files merged @varshith257

Here is the code snippet that does what you requested


OPTIONS request doesn't follow the order of route declaration

I just notice that an OPTIONS request doesn't follow the order of route declaration and applies for all the routes that are defined using the same instance.
I am not sure if it's bug or an intended behaviour since I don't fully understand the nature of OPTIONS request.
Here are 2 code snippets
const app = require('express')();

app.use((req, res, next) => {
  res.send('Blocked');
});

app.get('/route1', (req, res) => {
  res.send('route1');
});

app.get('/route2', (req, res) => {
  res.send('route2')
});

app.listen(3000, () => {
  console.log('Server started on port: 3000');
});

const app = require('express')();

app.get('/route1', (req, res) => {
  res.send('route1');
});

app.use((req, res, next) => {
  res.send('Blocked');
});

app.get('/route2', (req, res) => {
  res.send('route2')
});

app.listen(3000, () => {
  console.log('Server started on port: 3000');
});

In first case, both GET and OPTIONS request to any of the 2 routes returns the message "blocked" as expected since the middleware is defined prior to both and hence any request to either of these will first pass through it.
In second case, both GET and OPTIONS request to the second route return the message "blocked". Again as expected.  But for the first route, the GET request return the message "route1" while the OPTIONS request returns the message "Blocked".
Why did the GET request was successfully served but the OPTIONS request first passed through the middleware that was defined after that route?
I'm using v4.17.1

The reason is that the default OPTIONS handling only comes into play if the request reached the end of your declarations and never encountered anything that handled it. Since in your second example the .use handled the OPTIONS request (by not calling next()) the default handling was never invoked.
You can think of it in that the OPTIONS auto response is not an aspect of your app.get (i.e. it does not respond at the moment of the app.get declaration for the named route) and is instead an alternative of the 404 response (i.e. only runs if no other route handled the OPTIONS request).
I hope that helps explain the behavior.

@dougwilson Yeah that explains the behaviour quite well. Thanks a lot.


Add aless80 as maintainer

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)

This PR adds @aless80 as a maintainer for this feedstock.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Warden Promotions' Escalation

Describe the bug
Vet. Petty Officer escalating to Hailstorm Promotion Board
Warden display information is not showing up on the Warden board, instead, it is showing up on the Hailstorm board.
To Reproduce
Steps to reproduce the behavior:

Go to  Hailstorm Board
Scroll down to Atom to Vet Petty Officer
See error

Expected behavior
Should only require approval on Warden Promotion Board

Update: Added more error details.

Error: Is on Hailstorm board. Should only require Warden Approval. Also cannot be approved by Battalion Staff while it is on the Hailstorm board.
The lowest Warden rank that requires Council(Hailstorm) Approval is Chief Petty, every rank above that(Master Chief and Command Master Chief) also requires Council(Hailstorm) Approval.

@Wirtimus I wasn't asking for more details - but thanks anyways. I was dropping a comment to let anyone know that I added an update to your original post with information about the real problem - the part in bold. For anyone picking this issue up, the edit is this: Warden display information is not showing up on the Warden board, instead, it is showing up on the Hailstorm board.

Can't replicate this on the development side of things. Promotion to Vet. Petty Officer happens only in the Warden board.

Closed in favor of #328


derived_from_subject is null for all PDC entries

Query that confirms the issue:
select distinct(_Specimen.derived_from_subject)
from `gdc-bq-sample.cda_mvp.v3` as v3,
unnest(ResearchSubject) as _ResearchSubject,
unnest(_ResearchSubject.identifier) as _identifier,
unnest(_ResearchSubject.Specimen) as _Specimen
where _identifier.system = "PDC"

previous version of transform code implemented this line : case.get("submitter_id"), which is incorrect for PDC since there is no "submitter_id" field. This has been rectified with the transformation mapping functionaliity

On top of the process being different, the below query nets zero results:
SELECT _Specimen.*
FROM gdc-bq-sample.integration.all_v1 AS all_v1,
UNNEST(all_v1.ResearchSubject) AS _ResearchSubject,
UNNEST(_ResearchSubject.Specimen) AS _Specimen
WHERE (_Specimen.derived_from_subject is Null)


Infinite loop when walking through archive containing . (dot) entry

STEPS

Create an archive:
mkdir empty_dir
tar -cf fs_test_infinite_loop.tar -C empty_dir .

Walk the archive using fs.WalkDir function.

EXPECTED:
The walk function is called once.
OBSERVED:
The walk function is in an infinite loop.

fixed by #11

released v1.0.6 https://github.com/nlepage/go-tarfs/releases


Fix Jackson2 dependency to use plugin

Fixes JENKINS-46526 by replacing the Jackson dependency with the Jackson 2 plugin.
@reviewbybees

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.


rhel support & ldap support

I wasn't quite able to get ldap to work when building static-php-cli, but it's trivial on rhel/debian - just run
dnf install sqlite-devel openldap-devel
ln -s /usr/lib64/libldap.so /usr/lib/libldap.so && ln -s /usr/lib64/liblber.so /usr/lib/liblber.so
php-src-folder/configure --with-ldap=/usr

openldap-devel is called libldap2-dev on debian.
Edit: If you want to add a pipeline for rhel (not required imo) this is the full install script to get things running on rhel.
epel-release is required for most of the things to install, remi only for php 8.2. The default still downloads 8.0 by default, which doesn't work.
dnf install epel-release
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
dnf module enable php:remi-8.2
dnf install tar git zip php php-sodium php-zip libsodium wget

cd /opt
git clone https://github.com/crazywhalecc/static-php-cli.git
wget https://musl.libc.org/releases/musl-1.2.4.tar.gz

tar -xzf musl-1.2.4.tar.gz
cd musl-1.2.4.tar.gz
./configure
make -j
make install
cd ../static-php-cli

dnf install bison flex bzip2 cmake patch
dnf install sqlite-devel openldap-devel
ln -s /usr/lib64/libldap.so /usr/lib/libldap.so && ln -s /usr/lib64/liblber.so /usr/lib/liblber.so

php-src-dir/configure --with-ldap=/usr

please with  openldap  static link library
build reference : https://github.com/jingjingxyk/swoole-cli/blob/new_dev/sapi/src/builder/library/openldap.php#L37

@DubbleClick Only libraries supported by static compilation can be added to static-php-cli. Currently, all packages installed by dnf are dynamically linked. So the core point is to write a method that can statically compile the openldap library.

ready for review now, I think everything is working as it should

For what it's worth, I've only required perl for RHEL distros now, but I think it should be a requirement for debian and alpine too. Doesn't seem like a good idea to rely on perl being installed by default.

Cleaned up a few last things: enabled ldap for MacOS and moved the source to /php-src/ext/ldap.

When compiling ldap with openssl support, the zlib extension needs to be enabled. If compiled without openssl support, zlib is not required. I didn't put zlib in ext-requires because of that and instead check for openssl lib & zlib extension before enabling --with-tls

For what it's worth, I've only required perl for RHEL distros now, but I think it should be a requirement for debian and alpine too. Doesn't seem like a good idea to rely on perl being installed by default.

Debian and Alpine has installed perl I guess.

When compiling ldap with openssl support, the zlib extension needs to be enabled. If compiled without openssl support, zlib is not required. I didn't put zlib in ext-requires because of that and instead check for openssl lib & zlib extension before enabling --with-tls

My understanding: If you want ldap to support openssl, then it must include the zlib library. This can actually be solved like this: openssl extension adds ext-depends: zlib.

Correct, sure I can add that.

Although the openssl extension does not require the zlib extension, according to the current extension inclusion logic, the zlib extension should be enabled when you include the zlib library, so this is reasonable.

Documentation Task

[ ] extension.md
[ ] CliGenerator.vue
[ ] doctor for RHEL part

The doctor command doesn't have notes about specific operating systems. Rhel would just count under linux, I think we have nothing to document there.


Trying to record 2 streams at once, but only the second one is recorded (sometimes both)

Hi I am trying to record 2 streams by using the Js API:
    startRecording = () ->
        console.log "start recording"

        room.startRecording localStream, (recordingId) ->
          console.log "Recording started, the id of the recording (tutor) is ", recordingId
          recording_tutor_id = recordingId

        room.startRecording otherStream, (recordingId) ->
          console.log "Recording started, the id of the recording (student) is ", recordingId
          recording_student_id = recordingId

No errors in console.
In erizo log i read:
2018-10-15 08:26:05.929  - INFO: ErizoController - Client - message: startRecorder, state: RECORD_REQUESTED, streamId:<PHONE_NUMBER>17783700, url: /export/videos/450284546977787200.mkv
2018-10-15 08:26:05.929  - INFO: RoomController - message: addExternalOuput, streamId:<PHONE_NUMBER>17783700, url:/export/videos/450284546977787200.mkv
2018-10-15 08:26:05.930  - INFO: ErizoController - Client - message: startRecorder, state: RECORD_STARTED, streamId:<PHONE_NUMBER>17783700, url: /export/videos/450284546977787200.mkv
2018-10-15 08:34:42.863  - INFO: ErizoController - Client - message: startRecorder, state: RECORD_STOPPED, streamId:<PHONE_NUMBER>77787200, url: /export/videos/450284546977787200.mkv
2018-10-15 08:34:42.863  - INFO: RoomController - removeExternalOutput, url: /export/videos/450284546977787200.mkv

But the file<PHONE_NUMBER>77787200.mkv is nowhere to be found, while the student stream (otherStream) is always present.

The version is: commit 8b4692c88f1fc24dedad66b4f40b1f3d804b50ca
Using vp8 only


Put version in the packaged devrels for riak test runs, update path f…

…or rels for MARQS

+1 e6ded3e

I don't remember for certain but the ones I created the first time I did this used a similar technique with the dot and it creates slight weirdness when unzipping. I switched to a splat instead and that worked better.

@ooshlablu +1 /cc @mdigan @sanmiguel


Doesn't work with falcon

This doesn't seem to work with falcon.  It's missing most of my routes... only routes with a variable in them are showing up in the output.

May I please ask how you're launching the process with py2swagger? (i.e which command depending on your environment)

Here's my routes
app.add_route('/api/v1/healthcheck', HealthCheckResource()) app.add_route('/api/v1/resources', ResourceCollection()) app.add_route('/api/v1/resources/{id}', ResourceItem()) app.add_route('/api/v1/resources/{id}/children', ResourceChildren())
Run this:
py2swagger  -o swagger.json falcon main:app
And the output only has this under paths:
"paths": {     "/api/v1/healthcheck": {       "get": {}     },     "/api/v1/resources/{id}/children": {       "get": {}     }   }

Did someone get the solutions?

@amitsharmaa8891 I created a falcon plugin for apispec that generates swagger docs
https://github.com/alysivji/falcon-apispec

@alysivji I just used your plugin for a new project and it’s working like a charm. Very nice. Your projects deserves more attention.

Very glad to hear it's useful for others! Cheers to the apispec devs for doing most of the heavy lifting!

is it working with falcon v3 ?


Error installing on Windows 10 or 11 python 3.12.3 related to  psycopg2-binary==2.9.6

Describe the bug
Hope this is the right classification for this error.
Thanks for your great tool!
Installing on windows 10 or 11 raises an error related to psycopg2-binary==2.9.6
I think is just related to windows.
Update:
I just realized it works with python 3.11.9 and not with 3.12.3
To Reproduce
Steps to reproduce the behavior:

pip install label-studio (on windows 10 or 11)
shows the error

  Collecting psycopg2-binary==2.9.6 (from label-studio)
  Using cached psycopg2-binary-2.9.6.tar.gz (384 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      running egg_info
      writing psycopg2_binary.egg-info\PKG-INFO
      writing dependency_links to psycopg2_binary.egg-info\dependency_links.txt
      writing top-level names to psycopg2_binary.egg-info\top_level.txt

      Error: pg_config executable not found.

      pg_config is required to build psycopg2 from source.  Please add the directory
      containing pg_config to the $PATH or specify the full executable path with the
      option:

          python setup.py build_ext --pg-config /path/to/pg_config build ...

      or with the pg_config option in 'setup.cfg'.

      If you prefer to avoid building psycopg2 from source, please install the PyPI
      'psycopg2-binary' package instead.

      For further information please check the 'doc/src/install.rst' file (also at
      <https://www.psycopg.org/docs/install.html>).

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Environment (please complete the following information):

OS: windows 10 or 11
Label Studio Version 1.11.0

My apologies, the error is related to the python version. It works with python 3.11.9 and not with 3.12.3

Change psycopg2-binary version form psycopg2-binary==2.9.6 to psycopg2-binary==2.9.9 inside poetry.lock it will work.

If psycopg2-binary==2.9.6 is changed to psycopg2-binary==2.9.9 it will work fine.

It should be in the develop branch already, please try using ls from the github repo.


fonts for accents don't match base font

See https://github.com/Khan/KaTeX/pull/349 for details.

Reported by @gagern.

Let's include some texcmp images. TeX in green, KaTeX in red, as usual.

MathIt:
MathTt:
MathBf:

Thanks for adding some images.

The accent glyphs in the fonts no longer have a horizontal shift.  This change was made in https://github.com/KaTeX/katex-fonts/pull/5 and https://github.com/Khan/KaTeX/pull/1094.  This is still an issue, but could probably be fixed now.

I'm moving this out fo the Version 1.0 milestone.  We should fix it, but it doesn't seem particularly pressing.

I guess it's back in the 1.0 milestone again. 🙂


Periodical scanning

Hi everyone,
I'm trying to make periodical scan using RxBluetoothKit without success. Can anyone give some directions. I can't find something similar in the docs or sample app. What I want to do is scan for 3 seconds, pause 1 second and start scanning again for 3 seconds and so on.
Thanks.

Might want to check out the code provided in this comment. If you remove the connection part and add a delay at the beginning you'll have what you're looking for. Note there is an issue with restarting a scan this way, but there is a workaround described there as well.

Hi,
the reason that I need periodical scan is that my device can start/stop advertising data at any time. Do you think that CBCentralManagerScanOptionAllowDuplicatesKey will do the trick. I'm open to suggestions.
Thanks.

Yes, CBCentralManagerScanOptionAllowDuplicatesKey sounds like it will work for you. By default scanning will only show you one advertisement per device, setting that key to true will ensure you get every advertisement the device sends out, so just leaving the scan going will likely suffice.

I just go through to your example in #84 and I think my case is similar with yours.
Thanks.

@cfilipov Thanks for helping out :)
We will try to fill example app or our wiki with some more examples of advanced Rx usages.
@dneykov If you'll need solution for the problem you've mentioned earlier - 3 sec of scan, 1 sec wait over and over - please tell and we'll help you with solving this problem.
Regards,
Kacper

When I use .take(1) to get  first result scan is canceled. I wondering how can I resume scanning without creating new instance of BluetoothManager. If I call my startScan() function on disconnect there are 2 instances of BluetoothManager after that.
Here is my function:
private func startScanning() {
        isScanInProgress = true
        let scanOpts = [CBCentralManagerScanOptionAllowDuplicatesKey: NSNumber(value: true)];

        let scannedPeripherals = manager.scanForPeripherals(withServices: [Constants.UUID.UUID_SERVICE], options: scanOpts)
            .do(onSubscribe: {
                print("Searching...")
            })
            .map { (name: $0.advertisementData.localName ?? "[no name]", scannedPeripheral: $0) }
            .filter {
                ...
            }
            .take(1)
            .map { $0.scannedPeripheral.peripheral }
            .timeout(2, scheduler: MainScheduler.instance)

        let _ = manager.rx_state
            .filter { $0 == .poweredOn }
            .delay(0.01, scheduler: MainScheduler.instance) // <- Workaround
            .flatMap { _ in self.manager.retrieveConnectedPeripherals(withServices: [Constants.UUID.UUID_SERVICE]) }
            .flatMap { $0.isEmpty ? scannedPeripherals : Observable.from($0) }
            .flatMap { $0.connect() }
            .do(onNext: { [weak self] in
                guard let `self` = self else { return }
                self.connectionEstablish()
                self.monitorDisconnection(for: $0)
            })
            .flatMap { $0.discoverServices([Constants.UUID.UUID_SERVICE]) }
            .flatMap { Observable.from($0) }
            .flatMap { $0.discoverCharacteristics([charID])}
            .flatMap { Observable.from($0) }
            .flatMap { $0.discoverDescriptors() }
            .flatMap { Observable.from($0) }
            .flatMap { $0.readValue() }
            .retry()
            .subscribe(onNext: { descriptor in
                guard let data = descriptor.value else { return }
                print(NSString(data: data as! Data, encoding: String.Encoding.utf8.rawValue)!)
            })
            .disposed(by: self.disposeBag)
    }

Thanks in advance.

Hello @dneykov
.take(1) finishes subscription after receiving first element on stream and further cancels scanning. Is this what you want?
How it's creating two instances of BluetoothManager? From what I see in snippet there's only one instance of manager, and this should be reused.

Hello @Kacper20,
after first connection I call self.monitorDisconnection(for: $0) and when device it's disconnected I want to start scanning again. If i call self. startScanning() after my device is discovered twice.

I sill cannot make it work. Any help would be appreciated. How can I start scanning after disconnect.
Thanks.

@dneykov Could you provide contents of monitorDisconnection function?
This will help me to know what's going on there.
Do you call startScanning there?
If yes - I would try to use single disposable instead of disposeBag to ensure that there is always one stream subscribed to. This way it could make this thing with concurrent scans go away & it makes good assumptions about your intent I believe.
What do you think?

@Kacper20 Here is the content of monitorDisconnection
    private func monitorDisconnection(for peripheral: Peripheral) {
        manager.monitorDisconnection(for: peripheral)
            .subscribe(onNext: { [weak self] (peripheral) in
                print("DISCONNECT: \(peripheral.name)")
                guard let `self` = self else { return }
                self.scannedPeripheral = nil
                self.allowOpen = false
                self.connectionLost()
                self.startScanning()

            })
            .disposed(by: self.disposeBag)
    }

How can I use single disposable? I think maybe single disposable is correct solution for me. I'm still trying to understand how exactly these Rx functions are working.
Thanks.

Could you say what exactly disposed function is doing?
I believe it is your custom extension?
Basically:
To use single disposable I would use something which is called SerialDisposable.
It looks like that:
let scanDisposable = SerialDisposable()
let monitorDisposable = SerialDisposable()

deinit {
    scanDisposable.dispose()
    monitorDisposable.dispose()
    // We need to remember to dispose subscriptions when our object deallocates
}

Then, you're assigning what you received from subscribe to scanDisposable.disposable.
It would look like:
monitorDisposable.disposable = manager.monitorDisconnection(for: peripheral).subscribe[...]

Same for scan :)
Regards,
Kacper

Hello,
Any progress on this @dneykov ?

Hi,
I decided to implement BLE on my own.
Thanks for your efforts.