BigInt page does not mention interaction with JSON

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details
The BigInt page does not mention or provide any warning that JSON.stringify() of any BigInt property will raise a TypeError. The specification does allow, however, for users to opt-in to string encoding of the numbers by specifying a BigInt.prototype.toJSON() function:
> JSON.stringify(BigInt(1))
TypeError: Do not know how to serialize a BigInt
> BigInt.prototype.toJSON = function() { return this.toString(); }
> JSON.stringify(BigInt(1))
'"1"'

This capability was explicitly asked for and standardized in modification of Step 2. of the SerializeJSONProperty algorithm.
This is important enough that it should be clearly stated otherwise many might hit this pitfall when attempting to integrate BigInt into their existing applications.

This is already mentioned on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify but you're right, let's also put this on the main BigInt page, so it has higher chances to be seen.
I've put it here now: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Usage_recommendations
Let me know if there is more we should fix here.


0.7.2 not supported by Android Studio

I'm submitting a ...

[ ] bug report
[x] feature request
[ ] puppy => You're not submitting a puppy. I already have one and he's adorable

What is the current behavior?

Cannot install plugin v0.7.2 in AndroidStudio, thus #281 #277 will plague Android Devs for a while
Plugin has 201 (IntelliJ 2020.1) as minimum supported version, it’s now entirely incompatible with Android Studio

ASide 3.6.3 uses IJ 192.*
ASide 4.* uses IJ 193.*

but #292 #276 might have something to say about that 👯

Is this a bug? Sorry about that. If so give me explicit details how to reproduce:

Open Android Studio
???
Lose all Profit

What is the expected behavior?

Supporting Android Studio

What is the motivation / use case for changing the behavior?

Big user base

Please tell me about your environment:

Android Studio

Other information (e.g. detailed explanation, stacktrace, related issues, suggestions how to fix, links for me to have context words of praises, pictures of puppies (again with the puppy??) )

No puppies harmed in the making of this issue

(i.e. it seems like the minimum supported is now IJ 2020.1 - instead of that range including the previous versions build 182.* - 201.*)

First I truly appreciate you sticking to theme in this issue format 😛
0.7.2 accommodates API deprecations Jetbrains made with the 201 builds, so by definition it can't be backwards compatible with earlier builds
Backporting all the bugfixes with the old API will be a pain, and I don't have the capacity to support double API versions but I'll try to get something out at least to fix #281 and #277 so AStudio users won't be stuck in the interim. Stay tuned


Credential status showing revoked when statusListIndex is a string

The verifiable credential below shows as 'revoked' in the LCW, even though it hasn't been.
It seems likely that the problem is that the value of the statusListIndex property in that credential is a string, e.g.,
"statusListIndex": "4",
whereas the LCW verifier might be expecting a number, like so:
"statusListIndex": 4
The credential was generated using an LEF fork of the DCC credential status list manager, forked specifically to make the statusListIndex a string (rather than a number).  And this was done because the status list spec actually specifies a string.
We have updated our DCC status list manager to match the spec (and so use a string value), but we may not yet have updated the LCW verification code, and similarly also not the VerifierPlus code (the two might share the same code).  VerifierPlus also shows the credential as revoked (see screen shot further below).
So, we likely need to update the verification code in the LCW to handle both a string (to satisfy the spec) and a number value (for backwards compatibility with previously issued credentials) for the statusListIndex.
{
  "type": [
    "VerifiableCredential",
    "OpenBadgeCredential"
  ],
  "name": "James Chartrand - Bachelor's Degree in Mathematics",
  "issuer": {
    "url": "https://digitalcredentials.mit.edu/",
    "type": "Profile",
    "name": "DCC Demo University",
    "image": {
      "id": "https://github-production-user-asset-6210df.s3.amazonaws.com/206059/282835374-3f3e1476-fd1e-4c8f-a560-5cfb4017bbc3.png",
      "type": "Image"
    },
    "id": "did:key:z6MknNQD1WHLGGraFi6zcbGevuAgkVfdyCdtZnQTGWVVvR5Q"
  },
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.1.json",
    "https://w3id.org/vc/status-list/2021/v1",
    "https://w3id.org/security/suites/ed25519-2020/v1"
  ],
  "credentialSubject": {
    "type": [
      "AchievementSubject"
    ],
    "name": "James Chartrand",
    "achievement": {
      "type": [
        "Achievement"
      ],
      "name": "Bachelor's Degree in Mathematics",
      "criteria": {
        "type": "Criteria",
        "narrative": "James Chartrand has fulfilled the requirements to earn this Bachelor's Degree in Mathematics."
      },
      "description": "DCC Demo University Bachelor's Degree in Mathematics",
      "fieldOfStudy": "IMathematics",
      "achievementType": "BachelorDegree"
    },
    "id": "did:key:z6MkoCCtp5PSFavGot5obuPE3sWbQw5zDfoyMv7qmwrfL7en"
  },
  "id": "655641cf9525a95610e2ac5d",
  "credentialStatus": {
    "id": "https://digitalcredentials.github.io/lef-dashboard-cred-status/Y4DF9YY3Z7#4",
    "type": "StatusList2021Entry",
    "statusPurpose": "revocation",
    "statusListIndex": "4",
    "statusListCredential": "https://digitalcredentials.github.io/lef-dashboard-cred-status/Y4DF9YY3Z7"
  },
  "issuanceDate": "2023-11-16T16:57:31Z",
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2023-11-16T16:57:31Z",
    "verificationMethod": "did:key:z6MknNQD1WHLGGraFi6zcbGevuAgkVfdyCdtZnQTGWVVvR5Q#z6MknNQD1WHLGGraFi6zcbGevuAgkVfdyCdtZnQTGWVVvR5Q",
    "proofPurpose": "assertionMethod",
    "proofValue": "z2rtpzQkENHdoqHhWaKyrxhCjAu8QdQoCSuU8wCTX1Zjwm5x9oqVG9K5aTxU4yzpzvCo3XCdH9y2ZzGbZbbHwqBdL"
  }
}

Potentially related to: https://github.com/digitalcredentials/vc-status-list/issues/6

@dmitrizagidulin - Can you confirm that this can be closed? If so, can you add a comment about what was done to address it for future reference and understanding? Thanks!

Should be addressed by PR #543, on its way to app stores as v2.0.21-build76.

Implemented and deployed, closing


quilt_rails docs: Required steps not documented

quilt_rails docs: Project won't run without adding tsconfig.json
I'm following the "manual" steps in this Readme:
https://github.com/Shopify/quilt/blob/master/gems/quilt_rails/README.md
There are two undocumented steps that are required to make it work:

yarn add typescript
Add a tsconfig.json with at least an empty object. Without it you get this error in the browser Waiting for React server to boot up. In the terminal logs you'll find [error] sewing-kit cannot build a typescript project without tsconfig.json but it's hidden among huge amounts of log statements.

Close in favor of https://github.com/Shopify/quilt/issues/1024


Document PicklingError for ensure_annotations in multiprocessing

Closes #29 with adding a warning to the documentation.

Codecov Report

Merging #32 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #32   +/-   ##
=======================================
  Coverage   90.25%   90.25%
=======================================
  Files           3        3
  Lines         513      513
=======================================
  Hits          463      463
  Misses         50       50

Impacted Files
Coverage Δ

ensure/main.py
89.47% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks!


Dockerize frontend

Purpose
This is the initial stage of a series of DevOps PRs that helps us on streamlining the building process and reducing discrepancies among our development environments.
Changes contain the following

A dockerfile located in frontend/ that describes basic build steps of our React frontend
A docker-compose.yml where we configured our containers
A web/ directory where nginx configuration located
Migrated .env.example.sh into env.dist and created init.sh in root directory to streamline .env creation

Functional test steps

Ensure Docker desktop is installed if you are on Windows (Optional)
Run . init.sh; docker compose build; docker compose up -d in root directory
Two containers web and frontend should be up in a minute
When those containers are ready, access http://localhost:3000/ and you should see the frontend landing page

This may need a rebase/sync with main

lgtm


chore: ignore direnv files

For us Nix(OS) developers, useful with: echo 'use flake' > .envrc to automatically load the development shell for this project.

Whoops, just discovered this when I made a conflicting change in #1258... Cherry-picked with attribution.

I'm not opposed to merging, but shouldn't direnv users ignore thes themselves on a per-repo or global basis?

I'm not opposed to merging, but shouldn't direnv users ignore thes themselves on a per-repo or global basis?

/.direnv/ probably
I have several personal projects where I commit /.envrc and have seen it tracked in various other projects so I think that one is more preference


