Skip to content

ci(release): wire release-please + publish flow#15

Merged
jadb merged 1 commit into
mainfrom
chore/release-flow
May 18, 2026
Merged

ci(release): wire release-please + publish flow#15
jadb merged 1 commit into
mainfrom
chore/release-flow

Conversation

@jadb
Copy link
Copy Markdown
Contributor

@jadb jadb commented May 17, 2026

Summary

Adopt hop-top/.github's release pipeline for usp, per hop-top-dotgithub SKILL.

  • release-please.yml — opens standing release PR on push: main; workflow_dispatch enabled for manual retriggers.
  • publish.yml — calls hop-top/.github/.github/workflows/publish-on-tag.yml@v0 on */v* tag pushes. Single Go-only ecosystem entry; no registry publish step (Go ships via proxy.golang.org pulling tags). Wired anyway for canonical tag-shape convention and so any future TS/Py/Rs SDK additions just need an extra ecosystems: entry.
  • release-please-config.json — prerelease channel four-piece combo: prerelease: true + prerelease-type: \"alpha.0\" + versioning: \"prerelease\" + bump-minor-pre-major: true. component: usp (single segment, dodges the tag-shape glob trap). release-type: go.
  • .release-please-manifest.json — seed 0.1.0-alpha.0.

Three-name alignment (config.component == publish.ecosystems key == mirror basename): usp == usp == hop-top/usp. ✓

Dry-run

$ npx release-please release-pr ... --dry-run
title: chore(release): usp 0.1.0-alpha.1

The first cut comes out as usp/v0.1.0-alpha.1 rather than alpha.0. Reason: release-please treats the manifest seed as "the last released version" and the next bump increments the counter. To actually ship usp/v0.1.0-alpha.0 as the literal first tag, add a Release-As: 0.1.0-alpha.0 footer on the first qualifying commit (kit did this — its first tag was kit/v0.2.0-alpha.0). Otherwise the first published tag is alpha.1, which is consistent with the SKILL's stated behavior but worth being explicit about.

Pre-merge checklist

Before this can actually ship a release, the hop-top/usp repo needs these secrets (per SKILL §"Secrets reference"):

  • GH_RELEASE_PLEASE_PAT — fine-grained PAT, Contents: RW + Pull Requests: RW + Workflows: RW on hop-top/usp. (Required: default GITHUB_TOKEN PRs don't trigger downstream workflows.)
  • GH_MIRROR_PAT — fine-grained PAT, Administration: RW + Contents: RW on hop-top/usp. (Required by mirror-subtree, even though usp is its own canonical Go repo — the workflow still expects the secret.)

No NPM_REGISTRY_TOKEN / CARGO_REGISTRY_TOKEN / PyPI setup needed (Go-only).

Test plan

  • Merge depends on chore(deps): bump hop.top/kit to v0.4.0-alpha.2 #14 (kit bump) landing first.
  • After merge, verify release-please workflow runs and opens a standing release PR.
  • Verify proposed PR title is chore(release): usp 0.1.0-alpha.1 (or whatever counter).
  • Decide on Release-As footer for literal alpha.0 first cut, or accept alpha.1.

Stacked on

Copilot AI review requested due to automatic review settings May 17, 2026 14:44
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds release automation for usp, wiring release-please to maintain release PRs and adding a tag-triggered publish workflow aligned with the shared hop-top/.github pipeline.

Changes:

  • Adds a release-please workflow for main pushes and manual dispatch.
  • Adds a publish workflow for component-shaped version tags.
  • Seeds release-please configuration and manifest for prerelease Go releases under the usp component.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
.github/workflows/release-please.yml Runs release-please with the repo-specific config and manifest.
.github/workflows/publish.yml Calls the shared publish-on-tag workflow for usp/v* tags.
.github/release-please-config.json Defines Go prerelease behavior, tag shape, component name, and changelog sections.
.github/.release-please-manifest.json Seeds the initial prerelease manifest version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jadb jadb force-pushed the chore/release-flow branch from f60cdd1 to e030197 Compare May 17, 2026 15:55
Adopt hop-top/.github's release pipeline:

- release-please.yml: opens standing release PR on push to main; uses
  workflow_dispatch for manual retriggers (SKILL: 'Retriggering
  release-please after sibling-PR conflicts').
- publish.yml: dispatches hop-top/.github's publish-on-tag.yml on
  '*/v*' tag pushes. Single 'usp' ecosystem entry (Go-only); no
  registry publish step, only canonical tag-shape + proxy.golang.org
  pickup.
- release-please-config.json: prerelease channel four-piece combo
  (prerelease + prerelease-type 'alpha.0' + versioning 'prerelease' +
  bump-minor-pre-major), component 'usp' (single segment per tag-shape
  glob trap), release-type 'go'.
- .release-please-manifest.json: seed at 0.1.0-alpha.0
  (prerelease-shaped, avoids the '0.0.0' trap and stable-bump
  surprises).

Three-name alignment (config.component == publish.ecosystems key ==
mirror basename) is satisfied: 'usp' == 'usp' == 'hop-top/usp'.
@jadb jadb force-pushed the chore/release-flow branch from e030197 to 833559e Compare May 17, 2026 16:50
@jadb jadb changed the base branch from chore/kit-v0.4.0-alpha.2 to main May 18, 2026 02:10
@jadb jadb merged commit e379c7f into main May 18, 2026
3 checks passed
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