refactor(changelog): adopt changelog-action with EN/ES/ZH changelogs #1

Open
rcsheets wants to merge 1 commit from feat/changelog-action into main
Owner

Migrates BLIIS onto the shared brooktrails/changelog-action (pinned @v1) and configures it to maintain three parallel changelogs: English, Spanish, and Mandarin Chinese.

This retires bliis's forked hack/update-changelog.sh, which had drifted to the pre-inference STUB: N bytes version and never received the real summarizer — exactly the copy-per-project drift the action exists to prevent.

Changes

  • .forgejo/workflows/build-push.yaml — the inline changelog step becomes a uses: step with a 3-language targets: list. Each target gets its own summary in its own language, all committed together with [skip ci]; never-fail-the-release semantics preserved.
  • .changelog.env (new) — BLIIS's product identity, the single source of truth the action reads to build the prompt.
  • CHANGELOG.es.md, CHANGELOG.zh.md (new) — parallel scaffolds with a translated header and the seed [0.0.0] entry, giving the action an anchor to splice above.
  • CHANGELOG.md — header drops the obsolete STUB note; points at the action and the two translations.
  • Removed hack/update-changelog.sh.

Dependency

Requires brooktrails/changelog-action at @v1 (already pushed). While wiring the Chinese target I found and fixed a real bug in the action: normalize_summary used coreutils fold, which counts bytes and would split a multibyte character mid-sequence — corrupting CJK/accented text. It now uses a multibyte-safe word-wrap (shipped as v1.0.1; v1 moved to it, so slp inherits the fix).

Verification

  • Live end-to-end against inference.brooktrails.org in Mandarin: a throwaway tagged repo ran the real update-changelog.sh against the CHANGELOG.zh.md scaffold. Result: a coherent Chinese summary spliced above [0.0.0], the whole file valid UTF-8 (no character corruption), link block refreshed.
  • All three scaffolds carry the exact ## [x.y.z] / [x.y.z]: markers the splice keys on.
  • Compare-link generation verified correct via both the cloned origin and the SERVER_URL/REPOSITORY fallback the action provides.

The true CI end-to-end runs on the first release to main after merge.

🤖 Generated with Claude Code

Migrates BLIIS onto the shared **`brooktrails/changelog-action`** (pinned `@v1`) and configures it to maintain **three parallel changelogs**: English, Spanish, and Mandarin Chinese. This retires bliis's forked `hack/update-changelog.sh`, which had drifted to the pre-inference `STUB: N bytes` version and never received the real summarizer — exactly the copy-per-project drift the action exists to prevent. ## Changes - **`.forgejo/workflows/build-push.yaml`** — the inline changelog step becomes a `uses:` step with a 3-language `targets:` list. Each target gets its own summary in its own language, all committed together with `[skip ci]`; never-fail-the-release semantics preserved. - **`.changelog.env`** (new) — BLIIS's product identity, the single source of truth the action reads to build the prompt. - **`CHANGELOG.es.md`, `CHANGELOG.zh.md`** (new) — parallel scaffolds with a translated header and the seed `[0.0.0]` entry, giving the action an anchor to splice above. - **`CHANGELOG.md`** — header drops the obsolete STUB note; points at the action and the two translations. - **Removed** `hack/update-changelog.sh`. ## Dependency Requires `brooktrails/changelog-action` at `@v1` (already pushed). While wiring the Chinese target I found and fixed a real bug in the action: `normalize_summary` used coreutils `fold`, which counts bytes and would split a multibyte character mid-sequence — corrupting CJK/accented text. It now uses a multibyte-safe word-wrap (shipped as **v1.0.1**; `v1` moved to it, so slp inherits the fix). ## Verification - Live end-to-end against `inference.brooktrails.org` in **Mandarin**: a throwaway tagged repo ran the real `update-changelog.sh` against the `CHANGELOG.zh.md` scaffold. Result: a coherent Chinese summary spliced above `[0.0.0]`, the whole file valid UTF-8 (no character corruption), link block refreshed. - All three scaffolds carry the exact `## [x.y.z]` / `[x.y.z]:` markers the splice keys on. - Compare-link generation verified correct via both the cloned `origin` and the `SERVER_URL`/`REPOSITORY` fallback the action provides. The true CI end-to-end runs on the first release to `main` after merge. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Replace bliis's forked, stale hack/update-changelog.sh (still the pre-inference
"STUB: N bytes" version) with the shared brooktrails/changelog-action pinned at
@v1. The action clones main, summarizes each release through the inference
service, and commits the entries back with [skip ci], with the same
never-fail-the-release semantics.

Configured for three parallel changelogs via the action's targets list:
- CHANGELOG.md    (US English)
- CHANGELOG.es.md (Spanish)
- CHANGELOG.zh.md (Mandarin Chinese)

Each target gets its own summary in its own language, all in one commit. Added
translated header + seed [0.0.0] scaffolds for the two new files so the action
has an anchor to splice above. Product identity moves to .changelog.env (the
single source of truth the action reads to build the prompt).

The English CHANGELOG.md header drops the obsolete STUB note and points at the
action and the two translations.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/changelog-action:feat/changelog-action
git switch feat/changelog-action

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feat/changelog-action
git switch feat/changelog-action
git rebase main
git switch main
git merge --ff-only feat/changelog-action
git switch feat/changelog-action
git rebase main
git switch main
git merge --no-ff feat/changelog-action
git switch main
git merge --squash feat/changelog-action
git switch main
git merge --ff-only feat/changelog-action
git switch main
git merge feat/changelog-action
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
brooktrails/bliis!1
No description provided.