{
  "id": 5166882,
  "title": "The holy grail of nixpkgs: version ranges",
  "url": "https://urgent.news/2026/09/02/the-holy-grail-of-nixpkgs-version-ranges",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-02T19:22:37.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://fzakaria.com/2026/09/01/the-holy-grail-of-nixpkgs-version-ranges"
  },
  "original_language": "en",
  "account": "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.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}