Skip to content

Fix: cross-package peer deps publish as caret ranges (ERESOLVE deadlock) (#508)

Choose a tag to compare

@naomiaro naomiaro released this 28 Jun 01:21
8fe8227

Fixes an ERESOLVE deadlock when installing sibling @waveform-playlist/* packages together from npm. PR #508.

Published packages

Package Version
@waveform-playlist/annotations 12.0.2
@waveform-playlist/browser 13.1.2
@waveform-playlist/spectrogram 13.0.3

What changed

pnpm rewrites workspace:* peerDependencies to the exact current version at publish time. That produced a mutually unsatisfiable pin between siblings — e.g. annotations@12.0.1 shipped peer @waveform-playlist/browser: 13.1.0 while browser@13.1.1 shipped peer @waveform-playlist/annotations: 12.0.1 — so a downstream app installing both from npm failed with ERESOLVE.

Switched the cross-@waveform-playlist peerDependencies to workspace:^, which publishes as a caret range (e.g. ^13.1.x) that patch releases satisfy. Affects the peer deps in annotations (→ browser), browser (→ annotations, recording), and spectrogram (→ browser); the three affected packages were patch-bumped so the fix could be republished.

A regression guard added in the following release (#509) fails the build if any package reintroduces workspace:* in peerDependencies.