Skip to content

[anneal] Add playground metadata - #2

Open
platonicsock wants to merge 53 commits into
mainfrom
G65mwqxbdjmwi2jj4gocgwsitq76ek3dh
Open

[anneal] Add playground metadata#2
platonicsock wants to merge 53 commits into
mainfrom
G65mwqxbdjmwi2jj4gocgwsitq76ek3dh

Conversation

@platonicsock

@platonicsock platonicsock commented Aug 3, 2026

Copy link
Copy Markdown
Owner

⬇️ Download this PR

Branch

git fetch origin refs/heads/G65mwqxbdjmwi2jj4gocgwsitq76ek3dh && git checkout -b pr-G65mwqxbdjmwi2jj4gocgwsitq76ek3dh FETCH_HEAD

Checkout

git fetch origin refs/heads/G65mwqxbdjmwi2jj4gocgwsitq76ek3dh && git checkout FETCH_HEAD

Cherry Pick

git fetch origin refs/heads/G65mwqxbdjmwi2jj4gocgwsitq76ek3dh && git cherry-pick FETCH_HEAD

Pull

git pull origin refs/heads/G65mwqxbdjmwi2jj4gocgwsitq76ek3dh

Stacked PRs enabled by GHerrit.

joshlf and others added 30 commits June 5, 2026 04:04
Move the Zerocopy crate and its vendored Cargo configuration under
`zerocopy/`, and update CI, docs, hooks, and helper scripts to run
zerocopy commands from that directory.

This keeps zerocopy in its own vendored Cargo world while allowing
tools, Anneal, and future crates to use normal Cargo resolution and not
require vendoring their dependencies.

Also move `anneal/v2/exocrate` to the repository root.

gherrit-pr-id: Ghuilhfh6h4womt35vc6domtloovmnnhl
Bumps the cargo group with 4 updates in the /anneal directory: [tar](https://github.com/composefs/tar-rs), [openssl](https://github.com/rust-openssl/rust-openssl), [rand](https://github.com/rust-random/rand) and [rustls-webpki](https://github.com/rustls/webpki).


Updates `tar` from 0.4.45 to 0.4.46
- [Release notes](https://github.com/composefs/tar-rs/releases)
- [Commits](composefs/tar-rs@0.4.45...0.4.46)

Updates `openssl` from 0.10.76 to 0.10.80
- [Release notes](https://github.com/rust-openssl/rust-openssl/releases)
- [Commits](rust-openssl/rust-openssl@openssl-v0.10.76...openssl-v0.10.80)

Updates `rand` from 0.9.2 to 0.9.4
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/0.9.4/CHANGELOG.md)
- [Commits](rust-random/rand@rand_core-0.9.2...0.9.4)

Updates `rustls-webpki` from 0.103.10 to 0.103.13
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](rustls/webpki@v/0.103.10...v/0.103.13)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 0.4.46
  dependency-type: direct:production
  dependency-group: cargo
- dependency-name: openssl
  dependency-version: 0.10.80
  dependency-type: indirect
  dependency-group: cargo
- dependency-name: rand
  dependency-version: 0.9.4
  dependency-type: indirect
  dependency-group: cargo
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This cfg deactivates Debug and Display for floatting point numbers, this is
particluarly useful in kernel context.
The implementation is inspired by:
rust-lang/rust@ec7292ad3c35

Fixes google#3426
- Add nix derivations for exocrate
- Add `setup` sub-command to locate-or-install exocrate
- Add integration test for "developer mode" `setup` that presumes local
  exocrate archive
- Add github workflows to:
  - Warm nix cache
  - Locally link exocrate archive from nix, then run all tests

gherrit-pr-id: Gwhroikc5idscowxamayknlke2uiddzv3
Share the exocrate installer between Anneal and v2, and have non-v2 Anneal install the same Nix-built omnibus archive that v2 already produces. The generated Lean workspace can then use the archive layout directly instead of cloning and rewriting Lake dependencies at runtime.

Update Anneal CI to build the archive with Nix, install it before root tests and example checks, and run the Lean-heavy integration suite serially. The workflow no longer depends on a Docker image that pre-bakes the old setup output.

gherrit-pr-id: Gefzjo7bqy3imk4ti4im5wep4jz3upvrm

Co-authored-by: Mark Dittmer <markdittmer@google.com>
…3443)

