Skip to content

Create GitHub Releases from package version tags #32

Description

@patoperpetua

Goal

release.yml already bumps versions and pushes git tags (@singleton-sd/post-kit-*@x.y.z), but the repository has no GitHub Releases. Enable GitHub Release creation so each package tag has a matching Releases entry with notes.

Context

  • Tags exist today; Releases list is empty.
  • .release-it.json has github.release: false and npm.publish: false.
  • npm publish stays out of scope until packages are ready for public install (after @singleton-sd/post-kit-client / epic Epic: Publish the PostKit client SDK for trusted consumers #4). Do not enable npm in this issue.

Scope

  1. After scripts/release-changed.mjs creates and pushes tags in CI, create one GitHub Release per new tag (or one release covering the batch — prefer one Release per package tag, matching how tags are already named).
  2. Release body: package name, version bump (fromto), increment type, and a short link to CHANGELOG.md / commits since previous tag when cheap to include.
  3. Use built-in GITHUB_TOKEN only (already granted contents: write on release.yml). No new secrets.
  4. Update docs/pr-pipelines.md (and .release-it.json / script comments if needed) so the documented release behaviour matches reality.
  5. Optional one-shot: document or script how to backfill Releases for existing tags already on main (manual gh release create is fine; do not require rewriting history).

Out of scope

  • Publishing packages to npm.
  • Changing semver / conventional-commit bump rules.
  • Preview environments or SWA.

Constraints

  • Public repository: release notes must not include secrets or private business detail.
  • Keep commit-then-tags push order; do not reintroduce --follow-tags races.
  • Idempotent: re-running must not fail if a Release for that tag already exists (skip or update notes safely).
  • Do not touch hub files unrelated to release (pnpm-lock.yaml, app packages) unless the script needs a dependency already present.

Acceptance criteria

  • A successful pnpm release:ci run that creates tags also creates matching GitHub Release(s).
  • Release titles/bodies identify the package and version clearly.
  • npm publish remains disabled.
  • docs/pr-pipelines.md documents GitHub Releases as part of the main release flow.
  • Existing tags either have a documented backfill path, or a one-time backfill is performed in the same PR / follow-up note on the issue.
  • Unit/script tests cover the release-creation helper (mock gh / API) where practical; pnpm test / CI green.

Agent notes

Branch: chore/<issue>-github-releases-from-tags. Read scripts/release-changed.mjs, .github/workflows/release.yml, .release-it.json, and docs/pr-pipelines.md first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyMeets every criterion in docs/github-source-of-truth.md, section 4 — safe for an agent to claiminfrastructureInfrastructure / Azure / CI

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions