Skip to content

chore: make 0.1.0 the first published version - #27

Merged
btravers merged 1 commit into
mainfrom
chore/first-release-0-1-0
Aug 7, 2026
Merged

chore: make 0.1.0 the first published version#27
btravers merged 1 commit into
mainfrom
chore/first-release-0-1-0

Conversation

@btravers

@btravers btravers commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

The package has never been published, so changeset version would have consumed the 22 accumulated changesets into 0.2.0 — a first public release whose changelog announced the entire development history as breaking changes to a version nobody could have installed.

This keeps the version at 0.1.0 and leaves changeset status with nothing to bump, so the manual bootstrap publish ships 0.1.0 and the first automated release is whatever comes after it.

What changed

The 22 changesets are removed. Every one described a migration between unpublished states — decodedcomputed, Entity.createEntity.factory, the Entity.* namespace collapse, invariants becoming a list. Accurate as history, meaningless as release notes for a first version.

packages/entity/CHANGELOG.md is written by hand, with one ## 0.1.0 entry describing the surface as it is rather than the route to it: the builder and its options, Entity.computed / Entity.invariant / Entity.union, the entry points, and what the package guarantees (sealed construction, deep immutability, errors as values, no I/O). Future releases prepend to it as normal.

.changeset/no-release-first-publish.md is an empty changeset — the sanctioned "no release needed" marker. Two reasons: it is accurate, since this commit is release plumbing; and CI runs a reusable workflow from btravstack/config that I cannot inspect from this checkout, so I cannot rule out a changeset status gate, which would otherwise fail on a changed package with no changeset.

Verification

changeset status  → NO packages to be bumped at patch / minor / major
package.json      → 0.1.0

Full gate green: format --check, lint, typecheck (three passes), test (145 passed), knip, build.

Not included

Three things the manual publish still needs, left out because they are a separate concern from versioning:

  • No publishConfig. @btravstack/entity is scoped, so pnpm publish defaults to restricted. Needs --access public, or better "publishConfig": { "access": "public" } — the changesets config's access: public only covers changesets-driven publishes.
  • No prepublishOnly, and dist/ is gitignored, so a fresh clone would publish without it. "prepublishOnly": "pnpm build" makes it self-correcting.
  • pnpm is required, not preferred. pnpm pack resolves the catalog: devDependency specifiers to real versions (typescript = 7.0.2, zod = 4.4.3, …); npm publish would ship the literal catalog: strings. Worth a line in CONTRIBUTING.md.

pnpm publish also enforces a clean tree, correct branch, and being up to date with the remote — so this wants merging before the bootstrap publish.

🤖 Generated with Claude Code

The package has never been published, so the 22 accumulated changesets all
described migrations between states nobody could have installed -- and
`changeset version` would have consumed them into a 0.2.0 whose changelog
re-announced the entire history as breaking changes to a version that never
existed.

They are replaced by a hand-written 0.1.0 entry describing the surface as it
is rather than the route to it. The version stays 0.1.0 and `changeset status`
reports nothing to bump, so the first automated release will be whatever comes
*after* the manual bootstrap publish.

The empty changeset is the sanctioned "no release needed" marker, and is
accurate: this commit is release plumbing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 7, 2026 13:47
@btravers
btravers merged commit e4387e8 into main Aug 7, 2026
14 checks passed
@btravers
btravers deleted the chore/first-release-0-1-0 branch August 7, 2026 13:49

Copilot AI left a comment

Copy link
Copy Markdown

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 bootstraps the repository’s first public release by ensuring the initial published version is 0.1.0 (rather than having Changesets roll up the full unpublished history into an initial 0.2.0 release).

Changes:

  • Remove the accumulated historical Changesets that describe migrations between unpublished states.
  • Add a hand-written packages/entity/CHANGELOG.md describing the current public surface and guarantees for 0.1.0.
  • Add an “empty” Changeset (.changeset/no-release-first-publish.md) as an explicit no-bump marker for release plumbing.

Reviewed changes

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

Show a summary per file
File Description
packages/entity/CHANGELOG.md Adds a hand-written 0.1.0 changelog describing the current API and guarantees.
.changeset/no-release-first-publish.md Adds a no-bump / release-plumbing marker Changeset.
.changeset/wild-pandas-shout.md Removes historical unpublished-state Changeset.
.changeset/tsconfig-comments.md Removes historical unpublished-state Changeset.
.changeset/soft-hoops-hammer.md Removes historical unpublished-state Changeset.
.changeset/one-entry-point.md Removes historical unpublished-state Changeset.
.changeset/nest-entities.md Removes historical unpublished-state Changeset.
.changeset/lucky-pandas-relate.md Removes historical unpublished-state Changeset.
.changeset/invalid-entity-structured-issues.md Removes historical unpublished-state Changeset.
.changeset/forbid-entity-subclassing.md Removes historical unpublished-state Changeset.
.changeset/fix-equality-union-freeze.md Removes historical unpublished-state Changeset.
.changeset/factory-returns-a-function.md Removes historical unpublished-state Changeset.
.changeset/entity-union.md Removes historical unpublished-state Changeset.
.changeset/entity-namespace.md Removes historical unpublished-state Changeset.
.changeset/entity-is-a-schema.md Removes historical unpublished-state Changeset.
.changeset/entity-invariant.md Removes historical unpublished-state Changeset.
.changeset/entity-factory.md Removes historical unpublished-state Changeset.
.changeset/entity-extend.md Removes historical unpublished-state Changeset.
.changeset/drop-node-20-matrix.md Removes historical unpublished-state Changeset.
.changeset/drop-class-standard-schema.md Removes historical unpublished-state Changeset.
.changeset/docs-diataxis.md Removes historical unpublished-state Changeset.
.changeset/deep-immutable-entity-data.md Removes historical unpublished-state Changeset.
.changeset/consumer-declaration-emit.md Removes historical unpublished-state Changeset.
.changeset/computed-derived-from-stored.md Removes historical unpublished-state Changeset.

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

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