Create a slack bot to forward all the feedback messages to the chat

This would probably be a firebase function

It is possible to leave comment messages on every page of the codelab.

However there's no good way to track this.
The task is:

[ ] Have a firebase function which tracks pushes to the feedback array
[ ] Post a message to slack chat (http://nycjsorg.now.sh/) #codelab channel (displaying message text and linking to the actual page where the feedback has been filed.

@NothingEverHappens @kirjs
Just created one, it posts a message like this on every new feedback message:

Currently the only problem is that I'm getting this when trying to add it to our slack workspace:


Automatically load tasks from a project's directory

Load tasks automatically from a directory named .bob_tasks.

Tasks are loaded now from ./bob_tasks/


InstanceBinding - annotating class as @Singleton is not the same as binding #in(Singleton.class)

Guice 4.0
I created one interface and one class implementing it:
class A implements I {}
interface I {}

Then I create injectors like this:
Injector injector1 = Guice.createInjector();

Module mod = b -> b.bind(I.class).to(A.class).in(Singleton.class);
Injector injector2a = injector1.createChildInjector(mod);
Injector injector2b = injector1.createChildInjector(mod);

System.out.println(injector2a.getInstance(I.class));
System.out.println(injector2a.getInstance(I.class));
System.out.println(injector2b.getInstance(I.class));
System.out.println(injector2b.getInstance(I.class));

Output is something like:
A@cb644e
A@cb644e
A@56ef9176
A@56ef9176

As expected - each child injector creates it's own singleton.
But then - if I annotate class A with @Singleton, output changes to something like:
A@1ed4004b
A@1ed4004b
A@1ed4004b
A@1ed4004b

Now both parallel child injectors provide me the same instance of a class. This behavior does not change if I remove .in(Singleton.class) part.
But this happens only with InstanceBinding. If I change code to this:
Injector injector1 = Guice.createInjector();

Module mod = b -> b.bind(A.class).in(Singleton.class);
Injector injector2a = injector1.createChildInjector(mod);
Injector injector2b = injector1.createChildInjector(mod);

System.out.println(injector2a.getInstance(A.class));
System.out.println(injector2a.getInstance(A.class));
System.out.println(injector2b.getInstance(A.class));
System.out.println(injector2b.getInstance(A.class));

And class A still annotated with @Singleton, output is valid:
A@1ed4004b
A@1ed4004b
A@5702b3b1
A@5702b3b1

This is WAI.  What's happening is:
b.bind(I.class).to(A.class).in(Singleton.class); is saying: Link I to A and make that link a singleton.    You can validate this by trying to get multiple instances of A and noting that each one will be different.  It's only when you get I that they're the same, because I is the singleton part.
So, what's happening with b.bind(I.class).to(A.class).in(Singleton.class); is the system says, "You want to bind I to A in the child injector as a singleton, great!".  Then it tries to go find A and says, "Oops, I don't have a binding for A yet, so let me create one just-in-time."  Guice creates just-in-time bindings in the parent-most injector, so A is created in the parent.
You can validate that "A" is in the parent by adding injector1.getInstance(A.class) -- it will succeed and give you an "A".
However, when "A" is marked @Singleton, then it doesn't matter that the I->A links are singletons, because A itself will always be the same.  The child injectors have the I->A links, and the parent has the just-in-time binding for A.
Now, if you change this by just saying bind(A.class).in(Singleton.class), then you're explicitly binding A in the child injector.  So there's no just-in-time binding in the parent injector.  You can validate this by trying injector1.getInstance(A.class) again -- it will fail saying that the binding exists in a child injector.  (Guice won't let a binding exist in both a parent and a child.)
You can alter some of this behavior by using Binder.requireExplicitBindings() -- this will prevent Guice from creating just-in-time bindings.

Thanks for detailed explanation! Got it all now.


Adding @objc annotations to framework classes

In order to use Swift classes in Objective-C code, they need to be annotated with @objc. Would it be possible to add these annotations?

Going to think about this. Its not easy as putting @objc on public classes/protocols.

@wolfey This library was built with only Swift in mind, its not as easy as adding @objc to classes, structs and extensions would need to be modified to support Objective-c correctly. I am willing to consider pull requests if someone can convince me it is easy to add.

@kurabi thanks for looking into it! I was able to port my views to swift and now it works like a charm :)


peerDependencies instead of dependencies

Would it be possible to change this library to use peerDependencies instead of fixed dependencies? In some build environments, dependencies will cause the libraries to be loaded more than once, if you already use them in your other code.

Thanks, @derwaldgeist . I'll take a look. We should be able to make the adjustment.

Closing this now, because npm 3+ won't install the dependencies.

couldn't you use the yarn "resolutions":  section to specify a single version of a lib to use across all (assuming the range of each dependent match) and have just 1 copy ?


OpenStf

How do you access OpenStf in kubernetes?
Can you please explain how the stf-app and stf-processor working in kubernetes - Some screenshots will be helpful?

So, all services inside stf-services will running in the kubernetes cluster. They're connected using internal ip. Only stf-triproxy-dev will have external ip because later we will connect our stf-provider service from local machine to stf-triproxy-dev. Then all of those services will be wrapped using stf-nginx. User can access the openstf from internal/external ip of the stf-nginx.

There are no service for stf-provider and stf-reaper is that intentional or we missing something?

yep, for stf-provider that is intentional because we need to run it on local machine where the device is connected. but for stf-reaper you can find it here stf-reaper

Here is for stf-provider

For stf-reaper it a replication controller no service required?

ah, correct. I miss understanding about the service.yeah,  stf-reaper and stf-processor only a replication controller. They don't need a service because they only push/subscribe from stf-triproxy.

Aah, alright. And how do you access the OpenStf dashboard?

Just open the ip of stf-nginx. The stf-nginx service is a load balancer, so you should get an external ip. Here is more reference for external load balancer type

how does your stf-app gets connected to rethinkdb-proxy, I see it is always Connecting but not connected to rethinkdb-proxy?

Have you test it by running stf-migrate? or if you follow the example, try to remove the rethinkdb-admin pod and service. Last time I had an issue with that. somehow rethinkdb-rc and admin have their own storage. If still not working, try to replace "tcp://rethinkdb-driver:28015" and "tcp://rethinkdb-proxy:28015" using its ip.

Yeah with migrate it works. Thanks
Also, do you think an ingress can be replaces with nginx to listen on different ports or we need nginx here?

@dimasaryo in your stf-provider what do you expect to be tcp://<TRIPROXY DEV HERE>:7270, <TRIPROXY DEV HERE>? is it not tcp://triproxy-dev-here:7270

No, since the stf-provider is executed in the local machine, it should be the external ip/url of stf-triproxy-dev service. You can get it using command:
# kubectl get service stf-triproxy-dev


How to select a certain layer as token's representation?

My understanding from the paper that each token is represented by a 768-dim vector from the last hidden layer. Is it correct? If so, how can I get the second-to-the last layer's parameter as token representation?
model = BertForTokenClassification.from_pretrained("bert-base-uncased", num_labels=len(tag2idx))
list(model.named_parameters()) gives all weights but how can I know which parameters are from the second to the last layer?
for example, I have a word 'test', how can I get the BERT features from the second to the last hidden layer for the word 'test' in a given sentence?

Hi @yexing99,
What you need is the hidden_state, not the weightsof the model.
Don't use model.named_parameters() but just use the output of the model.
Here is an example: https://github.com/huggingface/pytorch-pretrained-BERT#bert
And more details here: https://github.com/huggingface/pytorch-pretrained-BERT#1-bertmodel
You should do somethings like this to get the BERT features from the second to the last hidden layer if the word test is for example the fifth word in your sentence (index 4 in the sentence):
encoded_layers, _ = model(tokens_tensor, segments_tensors)
features = [encoded_layer[4] for encoded_layer in encoded_layers[1:]]


Remove deprecated properties: reference & id

At what point would you like me to begin work on removing reference and id? When you do expect you'll merge development into master? Or would you like me to work on removing them before you merge? Do you want to submit two different versions to PyPi, or bump a single cohesive change containing autocomplete and removal of deprecated props?

@commadelimited Any update on this? I'd like to move forward with using placeid only.


Super long username issues

ACC is encountering a wave of spam with epically long username requests, and that's causing a few odd UI issues.

Right now, requests are dropped twice by our spam filters.  This lists them twice in the the "Last 5 Closed requests" section on the main page.  Once a request is dropped by a spam filter, that should stop all other actions, as a drop is a dead-end state without user intervention.
Detail Page: Logs are oddly compressed on the details and times, forcing some funky scrolling.
Other requests from the same emails and IP overlap, and force the page to have a horizontal scroll
The "Requested Name" overlaps the "Log" heading on the detail page.  If anything, this is the place where we need the full username shown, but perhaps we can wrap it if it's long?

Example request: #340704

Copying a quote from FL4 from #903 so it doesn't get lost...

Testing-wise, though, I noticed a potential gap in this solution in that with the "Drop" ban action, we still send a confirmation email to the requester. This is intentional in order to give the requester as little information as possible that they have been banned, but it means that it's still possible for the requester to mark their request as email confirmed, thus bypassing the change made in this PR. Indeed, about 21% of the requests behind #900 were email confirmed and would thus not be excluded from "last closed" by this change.
It's completely fair to say that it's out-of-scope for this PR and something to be fixed in a follow-up PR, by the way; there are a couple ways the gap could be fixed. Again, I'm more making sure that you're aware of this.


Logo not visible outside Github

https://stackoverflow.com/questions/13808020/include-an-svg-hosted-on-github-in-markdown

Fixed in 8af45829d36dd033bd43b18ee87ca6e9ba95593c


existing systems for issue tracker sync

The best existing system we found is probably https://github.com/marcelovicentegc/octosync
We contacted the author to see how we can collaborate or at least learn from what they learned while developing it.
successful but closed-source:

https://unito.io/integrations/jira-jira
https://exalate.com/ppc-jira-jira-integration / https://github.com/apps/exalate-issue-sync
https://marketplace.atlassian.com/apps/1213346/issue-sync-synchronization-for-jira
https://marketplace.atlassian.com/apps/1219592/github-for-jira

requires visual programming from the end-user:
https://tray.io/connectors/jira-integrations
https://www.idalko.com/jira-to-jira-sync/
only works for jira-to-jira:

https://github.com/cronn/jira-sync

only works for github-to-jira:

https://github.com/coreos/issue-sync

only works for github-to-ado:

https://github.com/microsoft/gh-sync

Also, see the following open-source issue trackers:

Gitblit;
TrackDown;
Git-issue;
HuBoard;
Omega Tracker;
Eventum;
PHPBugTracker;
SimpleBugs; and
zenTrack.

@Angus-McAllister Thanks! I think some of those are these issue trackers rather than issue tracker sync engines?
Maybe we can have a separate issue or document to list those.
https://github.com/dspinellis/git-issue is interesting because it seems to use git for sync (which presumably would only be proactive when the user chooses to git pull or git push, so not fully automated) and also supports import from GitHub and GitLab


Portainer registry browser can't handle images with null Cmd

Bug description
Portainer registry management can't handle images with a null Cmd. An attempt to open such an image (i.e. clicking the image's tag) results in an error: "Failure Cannot read properties of undefined (reading 'Cmd')"
Images with null Cmd are created by (among others, I assume) Bazel Docker rules: https://github.com/bazelbuild/rules_docker
Expected behavior
Portainer should display the image properties (even though the Cmd is null).
Portainer Logs
No log messages are emitted when this problem is triggered.
Steps to reproduce the issue:

