feat(release): independent release lines for the facilitator and the client - #3
Merged
Conversation
…client release.yml dispatches on a component. The facilitator takes the plain semver tag, which is also the Go module version; the client tags client/vX.Y.Z, because a bare vX.Y.Z tag would publish a Go version for a release containing no Go change. The client publishes to npm through OIDC trusted publishing — no token in this repository. package.json holds the published version, and the workflow refuses a dispatch that disagrees with it or names a version already on the registry. publint and attw are pinned devDependencies, run before publishing and on every pull request. The client publishes before tagging, so a failed publish leaves nothing behind. Both jobs refuse a dispatch off the default branch. Releases of the same component serialise. goreleaser is pinned exactly and ignores client/v* tags when resolving versions, and git describe is pinned to the facilitator's tag line. AGENTS.md records the layout, the invariants and what to update when; CLAUDE.md symlinks to it. docs/releasing.md is the release guide.
gfanton
force-pushed
the
feat/release-lines
branch
from
August 14, 2026 13:06
40bec9a to
09e5fc7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
release.yml dispatches on a component. The facilitator keeps the plain semver
tag, which is also the Go module version; the client tags client/vX.Y.Z, because
any bare vX.Y.Z tag would publish a Go version for a release containing no Go
change.
The client publishes to npm through OIDC trusted publishing — no token exists in
this repository. package.json holds the published version and the workflow
refuses a dispatch that disagrees with it, rather than rewriting it. publint and
attw run before the tag push, since a broken exports map cannot be fixed on a
published version.
git describe is pinned to the facilitator's tag line: it returns prefixed tags
too, so a bare describe would stamp a facilitator binary with a client version.
AGENTS.md records the layout, the invariants and what to update when; CLAUDE.md
symlinks to it. docs/releasing.md documents both lines.