Opal now installs the versions npm would install. On six edge-case fixtures the trees match npm's package for package, and on a 365-package Next.js scaffold 432 of npm's 433 package versions match.
To install Opal v0.3.0
curl -fsSL https://raw.githubusercontent.com/saintparish4/opal/master/install.sh | OPAL_VERSION=v0.3.0 bash
Matching npm
Version preference agrees with npm-pick-manifest itself on all 12,032 cases of a generated registry.
Faster linking
Linking runs in parallel, one node_modules depth at a time, about 2.7× faster than v0.2.1 on the same tree and machine.
Install scripts are named
The install names every package whose install scripts it didn't run, the project's own included.
A contained exports
A package's exports can no longer resolve to a file outside the package.
The suites behind it
- Randomized SIGKILLs during install that must converge.
- A cross-check of resolution against npm's.
- A fuzz target and a proptest for the resolver.
- A benchmark job that records numbers on every push.
Full Changelog: https://github.com/saintparish4/opal/compare/v0.2.1...v0.3.0