Go to a url like https://portainer.host/portainer/#!/registries/1/image~2Fname/latest
See error.

Technical details:

Portainer version: 2.14.0
Docker version (managed by Portainer): 20.10.17
Kubernetes version (managed by Portainer): n/a
Platform (windows/linux): linux
Command used to start Portainer (docker run -p 9443:9443 portainer/portainer): docker compose
Browser: Chrome 102.0.5005.115
Use Case Using Portainer at Home
Have you reviewed our technical documentation and knowledge base? No

Additional context

@simmonmt
I've tested with an image that does not have CMD or an ENTRYPOINT and was not able to replicate the issue. Could you check browser developer tools for any errors similar to the below

Sorry for the delay.
developer tools output:
notifications.ts:24 TypeError: Cannot read properties of undefined (reading 'Cmd')
    at new i (registryImageLayer.js:7:49)
    at controller.js:43:62
    at e.exports (_arrayMap.js:16:21)
    at e.exports (map.js:49:47)
    at d.$onInitAsync (controller.js:43:22)

docker inspect on the image:
[
    {
        "Id": "sha256:8bec0478160c2fa39e07f0f8a4f5bf5d36f0ec1ce48f6fc92ca27cce68df223c",
        "RepoTags": [
            "docker.simmonmt.org/flights/chatter:latest"
        ],
        "RepoDigests": [
            "docker.simmonmt.org/flights/chatter@sha256:8ac67766159b0a61f24128e56c1c1ef10c50d8817ca5f249650c7b52a01b5f4d"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2022-07-05T21:19:00Z",
        "Container": "",
        "ContainerConfig": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "DockerVersion": "",
        "Author": "Bazel",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "0",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"
            ],
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "/app/chatter/chatter.runfiles/__main__",
            "Entrypoint": [
                "/app/chatter/chatter"
            ],
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 31925427,
        "VirtualSize": 31925427,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/b805e6efd126ca56425015abe21c2bf32389179559883652c9ae953f3033353f/diff:/var/lib/docker/overlay2/bebc29db6639356c618a911e842704db85920189a1bff38ec9fed703986aad66/diff",
                "MergedDir": "/var/lib/docker/overlay2/b51a5d6f043f2044c15bdb9046745b9563e8966cf770aa5546c1fa56ff79e316/merged",
                "UpperDir": "/var/lib/docker/overlay2/b51a5d6f043f2044c15bdb9046745b9563e8966cf770aa5546c1fa56ff79e316/diff",
                "WorkDir": "/var/lib/docker/overlay2/b51a5d6f043f2044c15bdb9046745b9563e8966cf770aa5546c1fa56ff79e316/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:6d75f23be3ddcb784b51ea7ef9b6a3a038f9e0b2f08f08628b226dba8b5161f8",
                "sha256:0b3d0512394dcbd9c121ea350abd85b2490f4b80e4d4dae4691f80d94915474b",
                "sha256:f8767d96824faa3809fcf310e3f26d35904174f3ef972e95e42032f59af8057e"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

Also there were two(?) interesting HTTP requests.
One to https://home.simmonmt.org/portainer/api/registries/1/v2/flights/chatter/manifests/latest
which got
{
   "schemaVersion": 1,
   "name": "flights/chatter",
   "tag": "latest",
   "architecture": "amd64",
   "fsLayers": [
      {
         "blobSum": "sha256:abe225f80a0b366d0693046b836a4bc61bcd0615ba7cc20d07f97f8981ff33b2"
      },
      {
         "blobSum": "sha256:c6f4d1a13b699c8490910fd4fd6c7056b90fd0da3077e4f29b4bd27bf0bae6cd"
      },
      {
         "blobSum": "sha256:e8614d09b7bebabd9d8a450f44e88a8807c98a438a2ddd63146865286b132d1b"
      }
   ],
   "history": [
      {
         "v1Compatibility": "{\"architecture\":\"amd64\",\"author\":\"Bazel\",\"config\":{\"Entrypoint\":[\"/app/chatter/chatter\"],\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\",\"SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt\"],\"User\":\"0\",\"WorkingDir\":\"/app/chatter/chatter.runfiles/__main__\"},\"created\":\"2022-07-05T21:19:00Z\",\"id\":\"125f5c6508596e93203b84b92695f8a5bb580a63471be75f4b0a103ae4e2c087\",\"os\":\"linux\",\"parent\":\"5df3ca11ace83d880e41c1c46106426ad206f4c661608dadef3cde8c847f5869\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"5df3ca11ace83d880e41c1c46106426ad206f4c661608dadef3cde8c847f5869\",\"parent\":\"51d5024a27e7ab9e3264a214782cbc443dcf24913bbee1cae620e00a53d0debf\",\"created\":\"1970-01-01T00:00:00Z\",\"container_config\":{\"Cmd\":[\"bazel build ...\"]},\"author\":\"Bazel\"}"
      },
      {
         "v1Compatibility": "{\"id\":\"51d5024a27e7ab9e3264a214782cbc443dcf24913bbee1cae620e00a53d0debf\",\"created\":\"2022-07-05T21:19:00Z\",\"container_config\":{\"Cmd\":[\"bazel build ...\"]},\"author\":\"Bazel\"}"
      }
   ],
   "signatures": [
      {
         "header": {
            "jwk": {
               "crv": "P-256",
               "kid": "7PUL:MKBA:5A6S:A7WG:VBMY:H2J6:URTK:3W5B:QSV4:UA2J:3VME:EELE",
               "kty": "EC",
               "x": "UJYsYpioOuyJtaR6sG32_1bRhhjSEGvZtlh0-ySVQq8",
               "y": "bZzrGmFod4vYUfsvt0joHAZnpQaWlHEQQ2mAO_9VwCg"
            },
            "alg": "ES256"
         },
         "signature": "K610bvcW-j5tAn9ATNG63sNax73ZGpthOBDZ7XzWbxR0azLoff532S6Hrb0od7fRu-8yQFs66SIxJ3woK06k5g",
         "protected": "eyJmb3JtYXRMZW5ndGgiOjE1OTcsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAyMi0wNy0wOFQyMjowMzoxMFoifQ"
      }
   ]
}

and
{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":851,"digest":"sha256:8bec0478160c2fa39e07f0f8a4f5bf5d36f0ec1ce48f6fc92ca27cce68df223c"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":803814,"digest":"sha256:e8614d09b7bebabd9d8a450f44e88a8807c98a438a2ddd63146865286b132d1b"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":7975415,"digest":"sha256:c6f4d1a13b699c8490910fd4fd6c7056b90fd0da3077e4f29b4bd27bf0bae6cd"},{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":6211872,"digest":"sha256:abe225f80a0b366d0693046b836a4bc61bcd0615ba7cc20d07f97f8981ff33b2"}]}

