Skip to content

docs(release): unpark the release workflow and correct its setup status - #8

Merged
kboshold merged 2 commits into
mainfrom
docs/unpark-release-runbook
Jul 31, 2026
Merged

docs(release): unpark the release workflow and correct its setup status#8
kboshold merged 2 commits into
mainfrom
docs/unpark-release-runbook

Conversation

@kboshold

@kboshold kboshold commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

What

Corrects what the release path claims about itself. Docs and comments only, no behaviour change.

  • The workflow was named Release (draft, parked, not enabled) and its header said it cannot publish until someone wires the secrets. Renamed to Release and the header rewritten.
  • The runbook now states the one-time setup is not confirmed done, and says how to check it.
  • Records that v0.1.0 has been backfilled onto 265809b, the last commit carrying that version.
  • Records that the version is a workflow input, so there is no reason to bump package.json first.

The workflow stays workflow_dispatch-only and scoped to the release environment.

Why

Two claims here were wrong in opposite directions, and both would mislead whoever ships next.

The workflow said releasing was impossible. 0.1.0 is on the registry and the provenance flow is written, so a maintainer reading the name or the old runbook header would have concluded the opposite of the truth.

Then the first draft of this PR overcorrected and marked the setup done, reasoning from 0.1.0 being published. That does not follow: 0.1.0 was published by hand, outside this workflow, so it is evidence the workflow was bypassed, not evidence it works. Checking directly:

gh api repos/sidebase/streamctl/environments  ->  total_count: 0
gh secret list                                ->  (empty)

The release environment does not exist. That fails quietly rather than loudly: GitHub creates a referenced-but-missing environment with no protection rules and no secrets, so a dispatch today would skip its own approval gate and reach pnpm publish with an empty NODE_AUTH_TOKEN. It dies there, which is before the push, so origin stays untouched and no orphan tag appears.

NPM_TOKEN may still exist as an org secret, which is not readable without org admin. So the runbook records the check to run rather than claiming the token is missing.

kboshold added 2 commits July 31, 2026 08:48
The workflow was still named "draft, parked, not enabled" and its header said
it cannot publish until someone wires the secrets. Both are false now: 0.1.0
is on the registry and the provenance flow is wired. A maintainer reading
either would conclude releasing is not possible.

Also records two things the next releaser would otherwise hit. The generated
release notes diff against the previous tag, and 0.1.0 was published outside
this workflow so no tag existed; v0.1.0 has been backfilled onto 265809b.
And the version is a workflow input, so bumping package.json by hand before
dispatching produces a release commit with no version change in it.

The one-time setup section is kept rather than deleted, marked as done, since
it is the checklist to re-run if the org, token or environment is rebuilt.
0.1.0 reached npm by a manual publish that bypassed this workflow, so its
presence is not evidence the workflow can publish. The previous wording read
the artifact as proof of the setup the artifact had skipped.

Measured: repos/sidebase/streamctl/environments returns zero environments and
the repo has no secrets, so the `release` environment does not exist. GitHub
creates a referenced-but-missing environment unprotected and secretless, so an
unconfigured dispatch loses its approval gate and then fails at publish on
auth, before the push, leaving origin untouched.

NPM_TOKEN may still exist as an org secret, which is not readable without org
admin, so this records the check to run rather than asserting the token is
absent.
@kboshold kboshold changed the title docs(release): unpark the release workflow and record the backfilled tag docs(release): unpark the release workflow and correct its setup status Jul 31, 2026
@kboshold
kboshold merged commit a7715bd into main Jul 31, 2026
8 checks passed
@kboshold
kboshold deleted the docs/unpark-release-runbook branch July 31, 2026 06:58
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.

1 participant