Skip to content

chore: cut releases through the shared workflow (ENG-9233) - #9

Merged
johnsca merged 1 commit into
mainfrom
johnsca/chore/ENG-9233/standardize-release
Oct 20, 2026
Merged

johnsca merged 1 commit into
mainfrom
johnsca/chore/ENG-9233/standardize-release

Conversation

@johnsca

@johnsca johnsca commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

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 fix: make the release dispatch ask which bump it wants (ENG-9233) 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

  • just lint passes.
  • uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/ reports no
    findings, with the five online audits scheduled rather than skipped.
  • 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.

@johnsca
johnsca marked this pull request as ready for review October 20, 2026 17:25
@johnsca
johnsca requested a review from a team as a code owner October 20, 2026 17:25

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 2 files

Confidence score: 3/5

  • The copy-paste example in README.md cannot initialize until the referenced registry version is published. Publish v1.0.0 before merging, or defer the README change.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="README.md">

<violation number="1" location="README.md:80">
P2: This documentation points users to a registry module/version that is not published at merge time, so the copy-paste example cannot initialize. Publish `v1.0.0` before merging these README changes, or defer the registry-based example until publication is complete.</violation>
</file>
Architecture diagram
sequenceDiagram
    participant Dev as Developer
    participant GH as GitHub UI
    participant Dispatch as release.yml (Caller)
    participant Tooling as cut-release.yml (Shared workflow)
    participant Action as Third-party Actions
    participant Repo as Module Repo (contents)

    Note over Dev,Repo: PR adds caller workflow to this repo, invokes shared workflow from stacklet/github-tooling

    Dev->>GH: Dispatch Release workflow (manual)
    GH->>Dispatch: workflow_dispatch with inputs (bump, dry_run)

    Dispatch->>Tooling: NEW: Call shared cut-release.yml @ pinned commit
    Note over Dispatch: Concurrency: release (serializes runs across repo)

    alt dry_run=true
        Tooling->>Tooling: Compute next version (v0.0.0 -> v1.0.0)
        Tooling-->>Dispatch: Summary only, no publish
    else dry_run=false
        Tooling->>Action: Run security step (STEP_SECURITY_API_KEY)
        Tooling->>Repo: CHANGED: Publish release (write permission)
        Repo-->>Tooling: Release created
    end

    Tooling-->>Dispatch: Workflow result
    Dispatch-->>GH: Status display
Loading

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread README.md Resolved
Comment thread .github/workflows/release.yml Resolved
@johnsca
johnsca force-pushed the johnsca/chore/ENG-9233/standardize-release branch from 89c89dd to 6336adc Compare October 20, 2026 19:07

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 2 files (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread README.md Resolved
@johnsca
johnsca force-pushed the johnsca/chore/ENG-9233/standardize-release branch 2 times, most recently from 29d72b5 to 8c4d3cf Compare October 20, 2026 19:53
[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
johnsca force-pushed the johnsca/chore/ENG-9233/standardize-release branch from 8c4d3cf to e3c635d Compare October 20, 2026 20:18

@jtroup jtroup left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @johnsca

@johnsca
johnsca merged commit 5fb1da0 into main Oct 20, 2026
8 checks passed
@johnsca
johnsca deleted the johnsca/chore/ENG-9233/standardize-release branch October 20, 2026 21:04
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.

2 participants