ci: canonicalize and merge-gate pixi lockfiles - #2841
Open
rwgk wants to merge 4 commits into
Open
Conversation
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Signed-off-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Contributor
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Contributor
Author
|
/ok to test 0ab2584 |
Contributor
|
rwgk
marked this pull request as ready for review
September 12, 2026 06:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Related to #2804. Follow-up to #2780.
Operational testing found that Pixi 0.73.0 has two command paths that disagree
about the byte-canonical representation of the same resolved lockfile:
pixi update --no-installwrites one form, whilepixi lock --checkexitssuccessfully but rewrites it to another. This made an automatically generated
refresh PR fail the freshness check intended to validate it. The complete
reproduction and evidence are in this issue comment.
This PR keeps Pixi pinned at 0.73.0 and:
pixi lock --check, then verifiesthat a second check leaves the lockfile byte-identical;
manual refresh workflow;
Pixi lockfile freshness gatewhile retaining theper-workspace diagnostic jobs;
ci-pixi-lockfile-overridelabel as anexplicit emergency escape hatch; and
benchmarks/cuda_core/pixi.lockbaseline withoutchanging resolved package versions.
The aggregate gate runs on every pull request, so making it required cannot
leave path-unrelated PRs waiting for a check that was filtered out. An override
changes only the aggregate decision: failed workspace diagnostics remain
visible. Override approval is tied to the current PR head; opening, reopening,
or pushing a new head removes or invalidates the label.
After this merges, repository configuration will require
Pixi lockfile freshness gatefor pull requests targetingmain. This will usea separate main-only ruleset so maintenance branches that do not contain the
workflow are unaffected.
Review focus
refresh output reaches a byte-stable fixed point.
only.
jobs, and is invalidated for a new PR head.
Validation
6aea1414...; a second check was byte-identical and no resolved packageversions changed.
pixi lock --checkwith Pixi 0.73.0 passed for all six workspaces with nolockfile byte diff.
pre-commit run --all-filespassed, including actionlint, YAML validation,link checking, typing, and secret scanning.
0ab2584completed with 134 passing checks, five intentionalskips, and no pending or failed checks. The
Pixi freshness run
passed discovery, all six workspace diagnostics, and the stable gate; the
full CI run
passed its complete cross-platform matrix.
pull_request_targetevent until it is present on the default branch; itsevent scope, permissions, shell logic, and YAML were validated locally.
Checklist