The installed Nix-built toolchain archive is read-only, and generated verification workspaces symlink vendored .lake/build directories back into that archive to avoid copying several GiB of prebuilt Lean artifacts per run.

Normalize copied vendored Lake source/config mtimes to the Unix epoch so Lake --old treats the linked archive cache artifacts as reusable instead of trying to delete and rebuild read-only .olean files through those symlinks.

gherrit-pr-id: Gqbvdpe5hujures6czytfxm2bfeoeddlx
Teach the Nix archive builder to construct all supported platform archives from platform-specific upstream artifacts, unpack Mathlib cache archives using a native leantar, and seed vendored Lake path packages from the unpacked cache layout.

Run the archive verification build in Lake's old mtime mode with deterministic source/config mtimes so the prebuilt cache artifacts are replayed instead of invalidated and rebuilt in the Nix sandbox.

gherrit-pr-id: Gvs2nuhwbbh5phbtjrqaw4uc7odrdp7ce
gherrit-pr-id: Gra3t2uewe7dw5cfr6mu3gnvggplikenc
gherrit-pr-id: Grl7i4qbjhlucgcy6c42kx2y65nxbk4dz
…w pins (google#3448)

* Fix create-pull-request action pins

* Ignore intentional Docker shell in zizmor

* Limit blocking zizmor findings to medium severity
…#3416)

Renames `zerocopy_unstable_derive_on_error` to `zerocopy_unstable_linux`.

Adds unstable `derive(most_traits)` which attempts to quietly derive
all zerocopy traits, but excludes traits like `Hash` for which
zerocopy provides optimized derives.

gherrit-pr-id: G713b9f3eb6365b11e4e1777ee69e75a6fae758d3
Fixes google#3428

Co-authored-by: Sagar Taunk <sagartaunk@proton.me>
Pass --diagnostic-width=100 to rustc in UI tests to ensure consistent
error message line-wrapping regardless of the terminal width of the
environment in which the tests are run.

The flag is skipped for the 'msrv' toolchain (Rust 1.56.0) since it was
only stabilized in Rust 1.70.0.

The TERM/COLUMNS environment variables are retained since they can still
influence other tools, but a comment is updated to clarify that
--diagnostic-width is now the primary and more reliable mechanism.

Fixes google#3113

Co-authored-by: Krish Sapru <ksapru@bu.edu>
Use XDG cache dir instead of home dir on `UserGlobal` installs,
to prevent polluting user home directories.

Fixes: google#3420
Findings: lake --old helps but is not enough if archive inputs have fresh mtimes, and without a root manifest Lake reconfigures path dependencies and writes locks into read-only package config trees; Lake manifest path entries can be relative to the generated workspace. In response, v1 generated workspaces now require Aeneas directly from the installed archive, write a locked relative lake-manifest.json, stop copying Aeneas/packages and symlinking .lake/build, and the archive build primes config caches, rewrites upstream trace prefixes, and makes Lake inputs older than prebuilt artifacts.

gherrit-pr-id: Gf5g4ujwxwoivi2uce2w3zt2hemew6jfi
Findings: the symlink-free v1 contract depends on a fully read-only extracted Aeneas archive being usable by a fresh generated workspace with a complete relative manifest, lake --old, and no package reconfiguration or cache rebuild. In response, v1 and v2 integration tests now install the Nix-built archive, assert Aeneas is read-only, create a tiny generated Lake workspace with a relative locked manifest, then run lake --old build Generated and lake env lean --json against the archive to catch regressions.

gherrit-pr-id: Gk6ir6ucgyyji67sqkhteqq3wjxijq7at
…oogle#3399)

TAG=agy

gherrit-pr-id: Gisb7egnyltdoxlay3of6lmsjbtlok7ct
Fixes google#3466

gherrit-pr-id: G304df306ff9b25d6a30a8c91906232a439cf2ba4
…oogle#3471)

Bumps the all-actions group with 11 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `6.0.3` | `7.0.0` |
| [rust-lang/crates-io-auth-action](https://github.com/rust-lang/crates-io-auth-action) | `1.0.4` | `1.0.5` |
| [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) | `3.21.0` | `3.21.2` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `8.1.0` | `8.1.1` |
| [actions/cache/restore](https://github.com/actions/cache) | `5.0.5` | `6.1.0` |
| [actions/cache/save](https://github.com/actions/cache) | `5.0.5` | `6.1.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `4.1.0` | `4.2.0` |
| [docker/login-action](https://github.com/docker/login-action) | `4.2.0` | `4.4.0` |
| [docker/build-push-action](https://github.com/docker/build-push-action) | `7.2.0` | `7.3.0` |
| [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.5.6` | `0.5.7` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.36.2` | `4.36.3` |



Updates `actions/checkout` from 6.0.3 to 7.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@df4cb1c...9c091bb)

Updates `rust-lang/crates-io-auth-action` from 1.0.4 to 1.0.5
- [Release notes](https://github.com/rust-lang/crates-io-auth-action/releases)
- [Commits](rust-lang/crates-io-auth-action@bbd8162...c6f97d4)

Updates `DeterminateSystems/determinate-nix-action` from 3.21.0 to 3.21.2
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](DeterminateSystems/determinate-nix-action@4eea0b3...629b284)

Updates `peter-evans/create-pull-request` from 8.1.0 to 8.1.1
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@c0f553f...5f6978f)

Updates `actions/cache/restore` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@27d5ce7...55cc834)

Updates `actions/cache/save` from 5.0.5 to 6.1.0
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@27d5ce7...55cc834)

Updates `docker/setup-buildx-action` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@d7f5e7f...bb05f3f)

Updates `docker/login-action` from 4.2.0 to 4.4.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@650006c...af1e73f)

Updates `docker/build-push-action` from 7.2.0 to 7.3.0
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](docker/build-push-action@f9f3042...53b7df9)