Not entirely sure how the same request with the same headers got two responses, but I'm guessing you know?

@simmonmt
I wanted to follow up on this request.  We had an internal request that was logged and resolved in 2.16.
Have you upgraded?  And, can provide feedback?
Thanks!


Installation is interrupted due to issues with dependencies

Trying to install FoundationPress with "npm install" I get an error:
<EMAIL_ADDRESS>install /wp-content/themes/FoundationPress/node_modules/gulp-uncss/node_modules/uncss/node_modules/phridge/node_modules/phantomjs
> node install.js

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! weird error 127
npm ERR! not ok code 0

The directory /wp-content/themes/FoundationPress/node_modules/gulp-uncss never exists and its looking quite a bit strange for me that there are still several inherited subfolders "node_modules" expected by "phantomjs"

After executing / installing by the following line:
apt-get install nodejs-legacy

the installation is donloading and installing phantomjs but hangs again:
<EMAIL_ADDRESS>install /var/www/html/_wordpress/_PROJECTS/steiner-wecke/wp-content/themes/FoundationPress/node_modules/node-sass
> node scripts/install.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'config-chain'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/wp-content/themes/FoundationPress/node_modules/npmconf/npmconf.js:2:10)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
npm ERR! weird error 8
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR! not ok code 0

After installing several breaking modules manually I got in the post-installation-process but still get an error:
[17:21:17] Using gulpfile /wp-content/themes/FoundationPress/gulpfile.js
[17:21:17] Starting 'build'...
[17:21:17] Starting 'copy'...
[17:21:17] Finished 'copy' after 297 ms
[17:21:17] Starting 'sass'...
[17:21:20] Starting 'javascript'...
[17:21:21] Finished 'javascript' after 931 ms

