refactor(registry): derive workspace dependency pins from package manifests - #34
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Review complete. No issues found — approved ✅. This PR removes hardcoded version pins (e.g.
All candidate findings raised during review were adjudicated and rejected: the sole recurring concern (dependency range derivation) is refuted by the documented registry architecture, which derives ranges from the workspace manifests by design. No defects met the confidence threshold, so the change is approved. Reviewed commit: 3c4afc7 |
Summary
Answers the "why are we hand-pinning versions outside package.json?" question from #33: we shouldn't. The registry pins for
@constructive-io/dataand@constructive-io/command-palettewere literal strings incompiler.tsand in the registry manifests, so every Lerna bump silently desynced them and turnedmainred at smoke-install time.Now the only source of truth is the package manifest Lerna already bumps:
apps/blocks/registry.json,packages/sheets|schema-builder/registry.json) now declare the bare package name, so a version bump never makes them stale.build.tsstamps the current range onto itemdependencies/devDependenciesbeforeassertRegistryDistributionContract, which itself now derives the required range instead of comparing against a constant. Generated output (apps/registry/registry.json,public/r/*) keeps the resolved^0.8.0pins consumers need.Verified with
pnpm checkandpnpm --filter @constructive-io/registry smoke:install.Link to Devin session: https://app.devin.ai/sessions/027937d092794c92a31c6ee49c513f59
Requested by: @pyramation