|
1 | 1 | # Overview page of LArSoft with SPACK |
2 | 2 |
|
3 | | -Jan 28, 2025 |
| 3 | +April 8, 2025 |
4 | 4 |
|
5 | 5 | At present, LArSoft is in the process of migrating from the Fermilab developed UPS packaging tool to the community developed and supported [Spack](https://spack.io/) 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 high priority tasks. |
6 | 6 |
|
@@ -30,3 +30,39 @@ The most recent v09 series release is v09.90.01. To set up on AL9: |
30 | 30 | * source /cvmfs/larsoft.opensciencegrid.org/spack-v0.22.0-fermi/setup-env.sh |
31 | 31 | * spack env activate larsoft-09-90-01-gcc-12-2-0-cxx17-prof-gcc-11-4-1 |
32 | 32 | * spack load larsoft |
| 33 | + |
| 34 | + |
| 35 | +## Summary of Migration Plan to Spack |
| 36 | + |
| 37 | +* Spack development |
| 38 | + * Production release will be v1.0. Need to wait for this to be released before formal migration can occur. |
| 39 | + * Timescale is summer 2025 |
| 40 | + * Write, validate document that describes detailed, technical procedure for creating a release of LArSoft using a well defined set of tools and steps |
| 41 | + * Expect extension to experiment code from this point will be straight-forward |
| 42 | + * Write, validate documentation on MPD and Fermilab Spack environment |
| 43 | + * Separately provide documentation for release managers and end users |
| 44 | +* Pre Spack v1.0 work for experiments |
| 45 | + * Select a Spack release on which to base work. Spack team will offer recommendations |
| 46 | + * Create experiment-specific repository for base experiment code recipes |
| 47 | + * Prepare and test recipes for experiment code and dependencies for which recipes not already available |
| 48 | + * Rely on Spack documentation and tutorials for this |
| 49 | + * PR recipes either to Spack, LArSoft or experiment recipe repositories, as appropriate |
| 50 | + * Identify cases where migration to AL9 is not possible |
| 51 | + * Define procedures for handling these presumably rare cases |
| 52 | +* Post Spack 1.0 work |
| 53 | + * LArSoft: |
| 54 | + * Make AL9 releases of LArSoft under Spack based on release policy |
| 55 | + * In parallel, make SL7 releases under UPS |
| 56 | + * Work with experiments to define time window during which SL7 builds will be released |
| 57 | + * External factors may impose a timeline on phase-out of SL7 containers |
| 58 | + * Experiments |
| 59 | + * Complete necessary recipe changes |
| 60 | + * Start building AL9 releases of experiment code using Spack |
| 61 | + * Validate software development procedures |
| 62 | + * Validate physics under AL9 |
| 63 | + * In parallel, create SL7 releases under UPS |
| 64 | + * When AL9 validations are completed, cease SL7/UPS builds of experiment code |
| 65 | + * LArSoft |
| 66 | + * Cease regular SL7 builds when all experiments have migrated |
| 67 | + |
| 68 | + |
0 commit comments