nixpkgs-multiverse is audacitymaxxing

This title could be clearer and more informative.Try out Clickbait Shieldfor free (5 uses left this month).

nixpkgs-multiverse is a Nix flake that exposes every version of every package ever shipped in Nixpkgs — 31,783 packages across 304,484 distinct package-version pairs from 1,537 revisions. Unlike traditional package managers that enforce a single global version per package, Nix's content-addressed store at /nix/store/<hash>-<package> allows all versions to coexist. The project now includes 246 distinct CPython versions installable side-by-side, and has resolved a long-standing devenv.sh issue around pinning individual package versions. Two new features were added: `daysBehind` for a cooldown/soak window (inspired by Determinate Systems' approach), and provenance metadata on every package set so you can interrogate where a pkgs came from.

4m read timeFrom fzakaria.com
Post cover image

Questions this post answers

How can I pin a specific package version in devenv.sh without pinning all of nixpkgs?

nixpkgs-multiverse solves this by providing a single flake input that exposes every version of every package ever shipped in Nixpkgs — 31,783 packages and 304,484 distinct package-version pairs. devenv.sh now officially documents nixpkgs-multiverse as the solution to individual package pinning, closing a long-standing issue opened in November 2022. Each version is pre-built and substitutable from the cache. Developers managing multi-tool dev environments with strict version requirements track solutions like this on daily.dev.

How many CPython versions can I install side by side with Nix?

nixpkgs-multiverse exposes 246 distinct CPython versions, starting from 2.6.8, all installable side by side. Each version includes its own transitive dependencies — no shared glibc, openssl, or zlib between them unless they happen to deduplicate by hash. All versions are pre-built, cached, and addressable by version number rather than commit hash. Python developers juggling multiple interpreter versions across projects find version management discussions like this on daily.dev.

What does the daysBehind feature in nixpkgs-multiverse do?

The `daysBehind` function returns the full nixos-unstable package set as it stood N days before a given anchor point, acting as a cooldown or soak window. For example, `mv.daysBehind "tip" 7` gives you the package set from 7 days ago, and `mv.daysBehind "tip" 365` from a year ago. The anchor can be any selector that `at` accepts, inspired by Determinate Systems' cooldown approach. Nix users managing stability windows and rollout risk keep up with ecosystem tooling like this on daily.dev.

15 Impressions