From 0d14120002091be39c7652da8f1bc4c84e32d030 Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Wed, 3 Jun 2026 12:06:27 -0700 Subject: [PATCH 1/8] Pin each release's rust base image by digest. --- .github/workflows/build.yml | 12 +- .github/workflows/publish.yml | 1 + README.md | 27 ++- RELEASE.md | 38 ++-- builds.json | 16 +- builds.schema.json | 29 +-- scripts/build_image.py | 14 +- scripts/lib/builds.py | 45 +++-- scripts/publish_aliases.py | 4 +- scripts/publish_manifests.py | 13 +- scripts/refresh.py | 161 ++++++++++++++++ scripts/refresh_rust_digests.py | 71 ------- scripts/refresh_stellar_cli_digests.py | 74 -------- scripts/release_pr_body.py | 6 +- scripts/release_prepare.py | 120 ++---------- scripts/resolve_matrix.py | 8 +- scripts/tag_names.py | 36 +++- scripts/validate_json.py | 21 +- ...npinned.json => builds_invalid_entry.json} | 6 +- tests/fixtures/builds_minimal.json | 5 +- tests/fixtures/builds_multi_cli.json | 11 +- tests/fixtures/builds_orphan_rust.json | 17 -- tests/fixtures/builds_unpinned_refs.json | 9 +- tests/fixtures/builds_unsorted_keys.json | 3 +- tests/integration/test_refresh.py | 179 ++++++++++++++++++ .../integration/test_refresh_rust_digests.py | 94 --------- .../test_refresh_stellar_cli_digests.py | 105 ---------- tests/integration/test_release_prepare.py | 125 ++++-------- tests/unit/test_build_image.py | 18 +- tests/unit/test_builds.py | 49 ++++- tests/unit/test_newest_pair.py | 4 +- tests/unit/test_publish_aliases.py | 8 +- tests/unit/test_publish_manifests.py | 9 +- tests/unit/test_tag_names.py | 72 +++++-- tests/unit/test_validate_json.py | 47 +++-- 35 files changed, 696 insertions(+), 761 deletions(-) create mode 100644 scripts/refresh.py delete mode 100755 scripts/refresh_rust_digests.py delete mode 100755 scripts/refresh_stellar_cli_digests.py rename tests/fixtures/{builds_unpinned.json => builds_invalid_entry.json} (51%) delete mode 100644 tests/fixtures/builds_orphan_rust.json create mode 100644 tests/integration/test_refresh.py delete mode 100644 tests/integration/test_refresh_rust_digests.py delete mode 100644 tests/integration/test_refresh_stellar_cli_digests.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a2dcc5..0fc9927 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,19 +29,25 @@ jobs: id: pair run: | cli="$(./scripts/newest_pair.py --stellar-cli-version)" - rust="$(./scripts/newest_pair.py --rust-version)" + # The newest pair is a fully-qualified pin: