# Solving Package Management via Hypergraph Dependency Resolution

*2025-06-01 — paper*

Authors: Ryan Gibb, Patrick Ferris, David Allsopp, Michael Winston Dales, Mark Elvers, Thomas Gazagnaire, Sadiq Jaffer, Thomas Leonard, Jon Ludlam, Anil Madhavapeddy







Package managers are everywhere, with seemingly every language and operating system implementing their own solution. The lack of interoperability between these systems means that multi-lingual projects are unable to express precise dependencies across language ecosystems, and external system and hardware dependencies are typically implicit and unversioned.

We define HyperRes, a formal system for describing versioned dependency resolution using a hypergraph that is expressive enough to model many ecosystems and solve dependency constraints across them. We define translations from dozens of existing package managers to HyperRes and comprehensively demonstrate that dependency resolution can work across ecosystems that are currently distinct. This does not require users to shift their choice of package managers; instead, HyperRes allows for the translation of packaging metadata between ecosystems, and for solving to be precisely specialised to a particular deployment environment.







DOI: 10.48550/arXiv.2506.10803
Classification: preprint
Venue: arXiv
URL: http://arxiv.org/abs/2506.10803
Projects: OCaml Labs

## Related

- [AoAH Day 23: Unpac unifies git branching with package management](https://anil.recoil.org/notes/aoah-2025-23) (note, 2025-12-23)
- [AoAH Day 4: Going recursive with Claudeio for Claude](https://anil.recoil.org/notes/aoah-2025-4) (note, 2025-12-04)
- [Solving Package Management via Hypergraph Dependency Resolution](https://ryan.freumh.org/papers/2025-hyperres.html) (feed, 2025-06-01)
- [OxCaml Labs](https://anil.recoil.org/projects/oxcaml) (project, 2025-01-01)
- [OCaml Labs](https://anil.recoil.org/projects/ocamllabs) (project, 2012-01-01)

---
Canonical: https://anil.recoil.org/papers/2025-hyperres
Type: paper
License: CC BY 4.0 <https://creativecommons.org/licenses/by/4.0/>
Tags: packaging, systems, os, ocaml, preprint, ocamllabs