Updates `zizmorcore/zizmor-action` from 0.5.6 to 0.5.7
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](zizmorcore/zizmor-action@5f14fd0...192e21d)

Updates `github/codeql-action/upload-sarif` from 4.36.2 to 4.36.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@8aad20d...54f647b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-actions
- dependency-name: rust-lang/crates-io-auth-action
  dependency-version: 1.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.21.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: peter-evans/create-pull-request
  dependency-version: 8.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: actions/cache/restore
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-actions
- dependency-name: actions/cache/save
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-actions
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
- dependency-name: docker/login-action
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
- dependency-name: docker/build-push-action
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.5.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.36.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
gherrit-pr-id: Ghyweelxm6wjg643tibrylyutabstm4eo
* Inline zerocopy layout helpers

* Inline zerocopy layout helpers
* Add baseline inline annotations

* Gate baseline inline annotations
google-pr-creation-bot and others added 23 commits July 8, 2026 20:37
gherrit-pr-id: Gd9e350a7c6d7eef44a2d2f32e00a2325b6413f7c
---
updated-dependencies:
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.21.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: step-security/harden-runner
  dependency-version: 2.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the all-actions group with 3 updates: [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action), [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action).


Updates `DeterminateSystems/determinate-nix-action` from 3.21.5 to 3.21.7
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](DeterminateSystems/determinate-nix-action@c70cb8a...2a0be24)

Updates `zizmorcore/zizmor-action` from 0.5.7 to 0.6.0
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](zizmorcore/zizmor-action@192e21d...6599ee8)

Updates `github/codeql-action/upload-sarif` from 4.37.0 to 4.37.1
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@99df26d...7188fc3)

