From 52a3a6a125739f01fe971717f9d3b0331417ee98 Mon Sep 17 00:00:00 2001 From: David Meister Date: Sat, 11 Jul 2026 17:26:21 +0000 Subject: [PATCH 1/2] chore(release): adopt next-version Soldeer lifecycle (closes #27) Bump [package].version 0.1.0 -> 0.1.1 so it is strictly ahead of the published rain-pyth revision (0.1.0), as the next-version autopublish lifecycle requires. Wire soldeer-generate-cmd into the package-release reusable so the post-publish bump regenerates src/generated/PythWords.pointers.sol born-green, and grant the reusable the contents/id-token write scopes it needs. Co-Authored-By: Claude --- .github/workflows/package-release.yaml | 16 ++++++++++++++++ foundry.toml | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/package-release.yaml b/.github/workflows/package-release.yaml index b5e81e5..a0e04c2 100644 --- a/.github/workflows/package-release.yaml +++ b/.github/workflows/package-release.yaml @@ -5,7 +5,23 @@ on: - main jobs: release: + # rainix-autopublish pushes the post-publish version-bump commit + tag and + # requests id-token, so the caller must grant these scopes; the repo default + # workflow token is read-only. Grant exactly what the reusable needs here + # rather than widening the repo-wide default. + permissions: + contents: write + id-token: write uses: rainlanguage/rainix/.github/workflows/rainix-autopublish.yaml@main with: soldeer-package: rain-pyth + # `foundry.toml` [package].version is the next, in-development release. On a + # merge that changes Solidity content the reusable publishes that version, + # bumps to the next, and regenerates the committed pointer snapshot so the + # bump commit is born clean. The command runs in the reusable's pinned + # rainix sol-shell on a fresh checkout with no deps installed, so + # `forge soldeer install` runs first (BuildPointers compiles the contracts), + # and `forge fmt` normalizes BuildPointers' unindented output to match the + # copy-artifacts / git-clean checks. + soldeer-generate-cmd: forge soldeer install && forge script ./script/BuildPointers.sol && forge fmt secrets: inherit diff --git a/foundry.toml b/foundry.toml index b8ba16a..fdc84aa 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,6 +1,6 @@ [package] name = "rain-pyth" -version = "0.1.0" +version = "0.1.1" [profile.default] libs = ["dependencies"] From cdd84a23b28a74e335ee4f1afbc93eee931cec4a Mon Sep 17 00:00:00 2001 From: David Meister Date: Sat, 18 Jul 2026 09:52:53 +0000 Subject: [PATCH 2/2] ci(release): drop deprecated soldeer-generate-cmd from autopublish call The rainix reusable deprecated soldeer-generate-cmd as a no-op: the version bump no longer regenerates per-release artifacts. Every committed artifact (pointers via BuildPointers, authoring meta via script/build.sh in the default devshell where rain lives) is built and committed by the PR that defines the version's content and diff-checked by copy-artifacts on main, so there is no release-time regeneration path to diverge from script/build.sh. The soldeer package is src/-only (.github and foundry.toml are both soldeerignored) and the content gate blanks the version line, so merging this PR does not itself publish 0.1.1; the next src content change does. Co-Authored-By: Claude --- .github/workflows/package-release.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/package-release.yaml b/.github/workflows/package-release.yaml index a0e04c2..46a49e2 100644 --- a/.github/workflows/package-release.yaml +++ b/.github/workflows/package-release.yaml @@ -15,13 +15,13 @@ jobs: uses: rainlanguage/rainix/.github/workflows/rainix-autopublish.yaml@main with: soldeer-package: rain-pyth - # `foundry.toml` [package].version is the next, in-development release. On a - # merge that changes Solidity content the reusable publishes that version, - # bumps to the next, and regenerates the committed pointer snapshot so the - # bump commit is born clean. The command runs in the reusable's pinned - # rainix sol-shell on a fresh checkout with no deps installed, so - # `forge soldeer install` runs first (BuildPointers compiles the contracts), - # and `forge fmt` normalizes BuildPointers' unindented output to match the - # copy-artifacts / git-clean checks. - soldeer-generate-cmd: forge soldeer install && forge script ./script/BuildPointers.sol && forge fmt + # `foundry.toml` [package].version is the next, in-development release. On + # a merge whose soldeer package content changed vs the published revision, + # the reusable publishes that version and bumps `[package].version` to the + # next. The bump does NOT regenerate artifacts: every committed artifact + # (pointers via BuildPointers, authoring meta via `script/build.sh` in the + # default devshell where `rain` lives) is built and committed by the PR + # that defines that version's content, and copy-artifacts diff-checks it + # on main, so the bump commit is born clean without a release-time + # regeneration path that could diverge from `script/build.sh`. secrets: inherit