Repository navigation
fix: make the release dispatch ask which bump it wants (ENG-9233) - #5
Merged
Merged
Conversation
johnsca
marked this pull request as ready for review
October 20, 2026 19:10
There was a problem hiding this comment.
No issues found across 3 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Architecture diagram
sequenceDiagram
participant Dispatch as Manual Dispatch
participant Inputs as Inputs (bump)
participant Validate as Validate Job
participant Version as Version Step
participant BumpCheck as Bump Check
participant Guard as First Release Guard
participant Publish as Publish Job
Dispatch->>Inputs: Select bump type (patch/minor/major)
Dispatch->>Validate: Start workflow
Validate->>Version: Compute version info
Version-->>Validate: previous_version = 0.0.0 (first release)
alt previous_version == 0.0.0 (first release)
Validate->>BumpCheck: Validate bump input (lowercase check)
BumpCheck-->>Validate: pass (patch/minor/major)
alt bump == patch
Validate->>Guard: Refuse to open at v0.0.1
Guard-->>Validate: error (exit 1)
Note over Validate: Prevents permanent v0.0.1
else bump == minor
Validate->>Guard: Allow minor bump
Note over Validate: Opens at v0.1.0
else bump == major
Validate->>Guard: Allow major bump
Note over Validate: Opens at v1.0.0
end
else previous_version != 0.0.0 (subsequent release)
Validate->>Guard: No first-release guard needed
Note over Validate: Standard version walk
end
Validate->>Publish: Pass version info
Publish->>Publish: Create release tag
johnsca
force-pushed
the
johnsca/fix/ENG-9233/first-release-guard
branch
from
October 20, 2026 19:49
d351ecc to
897da79
Compare
johnsca
added a commit
to stacklet/terraform-aws-onboarding-account
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow, so its two tags were cut by hand and neither carries a GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.1` as previous and `v0.2.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.2.0` publishes. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for, and a Migrating to 0.2.0 section covering the two inputs ENG-8761 changed. Both examples now pin `0.2.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6 tasks done
johnsca
added a commit
to stacklet/terraform-aws-onboarding-org-read
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow, so its one tag was cut by hand and carries no GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.0` as previous and `v0.1.1` as new. - [ ] Dispatch Release with a `patch` bump and confirm `v0.1.1` publishes, so this repository carries a GitHub release rather than only a tag. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.1`. Nothing changes for callers, so there is no migration section. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5 tasks done
johnsca
added a commit
to stacklet/terraform-aws-stacklet-cur-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Points the README example at the Terraform Registry address rather than the GitHub URL, and adds a Versioning section. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so there is no version a caller can pin to. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6 tasks done
johnsca
added a commit
to stacklet/terraform-azure-stacklet-cost-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Replaces the release workflow with a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. The workflow there is this one, lifted. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a tag ref, rewrites the Versioning section around `version` constraints, and updates the migration note to match. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository held the only copy of the workflow. The other five module repositories need it, and copying it five more times leaves six sets of the same guards to keep in step. - The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. - The lifted copy is not identical. It takes `bump` as a string and rejects anything but patch, minor, or major, compares against the caller's default branch rather than the literal `main`, hardens the runner on the job that runs a third-party action, and claims the tag before publishing the release rather than letting `gh release create` make it. The PR on `github-tooling` covers each. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v1.0.0` as previous and `v1.0.1` as new. That shows the shared workflow reads this repository's tag history the way the copy it replaces did. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README Versioning section drops the note about immutable tags and explains `version` constraints instead, because the registry address is what callers now set. The migration note no longer tells the reader to update a tag ref. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
5 tasks done
johnsca
added a commit
to stacklet/terraform-azure-stacklet-relay
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a commit ref, and adds a Versioning section. The migration note now tells the reader to move `source` and set `version` rather than to update a SHA. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so callers pin a raw commit and there is no version to read notes against. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6 tasks done
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Opens the caller's `bump` dropdown on `(choose one)` rather than defaulting to `patch`, so a dispatch has to answer the question. The called workflow already rejects anything but the three real values, so the placeholder needs no new validation. - Drops the step that required a first release to be a major bump. - Updates the README to match, in the prose about refusals and in the caller block it offers for copying. Why ---- `patch` was a poor default on a dispatch that cannot be taken back. On a repository with no tags it opens at `v0.0.1`, and immutable releases burn that name for good. On any later release it quietly ships a patch for work that earned a minor, which nothing caught, because the guard only ever looked at first releases. Asking the question fixes both, and it fixes them at the point where the default was wrong rather than downstream of it. The guard can then go. A repository that explicitly asks for a patch on an empty tag history means `v0.0.1`, and a minor bump climbs out of it, so there is nothing left worth refusing. Whether a repository opens at `v0.0.1`, `v0.1.0` or `v1.0.0` is its own call, and `cut-release.yml` no longer holds a view on it. Testing ---- - [x] `just lint` passes here and in the five module repositories. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] Ran the bump check against `(choose one)`, `patch`, `minor`, `major`, `Patch`, empty and `majorly`. Only the three lowercase values pass, so the placeholder stops a run the same way any other unrecognised bump does. - [x] Parsed each caller to confirm the placeholder survives YAML as the literal `(choose one)` and that no `default` key remains. - [ ] After merge, dispatch Release here and confirm the dropdown opens on `(choose one)` and that submitting it fails at the bump check. - [ ] Dispatch Release with a `minor` bump and confirm `v1.1.0` publishes against `v1.0.0` as previous. Docs ---- The README's account of the refusals now covers the placeholder, and says what each bump opens at on a repository with no tags rather than naming one of them as required. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
force-pushed
the
johnsca/fix/ENG-9233/first-release-guard
branch
from
October 20, 2026 19:53
897da79 to
45ca79a
Compare
johnsca
added a commit
to stacklet/terraform-aws-onboarding-account
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow, so its two tags were cut by hand and neither carries a GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.1` as previous and `v0.2.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.2.0` publishes. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for, and a Migrating to 0.2.0 section covering the two inputs ENG-8761 changed. Both examples now pin `0.2.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
jtroup
approved these changes
Oct 20, 2026
johnsca
added a commit
to stacklet/terraform-aws-onboarding-org-read
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow, so its one tag was cut by hand and carries no GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.0` as previous and `v0.1.1` as new. - [ ] Dispatch Release with a `patch` bump and confirm `v0.1.1` publishes, so this repository carries a GitHub release rather than only a tag. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.1`. Nothing changes for callers, so there is no migration section. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-stacklet-cur-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Points the README example at the Terraform Registry address rather than the GitHub URL, and adds a Versioning section. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so there is no version a caller can pin to. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-azure-stacklet-cost-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Replaces the release workflow with a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. The workflow there is this one, lifted. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a tag ref, rewrites the Versioning section around `version` constraints, and updates the migration note to match. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository held the only copy of the workflow. The other five module repositories need it, and copying it five more times leaves six sets of the same guards to keep in step. - The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. - The lifted copy is not identical. It takes `bump` as a string and rejects anything but patch, minor, or major, compares against the caller's default branch rather than the literal `main`, hardens the runner on the job that runs a third-party action, and claims the tag before publishing the release rather than letting `gh release create` make it. The PR on `github-tooling` covers each. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v1.0.0` as previous and `v1.0.1` as new. That shows the shared workflow reads this repository's tag history the way the copy it replaces did. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README Versioning section drops the note about immutable tags and explains `version` constraints instead, because the registry address is what callers now set. The migration note no longer tells the reader to update a tag ref. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-azure-stacklet-relay
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a commit ref, and adds a Versioning section. The migration note now tells the reader to move `source` and set `version` rather than to update a SHA. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so callers pin a raw commit and there is no version to read notes against. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-onboarding-account
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow, so its two tags were cut by hand and neither carries a GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.1` as previous and `v0.2.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.2.0` publishes. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for, and a Migrating to 0.2.0 section covering the two inputs ENG-8761 changed. Both examples now pin `0.2.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-onboarding-org-read
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow, so its one tag was cut by hand and carries no GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.0` as previous and `v0.1.1` as new. - [ ] Dispatch Release with a `patch` bump and confirm `v0.1.1` publishes, so this repository carries a GitHub release rather than only a tag. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.1`. Nothing changes for callers, so there is no migration section. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-stacklet-cur-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Points the README example at the Terraform Registry address rather than the GitHub URL, and adds a Versioning section. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so there is no version a caller can pin to. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-azure-stacklet-cost-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Replaces the release workflow with a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. The workflow there is this one, lifted. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a tag ref, rewrites the Versioning section around `version` constraints, and updates the migration note to match. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository held the only copy of the workflow. The other five module repositories need it, and copying it five more times leaves six sets of the same guards to keep in step. - The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. - The lifted copy is not identical. It takes `bump` as a string and rejects anything but patch, minor, or major, compares against the caller's default branch rather than the literal `main`, hardens the runner on the job that runs a third-party action, and claims the tag before publishing the release rather than letting `gh release create` make it. The PR on `github-tooling` covers each. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v1.0.0` as previous and `v1.0.1` as new. That shows the shared workflow reads this repository's tag history the way the copy it replaces did. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README Versioning section drops the note about immutable tags and explains `version` constraints instead, because the registry address is what callers now set. The migration note no longer tells the reader to update a tag ref. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-azure-stacklet-relay
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a commit ref, and adds a Versioning section. The migration note now tells the reader to move `source` and set `version` rather than to update a SHA. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so callers pin a raw commit and there is no version to read notes against. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-onboarding-account
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) ### what - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. ### why - This repository has no release workflow, so its two tags were cut by hand and neither carries a GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. ### testing - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [x] Checked the documented constraint against semver: `~> 0.2.0` accepts `0.2.1` and rejects `0.3.0`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.1` as previous and `v0.2.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.2.0` publishes. ### docs The README gains a Versioning section naming the registry address this module publishes to. It documents a patch-level constraint, `~> 0.2.0`, rather than the `~> 1.0` the 1.x modules use. This module is on a `0.x` line, where a minor bump is free to break callers and where `~> 1.0` matches nothing the registry holds. [ENG-9233]: https://stacklet.atlassian.net/browse/ENG-9233?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-onboarding-org-read
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) ### what - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to the commit that repository's v1.0.0 names. - Adds a Versioning section to the README covering the registry address and the `version` constraints it accepts. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. ### why - This repository has no release workflow, so its one tag was cut by hand and carries no GitHub release. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. ### testing - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.1.0` as previous and `v0.1.1` as new. - [ ] Dispatch Release with a `patch` bump and confirm `v0.1.1` publishes, so this repository carries a GitHub release rather than only a tag. ### docs The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.1`. Nothing changes for callers, so there is no migration section. [ENG-9233]: https://stacklet.atlassian.net/browse/ENG-9233?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-aws-stacklet-cur-setup
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) ### what - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Points the README example at the Terraform Registry address rather than the GitHub URL, and adds a Versioning section. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. ### why - This repository has no release workflow and no tags, so there is no version a caller can pin to. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. ### testing - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. ### docs The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. [ENG-9233]: https://stacklet.atlassian.net/browse/ENG-9233?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-azure-stacklet-cost-setup
that referenced
this pull request
Oct 20, 2026
…3) (#8) [ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) ### what - Replaces the release workflow with a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. The workflow there is this one, lifted. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a tag ref, rewrites the Versioning section around `version` constraints, and updates the migration note to match. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. ### why - This repository held the only copy of the workflow. The other five module repositories need it, and copying it five more times leaves six sets of the same guards to keep in step. - The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. - The lifted copy is not identical. It takes `bump` as a string and rejects anything but patch, minor, or major, compares against the caller's default branch rather than the literal `main`, hardens the runner on the job that runs a third-party action, and claims the tag before publishing the release rather than letting `gh release create` make it. The PR on `github-tooling` covers each. ### testing - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v1.0.0` as previous and `v1.0.1` as new. That shows the shared workflow reads this repository's tag history the way the copy it replaces did. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. ### docs The README Versioning section drops the note about immutable tags and explains `version` constraints instead, because the registry address is what callers now set. The migration note no longer tells the reader to update a tag ref. [ENG-9233]: https://stacklet.atlassian.net/browse/ENG-9233?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
johnsca
added a commit
to stacklet/terraform-azure-stacklet-relay
that referenced
this pull request
Oct 20, 2026
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) ### what - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a commit ref, and adds a Versioning section. The migration note now tells the reader to move `source` and set `version` rather than to update a SHA. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. ### why - This repository has no release workflow and no tags, so callers pin a raw commit and there is no version to read notes against. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. ### testing - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. ### docs The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. [ENG-9233]: https://stacklet.atlassian.net/browse/ENG-9233?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.
ENG-9233
what
bumpdropdown on(choose one)rather than defaultingto
patch, so a dispatch has to answer the question. The called workflowalready rejects anything but the three real values, so the placeholder needs
no new validation.
block it offers for copying.
why
patchwas a poor default on a dispatch that cannot be taken back. On arepository with no tags it opens at
v0.0.1, and immutable releases burn thatname for good. On any later release it quietly ships a patch for work that
earned a minor, which nothing caught, because the guard only ever looked at
first releases.
Asking the question fixes both, and it fixes them at the point where the
default was wrong rather than downstream of it. The guard can then go. A
repository that explicitly asks for a patch on an empty tag history means
v0.0.1, and a minor bump climbs out of it, so there is nothing left worthrefusing. Whether a repository opens at
v0.0.1,v0.1.0orv1.0.0is itsown call, and
cut-release.ymlno longer holds a view on it.testing
just lintpasses here and in the five module repositories.uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/reports nofindings, with the five online audits scheduled rather than skipped.
(choose one),patch,minor,major,Patch, empty andmajorly. Only the three lowercase values pass, sothe placeholder stops a run the same way any other unrecognised bump
does.
literal
(choose one)and that nodefaultkey remains.(choose one)and that submitting it fails at the bump check.minorbump and confirmv1.1.0publishesagainst
v1.0.0as previous.docs
The README's account of the refusals now covers the placeholder, and says what
each bump opens at on a repository with no tags rather than naming one of them
as required.