---
updated-dependencies:
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.21.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Support deriving `IntoBytes` on unmodified `repr(C)` structs whose
fields are all `T`, `[T; N]`, or a final `[T]` for the same generic type
parameter `T`.

All such fields have the same alignment, and each field's size is a
multiple of that alignment. Thus, `repr(C)` introduces neither
inter-field nor trailing padding.

Use an `Identity<Type = T>` bound to have rustc verify that each field's
element type actually resolves to `T`. This guards against
macro-generated identifiers which compare equal in the derive but have
different hygiene contexts.

gherrit-pr-id: Gsxxjwwhqbpepd5p73rd6libcy7n44svt
The vendored dependency graph makes resolver-only direct dependencies
in testutil unnecessary. Remove them, relax exact requirements already
fixed by Cargo.lock, and prune winapi-util and windows-sys once they
leave the graph.

With registry sources available locally, cargo-zerocopy no longer needs
to generate a lockfile before resolving package IDs. Remove that call
and an obsolete CI comment about using stable Cargo for metadata.

gherrit-pr-id: G766m443zedlghi5gd5ww2n7egxarkoph
Bumps the all-actions group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `7.0.0` | `7.0.1` |
| [DeterminateSystems/determinate-nix-action](https://github.com/determinatesystems/determinate-nix-action) | `3.21.7` | `3.21.8` |
| [docker/login-action](https://github.com/docker/login-action) | `4.4.0` | `4.5.1` |
| [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) | `0.6.0` | `0.6.1` |
| [ossf/scorecard-action](https://github.com/ossf/scorecard-action) | `2.4.3` | `2.4.4` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.37.1` | `4.37.3` |


Updates `actions/checkout` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@9c091bb...3d3c42e)

Updates `DeterminateSystems/determinate-nix-action` from 3.21.7 to 3.21.8
- [Release notes](https://github.com/determinatesystems/determinate-nix-action/releases)
- [Commits](DeterminateSystems/determinate-nix-action@2a0be24...d966783)

Updates `docker/login-action` from 4.4.0 to 4.5.1
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@af1e73f...abd2ef4)

Updates `zizmorcore/zizmor-action` from 0.6.0 to 0.6.1
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](zizmorcore/zizmor-action@6599ee8...6fc4b00)

Updates `ossf/scorecard-action` from 2.4.3 to 2.4.4
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](ossf/scorecard-action@4eaacf0...2d11466)

Updates `github/codeql-action/upload-sarif` from 4.37.1 to 4.37.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@7188fc3...e4fba86)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: DeterminateSystems/determinate-nix-action
  dependency-version: 3.21.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: docker/login-action
  dependency-version: 4.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Building zerocopy under Kani without the 'alloc' feature (e.g. plain
'cargo kani autoharness' on the crate) fails with:

    error: unused extern crate
       --> src/lib.rs:405:1
        |
    405 | extern crate alloc;

because the crate denies unused_extern_crates. Under cfg(kani) the crate is
not no_std (lib.rs gates no_std on 'not(any(test, kani, feature = "std"))'),
so the Kani proofs resolve Vec/vec! through the std prelude, and nothing
references the 'alloc' crate by name; the 'use alloc::...' imports are gated
on 'any(feature = "alloc", test)' only. Hence the 'kani' predicate in the
'extern crate alloc' gate declares a crate that is never used unless the
'alloc' feature is (also) enabled -- and CI always enables it via the stable
feature set, which is why this never showed up there.

Drop 'kani' from the gate. Verified all configurations compile: 'cargo kani
--only-codegen -Z function-contracts' with no features (previously broken)
and with the stable feature set, plus 'cargo check' with no features
(no_std), with 'alloc', and with '--tests'.
The v2 stack previously introduced util.rs in a merged PR but declared the module only when the Charon integration started using it. Declare the module as soon as it exists so later PRs can add users without making earlier files look inert.

