Skip to content

chore(changeset): release intent for the edit-path comment fix - #58

Merged
ryanleecode merged 1 commit into
masterfrom
chore/release-intent-edit-path
Aug 24, 2026
Merged

chore(changeset): release intent for the edit-path comment fix#58
ryanleecode merged 1 commit into
masterfrom
chore/release-intent-edit-path

Conversation

@systemfsoftware-maker

@systemfsoftware-maker systemfsoftware-maker commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

#57 merged with no change intent, so it shipped to nobody. This adds the intent and fixes two stale claims in .changeset/README.md that are why it was skipped.

Why nothing released

release.yml runs on every master push and asks plan-release.ts for the phase from durable repository state:

phase = pending.length > 0 ? 'version' : tagged ? 'none' : 'publish'

The launcher manifest is at 0.1.5, tag v0.1.5 exists, and .changeset/ held only README.md — so pending = 0, tagged = true, phase = none. The fix has been on master since #57 and the newest tag is still v0.1.5, so anyone installing from the registry still gets the old binary.

Measured on this branch, A/B:

with the intent:     version=0.1.5 tag=v0.1.5 tagged=true pending=1 -> phase=version
without the intent:  version=0.1.5 tag=v0.1.5 tagged=true pending=0 -> phase=none
                     plan-release: v0.1.5 already released; nothing to do

Merging this makes the next master push take the version phase, which opens the release PR; merging that leaves an untagged manifest version, and the push after it takes publish.

Dry-run of the real release-version.ts against a scratch copy of this branch: bumps 0.1.50.1.6, consumes the intent, and appends one bullet under ## 0.1.6. No run-on, no internals.

Why the intent was skipped

Two signals pointed the wrong way:

  1. No Rust-core commit has ever shipped an intent. Every historical intent accompanied release plumbing, so the sample read as though crate changes do not need one.
  2. The README's MUST is scoped to the launcher package: "A PR that changes a publishable package (npm/packages/comment-checker) MUST ship with an intent here." A crate-only PR reads as exempt — but the crate is the binary that package runs, so a crate-only PR changes exactly what a consumer receives.

The rule as written excluded the case that most needs it. Corrected to key on consumer observability, and to say so explicitly for the crate.

Also corrected in that README

  • release-version.yml does not exist. .github/workflows/ holds ci, js-gate, mutation, platform, release, rust-gate, tools. The consuming logic is release.yml, whose version job runs release-version.ts. Replaced with the actual two-phase description, including the consequence that a merged fix with no intent ships to nobody.
  • The single-paragraph constraint was undocumented. release-version.ts does (parts[2] ?? '').trim().split('\n').join(' '), so a multi-paragraph body collapses into one run-on bullet. Now stated, and this intent obeys it.

pnpm change is unchanged — it is a pnpm 11 built-in (pnpm change [--bump <type>] [--summary <text>] [<pkg>...], verified against pnpm 11.21.0 in the repo's dev shell), not a package script. An earlier revision of this branch wrongly claimed it did not exist, on the grounds that it is absent from the root manifest's scripts; a built-in would never appear there. That claim is reverted and the original wording restored. The only edit to that line now is dropping the pnpm version -r parenthetical, since the bump is applied by release-version.ts.

Verification

  • check_changeset.ts on the intent: OK (a first draft failed B8 on review vocabulary and was reworded).
  • plan-release.ts run locally, both with and without the intent — output above.
  • release-version.ts run against a scratch copy: 0.1.50.1.6, one clean bullet, intent consumed.
  • pnpm change --help under pnpm 11.21.0 — confirms the documented flags.

No crate or test changes on this branch.

@systemfsoftware-maker
systemfsoftware-maker force-pushed the chore/release-intent-edit-path branch from b599f95 to 0e24f61 Compare August 24, 2026 22:55
…rehensive README rewrite

The edit-path fix merged with no intent, so plan-release read
phase=none (v0.1.5 already tagged, zero pending) and shipped it to
nobody. This intent moves the next master push to phase=version.

Also rewrites .changeset/README.md to a proper human-first guide:
- Adds Mermaid state-machine diagram of the release automation contract
- Explains the pnpm 11 built-in command and manual markdown structure
- Documents the scope rule (Rust crate changes MUST carry intents)
- Links directly to the release scripts and workflow definitions
- Documents the single-paragraph changelog bullet constraint
- Adds callout warning against merging PRs without intents
@systemfsoftware-maker
systemfsoftware-maker force-pushed the chore/release-intent-edit-path branch from 0e24f61 to 129682f Compare August 24, 2026 22:59
@ryanleecode
ryanleecode merged commit b8a99b7 into master Aug 24, 2026
11 checks passed
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