Inconsistent management of ports in the Dockerfile

Motivation

I noticed we set the ports for metrics and tracing for Zebra in the Dockerfile (https://github.com/zcashfoundation/zebra/blob/3706ff6e67e3214a7acc8beb98dacd878771f0ab/docker/Dockerfile#L191-L194), but we don't expose them (https://github.com/zcashfoundation/zebra/blob/3706ff6e67e3214a7acc8beb98dacd878771f0ab/docker/Dockerfile#L198). Note that neither metrics nor tracing are enabled in our published images, but users could enable them when building the image manually.
We allow setting an arbitrary RPC port (https://github.com/zcashfoundation/zebra/blob/3706ff6e67e3214a7acc8beb98dacd878771f0ab/docker/Dockerfile#L189), which seems like a redundant overhead because users can pick any port when they are publishing the ports at runtime.

We allow setting an arbitrary RPC port (zcashfoundation/zebra@3706ff6/docker/Dockerfile#L189), which seems like a redundant overhead because users can pick any port when they are publishing the ports at runtime.

Could this be useful if someone is using our Dockerfile as a base for a RPC client Dockerfile?

I've never needed that, but I've never used Docker in any advanced scenarios.
However, I noticed that now we expose a user-set RPC port at build time here https://github.com/zcashfoundation/zebra/blob/c058f77a342d5513420f50542593c11e76731a87/docker/Dockerfile#L177, and then we use a user-set RPC port at runtime here https://github.com/zcashfoundation/zebra/blob/c058f77a342d5513420f50542593c11e76731a87/docker/runtime-entrypoint.sh#L52. These two ports can differ since the user can set a port at runtime that will differ from the one used at build time.

Hey team! Please add your planning poker estimate with Zenhub @arya2 @dconnolly @oxarbitrage @teor2345 @upbqdn


Update version: Nevcairiel.LAVFilters version 0.77.2

Pull request has been created with WinGet Automation :rocket:
Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115201&drop=dogfoodAlpha

@wingetbot run


[Feature Request] Add a dropdown multi-select filter for Semesters

Overview
Add a dropdown to select semesters to filter by
Proposal

[ ] Add the dropdown component
[ ] Allow multi-select
[ ] Make sure relevant text appears in the dropdown when it's closed
[ ] Add a Select all option that also deselects all when clicked again
Play around with the idea to add an option to (a) select recent long-semesters (let's say 6 for now) and (b) To de/select summer semesters

Supplementary Information
Here is the figma mockup of it and the meeting we finalized on an implementation.

can I take this issue up since tyler and tatvik are alreadt resolving the main tasks for #196?

@sparklingwter I assigned you

The recent checkbox is not done but everything else is.

Closing this as done, changes are covered in #249


[SPARK-15585][SQL] Add doc for turning off quotations

What changes were proposed in this pull request?
This pr is to add doc for turning off quotations because this behavior is different from com.databricks.spark.csv.
How was this patch tested?
Check behavior  to put an empty string in csv options.

Test build #60334 has started for PR 13616 at commit edb0395.

Test build #60334 has finished for PR 13616 at commit edb0395.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/60334/
Test PASSed.

cc: @rxin

Merging in master/2.0. Thanks.


Show all Input Fields together

Hi,
This is a lovely repo. Thanks for this!
My project requires me to show all the input fields together (instead of one sliding in after the other) . Is that possible ( Im sure it is, just cant figure out how!) ?
Thanks!

Hi @fadiaIW,
Checkout formOnly props. It should be what you're looking for: https://github.com/halilb/rn-credit-card#formonly

Hi @fadiaIW,
Checkout formOnly props. It should be what you're looking for: https://github.com/halilb/rn-credit-card#formonly

I think you meant horizontalState. Worked perfectly! Thanks!
Also, is it possible if i use textInput from react-native directly. So as to make my entire form ( additional fields in the project) with a consistent UI?
Thanks for the instant response! Appreciate it :)

I think you meant horizontalState. Worked perfectly! Thanks!

Oh right, I meant horizontalStart.

Also, is it possible if i use textInput from react-native directly. So as to make my entire form ( additional fields in the project) with a consistent UI?

I'm afraid that's not possible. Your best bet would be forking the repo and making the changes you need.


pretalx

Pretalx is one of the leading open source tools capable of handling the full organisation of events from Call for Proposals to user feedback, and is used by many large open source events already (MozFest, FOSDEM, Pycon, NSEC, etc).

NLnet project
pretalx.com
source code

schedule component

prior work:

pretalx configuration for NixCon

Since this project supports "components", it will need a configurable setup. Break down into separate issues as needed.
The goal here is to provide turnkey setup for self-hosting.

@ngi-nix/algae will look into this, starting 2023-07-31.

@ngi-nix/algae is progressing, packaging pretalx via poetry2nix. At the moment, it runs in a basic configuration (webserver started via shell, using an SQLite database). We'd like to introduce services soon, and at that point, #28 would be helpful. We haven't yet looked into a solution for components.

A note regarding "optional dependencies": As of now, we have:

psycopg2-binar for PostgreSQL
mysqlclient for MySQL
django-redis for Redis
Faker and freezegun for (integration) testing

See also: https://github.com/ngi-nix/ngipkgs/blob/4d5af8f5d136854118d5ee85fb3f164957679800/pkgs/pretalx/pyproject.toml#L12-L16
It looks like the preferred way to specify such dependencies is Poetry extras. However, according to https://github.com/nix-community/poetry2nix/issues/400 there's no good support for exposing extras via poetry2nix.

https://github.com/NixOS/nixpkgs/pull/231684 exists and is probably further along.

Cool, especially that you managed to package it without poetry2nix! We've merged our work in the meantime. Overall, the approach is quite similar, as would be expected. There are some differences though (handling secrets, using pretalx create_test_event). It might be worth it for you to check out our contribution.
I have to admit it is a little frustrating that this work was duplicated. Of course we could have checked whether there are existing PRs against nixpkgs. Since the issue mentions "prior art" I was assuming that such research was already done and did not look any further. Probably this was too naive. Also, since both @mweinelt and @fricklerhandwerk were/are involved in the organization of Summer of Nix, an earlier reference to the PR would have been nice. No hard feelings, but this had to be said.

The PR to nixpkgs is awaiting further review with our contributions but in the meantime it seems we're done here


fix(traefik): fixed Jira/Confluence host

s/oms-project.atlassian.net/myaegee.atlassian.net

@mibaru-aegee check this out, after merging this the Confluence pages should be displayed properly

@linuxbandit the other one was already correct

https://github.com/AEGEE/oms-docker/blob/16aa3fa9c97c2880ebc27350b668013022cc2e78/oms-global/docker/traefik/traefik.toml.template#L160 the production one is okay already, maybe I've fixed it before


Remove ServiceWorker+MessagePort UA detection

#239 introduces some changes to service worker testability. As part of that change, a UA sniff for Microsoft Edge is introduced due to the browser currently not supporting MessagePort in a ServiceWorker context - this is difficult to feature detect properly since the feature check needs to run in the worker context, not the client page's context.
This issue tracks removing the UA check either completely (once it is no longer needed) or with some sort of channel between the worker and the client page to communicate feature status.
The relevant code is at the top of the create_remote_worker function introduced in the referenced PR.

This issue has been moved to https://github.com/w3c/web-platform-tests/issues/7185; please continue all discussion there.


Fix | 2022.4 | Server/Gateway: pre-existing service account name is ignored by Gateway chart in custom namespaces

This change fixes an issue that causes the wrong service account to be assigned to the gateway under these circumstances:

server chart is used to deploy server and gateway
charts are installed into custom namespace
serviceAccount.create=false and gateway.serviceAccount.create=false

The specific issue with the current chart is that the gatway will not receive the service account name and in the deployment manifest will assign "namespace-sa" service account to the gateway. This results in a gateway pod not starting

 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.


Feature Request - Local Plugin and Non git Plugin

I want to use a part of oh my zsh
and dont want to install full oh my zsh
so i want local plugins(  so that i can install using curl or wget
and load it )  or non git plugins(similar to zinit's snippet).

Can you give me some examples of plugins for which you have to use curl or wget? Then I can test with those. Likewise, what snippets would you like to use?

Like I want to use Oh My Zsh git plugin(https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git)
so i can download it in a directory with wget or curl and then link it with znap or an option to download it with znap only
I have called snippet from Zinit (https://github.com/zdharma/zinit)

I looked into it and it looks like I will need git sparse-checkout for this. However, since that subcommand is still labeled as experiemental, I will put this on the back burner for the moment. I will get back to it once the feature stabilizes.

@FardeenCodes @schrej Did you try the above?

Sorry @marlonrichert, I forgot to try it. It's working well.
Being able to just provide a full path to that command would be more convenient imo, but it's fine this way as well.

This works, too:
% mkdir ~znap/.themes
% touch ~znap/.themes/schrej.zsh-theme
% znap prompt .themes schrej

It might be a good idea to include this in the example .zshrc for visibility (maybe with starship prompt). Great plugin manager btw :)


Support RsBuild

Hi, I post a discussion in facebook/stylex.
In discussion, I try to use unplugin-stylex with RsBuild but it's not working.
For a minimal reproduction repo, you can check here
https://github.com/longht021189/unplugin-stylex-sample/blob/main/rsbuild.config.ts

Hi @longht021189 Please upgrade the unplugin-stylex to 0.3.1 and now it workds. Or you can also refer to rsbuild-example. Finally, Thanks for your feedback.

Hi @eryue0220 Thank you for your help, it works. But it's still have a minor issue, this is my logs.
[@stylexjs/babel-plugin] Expected (options.unstable_moduleResolution) to be one of
        - `null` or `undefined`
        - one of
                - an object where:
                        - Expected "type": to be the literal "commonJS"
                        - Expected "rootDir": to be a string
                        - Expected "themeFileExtension": to be  -
                                - one of
                                        - `null` or `undefined`
                                        - a string
                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}
                - an object where:
                        - Expected "type": to be the literal "haste"
                        - Expected "themeFileExtension": to be  -
                                - one of
                                        - `null` or `undefined`
                                        - a string
                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}
                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}
                - an object where:
                        - Expected "type": to be the literal "experimental_crossFileParsing"
                        - Expected "rootDir": to be a string
                        - Expected "themeFileExtension": to be  -
                                - one of
                                        - `null` or `undefined`
                                        - a string
                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}
