Skip to content

fix: declare sibling dependencies as plain versions so published manifests are installable - #49

Merged
Mearman merged 2 commits into
mainfrom
fix-workspace-protocol-ranges
Sep 19, 2026
Merged

Mearman merged 2 commits into
mainfrom
fix-workspace-protocol-ranges

Conversation

@Mearman

@Mearman Mearman commented Sep 19, 2026

Copy link
Copy Markdown
Member

trilean 1.5.0 to 1.6.1 and trilean-sql 2.2.0 were published with workspace:^ dependencies still in their manifests, so npm install trilean (and anything depending on it, e.g. wire-mesh-core) fails with EUNSUPPORTEDPROTOCOL. The release goes through @semantic-release/npm, which runs plain npm publish and copies package.json as it is. The orchestrator treats bare workspace:^ as "pnpm resolves it at pack time", but nothing packs with pnpm here.

This switches the three sibling edges (trilean -> trilean-regex, trilean-sql -> trilean and trilean-regex) to plain exact versions matching what is currently released, which is what documents.js does. The orchestrator rewrites those ranges itself when a sibling releases, and linkWorkspacePackages still symlinks the workspace copy locally (checked: packages//node_modules/trilean point back into packages/).

I also turned saveWorkspaceProtocol off, since pnpm's default writes workspace:^ on pnpm add <sibling>, which is how this got here. Checked both ways: without the setting pnpm add trilean-regex --filter trilean writes workspace:^, with it 1.0.2.

Packed all three packages with npm pack and none of the packed manifests contain a workspace: specifier.

…fests are installable

The release publishes through npm, which copies package.json verbatim
and does not understand the pnpm workspace protocol.
The `workspace:^` dependencies of trilean and trilean-sql therefore reached the registry unchanged
and made both fail to install with EUNSUPPORTEDPROTOCOL.

Plain versions are rewritten by the release orchestrator when a sibling releases,
and pnpm still links the workspace copies because linkWorkspacePackages is on.
…dencies

pnpm's default is to save `workspace:^` when adding a sibling,
which the npm-based release then publishes verbatim as an uninstallable range.
With saveWorkspaceProtocol off, adding a sibling writes the plain exact version instead.

Also drops a comment claiming the workspace holds a single package.
@Mearman
Mearman marked this pull request as ready for review September 19, 2026 11:23
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 19, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review Completed 2026-09-19T11:26:37.470434Z 42e43d8 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Mearman
Mearman merged commit 5d426d6 into main Sep 19, 2026
14 checks passed
@Mearman
Mearman deleted the fix-workspace-protocol-ranges branch September 19, 2026 11:27
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