Skip to content
ATC
All projects

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
NukeBox screenshot

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