DUNE Spack Project¶
Documentation, training material, issue tracking, and project coordination for
Spack development and use across DUNE — including MPD (multi-package
development, the mrb/mrb gitCheckout successor built as a Spack extension) —
the docs/training/issues hub that was missing alongside the existing spack
config and package repos.
Quick links¶
| Link | For |
|---|---|
| DUNE Spack & MPD Issues | Reporting a problem or checking what's already known |
| DUNE Spack Cheat-Sheet | Everyday Spack commands |
| DUNE Computing Basics setup guide | CVMFS entry point and the dune-prototype environment |
Get started¶
- Use the DUNE software stack — start with the DUNE Spack Cheat-Sheet for everyday commands, then the DUNE Computing Basics setup guide for the CVMFS entry point and
dune-prototypeenvironment. - Develop across multiple DUNE packages — see MPD (multi-package development) below; MPD is the
mrb-successor workflow for checking out and building several related repos together. - Develop or package DUNE software with Spack — see the DUNE Spack repositories below, the Repositories page for what each one contains, and upstream Spack and the Fermilab fork for where things live.
- Learn Spack — see Spack tutorials.
- Report a problem or request documentation — see Issues.
- Edit this site or add a page — see Contributing.
DUNE Spack repositories¶
| Repo | Purpose |
|---|---|
dune-spack-config |
Standard configuration files for DUNE spack |
dune-spack-envs |
Environment configurations for DUNE spack |
dune_spack |
The DUNE-specific Spack package repository |
dune-release-configs |
Spack configuration files for DUNE releases |
See Repositories for what each one actually contains and how they relate to each other, plus the Fermilab-maintained repos below.
MPD (multi-package development)¶
MPD is the mrb/mrb gitCheckout successor: a Spack extension for cloning,
building, and iterating on several related DUNE/LArSoft packages together
(spack mpd init, spack mpd git-clone, spack mpd build, ...).
- FNALssi/spack-mpd — source repository and
doc/(Initialization, Creation, Building, Selection, Removing, Zapping) - Developing LArSoft with Spack — LArSoftWiki getting-started page combining Spack and MPD workflows
- Kyle Knoepfel, "Multi-package development at Fermilab with Spack," CHEP 2024/2025 proceedings (FERMILAB-CONF-25-0228-CSAID) — design rationale for MPD's two-layer split (Spack resolves dependencies, MPD drives CMake/CTest for packages under active development)
Upstream Spack and the Fermilab fork¶
Spack 1.x splits core from package recipes, so no single link is "the DUNE Spack instance" — these together describe where DUNE's deployment comes from:
- Upstream Spack: spack/spack is the project itself; its full reference documentation is hosted on Read the Docs at spack.readthedocs.io.
- Fermilab fork: FNALssi/spack is a fork of upstream Spack that DUNE builds on, maintained by Fermilab Scientific Software Infrastructure (SSI). See also FNALssi/spack-at-fnal (Fermilab usage documentation) and FNALssi/fermi-spack-tools (tools for managing Fermilab Spack instances).
- DUNE Computing Basics setup guide — the DUNE-specific CVMFS entry point and
dune-prototypeenvironment, with OS-specific variants for SL7 and AL9
Spack tutorials¶
Curated by audience — for a DUNE training event, pin a tested tutorial edition and Spack version rather than linking /latest/ directly.
- Spack 101 — general entry point, reusable training container
- Basic installation — new users
- Environments — most relevant to DUNE users
- Package creation — DUNE package maintainers
- Stacks — release/deployment maintainers
Migration tracking¶
Tracking DUNE's transition to newer Spack releases (Spack 1.0/1.1): Spack 1.0 migration project (org-wide GitHub Project board).
Issues¶
Open issues across the DUNE Spack repos and MPD are tracked together on the
DUNE Spack & MPD Issues board,
which pulls in issues from dune-spack-config, dune-spack-envs,
dune_spack, dune-release-configs, and FNALssi/spack-mpd. It has three
views:
- DUNE+FNALssi — table view, everything in one list
- DUNE Repos — table view, DUNE-org repos only
- DUNE Kanban — board view, grouped by status
Reporting a problem¶
- Open the issue in whichever of the five tracked repos it actually belongs
to —
dune-spack-config,dune-spack-envs,dune_spack,dune-release-configs, or FNALssi/spack-mpd. Not sure which one? Open it indune-spack-project(this site's own repo) instead — Issues are enabled here too, and it's a fine catch-all when the right repo isn't obvious. - Check the board a minute or two later. Most new issues get added automatically, but this isn't guaranteed for every repo. If yours hasn't shown up:
- On the issue page, open the Projects panel in the right sidebar and select DUNE Spack & MPD Issues, or
- From the command line:
gh issue edit <issue-url> --add-project "DUNE Spack & MPD Issues".
Opening the issue in a repo is what makes it visible to the board; adding it to the project is the separate step that actually puts it there.
You can also skip a repo entirely and add a draft item straight onto the board itself (the + Add item control at the bottom of any view lets you type a title with no issue behind it yet). That's fine for quick capture, but a draft item isn't a real GitHub issue — nobody can comment on it, label it, or reference it from a PR until someone converts it to an issue in an actual repo, so prefer filing an issue directly when you can.
FAQ¶
DUNE computing FAQ lives in its own repo/site: DUNE/FAQ
(tracked as Project #19 in the org-wide GitHub Projects — see that repo for
Spack-adjacent questions not yet covered here).
Related¶
- DUNE Phlex Project: the companion site for DUNE's migration from
artto the Phlex framework, built with thephlexSpack recipes listed on the Configuration reference dune-ghpandp-doc— DUNE Collaboration GitHub Organization Policy and Procedures