Skip to content

ci: adopt Changesets for versioning#9

Merged
linyiru merged 2 commits into
mainfrom
feat/changesets
Jun 24, 2026
Merged

ci: adopt Changesets for versioning#9
linyiru merged 2 commits into
mainfrom
feat/changesets

Conversation

@linyiru

@linyiru linyiru commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Mirrors the kura Changesets setup (kurajs/kura#12), with June-specific verification of the catalog + workspace:^ + range mix.

Flow

  • Contributors run bun run changeset to describe a change + bump type.
  • changesets.yml (push to main) opens/updates a "Version Packages" PR (changeset version → bumps versions, cascades dependents only when needed, writes CHANGELOGs).
  • Merging it lands the bumps; publishing stays with the tag-triggered publish.yml (idempotent OIDC trusted publishing via bun pm pack + npm publish). The proven publish flow is untouched.

Verified against June's specifics (probed by co-bumping @junejs/core + @junejs/server)

  • catalog: deps (react family) left untouched — react isn't a workspace package.
  • workspace:^ (juno → @junejs/server) left untouched — bun pm pack rewrites it at publish.
  • >=X <0.1.0 ranges preserved when they already cover the new version (e.g. cli→core stayed >=0.0.46 <0.1.0 when only core bumped).
  • ⚠️ One behavior to know: when a single changeset co-bumps a package and its internal dep, the dependent's range is rewritten (>=0.0.46 <0.1.0>=0.0.47), dropping the <0.1.0 upper bound. That's the coordinated case where requiring the newer floor is intended; independent bumps preserve the full range.

Config: access: public, baseBranch: main. No package code changed, so no changeset accompanies this PR.

linyiru added 2 commits June 24, 2026 16:46
…h.yml)

Mirrors the kura setup. Contributors run 'bun run changeset'; the changesets.yml workflow opens a
'Version Packages' PR (changeset version → bumps + CHANGELOGs); publishing stays with the
tag-triggered publish.yml (idempotent OIDC trusted publishing).

Verified against June's specifics (catalogs + workspace:^ + ranges):
- catalog: deps (react family) are left untouched (react isn't a workspace package).
- workspace:^ (juno → @junejs/server) is left untouched (bun pm pack rewrites it at publish).
- internal >=X <0.1.0 ranges are preserved when they already cover the new version; a range is only
  rewritten (e.g. >=0.0.46 <0.1.0 → >=0.0.47) when one changeset co-bumps a package AND its internal
  dep, which is the coordinated case where the newer floor is intended.
The default changelog lists changeset summaries; changelog-github additionally resolves each entry
to its PR and author ("[#42](link) Thanks [@user]! - summary") — better for public packages. It
needs GITHUB_TOKEN at `changeset version` time, which the changesets/action provides; contributors
only run `changeset add` locally (no token needed).
@linyiru linyiru merged commit fa0ae7b into main Jun 24, 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.

1 participant