Urgent.News

What's breaking now, across thousands of outlets.

Tech

The holy grail of nixpkgs: version ranges

Nixpkgs, a versionless package manager, has effectively one version per attribute, making it seemingly impossible to express version range support. However, with the introduction of the multiverse, this seemingly impossible task became a reality. The multiverse effectively solves version ranges by converting them into a boolean satisfiability problem, which can then be solved by a SAT solver.

A small query language tied to a solver called grail has been developed to facilitate this process. Grail uses the Spack-flavored grammar, allowing users to specify ranges and chain constraints. The solver's plan can be visualized with the --viz flag, and unsatisfiable sets of constraints can be identified. The inclusion of the multiverse has opened up new possibilities for building software as the original author intended, providing the ability to express a range of versions that are known to work.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at fzakaria.com →

More in Tech

Understanding Apache Airflow 3.3: Key Improvements, Features Every Data Engineer Should Know, and Real-World Use Cases

Airflow 3.3.0 shipped on 6 July 2026, with 3.3.1 following about five weeks later. It's a much smaller release than 3.0 was, and that's fine. Nothing about how you write Dags has changed.

  • Apache Airflow 3.3 released on 6 July 2026
  • Task and Asset State Store introduced for persistent key-value state
  • ResumableJobMixin and expanded asset partitioning enhance reliability and efficiency

More from Wednesday 2 September →