Skip to content

feat(library-publish): prod marks one release "Latest", chosen by latest-release - #19

Merged
igorlamos merged 1 commit into
mainfrom
feat/library-publish-latest-release
Oct 8, 2026
Merged

igorlamos merged 1 commit into
mainfrom
feat/library-publish-latest-release

Conversation

@beplus-agent-claude

Copy link
Copy Markdown
Contributor

After the catch-up promotions, every version prod has is a full release on GitHub, but the "Latest" badge didn't move. beplus/cdk still showed cdk_v0.8.0 (March) with 0.9.0 in prod, and beplus/docs showed docs_v0.4.2 (February) with 1.0.0-next.17 in prod.

prod turned pre-releases into full releases without --latest, and GitHub doesn't move the badge on that edit. This was true before #15 as well; the catch-up just made it visible. A repository of several packages has one badge for all of them, so the workflow has to be told which.

The change

  • New optional input latest-release: the package whose release prod marks "Latest".
  • Defaults without it: the repository's only package, or else the package named after the repository (@beplus/cdk in beplus/cdk). With neither, prod leaves the badge alone.
  • New prod step "Mark the Latest GitHub release": sets --latest on that package's release at the promoted commit. It runs on every prod promotion, so the badge always matches prod's latest, and a stale badge like cdk_v0.8.0 gets fixed on the next promotion.
  • Making a release full now always passes --latest=false, so only that step moves the badge.
  • README updated.

Across the 17 libraries

  • Only package (11): api, auth, aws, cms, config, mobile, rush, saas, server, uix, web.
  • Named after the repository (3): cdk, database, docs.
  • No badge for now (3): ai, analytics and data each publish several packages, none named after the repository. The plan is for every repository to gain a package named after it, which this default then picks with no input to set.

Tested

Not run on GitHub yet. Locally, both prod release steps ran against a stubbed gh (shellcheck clean):

  • one package
  • several packages, one named after the repository, even when listed after cdk-release
  • several packages, none named after the repository
  • an explicit latest-release
  • a latest-release naming a package the repository doesn't publish: warning
  • a chosen package with no GitHub release: warning
  • the @beplus/cdk / @beplus/cdk-release prefix trap

After merge

  • Tag v2.12.0 and move v2.
  • The next prod promotion in each repository sets its badge. Dispatch Publish on prod to set it now.

…test-release`

prod made its releases full releases without `--latest`, and GitHub does not move
the badge on that edit: after the catch-up promotions, beplus/cdk still showed
cdk_v0.8.0 (March) as Latest with 0.9.0 in prod, beplus/docs docs_v0.4.2 with
1.0.0-next.17 there.

A repository of several packages has one badge, so the workflow is told which:
`latest-release` names the package, else it is the repository's only package,
else the one named after the repository; with none of them the badge is left
alone. prod marks that package's release at the promoted commit Latest on every
promotion, so the badge always matches prod's `latest`. Making a release full now
always passes `--latest=false`.

Co-Authored-By: Igor Lamos <igor@be.plus>
@igorlamos igorlamos self-assigned this Oct 8, 2026
@igorlamos
igorlamos merged commit aecb2cb into main Oct 8, 2026
@igorlamos
igorlamos deleted the feat/library-publish-latest-release branch October 8, 2026 18:40
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