ReviewOS

pantry-pm/pantry

fix(installer): resolve prerelease constraints from live Zig metadata

#216
Closed chris opened this 2 months ago ·
2 months ago

Problem

pantry install parses ^0.17.0-dev as the stable core 0.17.0, then excludes every prerelease candidate. Zig is also absent from the live-version resolver even though the Pantry registry publishes current development builds. Craft therefore cannot reproduce its declared toolchain through Pantry.

Observed while building home-lang/craft v0.0.46 after pantry-pm/pantry v0.10.43 installation.

Required contract

  • Preserve prerelease and build metadata when parsing a version constraint.
  • Compare numeric cores without rejecting a prerelease requested by the constraint.
  • Include live Pantry registry versions for Zig constraints.
  • Select the newest matching concrete registry version without falling back outside the requested range.
  • Cover development, stable, x86/x64 core, and unsupported constraint behavior with tests.
  • Verify Craft can install and build its ^0.17.0-dev toolchain through Pantry.

Related: stacksjs/stacks#2064 and home-lang/craft#15.

8 days ago

Implementation and local verification are complete across both installer layers.

  • TypeScript resolver: a2ad06b, released in v0.10.44
  • Native resolver: 7cccf0d, released in v0.10.45
  • Atomic workspace locks: v0.10.47 at d738d5f
  • TypeScript suite: 332 passed, 6 skipped, 0 failed
  • Targeted prerelease tests: 4 passed
  • Native semver tests: 29 passed
  • Native build graph: 32/32 steps
  • Live TypeScript and native installs both resolved ^0.17.0-dev to 0.17.0-dev.1441_d5181a9c9 from live metadata

The v0.10.47 cross-platform Releaser run is still building assets: https://github.com/pantry-pm/pantry/actions/runs/29890167576. I am leaving this open until that retained release evidence succeeds.

8 days ago

Completed and released in v0.10.47. The cross-platform native release, GitHub assets, and npm publication all succeeded in https://github.com/pantry-pm/pantry/actions/runs/29890167576. Both pantry.lock and bun.lock match the v0.10.47 workspace manifests in the tag, and the whitepaper now retains the TypeScript/native resolver sources plus their tests at https://whitepaper.stacksjs.com/reference/package-manager/.

Sign in to comment on this issue.