From d604d6d57262567897f31231890806bae03c176f Mon Sep 17 00:00:00 2001 From: nicodes Date: Sun, 8 Nov 2026 19:05:41 +0100 Subject: [PATCH 1/2] Adopt Cookbook environment and artifact guards --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/dependency-policy.yml | 4 ++-- .github/workflows/release.yml | 18 +++++++++--------- .github/workflows/request-merge.yml | 4 ++-- mise.toml | 4 ++-- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7904ac2..6ed5e62 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,13 +21,13 @@ concurrency: cancel-in-progress: true jobs: validate: - uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@52d8ab977e6bde843555408437be6e0f22834fe3 permissions: contents: read actions: read pull-requests: read with: - cookbook-ref: ${{ inputs.cookbook || '58a8cfb11756f01439f31e3ddd700e3184f71bf3' }} + cookbook-ref: ${{ inputs.cookbook || '52d8ab977e6bde843555408437be6e0f22834fe3' }} source: ${{ inputs.source || github.sha }} merge-gate: true recipe: rust-cli @@ -35,13 +35,13 @@ jobs: timeout-minutes: 30 complete: if: github.event_name == 'pull_request' - uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@52d8ab977e6bde843555408437be6e0f22834fe3 permissions: contents: read actions: read pull-requests: read with: - cookbook-ref: ${{ inputs.cookbook || '58a8cfb11756f01439f31e3ddd700e3184f71bf3' }} + cookbook-ref: ${{ inputs.cookbook || '52d8ab977e6bde843555408437be6e0f22834fe3' }} source: ${{ inputs.source || github.sha }} merge-gate: false recipe: rust-cli @@ -57,7 +57,7 @@ jobs: steps: - name: Require the complete current source validation timeout-minutes: 1 - uses: nicodes/cookbook/ci-result@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/ci-result@52d8ab977e6bde843555408437be6e0f22834fe3 with: event-name: ${{ github.event_name }} needs: ${{ toJSON(needs) }} diff --git a/.github/workflows/dependency-policy.yml b/.github/workflows/dependency-policy.yml index 3e7449b..249d4ac 100644 --- a/.github/workflows/dependency-policy.yml +++ b/.github/workflows/dependency-policy.yml @@ -12,7 +12,7 @@ name: Dependency Policy permissions: {} jobs: request: - uses: nicodes/cookbook/.github/workflows/cookbook-dependencies.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-dependencies.yml@52d8ab977e6bde843555408437be6e0f22834fe3 permissions: contents: read pull-requests: read @@ -20,4 +20,4 @@ jobs: checks: read statuses: read with: - cookbook-ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1972a36..f524dd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,9 +19,9 @@ jobs: name: Select immutable release identity permissions: contents: read - uses: nicodes/cookbook/.github/workflows/cookbook-cli-identity.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-cli-identity.yml@52d8ab977e6bde843555408437be6e0f22834fe3 with: - cookbook-ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 bump: ${{ inputs.bump }} validate: name: Validate release source and native archives @@ -30,9 +30,9 @@ jobs: contents: read actions: read pull-requests: read - uses: nicodes/cookbook/.github/workflows/cookbook-native.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-native.yml@52d8ab977e6bde843555408437be6e0f22834fe3 with: - cookbook-ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 source: ${{ github.sha }} version: ${{ needs.identity.outputs.version }} date: ${{ needs.identity.outputs.date }} @@ -55,7 +55,7 @@ jobs: MISE_EXEC_AUTO_INSTALL: 'false' MISE_TASK_RUN_AUTO_INSTALL: 'false' SOURCE_SHA: ${{ github.sha }} - COOKBOOK_SHA: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + COOKBOOK_SHA: 52d8ab977e6bde843555408437be6e0f22834fe3 RELEASE_TAG: ${{ needs.identity.outputs.tag }} GH_TOKEN: ${{ github.token }} steps: @@ -180,13 +180,13 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with: repository: nicodes/cookbook - ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + ref: 52d8ab977e6bde843555408437be6e0f22834fe3 path: .artifacts/recipe-sdks/_cookbook persist-credentials: false - name: Prepare separate immutable Cookbook and Tools sources uses: ./.artifacts/recipe-sdks/_cookbook/sdk-dependencies with: - cookbook-ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 - name: Bootstrap caller-pinned Python uses: ./.artifacts/recipe-sdks/_cookbook/sdk-setup with: @@ -220,8 +220,8 @@ jobs: contents: write actions: read attestations: read - uses: nicodes/cookbook/.github/workflows/cookbook-cli-publish.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-cli-publish.yml@52d8ab977e6bde843555408437be6e0f22834fe3 with: - cookbook-ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 tag: ${{ needs.identity.outputs.tag }} artifact-id: ${{ needs.accept.outputs.artifact }} diff --git a/.github/workflows/request-merge.yml b/.github/workflows/request-merge.yml index 41e943f..9f80df5 100644 --- a/.github/workflows/request-merge.yml +++ b/.github/workflows/request-merge.yml @@ -21,14 +21,14 @@ concurrency: cancel-in-progress: false jobs: request: - uses: nicodes/cookbook/.github/workflows/cookbook-request-merge.yml@58a8cfb11756f01439f31e3ddd700e3184f71bf3 + uses: nicodes/cookbook/.github/workflows/cookbook-request-merge.yml@52d8ab977e6bde843555408437be6e0f22834fe3 permissions: contents: write pull-requests: read statuses: write actions: write with: - cookbook-ref: 58a8cfb11756f01439f31e3ddd700e3184f71bf3 + cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 pull-request: ${{ inputs.pull-request }} expected-head: ${{ inputs.expected-head }} expected-base: ${{ inputs.expected-base }} diff --git a/mise.toml b/mise.toml index 32047a1..abee939 100644 --- a/mise.toml +++ b/mise.toml @@ -16,7 +16,7 @@ task.run_auto_install = false [vars] cookbook_contract = 1 -cookbook_ref = "58a8cfb11756f01439f31e3ddd700e3184f71bf3" +cookbook_ref = "52d8ab977e6bde843555408437be6e0f22834fe3" cookbook_recipe = "rust-cli" cookbook_sha256 = "a84801dac2070dbb472ccd24c74c5c0cedbb47c17ea6f99d50228d104be59689" @@ -24,7 +24,7 @@ cookbook_sha256 = "a84801dac2070dbb472ccd24c74c5c0cedbb47c17ea6f99d50228d104be59 hide = true shell = "bash -euc" cache = { enabled = false } -run = "exec env MISE_AUTO_INSTALL=false MISE_EXEC_AUTO_INSTALL=false MISE_TASK_RUN_AUTO_INSTALL=false \"${COOKBOOK_BOOTSTRAP_PYTHON:-python3}\" -I -B -c 'import base64,hashlib,sys,zlib;_sdk_decoder=zlib.decompressobj();_sdk_seed=_sdk_decoder.decompress(base64.b64decode(\"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\",validate=True),10868);(_sdk_decoder.eof and not _sdk_decoder.unused_data and not _sdk_decoder.unconsumed_tail and len(_sdk_seed)==10867 and hashlib.sha256(_sdk_seed).hexdigest()==\"f41788a46dc04e965285e7945b6497c688537372738ab6bf425f6ef4aa0d3a3b\") or sys.exit(\"SDK bootstrap seed failed integrity validation\");exec(compile(_sdk_seed,\"\",\"exec\"))' 58a8cfb11756f01439f31e3ddd700e3184f71bf3" +run = "exec env MISE_AUTO_INSTALL=false MISE_EXEC_AUTO_INSTALL=false MISE_TASK_RUN_AUTO_INSTALL=false \"${COOKBOOK_BOOTSTRAP_PYTHON:-python3}\" -I -B -c 'import base64,hashlib,sys,zlib;_sdk_decoder=zlib.decompressobj();_sdk_seed=_sdk_decoder.decompress(base64.b64decode(\"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\",validate=True),10868);(_sdk_decoder.eof and not _sdk_decoder.unused_data and not _sdk_decoder.unconsumed_tail and len(_sdk_seed)==10867 and hashlib.sha256(_sdk_seed).hexdigest()==\"f41788a46dc04e965285e7945b6497c688537372738ab6bf425f6ef4aa0d3a3b\") or sys.exit(\"SDK bootstrap seed failed integrity validation\");exec(compile(_sdk_seed,\"\",\"exec\"))' 52d8ab977e6bde843555408437be6e0f22834fe3" [tasks."help"] description = "List implemented commands" From e031f333dc2c09807ba4b99899ebe1eaeaf6a9be Mon Sep 17 00:00:00 2001 From: nicodes Date: Sun, 8 Nov 2026 19:39:27 +0100 Subject: [PATCH 2/2] Adopt Cookbook Compose validation repair --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/dependency-policy.yml | 4 ++-- .github/workflows/release.yml | 18 +++++++++--------- .github/workflows/request-merge.yml | 4 ++-- mise.toml | 4 ++-- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ed5e62..88f1424 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,13 +21,13 @@ concurrency: cancel-in-progress: true jobs: validate: - uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 permissions: contents: read actions: read pull-requests: read with: - cookbook-ref: ${{ inputs.cookbook || '52d8ab977e6bde843555408437be6e0f22834fe3' }} + cookbook-ref: ${{ inputs.cookbook || '77d7bfa24cf0ec35a2de7585d48797b64f41cbb3' }} source: ${{ inputs.source || github.sha }} merge-gate: true recipe: rust-cli @@ -35,13 +35,13 @@ jobs: timeout-minutes: 30 complete: if: github.event_name == 'pull_request' - uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-ci.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 permissions: contents: read actions: read pull-requests: read with: - cookbook-ref: ${{ inputs.cookbook || '52d8ab977e6bde843555408437be6e0f22834fe3' }} + cookbook-ref: ${{ inputs.cookbook || '77d7bfa24cf0ec35a2de7585d48797b64f41cbb3' }} source: ${{ inputs.source || github.sha }} merge-gate: false recipe: rust-cli @@ -57,7 +57,7 @@ jobs: steps: - name: Require the complete current source validation timeout-minutes: 1 - uses: nicodes/cookbook/ci-result@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/ci-result@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 with: event-name: ${{ github.event_name }} needs: ${{ toJSON(needs) }} diff --git a/.github/workflows/dependency-policy.yml b/.github/workflows/dependency-policy.yml index 249d4ac..771e3e1 100644 --- a/.github/workflows/dependency-policy.yml +++ b/.github/workflows/dependency-policy.yml @@ -12,7 +12,7 @@ name: Dependency Policy permissions: {} jobs: request: - uses: nicodes/cookbook/.github/workflows/cookbook-dependencies.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-dependencies.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 permissions: contents: read pull-requests: read @@ -20,4 +20,4 @@ jobs: checks: read statuses: read with: - cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + cookbook-ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f524dd9..dfa44fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,9 +19,9 @@ jobs: name: Select immutable release identity permissions: contents: read - uses: nicodes/cookbook/.github/workflows/cookbook-cli-identity.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-cli-identity.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 with: - cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + cookbook-ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 bump: ${{ inputs.bump }} validate: name: Validate release source and native archives @@ -30,9 +30,9 @@ jobs: contents: read actions: read pull-requests: read - uses: nicodes/cookbook/.github/workflows/cookbook-native.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-native.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 with: - cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + cookbook-ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 source: ${{ github.sha }} version: ${{ needs.identity.outputs.version }} date: ${{ needs.identity.outputs.date }} @@ -55,7 +55,7 @@ jobs: MISE_EXEC_AUTO_INSTALL: 'false' MISE_TASK_RUN_AUTO_INSTALL: 'false' SOURCE_SHA: ${{ github.sha }} - COOKBOOK_SHA: 52d8ab977e6bde843555408437be6e0f22834fe3 + COOKBOOK_SHA: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 RELEASE_TAG: ${{ needs.identity.outputs.tag }} GH_TOKEN: ${{ github.token }} steps: @@ -180,13 +180,13 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 with: repository: nicodes/cookbook - ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 path: .artifacts/recipe-sdks/_cookbook persist-credentials: false - name: Prepare separate immutable Cookbook and Tools sources uses: ./.artifacts/recipe-sdks/_cookbook/sdk-dependencies with: - cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + cookbook-ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 - name: Bootstrap caller-pinned Python uses: ./.artifacts/recipe-sdks/_cookbook/sdk-setup with: @@ -220,8 +220,8 @@ jobs: contents: write actions: read attestations: read - uses: nicodes/cookbook/.github/workflows/cookbook-cli-publish.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-cli-publish.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 with: - cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + cookbook-ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 tag: ${{ needs.identity.outputs.tag }} artifact-id: ${{ needs.accept.outputs.artifact }} diff --git a/.github/workflows/request-merge.yml b/.github/workflows/request-merge.yml index 9f80df5..2dce345 100644 --- a/.github/workflows/request-merge.yml +++ b/.github/workflows/request-merge.yml @@ -21,14 +21,14 @@ concurrency: cancel-in-progress: false jobs: request: - uses: nicodes/cookbook/.github/workflows/cookbook-request-merge.yml@52d8ab977e6bde843555408437be6e0f22834fe3 + uses: nicodes/cookbook/.github/workflows/cookbook-request-merge.yml@77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 permissions: contents: write pull-requests: read statuses: write actions: write with: - cookbook-ref: 52d8ab977e6bde843555408437be6e0f22834fe3 + cookbook-ref: 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3 pull-request: ${{ inputs.pull-request }} expected-head: ${{ inputs.expected-head }} expected-base: ${{ inputs.expected-base }} diff --git a/mise.toml b/mise.toml index abee939..bdabec4 100644 --- a/mise.toml +++ b/mise.toml @@ -16,7 +16,7 @@ task.run_auto_install = false [vars] cookbook_contract = 1 -cookbook_ref = "52d8ab977e6bde843555408437be6e0f22834fe3" +cookbook_ref = "77d7bfa24cf0ec35a2de7585d48797b64f41cbb3" cookbook_recipe = "rust-cli" cookbook_sha256 = "a84801dac2070dbb472ccd24c74c5c0cedbb47c17ea6f99d50228d104be59689" @@ -24,7 +24,7 @@ cookbook_sha256 = "a84801dac2070dbb472ccd24c74c5c0cedbb47c17ea6f99d50228d104be59 hide = true shell = "bash -euc" cache = { enabled = false } -run = "exec env MISE_AUTO_INSTALL=false MISE_EXEC_AUTO_INSTALL=false MISE_TASK_RUN_AUTO_INSTALL=false \"${COOKBOOK_BOOTSTRAP_PYTHON:-python3}\" -I -B -c 'import base64,hashlib,sys,zlib;_sdk_decoder=zlib.decompressobj();_sdk_seed=_sdk_decoder.decompress(base64.b64decode(\"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\",validate=True),10868);(_sdk_decoder.eof and not _sdk_decoder.unused_data and not _sdk_decoder.unconsumed_tail and len(_sdk_seed)==10867 and hashlib.sha256(_sdk_seed).hexdigest()==\"f41788a46dc04e965285e7945b6497c688537372738ab6bf425f6ef4aa0d3a3b\") or sys.exit(\"SDK bootstrap seed failed integrity validation\");exec(compile(_sdk_seed,\"\",\"exec\"))' 52d8ab977e6bde843555408437be6e0f22834fe3" +run = "exec env MISE_AUTO_INSTALL=false MISE_EXEC_AUTO_INSTALL=false MISE_TASK_RUN_AUTO_INSTALL=false \"${COOKBOOK_BOOTSTRAP_PYTHON:-python3}\" -I -B -c 'import base64,hashlib,sys,zlib;_sdk_decoder=zlib.decompressobj();_sdk_seed=_sdk_decoder.decompress(base64.b64decode(\"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\",validate=True),10868);(_sdk_decoder.eof and not _sdk_decoder.unused_data and not _sdk_decoder.unconsumed_tail and len(_sdk_seed)==10867 and hashlib.sha256(_sdk_seed).hexdigest()==\"f41788a46dc04e965285e7945b6497c688537372738ab6bf425f6ef4aa0d3a3b\") or sys.exit(\"SDK bootstrap seed failed integrity validation\");exec(compile(_sdk_seed,\"\",\"exec\"))' 77d7bfa24cf0ec35a2de7585d48797b64f41cbb3" [tasks."help"] description = "List implemented commands"