Release 1.6.0: library under pkg/, append and release actions #34

Merged
mikluko merged 11 commits from library-and-writers into main 2026-10-31 18:57:37 +00:00
Owner

What and why

Releases 1.6.0: the library moves under pkg/ at the new module path sarak.sh/actions/changelog, and two writer actions join the reader: append adds a note to [Unreleased], release turns it into a versioned entry. All three share one binary and one tag; install.sh is the download step they used to duplicate.

The changelog edit in this PR was made by the new release subcommand.

The release workflow smoke-runs both writers after the tag is cut; that is the first time $ACTION_PATH/../install.sh runs on a runner. Carries the unmerged 66560a8 (release retry) from fix-release.

Checklist

  • CHANGELOG.md gained an entry under [Unreleased], or this change needs none.
  • AI assistance is declared below.

AI assistance

Claude Code (Claude Opus 5.5).

## What and why Releases 1.6.0: the library moves under `pkg/` at the new module path `sarak.sh/actions/changelog`, and two writer actions join the reader: `append` adds a note to `[Unreleased]`, `release` turns it into a versioned entry. All three share one binary and one tag; `install.sh` is the download step they used to duplicate. The changelog edit in this PR was made by the new `release` subcommand. The release workflow smoke-runs both writers after the tag is cut; that is the first time `$ACTION_PATH/../install.sh` runs on a runner. Carries the unmerged `66560a8` (release retry) from `fix-release`. ## Checklist - [x] `CHANGELOG.md` gained an entry under `[Unreleased]`, or this change needs none. - [x] AI assistance is declared below. ## AI assistance Claude Code (Claude Opus 5.5).
release: retry creating the release while Forgejo records the pushed tag
All checks were successful
CI / changelog (pull_request) Successful in 36s
CI / test (pull_request) Successful in 37s
66560a8bf9
The tag push makes Forgejo insert a release row for the tag asynchronously; the 1.5.0 request raced it and failed on the unique tag with a 500. The same request succeeds once the row exists.
The parser, the register and the checks become package changelog at the
root; semver and git become public packages beside it. The command moves
to cmd/changelog, so the root import path is the library rather than a
main package.

sarak.sh serves go-import for this path, so it resolves without the
GitHub mirror.
Each locates its target with the same goldmark parse the reader uses
and splices bytes, so a document round-trips untouched outside the
lines written: no Markdown renderer re-emits it.
Both actions live in subdirectories of this repository, so they share
the binary, the tag and the release pipeline with the reader. install.sh
is the download-and-verify step the three action.yaml files used to
duplicate; each reaches it from github.action_path.

The release workflow smoke-runs both writers on a copy of the changelog,
which is the only place the ../install.sh path is exercised on a runner.
release: 1.6.0
All checks were successful
CI / changelog (pull_request) Successful in 18s
CI / test (pull_request) Successful in 21s
0e95fa8b9c
Merge branch 'main' into library-and-writers
All checks were successful
CI / test (pull_request) Successful in 19s
CI / changelog (pull_request) Successful in 19s
f6fd5cb206
Sign in to join this conversation.
No description provided.