← Blog

Opal v0.3.0

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