pnpm install fails: dsh monolith dependency ranges cannot select published prerelease siblings (0.1.2-rc.1 / 0.1.3-alpha.2) #5969
backpackor
started this conversation in
General
Replies: 1 comment
|
Update with additional evidence (2026-09-08): the same error class reproduces with the rc.1 line, but the requester is NOT the dsh monolith. Isolated repro:
So the rc.1 monolith + sibling closure is self-consistent; the failure came from a third-party plugin pinning a stable-bound dsh-settings range. Root cause class stays: prerelease-only publishes + stable-bound ranges = unsatisfiable. Suggest auditing third-party plugin ranges when publishing rc lines. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
Fresh install of
@deepseek-ai/dsh@0.1.2-rc.1(and0.1.3-alpha.2) fails withERR_PNPM_NO_MATCHING_VERSIONbecause the monolith's dependency ranges use stable lower bounds that cannot select the published prerelease siblings.Repro
Result
Root cause
@deepseek-ai/dsh-settings@0.1.2-rc.1is published (dist-tagnext), but semver excludes it from the range>=0.1.2 <0.2.0-0: prerelease0.1.2-rc.1< stable0.1.2, and the range's lower bound>=0.1.2requires the stable release. The only published version satisfying the range is0.1.3-alpha.2(since0.1.3-alpha.2>0.1.2and< 0.2.0-0), which silently pulls in a different line and produces mixed-version trees where plugins import symbols missing from older siblings (e.g.deepFreeze,snapshotJsonValue,ImageVariantId).The same class affects the alpha line:
@deepseek-ai/dsh@0.1.3-alpha.2declares@deepseek-ai/dsh-settings@>=0.1.3 <0.2.0-0while only0.1.3-alpha.2(prerelease) is published for that line.Note: an isolated single-package resolve can appear to succeed when a newer-line prerelease (e.g.
0.1.3-alpha.2) happens to satisfy the bad range — the failure/mixing only shows on a full-tree install or at boot.Suggested fix
For prerelease publishes, use prerelease-aware ranges, e.g.
^0.1.2-rc.1(caret anchored on the rc base includes0.1.2-rc.1), or publish stable releases of sibling packages alongside the rc/alpha monolith. Also worth checking dist-tag hygiene:@deepseek-ai/dsh-settingsstill haslatestpointing at0.0.1-rc.1whilenext=0.1.2-rc.1.All reactions