The temporary dead_code allowance is needed because this bottom-of-stack commit only wires in the module; subsequent generate/Charon changes remove the allowance once the utilities have production call sites.

gherrit-pr-id: Ga2l5vkuio57w6b4kafskxw2bg4ri57gr
gherrit-pr-id: Gusk7sfx53btetxh4h4ew4mg24cjvtya6
…gle#3400)

TAG=agy

gherrit-pr-id: Gbbpbt76nsgp2ohpclea46vot5joxx7b5
…ic (google#3401)

TAG=agy

Resolve Cargo requests into explicit package, target, and target-kind artifacts instead of preserving only user-facing Cargo flags for later Charon invocation. This keeps downstream stages from relying on Cargo output conventions whose shape depends on flags and workspace configuration.

A future single `charon cargo` invocation strategy would need to account for these hazards:

- one `--dest-file` is unsafe when Cargo selects multiple primary units, since multiple Charon driver invocations can race on that path;
- Charon directory output is named by Rust crate name, so workspace packages can collide when they share `[lib] name`;
- target selectors such as `--tests`, `--bins`, and default selection can produce extra or multiple artifacts;
- Charon options such as `--start-from` and `--opaque` are invocation-wide and would be applied to every selected target;
- lib+bin package builds may compile a sibling library under `RUSTC_WRAPPER`, which can fail if that library is translated instead of producing the rlib the bin needs.

gherrit-pr-id: Gjnh4bziqtksdvg43zzll4732lxlcuss3
…tifacts (google#3402)

TAG=agy

gherrit-pr-id: G2xsxxkfz5kle6aunmehujqcrly3rjr4f
gherrit-pr-id: G3ub4smvhm3rbp6d53jhwn3knjeaw7ugn
gherrit-pr-id: Gaso4is5l3ore5u3xhbeclucymmqjxqz7
gherrit-pr-id: Gpaak2r3mpajdigm5vcopjcopsv6gcuxr
Retry Buildx setup, registry authentication, and Anneal artifact
downloads up to three times, with increasing jitter between
attempts. Clean up only the expected partial artifact before a
download retry.

Enable bounded Cargo and rustup client-native retries for recognized
transient downloads, and propagate them through the CI image build
and runtime container boundary.

Keep every retry below the build and test command boundary so
deterministic compilation, test, Miri, and Anneal failures are never
retried.

gherrit-pr-id: G5v4j2xq7m3n6c9kptwfhzr8dsaeybluq
Build and export the CI Docker image once, upload its gzip-layer archive
directly, and have every matrix cell select that exact artifact by
the producer-generated ID. Load and validate the image locally, then
remove the archive immediately. This eliminates per-cell Buildx setup,
registry login, and cache reconstruction while preserving fork behavior.

Apply the same immutable-ID contract to the Anneal toolchain
fan-out. Upload both already-compressed files without a redundant ZIP,
centralize their filenames, and validate upload metadata, download
selectors, file shape, digest, and rerun overwrite behavior in shared
local actions.

The current Docker cache contains 1,275,967,148 compressed bytes. A
representative 60-cell hosted PR spent 3,265 aggregate seconds
in per-cell Buildx and cache loading, averaging 54.4 seconds per
cell. This change should remove repeated BuildKit bootstrap and
cache-solve overhead; artifact transfer and docker load remain and
require hosted follow-up measurement.

gherrit-pr-id: Gr7m2v9k4x6c3p8s5d1f0h2j4l6n8q0w2
Treat the PR-local Anneal Nix cache as a fallback for an exact miss in
the trusted main cache. Skip its restore, population, and save when
`main` already supplies the same archive inputs.

This removes a redundant 1.465 GB cache transfer or publication from
ordinary pull requests while preserving branch-local reuse for
archive-changing PRs.

gherrit-pr-id: G8b5ff74785cf1dfeef62eb4ce695116cac0e9290
gherrit-pr-id: G65mwqxbdjmwi2jj4gocgwsitq76ek3dh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.