feat!: stop cutting releases for chore commits#4
Conversation
A chore commit is development tooling by definition - E2E runner swaps, formatter config, CI housekeeping. Mapping it to a patch release ships an update notification to every plugin user for a change that cannot affect them; PodNotes 2.19.1 (an E2E runner migration) is the motivating example. Only build(deps) keeps its patch mapping: dependency bumps land in the shipped bundle. fix/feat/BREAKING behave as before. Consumers that want a release for tooling-only changes can still dispatch Prepare manually. BREAKING CHANGE: chore commits no longer produce a release plan.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4641c05ddd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| { type: "chore", release: "patch" }, | ||
| { scope: "deps", type: "build", release: "patch" }, | ||
| ]; | ||
| export const RELEASE_RULES = [{ scope: "deps", type: "build", release: "patch" }]; |
There was a problem hiding this comment.
Preserve a force path for chore-only releases
When the only post-tag change is a chore: commit that still needs publishing, this rule removal makes calculateReleasePlan() return release:false. The reusable Prepare workflow's manual dispatch path still invokes this same script without any release-type or force override and exits before materializing version files when the plan is not releasable, so manually dispatching Prepare cannot produce a chore-only release through the protected release-PR flow.
Useful? React with 👍 / 👎.
Point the release-prepare/trigger/release caller stubs at the new v3 tag of chhoumann/obsidian-plugin-workflows. v3 brings three changes: - feat!: stop cutting releases for chore-only commits - fix: handle bare release merge subjects - fix: retry the tag-verify read after createRef, closing the replication race that hit 2 of the first 3 production releases Note the breaking change: a commit range containing only chore commits will no longer produce a standing release PR (intended behavior, see chhoumann/obsidian-plugin-workflows#4).
Point the release-prepare/trigger/release caller stubs at the new v3 tag of chhoumann/obsidian-plugin-workflows. v3 brings three changes: - feat!: stop cutting releases for chore-only commits - fix: handle bare release merge subjects - fix: retry the tag-verify read after createRef, closing the replication race that hit 2 of the first 3 production releases Note the breaking change: a commit range containing only chore commits will no longer produce a standing release PR (intended behavior, see chhoumann/obsidian-plugin-workflows#4).
Point the release-prepare/trigger/release caller stubs at the new v3 tag of chhoumann/obsidian-plugin-workflows. v3 brings three changes: - feat!: stop cutting releases for chore-only commits - fix: handle bare release merge subjects - fix: retry the tag-verify read after createRef, closing the replication race that hit 2 of the first 3 production releases Note the breaking change: a commit range containing only chore commits will no longer produce a standing release PR (intended behavior, see chhoumann/obsidian-plugin-workflows#4).
Point the release-prepare/trigger/release caller stubs at the new v3 tag of chhoumann/obsidian-plugin-workflows. v3 brings three changes: - feat!: stop cutting releases for chore-only commits - fix: handle bare release merge subjects - fix: retry the tag-verify read after createRef, closing the replication race that hit 2 of the first 3 production releases Note the breaking change: a commit range containing only chore commits will no longer produce a standing release PR (intended behavior, see chhoumann/obsidian-plugin-workflows#4).
Removes the
chore -> patchmapping fromRELEASE_RULES, so tooling-only commits no longer generate release plans.A chore commit is development tooling by definition - E2E runner swaps, formatter config, CI housekeeping. Mapping it to a patch release ships an update notification to every plugin user for a change that cannot affect the shipped bundle. PodNotes 2.19.1 (an E2E runner migration released as a public patch) is the motivating example.
build(deps)keeps its patch mapping because dependency bumps do land in the bundle.fix/feat/BREAKING CHANGEbehave as before. A tooling-only release can still be produced by dispatching Prepare manually.Marked breaking since it changes release behavior for every consumer (PodNotes, notetweet).
42/42 tests pass; the chore case moved from the bump table to the no-release plan test.