But got: {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}

And this is my configs

Hi @eryue0220 Thank you for your help, it works. But it's still have a minor issue, this is my logs.

[@stylexjs/babel-plugin] Expected (options.unstable_moduleResolution) to be one of

        - `null` or `undefined`

        - one of

                - an object where:

                        - Expected "type": to be the literal "commonJS"

                        - Expected "rootDir": to be a string

                        - Expected "themeFileExtension": to be  -

                                - one of

                                        - `null` or `undefined`

                                        - a string

                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}

                - an object where:

                        - Expected "type": to be the literal "haste"

                        - Expected "themeFileExtension": to be  -

                                - one of

                                        - `null` or `undefined`

                                        - a string

                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}

                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}

                - an object where:

                        - Expected "type": to be the literal "experimental_crossFileParsing"

                        - Expected "rootDir": to be a string

                        - Expected "themeFileExtension": to be  -

                                - one of

                                        - `null` or `undefined`

                                        - a string

                        - {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}

But got: {"type":"commonjs","rootDir":"C:/Users/longh/OneDrive/Desktop/Projects/superapp/apps/utilities"}

And this is my configs

Sorry for the late response, I will check this later

@longht021189 Hi, can you upgrade the config in your repo: https://github.com/longht021189/unplugin-stylex-sample/blob/main/rsbuild.config.ts

Hi @longht021189 I checked the bug, and I found the problem it's type should be set to commonJS, instead of commonjs;

Sorry, I have a little busy. It's ok.
I used pnpm patch to work around this typo issue.
Thank you so much.


new static MAX_BATCH_SIZE variable in ExportBatching.java

With this PR, both ExportBatching and ImportBatching work in the same fashion for handling boundary case.

I think the getBlobBatchSize() method in DBXlinkExporterManager should also be adapted correspondingly?

It should be already adpated correspondingly...

Ha, of course. Guess I shouldn't review code on my phone while cooking for the kids :-)


Wrong attribute name used for predicates in queries

When generating queries from predicates, they are being put in attribute RangeKeyValue when they need to go in RangeKeyCondition. Right now, they are always being ignored.

Thanks for the quick turnaround @jed. Loving the driver so far.


GCSAusE corpus unavailable

We link to https://ca.talkbank.org/data-orig/GCSAusE/01.cha in our demo, but the corpus seems to have been locked behind a login: https://ca.talkbank.org/access/GCSAusE.html links to https://git.talkbank.org:3000/getFile?type=open&bp=data&path=ca/data/GCSAusE.zip to download transcripts, which is password protected.
We should probably choose a different example for our demo, but also, are we sure this access revoke is intended?
Edit: it seems intended; the first link on the corpus launch page invites users to create an account: https://sla.talkbank.org/TBB/ca/GCSAusE

