Skip to content

Add changelog fragment workflow to eliminate version/changelog merge conflicts#138

Open
mapgie wants to merge 2 commits into
mainfrom
claude/pr-review-135-8citvg
Open

Add changelog fragment workflow to eliminate version/changelog merge conflicts#138
mapgie wants to merge 2 commits into
mainfrom
claude/pr-review-135-8citvg

Conversation

@mapgie

@mapgie mapgie commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Each PR now adds a changelog/unreleased/.json fragment instead of
editing CHANGELOG.md and bumping versionCode/versionName directly, which was
the recurring source of merge conflicts. consolidate_changelog.py rolls all
pending fragments into a single CHANGELOG.md entry and version bump via the
new "Prepare release" workflow, which opens a PR for review.

claude added 2 commits June 10, 2026 23:59
…conflicts

Each PR now adds a changelog/unreleased/<slug>.json fragment instead of
editing CHANGELOG.md and bumping versionCode/versionName directly, which was
the recurring source of merge conflicts. consolidate_changelog.py rolls all
pending fragments into a single CHANGELOG.md entry and version bump via the
new "Prepare release" workflow, which opens a PR for review.
…nstruction

Follow-up to the changelog fragment workflow:

- New publish-release.yml: merging a Release PR to main tags vX.Y.Z and
  publishes the APK automatically. The tag push is the atomic duplicate
  gate, replacing the late 'Check version is new' step.
- build.yml is PR validation only: workflow_dispatch publish path removed.
- changelog-check.yml: exempt release/* PRs (they delete fragments, add
  none) and block versionCode/versionName edits in all other PRs, making
  the release automation the sole writer of the version.
- prepare-release.yml: concurrency group, fail fast if the computed
  version already has a tag, optional RELEASE_PR_TOKEN so CI runs on the
  bot-created Release PR, PR body notes that merging publishes.
- check_changelog_fragment.py: clean errors for malformed/non-object
  JSON; consolidate_changelog.py re-validates fragments before consuming
  them (errors to stderr, keeping stdout parseable by the workflow).
- Docs updated in CLAUDE.md, CHANGELOG.md, changelog/unreleased/README.md;
  transferable lessons added to LESSONS.md.

https://claude.ai/code/session_01VwYiciFBNBnBEUwKPtMLZn
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