LArSoft

Logo

Software for Liquid Argon time projection chambers

View My GitHub Profile

Overview page of LArSoft with SPACK

September 1, 2026

LArSoft is in the process of migrating from the Fermilab developed UPS packaging tool to the community developed and supported Spack packaging tool. The use of Spack as the LArSoft package manager is expected to provide greatly improved flexibility to the experiments in building their software stacks relative to the standard tools provided by the LArSoft team, and will reduce the effort required to support the LArSoft software stack, thereby freeing effort to work on other tasks.

The new system provides the multi-product development tool (mpd), a Spack extension that allows users to develop CMake based packages in concert with Spack-provided external software. MPD offers a similar set of features as that of the UPS-based MRB tool.

Spack is in production for LArSoft as of August 26, 2026. (Experiments will make their own decisions about when Spack is in production for them.) From that time, all releases of LArSoft will be built under Spack. Until UPS is fully retired, we will also continue to build LArSoft under UPS as well. At the time of writing, the Spack build will lag the UPS build by a day or two. Migration team members are still available to assist experiments in bringing Spack into production in their software.

For additional details on release procedures and developing with Spack, see the presentations and “Plan for Standard Builds” document discussed at the Dec. 10, 2024 LArSoft Coordination Meeting, the Spack-at-FNAL git repository, and the Spack-MPD git repository. A quick-start guide for using MPD can be found on Developing LArSoft with Spack and MPD wiki page.

The interim solution remains supported

Until Spack is fully deployed at all experiments, we will continue to provide UPS-based builds of LArSoft. All such builds and running of LArSoft must be performed within SL7 containers. See the Developing LArSoft with Containers page for more information on how to do that.

Spack builds of LArSoft

We will post the LArSoft Spack environments to a location to be announced. Until then, you can find the list of environments by using spack env list, or looking in /cvmfs/larsoft.opensciencegrid.org/spack-fnal-v/var/spack/environments.

To set up a working area for developing code against this release of LArSoft while minimizing the code that is re-built, we recommend following the instructions for Developing LArSoft with Spack and MPD.

Summary of Spack Migration Plan