Skip to content

Fix Changesets 0.x to 1.0.0 escalation: drop workspace-internal peer deps#9

Merged
TjWheeler merged 1 commit into
mainfrom
fix/changesets-peer-dep-escalation
Jun 5, 2026
Merged

Fix Changesets 0.x to 1.0.0 escalation: drop workspace-internal peer deps#9
TjWheeler merged 1 commit into
mainfrom
fix/changesets-peer-dep-escalation

Conversation

@TjWheeler

Copy link
Copy Markdown
Owner

Root cause

pnpm changeset version was bumping the fixed group from 0.19.0 directly to 1.0.0 even though every pending changeset was minor or patch. This is the same bug that originally forced removal of the release.yml GitHub Action.

The trigger is Changesets Decision 4 (peer dependents major bump):

  1. Each storage / embeddings / indexer-llm-anthropic package declared @utaba/deep-memory as a peerDependency with workspace:^.
  2. A minor bump on core moved its published range from ^0.19.0 to ^0.20.0.
  3. Pre-1.0 caret semver only matches the same minor, so the new range is out of the existing range.
  4. Changesets escalates the package holding the peer dep to a major bump on this basis.
  5. Major in any fixed-group member propagates to the whole group → 1.0.0.

Fix

Convert workspace-internal references from peerDependenciesdependencies (workspace:^) in the five affected packages:

  • embeddings-openai
  • storage-cosmosdb
  • storage-sqlserver
  • storage-neo4j
  • indexer-llm-anthropic

The fixed group in .changeset/config.json already guarantees the version-lockstep invariant that peer deps were the wrong way to enforce.

Also in this PR

  • Add @utaba/deep-memory-storage-neo4j to the fixed group in .changeset/config.json (the publishing guide listed it as fixed; config had drifted).
  • Update .changeset/anthropic-sdk-0-99-bump.md body to reflect the actual shipped delta (^0.98.0^0.100.1, after the dependabot bump).
  • Correct the docs/publishing-guide.md note explaining why release.yml was removed — the original explanation was wrong.

Verification

pnpm typecheck     # 16 packages green
pnpm changeset status --verbose

Status now reports:

  • Minor → 0.20.0: all 6 fixed-group packages
  • Patch → 0.19.1: indexer-llm-anthropic, indexer, indexer-mcp-server
  • Major: none

What is NOT changed

No consumer-facing API change. Consumers who already installed @utaba/deep-memory directly see no behavioural difference; consumers who only installed a provider will now get core transitively (was previously a missing-peer-dep warning).

…deps

Convert @utaba/deep-memory (and @utaba/deep-memory-indexer in
indexer-llm-anthropic) from peerDependencies to regular
dependencies in the 5 workspace packages that re-exported it.

Root cause: Changesets Decision 4 promotes a package to a major
bump whenever a peer dependency's resolved range moves outside the
existing range. Pre-1.0 caret semver only matches the same minor,
so any minor bump of core escalated every package holding it as a
peer to major. Major in any fixed-group member propagated to the
entire group, producing 0.x to 1.0.0 jumps on every release cycle.

Also:
- Add @utaba/deep-memory-storage-neo4j to the fixed group in
  .changeset/config.json (the publishing guide already lists it as
  fixed; the config had drifted)
- Update .changeset/anthropic-sdk-0-99-bump.md body to reflect the
  actual shipped delta (^0.98.0 to ^0.100.1, after dependabot #7
  bumped the SDK further)
- Correct the publishing-guide.md note explaining why the release
  GitHub Action was removed — the original explanation was wrong

After this change, pnpm changeset status correctly plans the fixed
group at 0.20.0 with no major bumps.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@TjWheeler TjWheeler merged commit 2ca5f87 into main Jun 5, 2026
2 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