I have seen similar things happening to other corpora on that database so I think its intended :(


Added white balance support.

I am not a programmer by any means, but I managed to reverse engineer the API(s) to accept 5 channels, RGBWDimmer. This adds a temperature channel that affects the white balance of the white mode, which is enabled when R/G/B is at 0, white brightness is controlled by the 5th channel. I would like to add a prompt, similar to the way the colorloop function is implemented that allows the selection of temperature, color, or temperature+color, to reduce DMX clutter.

Thanks a lot for the PR!
I'm a bit full with conferences preparation until the end of the month, but after that I'll have a look to get this merged 🙂

I currently merged your PR in a separate branch where I'm working on the next release, I'll add the tweaks to make it an option. Thanks for your contribution!


Listen/detect record updates in Oracle for Voyager

This should improve reindexing (as discussed on 07/16/18)

Involves extending methods to detect records which have been updated (for enumeration/iteration)

Client/user should also be able to specify a start date and an end date (as specified by @mzelesky)

The comment about start and end date was really for how one will retrieve the list of bibs with ARKs newly minted in Figgy.


Update WebRTC docs for Firefox 65

All that's left is the deprecation of a few older parts of the RTCStats stuff. See bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1512517.
Trello:

https://trello.com/c/ejryeYyB/73-webrtc-10-fx-64

Acceptance criteria

[ ] BCD updates are made to the appropriate content and PRs submitted for review - the items covered here are being removed outright in Firefox 66
[ ] RTCPeerConnection and RTCPeerConnection.getStats() pages have been updated to  cover the deprecation of the callback form in Firefox X if it's mentioned at all and removed in 66
[ ] RTCStats.isRemote is noted as being deprecated in Firefox Y and removed in Firefox 66

@a2sheppy So, is this done, or is it on hold until Fx66? Should this be closed, or should it go into the Icebox?

Do we have a bug yet for the actual removal that we can track @a2sheppy ?

There is in fact a bug for this, and it is fixed: https://bugzilla.mozilla.org/show_bug.cgi?id=1328194

Great stuff, thanks!
So I've updated the TRello card to include this bug: https://trello.com/c/ejryeYyB/73-webrtc-10-fx-66
At this point I'd suggest closing this issue, and then opening up a new one when you finally do the docs for this bug, to keep tracking clean.


Review Texts/Wording for Wallet Backup Procedure

I made some change to the wording/texts shown on wallet backup screens.
Below are the strings that were changed on English(iOS). Please apply following changes:

[x] on iOS, change Russian and German translations for the listed strings as needed. I only changed the English version. So Russian and German translations may be incorrect now.
[x] on Android. apply new texts to English version
[x] on Android. apply new texts to Russian and German versions

"restore.title" = "Restore Wallet";
"restore.description" = "Enter the Secret Key (sometimes called Paper Key).for the wallet. ";
"restore.restore" = "Restore";
"restore.validation_failed" = "The Secret Key you entered doesn't exist. Please check the words and try again.";

"backup.intro.title" = "Secret Key";
"backup.intro.subtitle" = "Your secret key is the only way to restore your wallet and funds if your phone is ever lost, stolen, broken, or upgraded.\n\n It consists of 12 words. Write them on a piece of paper and do not ever show it to anyone.";
"backup.intro.later" = "Later";
"backup.intro.backup_now" = "Show Key";

"backup.words.title" = "Secret Key";
"backup.words.back" = "Back";
"backup.words.proceed" = "Next";

"backup.confirmation.title" = "Check ...";
"backup.confirmation.description" = "Enter words from your secret key";
"backup.confirmation.failure_alert.text" = "Words do not match";
"backup.confirmation.understand" = "I understand that my wallet and tokens are held securely on this device only and not any servers.";
"backup.confirmation.delete_app_warn" = "I understand that if this app is deleted or stops working for any reason, my wallet can only be recovered using the secret key that I have written down and saved in a secure place";
"backup.confirmation.confirm" = "Confirm";

completed!


Implemented GATT Indications

Issue
Fixes #32 .
What does this PR Do?
Implements GATT Indications for GATTClient.
Where should the reviewer start?
GATTClient.swift
Sweet giphy showing how you feel about this PR

Result of Integration 1
Duration: 12 minutes and 29 seconds
Result: Build failed 1 test out of 284

Result of Integration 1
Duration: 12 minutes and 29 seconds
Result: Build failed 1 test out of 284

Result of Integration 2
Duration: 11 minutes and 29 seconds
Result: Build failed 3 tests out of 284

Result of Integration 3
Duration: 11 minutes and 27 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 3
Duration: 11 minutes and 27 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 4
Duration: 11 minutes and 34 seconds
Result: Build failed 1 test out of 284

Result of Integration 4
Duration: 11 minutes and 34 seconds
Result: Build failed 1 test out of 284

Result of Integration 4
Duration: 11 minutes and 34 seconds
Result: Build failed 1 test out of 284

Result of Integration 6
Duration: 11 minutes and 19 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 6
Duration: 11 minutes and 19 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 6
Duration: 11 minutes and 19 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 6
Duration: 11 minutes and 19 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 6
Duration: 11 minutes and 19 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%

Result of Integration 6
Duration: 11 minutes and 19 seconds
Result: Perfect build! All 284 tests passed. :+1:
Test Coverage: 87%


sdk/connections/adsd3100_sensor.cpp: change pixelformat to YUYV

Signed-off-by: SeptimiuVana<EMAIL_ADDRESS>

Why is the change needed?

Why is the change needed?

It's the new format used by the driver.
It was updated in uvc as well:
https://github.com/analogdevicesinc/ToF/commit/1e5a992e6e78c53c87320dc5b04d071f694168db


feat/add_tracking

Resolves #55
Signed-off-by: adamgardnerit<EMAIL_ADDRESS>

@agardnerIT Thanks much, that is exactly I wanted to take a glance on that. You are doing amazing work. 🛩


Add support for "trimmed" blocktrans content

This fixes #20

@graingert How does this look? Do you need us to do anything?

Friendly ping. How does this look? Do you need us to do anything?

@willkg I'm really sorry, I've only just got the emails from this thread. I'll have a look after the weekend

I'm going to remove support for all out of support Django and python versions. So that should simplify your PR

@graingert Is there any progress on review of this PR? I am really waiting for a new release with this PR.

@amotoki try pinging @mrunge

Will look at that asap. Unfortunately, I'm deeply buried in some mud hole currently.

Thank you for your contribution!

@mrunge did you mean to close this?

@graingert Uhm, I thought I pushed "merge" before, the commit looks sane to me.

@mrunge :p oops

Now finally: @robhudson thank you for your contribution, I'll tag it into release asap.


templated schema-as-yaml modifier

To replace the vast majority of the uses of yq in this and potentially other schemas
example run:
poetry run python src/nmdc_submission_schema/scripts/qy2.py \
    --schema local/with_shuttles.yaml
    --config qy2-config.tsv
    --output qy2-output.yaml

current weaknesses:

highly repetitive linear code. needs refactoring. src/nmdc_submission_schema/scripts/qy2.py
are there opportunities for integrating with the modifications or validation updating phases of sheets_and_friends' modifications_and_validation?
config file qy2-config.tsv in repo root
have been sending output to repo root. will obviously change that in the makefile, but in the mean time it leads to slow re-indexing by PyCharm (put the output in a non-indexed directory!)
several different kinds of empty-ish values are currently in the configuration sheet, so testing for "", "NULL" and None
the active column in the config file is only getting tested for 'TRUE' after upper-casing. not testing for other true-ish values

probably won't be  able to support setting a list of examples like
yq '(.classes.[].slot_usage.[] | select(.name=="chem_administration") | .examples) = [{"value": "agar [CHEBI:2509];2018-05-11|agar [CHEBI:2509];2018-05-22"}, {"value": "agar [CHEBI:2509];2018-05"}]'

yq -i '(.classes.[].slot_usage.[] | select(.string_serialization=="{text};{float} {unit}" and .multivalued == true ) | .pattern) = "^([^;\t\r\x0A]+;[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)? [^;\t\r\x0A]+\|)*([^;\t\r\x0A]+;[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)? [^;\t\r\x0A]+)$'

probably won't be able to act on multiple criteria like
yq '(.classes.[].slot_usage.[] | select(.range == "QuantityValue" and .multivalued == true)  | .pattern) = "^([-+]?[0-9]*\.?[0-9]+ +\S.*\|)*([-+]?[0-9]*\.?[0-9]+ +\S.*)$"'

probably won't be able to assign or migrate rules like
yq eval-all \
    'select(fileIndex==1).classes.JgiMgInterface.rules = select(fileIndex==0).classes.Biosample.rules | select(fileIndex==1)' \
    local/nmdc.yaml<EMAIL_ADDRESS>| cat ><EMAIL_ADDRESS>yq eval-all \
    'select(fileIndex==1).classes.JgiMtInterface.rules = select(fileIndex==0).classes.Biosample.rules | select(fileIndex==1)' \
    local/nmdc.yaml<EMAIL_ADDRESS>| cat ><EMAIL_ADDRESS>
in addition to that, probably won't be able to act on wildcards
yq -i 'del(.classes.JgiMgInterface.rules.[] | select(.title == "rna*"))'<EMAIL_ADDRESS>yq -i 'del(.classes.JgiMtInterface.rules.[] | select(.title == "dna*"))'<EMAIL_ADDRESS>

rules that remain in src/nmdc_submission_schema/schema/nmdc_submission_schema.yaml without using src/nmdc_submission_schema/scripts/qy2.py:
classes.JgiMgInterface
    rules:
      - preconditions:
          slot_conditions:
            dna_cont_well:
              name: dna_cont_well
              pattern: .+
        postconditions:
          slot_conditions:
            dna_cont_type:
              name: dna_cont_type
              equals_string: plate
        description: DNA samples shipped to JGI for metagenomic analysis in tubes can't have any value for their plate position.
        title: dna_well_requires_plate
      - preconditions:
          slot_conditions:
            dna_cont_type:
              name: dna_cont_type
              equals_string: plate
        postconditions:
          slot_conditions:
            dna_cont_well:
              name: dna_cont_well
              pattern: ^(?!A1$|A12$|H1$|H12$)(([A-H][1-9])|([A-H]1[0-2]))$
        description: DNA samples in plates must have a plate position that matches the regex. Note the requirement for an empty string in the tube case. Waiting for value_present validation to be added to runtime
        title: dna_plate_requires_well


Fix dead link for vento

@oscarotero
It appears you forgot to replaced a (now dead) link to https://oscarotero.github.io/vento/ with https://vento.js.org/, leaving folks who learn about Vento on the Lume site unable to find out more about Vento
https://github.com/lumeland/lume.land/blob/c38ea1b11500a4f430f1082aa67c1b3bce5c1ea6/plugins/vento.md?plain=1#L12C1-L12C45

I just fixed it.
Thanks for letting me know!


Continue to address readme VR feedback

Addresses more feedback from the VR

Want another set of eyes but this looks really good to me.
@nnshah1 can you take a brief look?


Account creation from Shib for user with non-ASCII characters in name fails

The shibboleth handshake appears to be happening without issue and the omniauth callback processes normally. This is a new user though so it attempts to bring them to the new user sign up page which results in:
F, [2018-07-27T09:19:21.259334 #3333] FATAL -- :
ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT):
    122:
    123:       <!-- main page content rendering -->
    124:       <main class="container">
    125:         <%= yield %>
    126:       </main>
    127:
    128:       <!-- footer rendering -->
  /appsactivesupport (4.2.10) lib/active_support/core_ext/string/output_safety.rb:185:in `concat'
  /appsactivesupport (4.2.10) lib/active_support/core_ext/string/output_safety.rb:185:in `concat'
  /appsactionview (4.2.10) lib/action_view/buffers.rb:12:in `<<'
  app/views/layouts/application.html.erb:125:in `_app_views_layouts_application_html_erb___2340179509729603470_47323632437720'
  /appsactionview (4.2.10) lib/action_view/template.rb:145:in `block in render'
  /appsactivesupport (4.2.10) lib/active_support/notifications.rb:166:in `instrument'
  /appsactionview (4.2.10) lib/action_view/template.rb:333:in `instrument'
...
  app/controllers/users/omniauth_callbacks_controller.rb:82:in `handle_omniauth'
  app/controllers/users/omniauth_callbacks_controller.rb:9:in `block (2 levels) in
...
  /appsrailties (4.2.10) lib/rails/engine.rb:518:in `call'
  /appsrailties (4.2.10) lib/rails/application.rb:165:in `call'
  /appsrailties (4.2.10) lib/rails/railtie.rb:194:in `public_send'
  /appsrailties (4.2.10) lib/rails/railtie.rb:194:in `method_missing'

I did a quick scan of our DB for others that have non-ASCII characters in their names or emails: select firstname, surname, email from users where not email REGEXP '^[A-Za-z0-9\.,@&\(\) \-\_]*$' OR not firstname REGEXP '^[A-Za-z0-9\.,@&\(\) \-\_]*$' OR not surname REGEXP '^[A-Za-z0-9\.,@&\(\) \-\_]*$';
We have just over 100 users whose names have internationalized characters, but all email addresses are ASCII. I was able to create an account with non-ASCII characters in the name fields but not the email address (HTML5 rules prevent 'email' input type from having them).
Contacted the customer to have them try it on stage where we have placed some debug statements to print out the info that we get from Shib.

removing this from the board until we receive more info from Cornell re users w/non-ascii characters in their names who can't create accounts. waiting for them to test on stage.

still no word from Cornell about whether this issue persists. closing it out for now.


contibution

@DarkmatterVale I am interested to work to this project

@vkosuri I know this is a really late reply...If you are still interested please contact me.


please add web search feature

Please add web search Feature

Duplicate of https://github.com/microsoft/PowerToys/issues/3245


fix: Latex line highlighting for vector equations

PR: https://github.com/slidevjs/slidev/pull/1228
Introduced a regression in which vector symbols get classified as a latex line, causing the line highlighting to break.
By adding :scope to the css selector only the direct descendants on the parent will be selected, thereby skipping child elements (vectors) that have the same css structure
---
layout: default
---
# Slide

$$ {0|1|2|3|all}
\begin{array}{c}

\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &
= \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\

\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}}\\

\nabla \cdot \vec{\mathbf{B}} & = 0

\end{array}
$$

Before (clicks=1)

After the fix

I really want to apologize for introducing this bug especially that this equation is included as an example for the line highlighting feature


Increases images width across the platform

Closes #1517
Resizes image widths to 750 for lead image and 375 for listing.

Yes, you are right, we wouldn't be merging this into develop and this was only for review & feedback, now we can close this PR. I have pushed a bloomly branch on unicef see here


Created Hungarian IBAN adapter and validator

Hi,
I implemented  the Hungarian IBAN adapter and Validator as a part of QrPaymentHU library. As you suggested in opened issue I created this PR to be able to move the classes to this library instead and not having it bundled in the QrPaymentHU library.

@RikudouSage I've made the requested changes. Unfortunately I can not check the code coverage, but the exception is now tested here: https://github.com/RikudouSage/IBAN/pull/8/commits/0043348808cac3f983deed38ba4db58d4802717b#diff-641d0e156eba7b338014f48235b20a07445e41976b4f58ccbf532a8126afb91eR19
and the other return statement is deleted.

Thanks! There are still some uncovered lines:
https://coveralls.io/builds/48116530/source?filename=src%2FValidator%2FHungarianIbanValidator.php

Now?

Perfect, thanks!

Could you please make a release so I could close this PR https://github.com/hubipe/QrPaymentHU/issues/1 ?

I did it right after I updated readme.


Export reports orphan node for a resource when using as to cast a value to expecting type

Godot version
Godot_v3.3.2-stable_win64
System information
Windows 10, MacOS
Issue description
I received a bug report for my plugin project and searched for a good 2 rounds to find this strange error.
When exporting an application from the command line, Orpan nodes are reported, but the reported "node" is a resource and should never end up as an Orpan node.
I have identified this line as the cause
	return dict2inst(data) as TestClass

Steps to reproduce

use the attched project and run this command line

Godot_v3.3.2-stable_win64 --export Windows --verbose

The report shows orpnan nodes
Loading resource: res://TestClass.gd
EditorSettings: Save OK!
ERROR: ~List: Condition "_first != __null" is true.
   At: ./core/self_list.h:112
ERROR: ~List: Condition "_first != __null" is true.
   At: ./core/self_list.h:112
WARNING: cleanup: ObjectDB instances leaked at exit (run with --verbose for details).
     At: core/object.cpp:2132
Leaked instance: GDScriptNativeClass:565
Leaked instance: GDScript:18463 - Resource path: res://TestClass.gd
Hint: Leaked instances typically happen when nodes are removed from the scene tree (with `remove_child()`) but not freed (with `free()` or `queue_free()`).
ERROR: clear: Resources still in use at exit (run with --verbose for details).
   At: core/resource.cpp:450
Resource still in use: res://TestClass.gd (GDScript)
Orphan StringName: deserialize
Orphan StringName: data
Orphan StringName: Reference
Orphan StringName: res://TestClass.gd
Orphan StringName: GDScriptNativeClass
Orphan StringName: _init
Orphan StringName: GDScript
StringName: 7 unclaimed string names at exit.

Workaround

use untyped variant, but this breaks my code style

Minimal reproduction project
orphanResources2.zip

I close it because it is no longer current


S3 plugin appears to be broken with Swiftstack S3 server using auth v4

When attempting to run an ad hoc backup using verified S3 configuration (auth URI and credentials) and AWS Signature Version 4, the following error is returned:
The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'US' (AuthorizationHeaderMalformed) [raw
AuthorizationHeaderMalformed
The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'US'txaacbdb1d22ae48bb9f403-005bc8a71aUS]

I’m not entirely comfortable with sharing the configuration details. Suffice it to say, these same configuration strings work with s3cmd and minio mc CLIs, and with the SHIELD v6.9.0.
On the second question, please see https://www.swiftstack.com/docs/admin/middleware/s3_middleware.html

You can (and should) sanitize any identifying details

The config is
SHIELD Agent: <IP_ADDRESS>:5444
Use Instance Profile: no
Access Key ID:
Secret Access Key REDACTED
Bucket Name
Path Prefix
S3 Host
S3 Port
AWS Signature Version 4
Multipart Upload Part Size 100M
SOCKS5 Proxy
Skip SSL Validation  no


compatibility with django 2.1.x

I tried to use django-saml2-pro-auth package in my project using django 2.1.2 and I had to use backward compatible methods in urls.py.
I suggest following approach - try use methods from django 2.x or use 'old-fashion' methods as fallback.
Makes sense?

I think this is great! I havent had time to tinker with Django 2+ so I really appreciate this. Are you comfortable with updating the Tox tests to include Django 2?

Ok, no worries, I should be able to handle that.


Disallow commits to main via pre-commit-hooks

[x] Towards #8209

LGTM. I have a tiny bit of pause that someone just starting out in git is going to get really confused, but that's quite minor...

(Also to confirm — this won't fail when run on main outside of a commit, in particular on CI?)

I guess while this can be confusing, it is also partly a blessing: especially people just starting out will open a pull request from main and then run into all sorts of issues. Though in my experience people starting out don't tend to use pre-commit, so this might not be an issue.

(Also to confirm — this won't fail when run on main outside of a commit, in particular on CI?)

I think it will fail... The hook has no way of knowing why it was invoked.
Although, we could change it into a pre-push stage?
I just find it better to fail before committing, so you don't have to clean up your local main history later...

does pre-commit.ci even run on main?

does pre-commit.ci even run on main? Edit: yes, it does. Though as a push even instead of a pr event.

Now it does not anymore ;)

does pre-commit.ci even run on main? Edit: yes, it does. Though as a push even instead of a pr event.

Now it does not anymore ;)

Presumably this precludes us from using this?
Same if someone run pre-commit run -a on an up-to-date main locally — it's important that passes...

Presumably this precludes us from using this?

why? Now it only runs locally.

Same if someone run pre-commit run -a on an up-to-date main locally — it's important that passes...

Not sure why this has to pass, or why someone would even run that.
But hey, no strong feelings about this!

I just tried it and it does pass — I'm guessing it doesn't trigger unless it's committing.
So all good from my side (+ could even reenable the push check if we want)

Unless there are supporters, I would vote to close :'(


Flush method is not implemented in CompressedOutputStream

Hello,
I have noticed that io.javalin.compression.CompressedOutputStream class does not have flush method implementation. Could you please advise if it was done intentionally (because flushing will break something) or not?
I am looking into how I can implement SSE compression in Javalin and the absence of this method does not allow flushing data during streaming (so the client receives data only at the end of the response)

The original creator of this class is no longer around, but my immediate thought is that you won't be able to parse partial compressed content. Is that typically possible with gzip/brotli?

@tipsy Previously, I used the raw jetty and its handlers. This code allowed me to use gzip compression for SSE.
val servletHandler = ServletHandler()
server.handler = servletHandler
server.insertHandler(GzipHandler())

servletHandler.addServletWithMapping(/* my handler */)

So looks like it is possible. At least the data in the response was binary and was decoded correctly by curl with  --compressed option
I tried to configure jetty the same way in Javalin but it doesn't seem to work

I tried to configure jetty the same way in Javalin but it doesn't seem to work

That should work, Javalin does check for user-inserted handlers 🤔

@tipsy I have managed to enable gzip using GzipHandler from Jetty
It didn't work out of the box because they added text/event-stream into the list of the excluded mime types
https://github.com/eclipse/jetty.project/blob/release-11.0.13/jetty-server/src/main/java/org/eclipse/jetty/server/handler/gzip/GzipHandler.java#L200
After applying some configuration to GzipHandler it started to work and can be used like this
Javalin.create().apply {
  // configure handlers
  jettyServer()?.server()?.insertHandler(createGzipHandler())
}.start()

Hope somebody will find it helpful.
If there are no plans to implement a flush method in CompressedOutputStream I, probably, can close the question

If there are no plans to implement a flush method in CompressedOutputStream I, probably, can close the question

There aren't any plans, but I don't think anyone is standing in your way if you want to make a PR either :)

Sure, if I have time I will defiantly try to create a PR for that :)


[Settings] Right-clicking on Settings in taskbar shows the incorrect title

Minor nit: right-clicking the Settings process shows the project name (Microsoft.PowerToys.Settings.UI.Runner) instead of just 'PowerToys Settings'.

related: clicking on that option  open a seconds window with error:

That title is also what appears in Task Manager.

Thanks @royvou!!!

shouldn't it also be single instance to prevent a second forbidden window?

In v0.41.4, I see
Is that correct? Looks a bit inconsistent, still. Does that fall under this issue?

good job


Cursor doesn't return to correct position after rotating editor camera

Tested versions
Only tested in 4.3.beta3 and 4.2.2.stable. Is a problem in both.
System information
Godot v4.3.beta3 - Windows 10.0.22631 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2060 SUPER (NVIDIA; <IP_ADDRESS>99) - Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz (8 Threads)
Issue description
While in the 3D view if you move your cursor while releasing right click it puts your cursor at the center of the Godot window. If you stop moving the cursor before releasing it works as expected which is that it returns to where it was before moving the cursor.
I assume this happens because the code to keep the mouse centered in the window sees the cursor move since last frame, then centers it after the cursor was returned to it's original position.
Steps to reproduce
Open the 3D view in any project then rotate the camera.
Minimal reproduction project (MRP)
N/A

I can't seem to reproduce this on 4.3.beta da4f6e439 (Linux/X11):
https://github.com/user-attachments/assets/0c7b11b2-8b77-4199-88f8-2642a71d2544

Also unable to reproduce on 4.3-beta3/macOS 15. Maybe this is Windows-specific?

https://github.com/user-attachments/assets/3aa218c1-561e-4b8f-a9dd-80f8b791a02b
I don't know. Maybe a windows only problem.


Add ruby linter

Adding govuk-lint to ensure styleguide is adhered to as part of CI Build

Currently returns a pass because the linter only runs against the git diff meaning it won't touch any of the existing violations.

@thomasalanlee cleaned up


outlier: fix consecutive 5xx without interleaved success

@mattklein123 @tommyulfsparre fixes #1491.
@mattklein123 I went ahead and explained my reasoning in the comment in the code. However, I was debating between reseting the counter and lowering the counter by 1 hit for the non-enforced ejection scenario.
In the end I went ahead with resetting as I think of consecutive 5xx as discrete bouts of bad behavior.
However, I think an argument could be made that the counter should be reset in the enforcing case, and reduced only by 1 hit in the non-enforcing case. That way the "punished" host won't get ejected immediately after coming back, but the host that was not punished (because the ejection was not enforced) is kept "primed" to be ejected.

@junr03 also please update PR description to final commit message. Thank you.


add bindComplete: auto update bind keys when local storage external changed

Sorry. Been on hiatus from Github. Can you explain what this change is doing as add docs to support that? Thank you.


extractkernel for rdc code

Hi all,
I tried to write a global kernel and a device function and compile device function in a relocatable way(-fgpu-rdc). Then I tried to use extractkernel script to dump the AMD GPU assembly code.
Seems that it fails to dump since there is no .hip_fatbin section after extracting(objdump -h) the executable. So does anyone know which section (names) extractkernel needs to recognize to dump GPU kernel assembly?
P.S.: I am using ROCm 4.0.0 with clang(llvm) 12.
Thanks!

As extractkernel is removed from recent versions of ROCm (starting from 4.1) I doubt this will be fixed.
I would recommend you to call hipcc with -save-temps.

extractkernel has been replaced by 2 separate code object tools: roc-obj-ls and roc-obj-extract
roc-obj-ls <exe> | roc-obj-extract provides a similar functionality as extractkernel.  The recent version of the HIP programming guide has more details about these 2 tools.
-save-temps is another alternative as @ex-rzr has pointed out if you have the source files.

extractkernel has been replaced by 2 separate code object tools: roc-obj-ls and roc-obj-extract
roc-obj-ls <exe> | roc-obj-extract provides a similar functionality as extractkernel. The recent version of the HIP programming guide has more details about these 2 tools.
-save-temps is another alternative as @ex-rzr has pointed out if you have the source files.

Thanks @scchan! But I have some legacy problem that I need to use ROCm 4.0.0 where I think the roc-obj-ls is not available. I think I will try with -save-temps.

As extractkernel is removed from recent versions of ROCm (starting from 4.1) I doubt this will be fixed.
I would recommend you to call hipcc with -save-temps.

Hi @ex-rzr and @scchan , -save-temps generate a bunch of different files end in .bc, .mcin, .o and .hipfb. Most of them are object file(I think). So I need extra tools to interpret the object files?

Thanks, @ex-rzr for your patience!
Nop, I do not see files like *-gfx908.s. My case is a little complicated. Here is the repo for my example code: https://github.com/brad-mengchi/llvm-lto. It is mainly derived from HIP-example vectorAdd.
I tried to compile and see whether hipcc can perform LTO(-flto) with manually built LLVM.  I use compile.sh script to compile the files(a.cu and main.cu) where I separately compile and enable LTO(-flto):

hipcc -fgpu-rdc -c -flto a.cpp -o a.o
hipcc -fgpu-rdc -c -flto vectoradd_hip.cpp -o vectoradd_hip.o
hipcc -fgpu-rdc --hip-link -flto -v -save-temps a.o vectoradd_hip.o -o vectoradd_hip.exe

I only dump(-save-temps) at the last step since I would like to see the whole GPU device assembly code to understand whether hipcc(and its underneath LLVM) can perform LTO.
I am not sure whether it is because I tried to perform the separate compilation or tried to perform the LTO(-flto) to an example. Or it is just because no assembly code could be dumped at link time(This might be more possible). That's why I also look for extractkernel, where we can dump the assembly from the binary(but seems extractkernel cannot recognize the binary kernel sections).
Note: to enable LTO for LLVM, I also have to compile the LLVMgold.so plugin libraries.

@brad-mengchi   -fgpu-rdc is currently implemented with LTO.  I don't see a .s file with -fgpu-rdc and -save-temps either so that's probably a bug.  You could disassemble the a.out-hip-amdgcn*.lto.o with llvm-objdump --disassemble.
@aaronenyeshi Could you take a look at the -save-temps issue?

clang uses lld to do bitcode linking and codegen for -fgpu-rdc. lld -save-temps does not save .s file. However, it saves a.out-*precodegen.bc. You can use /opt/rocm/llvm/bin/llc with that bc file and get .s, which should be close to what you want.

Thanks @yxsamliu, I can dump the llc from the bc file to get the assembly code.
More interesting is that I found seems that llvm can inline the relocatable code(perform the link-time optimization) for the AMDGPU code even without -flto option. @scchan You said that -fgpu-rdc implemented with LTO. Does this mean AMDGPU implemented standalone LTO instead of using LLVM's infrastructure?
I found the relocatable code can be inlined between *.0.2.internalize.bc and *.0.4.preopt.s. So I guess AMD GPU pass could perform this inlining after variable internalization and even before (main) optimization?
After all, thanks all @yxsamliu @scchan @ex-rzr for your quick and detailed answer.

for -fgpu-rdc we use LTO by default through lld. It is the same LTO of LLVM. I think the inlining happens before internalization but there are optimizations before inlining and after inlining.

For people who might experience the same issue: remove -fgpu-rdc to create .s files for the device code


Waypoints function only triggering on screen resize.

Hi there,
Waypoints is only firing on the screen resize in this wordpress site. I've tried deactivating all plugins but it doesn't make any difference. Have you seen this happen before? What am I doing wrong?
The .manual-item elements that i'm watching are the yellow boxes. You can see in this example video:
https://drive.google.com/open?id=0B-FXQg_VQV3JQ1ZBQWxVRHUxOUE&authuser=0
And heres my code:
Line 40: https://github.com/lukephills/Kollektiv/blob/master/assets/js/app.js
Many thanks

Do you have a link I could play with?

Here's a link http://codepen.io/lukeyphills/pen/zxpVQR?editors=100

I worked it out in the end. I had both overflow: hidden; and overflow-y: scroll; on my container.
As soon as I removed that the functions fire immediately. Thanks


Modern dependency management

In my view, the way this repo handles its dependencies is a weak point. Dependencies are largely unversioned.
This makes bugs like these an inevitability:

https://github.com/UKGovernmentBEIS/inspect_ai/issues/695
https://github.com/UKGovernmentBEIS/inspect_ai/issues/41

If you're open to it, I think it would be great to switch to poetry for dependency resolution (or other modern tooling if you have a preference). I'm happy to handle making the change (including necessary changes to CI workflows etc). But for such a change to the core tooling I'd want the maintainers' blessing before I make PR.

If you're unfamiliar with poetry, here are two key pages to get you started:

https://python-poetry.org/docs/basic-usage/#installing-dependencies
https://python-poetry.org/docs/dependency-specification/

There are many advantages to using poetry, but if you don't want to use new tools, I think the absolute minimum that should be done is to specify dependency versions more tightly using constraints like >=, <.

Our approach to dependency versions is to be liberal on purpose until proven that we need a narrower dependency. The reason for this is that if too many libraries bound their versions then package solvers (conda, pip, uv, etc.) often can't resolve  situations where multiple packages are aggressively bounding. Alternatively, when upper bounds are used often solvers fall back to very old versions. We want to give solvers latitude to fit us into a deployment in an optimal fashion, again only applying version bounds when we have evidence that we need one.
The problem of excessive upper-bounding pinning is not unique to Poetry but it does seem to have been encouraged/facilitated by it. Here is a well reasoned critique of this practice that explains why it scales so poorly to a large ecosystem of libraries: https://iscinumpy.dev/post/bound-version-constraints/
Because of the above, packages necessarily need to take a different approach than deployments to versions. Deployments (i.e. your specific application and mix of packages) should hard lock onto package versions so you are reproducible and aren't exposed to random breakage. Packages though to be good citizens need to be as flexible as possible in their version requirements (even to the point of dynamically adapting to different versions of packages they depend on).
In terms of examples, this issue (https://github.com/UKGovernmentBEIS/inspect_ai/issues/41) was evidence for needing a narrower requirement so we applied it. For the Google issue it's an optional dependency but we do require at runtime version 0.8.1 or higher (the fact that they made a breaking change in 0.8.3 is hard to solve for in advance!). We could hard bind to 0.8.1 but that's arbitrary and users could be missing important bug fixes if we do that. I'm more inclined to rely on package authors to have some modicum of respect for semantic versioning (and then tack when they don't).
Currently, our core requirements.txt does not do very much version bounding (except for where we've seen evidence its required like typing_extensions, s3fs, etc. I am open to adding some lower bounds here if there are known issues they will help us avoid. In terms of optional dependencies, there we are more aggressive about lower bounding (typically requiring package versions from the past few months). You can see those requirements applied here in the MIN_VERSION constants for each provider: https://github.com/UKGovernmentBEIS/inspect_ai/blob/main/src/inspect_ai/model/_providers/providers.py.

Thanks for the thoughtful reply!
Definitely agreed that deployments should install dependencies from a lockfile, while libraries should specify much looser (or possibly no) constraints.
I especially liked the ISciNumpy.dev post. I wasn't familiar with the debate about whether upper bounds should ever be used, and it's shifted my perspective. Thanks!
I think there are two distinct questions for inspect:

Should the inspect repo use a lockfile (e.g. poetry.lock)?
How should dependencies be specified in pyproject.toml?

(Technically, a third question is: which dependency resolution algorithm is best? Poetry and pip each have their own dependency resolution algorithm. Historically, pip had a much less sophisticated dependency resolver. However, my vague impression is that with pip>=22.0, which uses resolvelib, it has caught up significantly. I was not able to quickly find more useful information about the pros and cons of modern pip and poetry resolution algorithms.)
Should the inspect repo use a lockfile?
My answer would be a strong yes. I think any project that is (or ever might be) installed more than once should have a lockfile. This includes all but the most trivial projects. For example:

if your project has more than one engineer working on it
if you'll ever install the project on a new laptop
if you have a CI pipeline

Without a lockfile, you do not have reproducible environments to develop the package or run tests. You are fully at the mercy of external changes in the dependency resolution. It's the dreaded 'it works on my machine'.
To express the same thing in terms of your deployment/library distinction: yes, inspect is a library, but every engineer's laptop, and GitHub actions, are 'deployments' that will be subject to random breakage without a lockfile.
Even for users of inspect who are not directly developing inspect, a lockfile is very useful when investigating a bug that might be caused by a dependency mismatch. The lockfile gives a 'known good' version of dependencies that inspect has been tested with. If we take the example of https://github.com/UKGovernmentBEIS/inspect_ai/issues/695, I suspected a dependency problem as the cause, but I had no way of checking what version of google-generativeai inspect had been tested with in your CI pipeline. Proving that the bug was (or that it was not) due to dependency versioning would have involved relatively painstaking trial and error, so I didn't do it. With a lockfile, this becomes trivial. In the case of https://github.com/UKGovernmentBEIS/inspect_ai/issues/695, I could have told you immediately in the issue report that it was a dependency specification problem.
How should dependencies be specified?

We could hard bind to 0.8.1 but that's arbitrary and users could be missing important bug fixes if we do that.

I completely agree, we don't want to pin ==0.8.1. I don't think anyone is advocating for pinning exact versions in pyproject.toml. I think that would be terrible!
As far as I can tell, the positions in this debate are:

The ISciNumpy.dev post argues that upper bounds should only be used when a newer version of a dependency is proven to be incompatible. Otherwise, they should never be used, not even for major versions.
Poetry's default is caret (^) versioning, which allows updates that are (supposed to be) compatible under semantic versioning.

I'm a bit confused about what your position is on this. Do you want to use semantic versioning or do you want to use no upper bounds?
On the one hand, you linked to the ISciNumpy.dev post, and said in https://github.com/UKGovernmentBEIS/inspect_ai/issues/695 "we are going to avoid upper-bounding like the plauge". On the other hand, you said in this thread "I'm more inclined to rely on package authors to have some modicum of respect for semantic versioning (and then tack when they don't)". These seem like contradictory positions.
As I said, I got a lot out of the ISciNumpy.dev post, and it did shift my views. I'm not sure I'm persuaded of the strongest version of its claims (no upper-bounding at all). I think there is still a trade-off here, between breakage caused by the lack of upper bound, and breakage caused by insufficient flexibility.
The strongest argument made by the ISciNumpy.dev post is that overly specific constraints cannot be fixed downstream, while insufficiently specific constraints can be fixed downstream once identified:

If a library requires pyparsing>=3 and another library requests pyparsing<3, that’s the end, you are out of business.

This means there is a strong asymmetry between the two types of breakage: breakage caused by being too specific, when it occurs, is much worse. However, this could still be worth it, if the breakage caused by being too specific is much rarer. I could imagine this being the case if you only restrict major versions.
In any event, if you have a strong view on this topic I'm happy to defer to it.

Also FWIW, I started having a brief look at what very popular Python packages (by stars on GitHub) do:

scikit-learn: no upper-bounds

django: no upper-bounds

fastapi: upper-bounds starlette and pydantic. At a glance, neither seem to me to be due to known incompatibility.

starlette: https://github.com/fastapi/fastapi/pull/12431
pedantic: https://github.com/fastapi/fastapi/pull/9816/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711

flask: no upper-bounds

requests: upper-bounds 3 out of 4 of its dependencies. At a glance, none seem to be due to known incompatibility.

charset_normalizer: https://github.com/psf/requests/pull/6261
idna: https://github.com/psf/requests/pull/4889
urllib3: https://github.com/psf/requests/pull/6545

mitmproxy: uses very tight bounding for almost all its dependencies. These are not due to known incompatibilities but rather seem to be some dependabot policy. If you do a git blame on the lines that specify the dependencies you can see that the changes were authored by dependabot

scrapy: no upper-bounds

Without a lockfile, you do not have reproducible environments to develop the package or run tests. You are fully at the mercy of external changes in the dependency resolution. It's the dreaded 'it works on my machine'.
To express the same thing in terms of your deployment/library distinction: yes, inspect is a library, but every engineer's laptop, and GitHub actions, are 'deployments' that will be subject to random breakage without a lockfile.

Have worked on many projects with and without lockfiles (the vast majority of our projects at AISI do in fact use Poetry lockfiles). In the case of Inspect, we are in some ways courting the variability so that we can discover issues with both newer and older versions as they come up. i.e. our users will not have lockfiles they'll just have a combination of older versions + very up to date versions. We want to expose ourselves to this same variability so we can proactively discover issues.
That said, if we regularly experienced pain associated with not being able to get/keep things running we'd absolutely go for lockfiles. So far it has been more of a benefit than a hinderance but we will happily shift gears if it becomes obvious we should.

I'm a bit confused about what your position is on this. Do you want to use semantic versioning or do you want to use no upper bounds?

When I say "semantic versioning" that's actually shorthand for just relying on the general practice of libraries doing their best not to cause breakage (I don't literally mean we will assume that semantic versioning works, which the referenced post does a good job pointing out doesn't really in practice). We allow a wide range of versions, then when we see issues attempt to resolve them by being maximally permissive (i.e. even dynamically supporting multiple versions if possible). Breakage happens, but so far we've only seen it from model API packages (which are often evolved alongside service changes) which is why we do more aggressively lower bounding there.
Philosophically, we really try to make our software "fit" the user's environment even if it causes us some inconvenience. I've seen too many projects struggle with adoption due to overly specific requirements. Developers of packages sometimes think their package is the center of the universe when that couldn't be further from the truth from a user standpoint!
All of that said, I think we currently suffer from not quite enough lower bounding, as often picking reasonable (e.g. ~ 2 year old) lower bounds can help users avoid the bugs and compatibility issues that tend to be addressed over time. We just need to set aside the time to make some good judgements there.

I went through each dependency to check to see if a good case could be made for a lower-bound. In 2 or 3 cases we actually had a hard requirement from a version (typically though 2 or 3 yrs old though so it didn't seem to come up in practice). In several other cases packages have had releases that take care of Python or OS compatibility issues or made material improvements to stability, and I set lower bounds in those cases as well.
Updated requirements.txt in this commit: https://github.com/UKGovernmentBEIS/inspect_ai/pull/736


Doesn't detect SPanish (Latam) audio in Funi

When I'm trying to download 2 audios from Funi, using the given command (also tryied withou the "")
aniDL.exe --service "funi" -s 124389 -e 4 -q 0 -dubLang "spa-419" "jpn" --dlSubs es-419 --defaultAudio spa-419 --mks
It shows the available languages
[ 0004] My Hero Academia - #04 Start Line (24:36) [HD1080, Japanese, Spanish] (selected)
But when the download starts, it only detects the jap audio, skipping the detection of spanish (latam) audio
[INFO] Selected Episodes: 0004
[INFO] My Hero Academia - S1E4 - Start Line
[INFO] Available streams (Non-Encrypted):
[#1254182] Japanese [Uncut] (selected) (using 'Spanish' for subtitles)
[#1616739] Spanish (Latin Am) [Uncut]

And the final result muxing is a video only with japanese with spanish subs:
[INFO] Subtitles downloaded!
[INFO][mkvmerge] Started merging
> "mkvmerge" -o "D:\AnyStream\multi-downloader-nx\videos\[Funimation] My Hero Academia - S01E04 [1080p].mkv" --no-date --disable-track-statistics-tags --engage no_variable_data --video-tracks 0 --audio-tracks 1 --track-name 0:"Japanese [Uncut]" --language 1:jpn --default-track 1:0 "D:\AnyStream\multi-downloader-nx\videos\[Funimation] My Hero Academia - S01E04 [1080p].video.jpn.ts" --track-name 0:"Latin American Spanish" --language 0:"spa-419" --default-track 0:0 "D:\AnyStream\multi-downloader-nx\videos\[Funimation] My Hero Academia - S01E04 [1080p].subtitle.spa-419.ass" --no-attachments
Is there anything that I could be ommiting when using the command in Funi videos?

You should try to use --dubLang

Closing because it works if using the proper flag --dubLang


Read ctf digitizer points from .pos file.

I used this reader for extracting hpi points for bst auditory tutorial to help with the coregistration. The original hpi points seem messed up (only five points available and coregistration doesn't seem to line up).
I checked the results with @agramfort and they seem surprisingly good. I'm not sure this is the right way to do it or if we even want something like this for the ctf reader.  Maybe @Eric89GXL has some insight.

I don't know much about CTF, I just translated the existing C tool for using it. :(

this .pos thing is a brainstorm habit not a native ctf behavior but I think we should add it for compatibility with BST and maybe the Omega database.
ok @Eric89GXL ?

Sounds reasonable to me, especially if we need it for #2587 or some other example

We should probably have some test that uses this, too. You could add a .pos file to the mne-testing-data repo and use it with the existing CTF data files perhaps?

yeah good idea.

I'm wondering if there should be a param for turning this on/off. In a sense, this is an API change.

let's keep it on all the time for now. We'll see if this causes a pb.

I see it more like a bug fix as otherwise we cannot use BST CTF data.

After thinking about it, I changed it so that eeg positions with an int id go up from 1000 and without an int go up from 2000. I'd suppose this way there are no overlaps.
Ready for review.

broken on py3k due to string unicode
see travis
besides LGTM

Travis passes now.

Other than one remaining old comment and one new comment, LGTM

thanks @jaeilepp !

please just update what's new... I forgot to ask.
thx !

please just update what's new

So would this go to the bug fix section?

New feature

On 23 févr. 2016, at 08:37, jaeilepp<EMAIL_ADDRESS>wrote:
please just update what's new
So would this go to the bug fix section?
—
Reply to this email directly or view it on GitHub.

Although it could change existing behavior so also API


Support natural sorting

I have set up a repo to collect holdings of ARK funds using flat
When I sort by market value column, I notice that the sorting is done in pure alphabetical sort order and the data is not sorted by the actual value.

Link to the data

The viewer doesn't currently coerce numbers with units to numbers. Would be a great feature to add! In the meantime, you could remove the $ unit for proper sorting

Removing the dollar sign is not enough to have a proper sorting.
The viewer will treat the remaining value (e.g. 123,456,789)  as a string because of the thousand separator.
We can try sort the shares column, which doesn't have the dollar sign but thousand separator, and we will see the data are sorted in unnatural order. (e.g. "90,000", "9,000", "8", "700,000")

Hi @Wattenberger, I want to help with this. I guess we can remove all the things that are not numbers from the data, parse those to numbers and sort them?
I can test it out if you point me to the file(s) with the related sorting logic.

@Andrewnt219 ,
We determine the data type at https://github.com/githubocto/flat-ui/blob/8f742eebc572a2fa34400777e4ebef01a867a66c/src/store.ts#L482-L488.
      const isFiniteNumber = Number.isFinite(+value);
      if (isFiniteNumber) {
        return [
          metric,
          metric.toLowerCase().trim() === 'year' ? 'year' : 'number',
        ];
      }

For the case $123,456.789, Number.isFinite(+"$123,456.789")) is false, so the UI don't treat it as a number.
Let say we remove the $ from the string, Number.isFinite(+"123,456.789")) is still false, so UI don't treat it as a number.
If seems that we can also remove ,, such that Number.isFinite(+"123456.789")) become true. However, it may cause an error because some locale use , as decimal delimiter.
e.g.
let a = 123.345;
let b = a.toLocaleString('de-DE'); // "123,345"
let c = b.replace(',',''); // "123345"
console.log(+c) // 123345

I considered using globalize to parse locale string, however, it will introduce an extra complexity to the UI. I think it is better to let user to post-process the data to handle the locale.
Anyway, I've prepare a set of mock data for you. The mock data includes a few types of locale string (with thousand separator + decimal separator and with thousand separator + decimal separator + currency)
You can try your implementation with them. Good luck.

@tsekityam thanks for your insights. I'll try to figure this out.

Ah, it's impossible after all. Without a specified locale, "100.99" can be either 100.99 or 10099.
So I guess we can only go with one locale and force users to follow a specific format for numbers?


Nonsensical bug

This is the strangest bug.
import numpy as np

def T(S):
    N = np.array([2,2]) # <- Change to a scalar, compiles.
    A = [S, N]
    return A

#pythran export test()
def test():
    B, S = 1.0, 2.0 # <- Change that to separate assignments, compiles
    F = T(S)
    n = int(2 * S)
    if n is None:
        n = int(B * 1. * S)  # <- remove this, compiles
    return F[0]

This bug makes no sense to me. The code above does not compile. n isn't used at all in test() yet if I remove the lines where it appears, compilation works. The root cause (maybe) is the assignment of B and S, if I put that on separate lines, things compile. But this makes no sense to me.

Closing this bug it was my own stupidity.
You can't return A. You have to return tuple(A). :(


fixed nwb

Pull Request instructions:

Please follow the update protocol
Answer the questions below in detail. Your responses will be emailed to experimenters.
If the experimenters must do anything new, provide detailed step by step instructions on the wiki
If computer maintainers need to manually update anything, provide detailed step by step instructions
Use markdown syntax in order for your comments to be rendered reliably in the email: "1." instead of "1)", use four spaces for indents.
If you use the keyword "skip email" in the title, it will skip the email updates
Merges from "develop" into "production_testing" should use the keyword "production merge" in the title for reliable indexing of updates
Merges from "production_testing" into "main" should use the keyword "update main"

Describe changes:

Fixed the NWB data type issue for B_DelayStartTimeHarp. The B_DelayStartTimeHarp is Null for optogenetics (no delay period for optogenetics condition), which will cause an error. This issue is solved by setting the default to np.nan for empty B_DelayStartTimeHarp.
Handle different names. Laser_# was previously updated to LaserColor_# for clarity. Updated here to handle both names.

What issues or discussions does this update address?
see Describe changes section.
Describe the expected change in behavior from the perspective of the experimenter
No
Describe any manual update steps for task computers
No
Was this update tested in 446/447?
Tested on my own computer with multiple sessions.

@alexpiet @hanhou I think we can merge this PR first and then migrate it to a different place where the downstream pipeline can easily get access to.

Added, but that file is not added to the test_json_urls in the TransferToNWB.py. We can do it in the next update.


The property "location" does not exist in the resource definition for 'Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01'

Bicep version
Bicep CLI version 0.7.4 (5afc312467)
Describe the bug
The property "location" does not exist in the resource definition for 'Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01'
To Reproduce
Running the following command doesn't work:
new-azresourcegroupdeployment -Name functionApp -TemplateFile C:\scrap\functionApp\template.bicep -ResourceGroupName test-rg

With this bicep resource:
resource sites_name_scm 'Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01' = {
  parent: sites_name_resource
  name: 'scm'
  properties: {
    allow: true
  }
}

Here is the error message:
New-AzResourceGroupDeployment: 11:38:25 - The deployment 'functionApp' failed with error(s). Showing 2 out of 2 error(s).
Status Message: The parameter location has an invalid value. (Code: BadRequest)
 - The parameter location has an invalid value. (Code:)
 -  (Code:BadRequest)
 -  (Code:)

If I correct the resource with the location property:
resource sites_name_ftp 'Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01' = {
  parent: sites_name_resource
  location: location
  name: 'ftp'
  properties: {
    allow: true
  }
}

I get the warning that the location property does not exist in the resource definition but the deployment works fine:
new-azresourcegroupdeployment -Name functionApp -TemplateFile C:\scrap\functionApp\template.bicep -ResourceGroupName test-rg
WARNING: C:\scrap\functionApp\template.bicep(189,3) : Warning BCP187: The property "location" does not exist in the resource definition, although it might still be valid. If this is an inaccuracy in the documentation, please report it to the Bicep Team. [https://aka.ms/bicep-type-issues]
C:\scrap\functionApp\template.bicep(198,3) : Warning BCP187: The property "location" does not exist in the resource definition, although it might still be valid. If this is an inaccuracy in the documentation, please report it to the Bicep Team. [https://aka.ms/bicep-type-issues]

DeploymentName          : functionApp
ResourceGroupName       : test-rg
ProvisioningState       : Succeeded
Timestamp               : 2022-06-28 15:39:44
Mode                    : Incremental
TemplateLink            :
Parameters              :
                          Name                      Type                       Value
                          ========================  =========================  ==========
                          sites_name                String                     "iagburnumtest01-cac-asp-mtr-01"
                          serverfarms_externalid    String
...

If the deployment is working as expected, then this is just an issue with the type. cc @seligj95 / @naveedaz as FYI

There are a few duplicates for this issue it may be worth de-duplicating.
#4815 (This issue has a second validation issue on top of the spec issue https://github.com/Azure/bicep/issues/4815#issuecomment-941162540)
Azure/azure-rest-api-specs#16382
#5531
#6220
#7396

This was annoying... had to add location to the bicep definition... VSCode doesn't like it, bicep dpeloyment warns about it, but Azure deployment succeeded with location defined in the template under the resource type Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01

this is 2025 and we still have this issue.


type definitions fix

Please let me know if you prefer another option and I will change to that if required.

Any idea when the changes merged with this PR will be published ?


Changing Training pipelines should trigger out of date message

and it doesn't :)

Closed by https://github.com/samtecspg/articulate/commit/15d818367930d265c27fa80d5fd9fbe4e38e514a


[3181] Illegal typescript generated when generating modules

Fixes #3181

Reminder: Above issues should be fixed before this can be merged.


chore: Fix coverage range and nested tests

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (499db13) 87.92% compared to head (b022ab2) 88.00%.
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    #6588      +/-   ##
==========================================
+ Coverage   87.92%   88.00%   +0.08%
==========================================
  Files          87       88       +1
  Lines        2931     2951      +20
  Branches      804      805       +1
==========================================
+ Hits         2577     2597      +20
  Misses        295      295
  Partials       59       59

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


feat: add provenance.jq

summary

adds provenance.jq filter to generate in-toto provenance for GHA builds

usage
example usage:
json="$(
  jq -L.scripts '
    include "meta";
    .[env.BUILD_ID]
    | select(needs_build and .build.arch == env.BASHBREW_ARCH) # sanity check
    | .commands = commands
  ' builds.json
)"

image-digest() {
  local dir="$1"
  local manifest
  manifest="$dir/blobs/$(jq -r '.manifests[0].digest | sub(":"; "/")' "$dir/index.json")" || return "$?"
  jq -L.scripts -r -s '
    include "oci";
    . | image_digest("linux"; env.BASHBREW_ARCH)
  ' $manifest || return "$?"
}
digest=$(image-digest temp)

echo $json | jq -L.scripts --arg digest ${digest}  '
  include "provenance";
  github_actions_provenance
' >> provenance.json

output
example output:
{
  "_type": "https://in-toto.io/Statement/v1",
  "subject": [
    {
      "name": "pkg:docker/notary:server-0.7.0?platform=linux%2Famd64",
      "digest": {
        "sha256": "b58c16c79286924b4b96f11061c34498fe137db319aa3e5b606e309f492f2edb"
      }
    },
    {
      "name": "pkg:docker/notary:server?platform=linux%2Famd64",
      "digest": {
        "sha256": "b58c16c79286924b4b96f11061c34498fe137db319aa3e5b606e309f492f2edb"
      }
    },
    {
      "name": "pkg:docker/amd64/notary:server-0.7.0?platform=linux%2Famd64",
      "digest": {
        "sha256": "b58c16c79286924b4b96f11061c34498fe137db319aa3e5b606e309f492f2edb"
      }
    },
    {
      "name": "pkg:docker/amd64/notary:server?platform=linux%2Famd64",
      "digest": {
        "sha256": "b58c16c79286924b4b96f11061c34498fe137db319aa3e5b606e309f492f2edb"
      }
    },
    {
      "name": "pkg:docker/oisupport/staging-amd64:96b43f70bdd4601f5dd42b5525f9818e4b834fde87a0311e28401b4c9a836ff4?platform=linux%2Famd64",
      "digest": {
        "sha256": "b58c16c79286924b4b96f11061c34498fe137db319aa3e5b606e309f492f2edb"
      }
    }
  ],
  "predicateType": "https://slsa.dev/provenance/v1",
  "predicate": {
    "buildDefinition": {
      "buildType": "https://actions.github.io/buildtypes/workflow/v1",
      "externalParameters": {
        "inputs": {
          "bashbrewArch": "amd64",
          "buildId": "96b43f70bdd4601f5dd42b5525f9818e4b834fde87a0311e28401b4c9a836ff4",
          "firstTag": "notary:server-0.7.0"
        },
        "workflow": {
          "ref": "refs/heads/main",
          "repository": "https://github.com/mrjoelkamp/gha-test",
          "path": ".github/workflows/test.yml",
          "digest": {
            "sha256": "11d1f3b6c0efade1b907d0ff3ab41e960787fbf4"
          }
        }
      },
      "internalParameters": {
        "github": {
          "event_name": "workflow_dispatch",
          "repository_id": "712982891",
          "repository_owner_id": "2976326"
        }
      },
      "resolvedDependencies": [
        {
          "uri": "git+https://github.com/mrjoelkamp/gha-test@refs/heads/main",
          "digest": {
            "gitCommit": "11d1f3b6c0efade1b907d0ff3ab41e960787fbf4"
          }
        }
      ]
    },
    "runDetails": {
      "builder": {
        "id": "https://github.com/mrjoelkamp/gha-test/.github/workflows/test.yml@refs/heads/main"
      },
      "metadata": {
        "invocationId": "https://github.com/mrjoelkamp/gha-test/actions/runs/10780651714/attempts/1"
      }
    }
  }
}

I think the shape of this is probably roughly OK -- I've got a lot of minor comments, but I don't want the higher-level discussion to get lost in them, so I'll save them for now. :smile:
I am concerned by how GitHub-centric it is.  Perhaps slightly more accurately, I'm concerned that there aren't any obvious indications or guardrails or places to put a clear TODO for non-GitHub usage of code that is mostly generic. :eyes:
Do you have any thoughts on how/where this might change if we were to generate it from Jenkins also?  Which values would need to change?  To be clear, I don't think we need to do all the work for that, but IMO it's worth annotating at least the things we know are GitHub-only and/or somewhere in the file adding a note that makes it really clear this is GitHub specific for now, perhaps even naming the function github_actions_provenance or something instead?  (Thinking through it more, that last one is probably enough to make me feel satisfied :joy:)
Do you want me to go through nits here/now, or wait until we're closer to integrating before hitting the low-level/cosmetic stuff?

I'm not completely done, and I think there's still some discussion points open (notably the high-level input) so I'm trying to avoid commenting in places that might change or go away based on those discussions, but here's a few more nit-picking notes before I go to lunch 👀

@LaurentGoderre and I hit most of these comments and we also refactored the high level input to use the build object for the buildId as an output from the build job pass into the sign job to hopefully resolve https://github.com/docker-library/meta-scripts/pull/76#discussion_r1765457800
Remember that we have a working test environment and some of the high-level changes aren't captured here but will be in a future PR with changes to build.yml. all of these changes are tested and verified working in GHA in a separate repo.

I had more suggestions, but figured they might be easier to digest as explicit commits instead of a pile of interconnected suggestions (or prose / whatever it is that GitHub does with suggestion blocks that span a large number of lines):

https://github.com/docker-library/meta-scripts/commit/96f29bc091b013eca44d873e65daa0851a1c6fb6

Collapse more functions into main doc, add more trailing commas, minor calculation adjustments
The primary justification for collapsing everything back into the main document (aside from there only being a single caller for each function) is that it makes verifying that we didn't miss anything easier -- as you scan the document, for each field that contains a "load-bearing" URL (first https://in-toto.io/Statement/v1, then https://slsa.dev/provenance/v1, and finally https://actions.github.io/buildtypes/workflow/v1), if you open the URL it describes the expected format, fields, and values, and with them all here and in-order, they're much easier to match up and validate to be correct and exhaustive.  Granted, that will change over time as we shove more and more (optional) data into this document so that it includes a more complete picture, but for now, this is makes it really easy to double check our work (and the end result is no less organized; for example, the externalParameters are still all grouped together under a suitable heading describing what their purpose is).
I also made some minor changes to the way values were calculated, especially in the workflow block, but very related to the above justification: now the way we calculate the values matches the way they're described in https://actions.github.io/buildtypes/workflow/v1 (specifically using the exact fields parsed in the exact ways they suggest).  We will probably deviate from that over time (as suggested by a new "TODO" comment I included), but at least this way our baseline matches theirs and the delta will be easier to track.
Additionally, I removed the (env.GITHUB_CONTEXT | fromjson) as $github line from here, because I think that's more appropriate behavior for the caller (and added back the explicit function arguments).  This will be more clearly meaningful in my follow-up commit adding a basic test.

https://github.com/docker-library/meta-scripts/commit/ad28b37e88258c159f9480063ef8165b4ee40973

Add a basic test of the provenance (both amd64 and windows, to illustrate/validate the inputs variance)

You can also view them via https://github.com/docker-library/meta-scripts/compare/24e679e89987a94f28285b27eb8ba4dab5c3a224...ad28b37e88258c159f9480063ef8165b4ee40973 or steal them directly via fetch-by-commit or https://github.com/infosiftr/doi-meta-scripts/tree/tianon-provenance if you find them unobjectionable as-is.  (Of course, happy to discuss further, explain more/better, push directly, adjust, etc etc.)

You can also view them via 24e679e...ad28b37 or steal them directly via fetch-by-commit or https://github.com/infosiftr/doi-meta-scripts/tree/tianon-provenance if you find them unobjectionable as-is. (Of course, happy to discuss further, explain more/better, push directly, adjust, etc etc.)

@tianon 🙇 thanks for making the time to take a pass on this!  I pushed your commits since I don't really have any objections and like the way it turned out.
I also added the runner context, in order to not hardcode runner.environment in d9b5735.
I didn't realize there was a whole test framework here 😆 , appreciate the addition and updated it with the runner context.

I also made some minor changes to the way values were calculated, especially in the workflow block, but very related to the above justification: now the way we calculate the values matches the way they're described in https://actions.github.io/buildtypes/workflow/v1 (specifically using the exact fields parsed in the exact ways they suggest).  We will probably deviate from that over time (as suggested by a new "TODO" comment I included), but at least this way our baseline matches theirs and the delta will be easier to track.

I might want to revert the workflow back to what we had before. Specifically, because this really should represent the workflow claims. As implemented in https://github.com/actions/attest-build-provenance for example, they also decided to use the github.workflow_ref as a basis for the workflow metadata:
    const [workflowPath, workflowRef] = claims.workflow_ref
        .replace(`${claims.repository}/`, '')
        .split('@');

...
                externalParameters: {
                    workflow: {
                        ref: workflowRef,
                        repository: `${serverURL}/${claims.repository}`,
                        path: workflowPath
                    }
                },

I believe this is more accurate despite the example in the build type definition.

The problem is we don't have a workflow_repository variable, so we're still relying on the context being the same so it didn't feel worthwhile IMO to only fix that dissonance halfway :thinking: