Package management
NukeBox
A package manager for the ecosystem of nuclear-physics libraries — the tools that are hard to install consistently become a single, reproducible command.
- Role
- Creator & maintainer
- Period
- 2023 — present

The problem
A nuclear simulation environment is a stack: a transport code, a depletion library, a CAD kernel, a mesh library and a set of Python packages, each with its own build system and its own idea of what a version means. Reproducing someone else's environment was a day of work at best.
The approach
NukeBox treats the whole stack as one managed unit. A user declares what they need, and the tool resolves versions across conda-forge and PyPI, builds the environment, and keeps it reproducible.
The hard part is not installing packages — it is resolving the conflicts between libraries that were never designed to be installed together. NukeBox leans on conda-forge's solver for the binary side and on standard Python packaging for the source side, so the resolution happens in one place.
Environments are content-addressed, so a project that worked last month can be recreated exactly, including the compiled extensions that are usually the first thing to break.
Engineering highlights
One resolver for two ecosystems
conda-forge and PyPI disagree about versions. Putting both behind a single resolution step removes the class of bugs where one half of the environment is quietly wrong.
Reproducible by content address
An environment is identified by what is in it, not by a name — so “the usual environment” is a precise, shareable thing.
At a glance
- Scope
- conda-forge + PyPI
- Docs
- nukebox.readthedocs.io
Stack
- Python
- conda-forge
- PyPI
- Docker