/wp-content/themes/FoundationPress/node_modules/postcss/lib/lazy-result.js:157
        this.processing = new Promise(function (resolve, reject) {
                              ^
ReferenceError: Promise is not defined

Just installing promise manually with
npm install promise

never solves the problem.

Adding the following line in the file lazy-result.js solves the problem so far:
var Promise = require('../../promise');

... and the installation is finishing, but I still get a few warnings shown:
npm install
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN package.json<EMAIL_ADDRESS>No repository field.
...
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g

...

[17:46:31] Finished 'build' after 3.92 s
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/http-signature requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/asn1,
npm WARN unmet dependency which is version 0.2.3
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/http-signature requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/assert-plus,
npm WARN unmet dependency which is version 0.2.0
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/http-signature requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/ctype,
npm WARN unmet dependency which is version 0.5.5
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/npmconf requires<EMAIL_ADDRESS>but will load
npm WARN unmet dependency /wp-content/themes/FoundationPress/node_modules/uid-number,
npm WARN unmet dependency which is version 0.0.6

"OK" is not shown in the end.

executing the following lines never helps and the Warnings about the corresponding versions are still shown:
npm uninstall uid-number
npm install<EMAIL_ADDRESS>npm uninstall ctype
npm install<EMAIL_ADDRESS>npm uninstall assert-plus
npm install<EMAIL_ADDRESS>npm uninstall asn1
npm install<EMAIL_ADDRESS>

executing
npm uninstall node-gyp
npm install -g<EMAIL_ADDRESS>
shows the following warnings
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=0.10.40"} (current: {"node":"v0.10.25","npm":"1.3.10"})

Don't know if I should proceed but I've to stop here for the moment even I don't know about the impact.
Any hints are appreciated.

From the warnings in your second to last reply, I can see that you are using "node":"v0.10.25". This theme requires at least version 4 of Node. Update Node and try again.

Thanks for the important hint.
After following the hint here:
I got still some warnings shown:
npm WARN deprecated<EMAIL_ADDRESS>Please use gulp-cssnano instead.
npm WARN optional dep failed, continuing<EMAIL_ADDRESS>npm WARN deprecated<EMAIL_ADDRESS><EMAIL_ADDRESS>is no longer maintained. Upgrade to<EMAIL_ADDRESS>
and some errors too:
[23:16:33] 'sass' errored after 2.28 s
[23:16:33] Error: The `libsass` binding was not found in /wp-content/themes/FoundationPress/node_modules/gulp-sass/node_modules/node-sass/vendor/linux-ia32-46/binding.node
This usually happens because your node version has changed.
Run `npm rebuild node-sass` to build the binding for your current node version.
    at Object.sass.getBinaryPath (/wp-content/themes/FoundationPress/node_modules/gulp-sass/node_modules/node-sass/lib/extensions.js:158:11)
    at Object.<anonymous> (/wp-content/themes/FoundationPress/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:16:36)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/wp-content/themes/FoundationPress/node_modules/gulp-sass/index.js:183:21)
    at Module._compile (module.js:435:26)
[23:16:33] 'build' errored after 2.81 s
[23:16:33] Error in plugin 'run-sequence'
Message:
    An error occured in task 'sass'.

npm ERR! Linux 3.13.0-74-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.2.4
npm ERR! npm  v2.14.12
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>postinstall: `bower install && gulp build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'bower install && gulp build'.
npm ERR! This is most likely a problem with the foundationpress package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     bower install && gulp build
npm ERR! You can get their info via:
npm ERR!     npm owner ls foundationpress
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /wp-content/themes/FoundationPress/npm-debug.log

but after executing the in the error-message proposed line
npm rebuild node-sass

It run through without complains or even warnings.
So I close this issue.
Thanks for the help.


Optimize the close and connect operations of AbstractClient

What is the purpose of the change
使AbstractClient的close操作和connect、disconnect操作一样，受到锁的保护，降低由于操作冲突而产生不确定性的概率；connect操作先判断client的close状态，如果client已经关闭，那么该client不需要重连。
The AbstractClient close operation is the same as the connect and disconnect operations, and is protected by the lock, which reduces the probability of uncertainty due to operation conflicts; the connect operation first determines the close state of the client. If the client is closed, the client does not need to be reconnected.

Codecov Report

Merging #3432 into master will increase coverage by 0.05%.
The diff coverage is 61.9%.

@@             Coverage Diff             @@
##             master   #3432      +/-   ##
===========================================
+ Coverage     63.95%     64%   +0.05%
  Complexity       71      71
===========================================
  Files           662     662
  Lines         28591   28596       +5
  Branches       4790    4791       +1
===========================================
+ Hits          18284   18303      +19
+ Misses         8093    8082      -11
+ Partials       2214    2211       -3

Impacted Files
Coverage Δ
Complexity Δ

...pache/dubbo/remoting/transport/AbstractClient.java
69.06% <61.9%> (+1.15%)
0 <0> (ø)
:arrow_down:

...ache/dubbo/remoting/transport/AbstractChannel.java
75% <0%> (-12.5%)
0% <0%> (ø)

...onfig/spring/extension/SpringExtensionFactory.java
78.04% <0%> (-7.32%)
0% <0%> (ø)

...dubbo/remoting/exchange/support/DefaultFuture.java
70.94% <0%> (-1.36%)
0% <0%> (ø)

...pache/dubbo/registry/support/AbstractRegistry.java
79.13% <0%> (-1.19%)
0% <0%> (ø)

.../exchange/support/header/HeaderExchangeServer.java
66.98% <0%> (+1.88%)
0% <0%> (ø)
:arrow_down:

...exchange/support/header/HeaderExchangeHandler.java
58.13% <0%> (+2.32%)
0% <0%> (ø)
:arrow_down:

.../apache/dubbo/remoting/transport/AbstractPeer.java
63.04% <0%> (+4.34%)
0% <0%> (ø)
:arrow_down:

...e/dubbo/remoting/transport/netty/NettyChannel.java
62.35% <0%> (+4.7%)
0% <0%> (ø)
:arrow_down:

.../org/apache/dubbo/remoting/ExecutionException.java
21.05% <0%> (+5.26%)
0% <0%> (ø)
:arrow_down:

... and 5 more

Continue to review full report at Codecov.

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


hmac-secret extension is broken with latest Trussed

For the hmac-secret extension, we use derive_key on the P256 or Ed255 credential key:
https://github.com/solokeys/fido-authenticator/blob/0.1.1/src/ctap2.rs#L1385-L1391
This is forbidden in the latest (unreleased) Trussed: https://github.com/trussed-dev/trussed/pull/38
Original report: https://github.com/Nitrokey/nitrokey-3-firmware/issues/94

Fixed in https://github.com/trussed-dev/trussed/pull/58.


Folder support

Notes can live in folders. These relationships should be exported too.

From the Script Editor library docs:
A note has a:

container (folder), r/o) : the folder of the note

Here's what a folder looks like:

folder n : a folder containing notes
elements

contains folders
name (text) : the name of the folder
id (text, r/o) : the unique identifier of the folder
shared (boolean, r/o) : Is the folder shared?
container (account or folder, r/o) : the container of the folder

So it looks like folders can be hierarchical?

I used ChatGPT to write this:
osascript -e 'tell application "Notes"
    set allFolders to folders
    repeat with aFolder in allFolders
        set folderId to id of aFolder
        set folderName to name of aFolder
        set folderContainer to container of aFolder
        set folderContainerName to name of folderContainer
        log "Folder ID: " & folderId
        log "Folder Name: " & folderName
        log "Folder Container: " & folderContainerName
        log " "
        --check for nested folders
        if count of folders of aFolder > 0 then
            set nestedFolders to folders of aFolder
            repeat with aNestedFolder in nestedFolders
                set nestedFolderId to id of aNestedFolder
                set nestedFolderName to name of aNestedFolder
                set nestedFolderContainer to container of aNestedFolder
                set nestedFolderContainerName to name of nestedFolderContainer
                log "    Nested Folder ID: " & nestedFolderId
                log "    Nested Folder Name: " & nestedFolderName
                log "    Nested Folder Container: " & nestedFolderContainerName
                log " "
            end repeat
        end if
    end repeat
end tell
'

Which for my account output this:
Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p6113
Folder Name: Blog posts
Folder Container: iCloud

    Nested Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p7995
    Nested Folder Name: Nested inside blog posts
    Nested Folder Container: Blog posts

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p698
Folder Name: JSK
Folder Container: iCloud

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p7995
Folder Name: Nested inside blog posts
Folder Container: Blog posts

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p3526
Folder Name: New Folder
Folder Container: iCloud

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p3839
Folder Name: New Folder 1
Folder Container: iCloud

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p2
Folder Name: Notes
Folder Container: iCloud

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p6059
Folder Name: Quick Notes
Folder Container: iCloud

Folder ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p7283
Folder Name: UK Christmas 2022
Folder Container: iCloud

So I think the correct approach here is to run code at the start to list all of the folders (no need to do fancy recursion though, just a flat list with the parent containers is enough) and create a model of that hierarchy in SQLite.
Then when I import notes I can foreign key reference them back to their containing folder.
I'm tempted to use rowid for the foreign keys because the official IDs are pretty long.

Created through several rounds with ChatGPT:
def topological_sort(nodes):
    children = {}
    for node in nodes:
        parent_id = node["parent"]
        if parent_id is not None:
            children.setdefault(parent_id, []).append(node)

    def traverse(node, result):
        result.append(node)
        if node["id"] in children:
            for child in children[node["id"]]:
                traverse(child, result)

    sorted_data = []

    for node in nodes:
        if node["parent"] is None:
            traverse(node, sorted_data)

    return sorted_data

Improved script:
osascript -e 'tell application "Notes"
    set allFolders to folders
    repeat with aFolder in allFolders
        set folderId to id of aFolder
        set folderName to name of aFolder
        set folderContainer to container of aFolder
        if class of folderContainer is folder then
            set folderContainerId to id of folderContainer
        else
            set folderContainerId to ""
        end if
        log "ID: " & folderId
        log "Name: " & folderName
        log "Container: " & folderContainerId
        log " "
    end repeat
end tell
'

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p6113
Name: Blog posts
Container:

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p698
Name: JSK
Container:

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p7995
Name: Nested inside blog posts
Container: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p6113

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p3526
Name: New Folder
Container:

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p3839
Name: New Folder 1
Container:

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p2
Name: Notes
Container:

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p6059
Name: Quick Notes
Container:

ID: x-coredata://D2D50498-BBD1-4097-B122-D15ABD32BDEC/ICFolder/p7283
Name: UK Christmas 2022
Container:

I filtered out things where the parent was an account and not a folder using if class of folderContainer is folder then.

My notes table will have:

id - rowid
notes_id - that long unique string ID
name - the name
parent_id - foreign key to id


can't add prop to RkButton to disable TouchableOpacity

It would be nice to be able to disable an RkButton.

Hello @timurridjanovic,
This issue was fixed in d29f627 by adding maintenance of all TouchableOpacity props

@timurridjanovic Were you able to disable RkButton using the TouchableOpacity prop?  Can you share how you did it?


[GCP-7676] API Core: Simplify from_rfc3339 methods

Addresses #7676

As we've both, reached a consensus and a public PR, I'm closing this one.


Unable to upgrade cilium with --install-iptables-rules="false"

cilium options set in /etc/sysconfig/cilium
CILIUM_OPTS='--k8s-kubeconfig-path /var/lib/cilium/cilium.kubeconfig --kvstore etcd --kvstore-opt etcd.config=/var/lib/cilium/etcd-config.yml --single-cluster-route="false" --masquerade="false" --enable-ipv4="true" --k8s-require-ipv4-pod-cidr="true" --enable-ipv6="false" --k8s-require-ipv6-pod-cidr="false" --enable-legacy-services="false" --ipv4-cluster-cidr-mask-size="16" --ipv4-service-range="<IP_ADDRESS>/24" --bpf-ct-global-tcp-max="524288" --bpf-ct-global-any-max="262144" --preallocate-bpf-maps="true" --tofqdns-enable-poller="false" --disable-endpoint-crd="false" --disable-k8s-services="false" --allow-localhost="always" --install-iptables-rules="false" --prepend-iptables-chains="false" --enable-ipsec="false" --debug="false" --log-system-load="true" --monitor-aggregation=none --tunnel=disabled'

with these options cilium 1.5.5 runs fine, with current master it fails to start:
Aug 14 19:55:15 k8s1 cilium-agent[19644]: level=error msg="Command execution failed" cmd="[iptables -w 5 -t mangle -A CILIUM_PRE_mangle -p tcp -m mark --mark 0x3f8d0200 -m comment --comment cilium: TPROXY to host cilium-dns-egress proxy -j TPROXY --tproxy-mark 0x00000200 --on-port 36159]" error="exit status 1" subsys=iptables
Aug 14 19:55:15 k8s1 cilium-agent[19644]: level=warning msg="iptables: No chain/target/match by that name." subsys=iptables
Aug 14 19:55:15 k8s1 cilium-agent[19644]: level=fatal msg="Error while creating daemon" error="Can't install proxy rules for cilium-dns-egress: exit status 1" subsys=daemon

I think --install-iptables-rules="false" is at fault here. Generally, in a newer version of Cilium we can use a different set of iptables chains than before. If --install-iptables-rules="false" indeed prevents installation of those chains and the rules in them, then I would not expect this to work. 1.6 installs the TPROXY rules on demand, and if not installed, L7 proxying is not going to work at all.
One possible fix is to document that --install-iptables-rules="false" should not be used on an upgrade. Another would be to make the iptables code to note the missing tables in this case and either complain or ignore the option and install the chains/rules anyway.
Finally, it seems to me that we should deprecate this option altogether and change the iptables handling so that we would first check if the chains/rules exist in the expected configuration and only re-install them if not.

Shouldn't the tproxy rule installation be also gated upon --install-iptables-rules and we just document that this breaks L7 policy?

Keep in mind, that the ipvlan mode is dependent on this flag value: https://docs.cilium.io/en/latest/gettingstarted/ipvlan/. So it's expected that sometimes users will pass false.

IPVLAN is already documented to not support L7 right now

Shouldn't the tproxy rule installation be also gated upon --install-iptables-rules and we just document that this breaks L7 policy?

Any objections to this proposal?

#8928 only starts the L7 proxy support in the daemon if installing iptables rules is allowed.


implement downloading a regular URL

Ref. lib/reel.rb:45
    # TODO implement downloading a regular URL
    puts @args
    if @args['bundle']
      prefix = reel_config_home
…

(automatically generated by Github-Todos)

Ref. lib/reel.rb:57
# TODO implement downloading a regular URL
# TODO add fish, zsh, and bash support (link and/or source files)

(automatically generated by Github-Todos)

Ref. lib/reel.rb:38
# TODO: implement downloading a regular URL
# TODO: add fish, zsh, and bash support (link and/or source files)
# FIXME: fish loading does not seem to be working

Downloads git clone URL now by default


Issues and Documentation buttons in header don't work in Chrome

whoops duplicate of https://github.com/herbie-fp/odyssey/issues/162


fix (#patch); euler-finance; fix for euler oneshot cancelled error

Fix for euler "oneshot cancelled error" with minimal changes to current implementation.
The loop  for (let i = 0; i < eulerViewMarkets.length; i += 1) in syncWithEulerGeneralView() of src/mappings/helper.ts is where the error occurs, and my tests found that these two lines are the last straw
    updateMarketDailyMetrics(block, market.id, BIGDECIMAL_ZERO);
    updateMarketHourlyMetrics(block, market.id, BIGDECIMAL_ZERO);

I removed these two lines in the function by swtiching the order of function calls in handler functions. My test deployment of the fix is working: https://thegraph.com/hosted-service/subgraph/tnkrxyz/euler?version=pending&selected=logs and a new test deployment with code in this PR is at: https://thegraph.com/hosted-service/subgraph/tnkrxyz/test-subgraph?version=pending
It'd be a good idea to merge #1212 first & rebase this PR before merging.

This PR will replace #1174


Add macro to generate arbitrary instances for thrift structs.

Started on https://github.com/CommBank/ebenezer/tree/arbitrary-thrift

Done in humbug/issues/19


9801055349

Summary
Please describe your idea in one paragraph.
Motivation
Why do you think this problem is important?
Describe the solution you'd like
Please explain how you propose to solve this issue

سلام ودوردمنطقه ومحل زندکی من ازاینترانت خوب برخوردارنیست ومدام قطع وصل
میشود
در تاریخ شنبه ۵ اکتبر ۲۰۲۴، ۱۶:۰۵<PHONE_NUMBER> @.***>
نوشت:

Closed #65 https://github.com/getgems-io/nft-contracts/issues/65 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/getgems-io/nft-contracts/issues/65#event-14527755087,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BJMUH6C2W7GRABOJRANPTALZZ7MKBAVCNFSM6AAAAABPNJ4UUOVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUGUZDONZVGUYDQNY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


hyprland/workspaces: Add "empty" icon and class

Fixes #2430
I haven't tested this yet because I'm still having trouble compiling due to fmt (#2415), but I'm pretty sure this will work fine. Maybe someone else can test it?

I haven't tested this yet because I'm still having trouble compiling due to fmt (#2415), but I'm pretty sure this will work fine. Maybe someone else can test it?

If you have nix installed i've been able to build with .envrc and nix-build .

Just update the man document and should be good to go, then.

@Alexays this should be good whenever you get a chance.

Thanks!


build(npm): remove "type": "module"

Due to tsup not supporting tsup.config.mts
Steps to reproduce

Clone example showcasing the bug - https://github.com/adamsoderstrom/eslint-module-resolution-bug-example
Open eslint-module-resolution-bug-example/packages/ui/tsup.config.ts
See the following error:

typescript: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("esbuild-plugin-preserve-directives")' call instead.
  To convert this file to an ECMAScript module, change its file extension to '.mts', or add the field `"type": "module"` to '~/eslint-module-resolution-bug-example/packages/ui/package.json'. [1479]

@adamsoderstrom
Thank you so much for your contribution.
'esbuild-plugin-preserve-directives': "0.0.11-canary.0' This version has confirmed no error!
In addition, there may be a type error related to Plugin, which is a problem caused by incompatible types of the esbuild version, so I think it needs to be corrected soon. First of all, I think you can use the Plugin type by affirming it.
Do you happen to have any good ideas to solve this?

@adamsoderstrom
Thank you for your contribution!
I think this part is suitable as a temporary measure first, and I think we need to fundamentally revise the exports field and type declaration file build.

Will use the canary version!
Thanks! 🎉

@adamsoderstrom I solved the type issue in this PR(#22), thank you!


Why is the 24-bit configuration doubled?

Hey, I tried scream.
There are double 24-bit configurations. Why? And what's difference between them?

The top one sends 24-bit, the bottom one sends 24-bit padded out to 32-bit.


fix(compiler-core): fix crash when modifier is empty

close: #9865

In which version this is deployed?

@elizatlawy looks like 3.3.13, according to the change log


Improve example for C2061

Some formatting for the first example together with the addition of a common mistake example (forgot typename when using dependent types).

#sign-off


Different escaping between spawn and cross-spawn

I'm trying to use cross-spawn as a drop-in replacement for spawn and execute the following command using the node 6 shell options, but it looks like the escaping in cross-spawn doesn't work the same as on linux.
On linux:
spawn('node', ['-e', 'console.log\\(\\"hello\\"\\)'], { shell: true});
> "test"

On windows:
crossSpawn('node', ['-e', 'console.log\\(\\"hello\\"\\)'], { shell: true});
> [eval]:1
console.log\(\"hello\"\)
        ^^^^
SyntaxError: Unexpected token ILLEGAL
    at Object.exports.runInThisContext (vm.js:53:16)
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:409:26)
    at node.js:579:27
    at nextTickCallbackWith0Args (node.js:420:9)
    at process._tickCallback (node.js:349:13)

That's strange indeed. At the moment, I'm overwhelmed with work. Can you pinpoint where the issue is?
Thanks

@satazor send a test + fix here: https://github.com/IndigoUnited/node-cross-spawn/issues/43

@johanneswuerbach Running your example on Win10 throws me an error:
spawn [eval]:1
console.log\("hello"\)

The correct way is:
const cp1 = spawn('node', ['-e', 'console.log(\\"hello\\")'], { shell: true });

cp1.stdout.on('data', (data) => console.log('spawn', data.toString()));
cp1.stderr.on('data', (data) => console.log('spawn', data.toString()));

Anyway, you are right that the behavior between spawn and cross-spawn is not consistent when options.shell is provided. I've taken a look at your PR but I think we should do NO escaping/manipulation whatsoever when options.shell is specified so that we mach NodeJS behavior.
I'm currently working on a PR based on your code.

Yes, that is the correct way on windows. Using the same under macOS doesn't work:
$ node -v
v6.9.1
$ node
> spawn('node', ['-e', 'console.log(\\"hello\\")'], { shell: true, stdio: 'inherit' });
...
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `node -e console.log(\"hello\")'

as the ( also needs to be escaped.
While I could modify the command for both platforms, I thought cross-spawn should handle this somehow automagically.

Thinking out of the box, I think the correct call here is not to support the shell option.
Let me elaborate.. cross-spawn uses a shell on windows (cmd.exe) and does escape the command and args as necessary:

If user passes options.shell=false, what's the behavior that cross-spawn should follow since it needs cmd.exe?
If user passes options.shell=true could be easily supported, but since the args passed are already escaped, we need to bypass the escaping and escape command in case of shebangs, see: https://github.com/IndigoUnited/node-cross-spawn/blob/master/lib/parse.js#L107.
If user passes options.shell=string, then he is trying to do something fancy and not so cross platform..

I think that, after weighting things, we should error out if user passed options.shell=truish|false.
What's your opinion @timdp?
@johanneswuerbach why are you using the shell option in the example above? You don't need to.

I need the shell option so commands like spawn('coffee', ['-c', '*.coffee']) are correctly expanded  in https://github.com/testem/testem/pull/998 on unix platforms.
Another option might be to unset shell when the platform is windows and to remove the escaping already in testem or to use plain windows node spawn when the option is set 🤔

@johanneswuerbach I see. Well we can certainly support case 2 and 3. For case 1, we should error out saying we don't support it because we need to use cmd.exe.

That would definitely work for me. 👍

@johanneswuerbach alright I'm going to work on this asap. I'm feeling very tired these days, working too much, so bare with me.

No worries, if there is anything I can help with, just ping :-)
Can also refine https://github.com/IndigoUnited/node-cross-spawn/pull/43 if you give me any hints / more tests cases.

#43 is a great start, but it needs to be refined. The desired behavior looks like this:
If options.shell === false, then fail with a "not supported message".
If options.shell is truish, then bypass any escaping; if a shebang is detected, the arg pushed needs to be escaped.
If options.shell is null, then it basically is the current behavior.
Tests that need to be added:

The test added in #43
Test that shebang works with shell:true and also test if the arg pushed is correctly escaped

Let me know if you want to work on this, otherwise I will pick it up when I get some time.

@johanneswuerbach are you sure the windows shell support wildcard expansion? I think that, in your example, is actually "coffee" that is expanding the files, not the shell. See: http://superuser.com/questions/460598/is-there-any-way-to-get-the-windows-cmd-shell-to-expand-wildcard-paths

Correct, the windows shell doesn't support this. My use-case was more to allow running the same command (like the provided node script) consistently across all OSes.
Some commands testem receives are already escaped and were previously executed using exec, which has a limited output buffer size. I'm currently in the process of migrating all calls to use spawn with or without the shell option (depending whether exec was use previously).
So my use case was more to make cross-spawn more consistently work as a drop in replacement and not really about the shell features as those are shell dependent anyway. Does that make sense?

Another idea might be to just forward when shell: true and isWin to the default node implementation?

I like that idea. We need to make that clear in the Readme. Time for a new PR? :p

@johanneswuerbach can you take a look on https://github.com/IndigoUnited/node-cross-spawn/pull/45?

Also modified https://github.com/IndigoUnited/node-cross-spawn/pull/43, but having trouble to make the test pass.

@johanneswuerbach I've worked a bit more and I came up with #46. It adds support for the shell option, even for node versions < 6. That PR also refactor the code to make it more clear.
Tell me what you think.

@johanneswuerbach #46 landed in v5.0.0.


add StudentCard type with images

for playground

https://github.com/TalaoDAO/wallet-tools/blob/main/test/CredentialOffer2/StudentCard.jsonld


start typing vetiver

Failing test is a result of quartodoc requiring  python>=3.8.

Failing test is a result of quartodoc requiring python>=3.8.

Ah, yep! I shouldn't need quartodoc for typechecking/running tests, so I just removed that.


Compile desktop with the current code

The desktop version uses 1.7, and doesn't work for me at all (produces errors). I want to compile it with the current code that's in the main branch. How do I do it?

Is it possible to use the Docker image with a local json?

This was the idea in the past, I don't know if it's possible now without fixing the code.
If this is your use case you are welcome to try and help 😃


feat: add QRCode feature

Also, saving then loading labels not working (Cannot read properties of undefined (reading 'fromObject')).

Also, saving then loading labels not working (Cannot read properties of undefined (reading 'fromObject')).

607c3d3 fixed


feat: async nested rendering

🔗 Linked issue
https://github.com/nuxt-modules/mdc/issues/263
❓ Type of change

[x] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality)
[x] ✨ New feature (a non-breaking change that adds functionality)
[x] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description

This PR replaces https://github.com/nuxt-modules/mdc/pull/266.
The playground example can be seen on StackBlitz

The MDCRenderer supports rendering nested async components and can allow its child component tree to resolve their internal top-level async setup() before allowing the parent MDCRenderer to resolve. The implementation, while powerful, isn't immediately clear in the current documentation.
This behavior allows for introducing MDC block components that themselves can perform async actions, such as fetching their own data before allowing the parent component to resolve.
In order for the parent MDCRenderer component to properly wait for the child async component(s) to resolve:

All functionality in the child component must be executed within an async setup function with top-level await (if no async/await behavior is needed in the child, e.g. no data fetching, then the component will resolve normally).

The child component's template content should be wrapped with the built-in Suspense component with the suspensible prop set to true.
<template>
  <Suspense suspensible>
    <pre>{{ data }}</pre>
  </Suspense>
</template>

<script setup>
const { data } = await useAsyncData(..., {
  immediate: true, // This is the default, but is required for this functionality
})
</script>

In a Nuxt application, this means that setting immediate: false on any useAsyncData or useFetch calls would prevent the parent MDCRenderer from waiting and the parent would potentially resolve before the child components have finished rendering, causing hydration errors or missing content.

Example: MDC "snippets"
To demonstrate how powerful these nested async block components can be, you could allow users to define a subset of markdown documents in your project that will be utilized as reusable "snippets" in a parent document.
You would create a custom block component in your project that handles fetching the snippet markdown content from the API, use parseMarkdown to get the ast nodes, and render it in its own MDC or MDCRenderer component.
See the code in the playground PageSnippet component as an example, and to see the behavior in action, check out the playground by running pnpm dev and navigating to the /async-components route.
Handling recursion
If your project implements a "reusable snippet" type of approach, you will likely want to prevent the use of recursive snippets, whereby a nested MDCRenderer attempts to then load another child somewhere in its component tree with the same content (meaning, importing itself) and your application would be thrown into an infinite loop.
One way to get around this is to utilize Vue's provide/inject to pass down the history of rendered "snippets" so that a child can properly determine if it is being called recursively, and stop the chain. This can be used in combination with parsing the ast document nodes after calling the parseMarkdown function to strip out recursive node trees from the ast before rendering the content in the DOM.
For an example on how to prevent infinite loops and recursion with this pattern, please see the code in the playground's PageSnippet component.

Thanks for the PR
The change for MDCRenderer is missing in the final state of the PR.
Also, Could we simplify the examples and playground to a simple component with timeout?
We can have a delayed component? Maybe using a simple timeout would be enough to describe async rendering
await new Promise(resolve => setTimeout(resolve, 2000))

The current example is complicated to understand

Thanks for the PR The change for MDCRenderer is missing in the final state of the PR.

Added back the defineAsyncComponent change into MDCRenderer.

Also, Could we simplify the examples and playground to a simple component with timeout?
We can have a simple delayed component. Maybe using a simple timeout would be enough to describe async rendering
await new Promise(resolve => setTimeout(resolve, 2000))

The current example is complicated to understand

I can change the example if you prefer; however, note that a simplified example wouldn’t demonstrate how to prevent recursion (an infinite loop whereby a block component imports itself).
This seems like a common pattern that may prevent questions down the line, but I’m happy to simplify the example if you don’t think it’s needed?

@farnabaz I've updated the playground to include a Simple Async Example (the default) and an Advanced Async Example (to demonstrate how to bypass infinite loops due to recursion).

Let me know if you'd prefer any other changes

@adamdehaven  I've pushed an update for the resolve component helper. Could you confirm its behavior in your project?

@farnabaz yep it looks like everything still works (I tested in the playground pages I added in this PR).
It looks like the links for the pages I added in the playground header got removed (but the playground itself is still functional at /async-components). I can add the links back if you'd like (or fine to exclude them if you just want the links to be hidden)


update client

This pull request includes several changes to the libs/client_infinity/infinity_client/infinity_client/api/default/embeddings.py, embeddings_audio.py, and embeddings_image.py files. The primary changes involve updating the terminology from "infinity_extra_modality" to "modality" and aligning the documentation with the OpenAI Embeddings API.
Terminology Update:

Updated the key from "infinity_extra_modality" to "modality" in various functions to standardize the terminology. (embeddings.py, embeddings_audio.py, embeddings_image.py) [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24]

Documentation Alignment:

Updated the documentation to indicate alignment with the OpenAI Embeddings API. (embeddings.py) [1] [2] [3] [4]

Deprecation Notice:

Added a deprecation notice for legacy functions, indicating that the AudioEmbeddingInput and ImageEmbeddingInput should no longer be updated. (embeddings_audio.py, embeddings_image.py) [1] [2] [3] [4] [5] [6] [7]

These changes ensure consistency in terminology and improve the clarity of the documentation, aligning it with the OpenAI Embeddings API.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 78.73%. Comparing base (9ab1059) to head (85adaee).
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #407   +/-   ##
=======================================
  Coverage   78.73%   78.73%
=======================================
  Files          39       39
  Lines        3015     3015
=======================================
  Hits         2374     2374
  Misses        641      641

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Merge Gateway Prometheus Virtual Host metrics random assigned wrong with multiple listeners

Description:
Prometheus Virtual  Host metrics are being assigned wrongly having cases where the wrong  host is being attached to the wrong vhost.
I am not sure what the correct behaviour is in some cases we just get metrics like envoy_vhost_vcluster_upstream_rq_retry and in the current case we get vhost.<virtual host name>.vcluster.<virtual cluster name> which is what the envoy docs say but with the wrong  virtual host name attached to the wrong virtual host cluster.
A. The envoy_vhost_vcluster_upstream_rq_retry metrics that get emitted do have labels for envoy_virtual_cluster and envoy_virtual_host
B. vhost.<virtual host name>.vcluster.<virtual cluster name> only have the envoy_virtual_host label attached and no cluster label.
I hope A is the correct way as its easier to build dashboards from.
Repro steps:
Take a example :
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: foo
spec:
  gatewayClassName: merge-gateway
  listeners:
  - name: foo.com
    protocol: HTTP
    hostname: foo.com
    port: 80
    allowedRoutes:
      namespaces:
        from: Same
  - name: bar.com
    protocol: HTTP
    hostname: bar.com
    port: 80
    allowedRoutes:
      namespaces:
        from: Same
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: foobar-combined
spec:
  parentRefs:
    - name: foo
      group: gateway.networking.k8s.io
      kind: Gateway
  hostnames:
  - foo.com
  - foobar.com
  rules:
  - backendRefs:
    - kind: Service
      group: ''
      name:  my-svc
      port: 80
      weight: 1
    matches:
    - path:
        type: PathPrefix
        value: /
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: a
spec:
  gatewayClassName: merge-gateway
  listeners:
  - name: a.foo.com
    protocol: HTTP
    hostname: foo.com
    port: 80
    allowedRoutes:
      namespaces:
        from: Same
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: a
spec:
  parentRefs:
    - name: foo
      group: gateway.networking.k8s.io
      kind: Gateway
  hostnames:
  - a.foo.com
  rules:
  - backendRefs:
    - kind: Service
      group: ''
      name:  my-svc
      port: 80
      weight: 1
    matches:
    - path:
        type: PathPrefix
        value: /
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: ab
spec:
  gatewayClassName: merge-gateway
  listeners:
  - name: ab.foo.com
    protocol: HTTP
    hostname: ab.foo.com
    port: 80
    allowedRoutes:
      namespaces:
        from: Same
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: foobar-combined
spec:
  parentRefs:
    - name: ab
      group: gateway.networking.k8s.io
      kind: Gateway
  hostnames:
  - ab.foo.com
  rules:
  - backendRefs:
    - kind: Service
      group: ''
      name:  my-svc
      port: 80
      weight: 1
    matches:
    - path:
        type: PathPrefix
        value: /

Its hard to pinpoint what's going on and seems to be random in how it picks for example I got envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry{envoy_virtual_host="api-gateway/ab/ab"} 0
for the metric name.
Metrics dump
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry counter
envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry_limit_exceeded counter
envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry_limit_exceeded{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry_overflow counter
envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry_overflow{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry_success counter
envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_retry_success{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_timeout counter
envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_timeout{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_total counter
envoy_vhost_foo_com_ab_foo_com_vcluster_ab_foo_com_upstream_rq_total{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry counter
envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry_limit_exceeded counter
envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry_limit_exceeded{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry_overflow counter
envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry_overflow{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry_success counter
envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_retry_success{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_timeout counter
envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_timeout{envoy_virtual_host="api-gateway/ab/ab"} 0
# TYPE envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_total counter
envoy_vhost_foo_com_ab_foo_com_vcluster_other_upstream_rq_total{envoy_virtual_host="api-gateway/ab/ab"} 0

it looks like its merging the virtual clusters.
Environment:
k8s 1.29.0
envoy gateway 1.0.1 Merge gateways

I have also seen that resource names for gateways resource name which use "." are also causing issues
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: foo.foo

from the http://localhost:19000/stats
vhost.my-ns/foo.foo-public
I assume the same is for HTTPRoute names as well, not looked but I assume they need to be escaped like we do for hostnames?


Groovy definition is broken

Try this example with prism!
#!/usr/bin/env groovy
package model

import groovy.transform.CompileStatic
import java.util.List as MyList

trait Distributable {
    void distribute(String version) {}
}

@CompileStatic
class Distribution implements Distributable {
    double number = 1234.234 / 567
    def otherNumber = 3 / 4
    boolean archivable = condition ?: true
    def ternary = a ? b : c
    String name = "Guillaume"
    Closure description = null
    List<DownloadPackage> packages = []
    String regex = ~/.*foo.*/
    String multi = '''
        multi line string
    ''' + """
        now with double quotes and ${gstring}
    """ + $/
        even with dollar slashy strings
    /$

    /**
     * description method
     * @param cl the closure
     */
    void description(Closure cl) { this.description = cl }

    void version(String name, Closure versionSpec) {
        def closure = { println "hi" } as Runnable

        MyList ml = [1, 2, [a: 1, b:2,c :3]]
        for (ch in "name") {}

        // single line comment
        DownloadPackage pkg = new DownloadPackage(version: name)

        check that: true

        label:
        def clone = versionSpec.rehydrate(pkg, pkg, pkg)
        /*
            now clone() in a multiline comment
        */
        clone()
        packages.add(pkg)

        assert 4 / 2 == 2
    }
}

It should be better now. See 72cde69424eed49e16f222891bad8840c06e6e7e for details.
I added your example on the examples page.
Thanks for reporting. Tell me if everything looks good to you.

Thanks! Everything looks good. Closing this issue for now.


There's an error happening before the one highlighted.


Socket orderly shutdown + TC deadlock

Fix a deadlock with the socket send/recv testcases.
I had to include the orderly shutdown fix in this PR too, otherwise the test cases would fail with a MuxBearerClosed exception.

@karknu would just the second patch fix both problems at once?

@karknu would just the second patch fix both problems at once?
Yes, until someone fiddles with the timeout and then it will start to deadlock again.
With the first patch it is robust and you will get a  MuxBearerClosed exception instead.

bors r+

This PR implements  #708 .


Provide logrotate config

Hi,
It would be nice if the package also provides a logrotate config, as with the default settings, the log file can become quite big very quickly.
This is my suggestion:
/var/log/carbon-clickhouse/carbon-clickhouse.log {
    compress
    delaycompress
    copytruncate
    notifempty
    rotate 30
    daily
}

@lomik what do you think?

@lomik what do you think?

From my personal experience, it's difficult to find some decent defaults for everybody. But, maybe, bad defaults, in any case, better than nothing.

From my personal experience, it's difficult to find some decent defaults for everybody. But, maybe, bad defaults, in any case, better than nothing.


Added support for include_entities optional parameter

See http://dev.twitter.com/pages/tweet_entities for information on this parameter.

Would love to see this merged; about to embark on a fairly heavy project which will make heavy use of entities.

Note that entities will be included in Twitter API responses starting May 14th, without the need to explicitly ask for them using a query parameter: https://dev.twitter.com/blog/api-housekeeping


Dynamic data parsing

Clean PR for Dynamic Data Parsing.
We should check:

Naming used for functions. Not sure if parse_dyn_system and add_dyn_injectors! are proper for naming.
Test used to check dyn parse. We can probably expand later testing when adding more dyr examples.
Overall performance.

New changes added a new function for System, that now accepts two strings, that must be a .raw file and a .dyr file.


Update dev-environments.md

Proposed changes
Include SSH agent instructions for WSL2 and Docker Dev Environments.
Related issues (optional)
Refers to #13905.
/cc @rumpl @glours @gtardif

@felipecruz91 Thanks a lot for the PR (your first Docs PR! Wohooo 🎉 ) Made some minor suggestions. Looks good otherwise!


Add ASCIIDoc format to allowed README and description content-types

ASCIIDoc, in formats .adoc, .asc, and .asciidoc is supported by GitHub. I personally prefer it to Markdown due to its degree of standardization, and would like to add it to the list of supported content-types for README files, and description.

@frostming I would like to see about getting this merged. If any other changes are needed here for compatibility please advise and I will take care of them ASAP. I would assume this would also require a subsequent PR to the main PDM repository to bump the version of this package, unless there is some CI/CD in place for such operations.
Let me know if anything else is needed here.
Thanks,
Hunter N. Parente

This is a python package build backend, all supported types are supported here: https://packaging.python.org/en/latest/specifications/core-metadata/#description-content-type
And only these can be displayed on PyPI. "GitHub supports it" has nothing to do with this backend.
Also this is not depended on by PDM so it won't block it.