Note: if you installed Spack with the bootstrap script from fermi-spack-tools, this will already have been done for you.
- Clone the
spack-mpdrepository. - Invoke
spack config edit configand add the following to your configuration:config: extensions: - <path to your local spack-mpd clone>
- (Optional) You may find it beneficial to specify an alias in your
.bashrcfile to avoid typingspack mpd(e.g.):alias mpd="spack mpd"
At this point you, should be able to invoke spack help --all and see:
$ spack help --all
⋮
developer:
⋮
mpd develop multiple packages using Spack for external software
⋮and furthermore, if you type spack mpd --help you should see something like:
$ spack mpd -h
usage: spack mpd [-hV] SUBCOMMAND ...
develop multiple packages using Spack for external software
positional arguments:
SUBCOMMAND
build (b) build repositories
clear clear selected MPD project
git-clone (g, clone)
clone git repositories
init initialize MPD on this system
install (i) install built repositories
list (ls) list MPD projects
new-project (n) create MPD development area
refresh refresh project
rm-project (rm) remove MPD project
select select MPD project
status current MPD status
test (t) build and run tests
zap (z) delete everything in your build and/or install areas
optional arguments:
-V, --version print MPD version (0.3.0) and exit
-h, --help show this help message and exitNow that MPD has been installed, you can initialize your system to use MPD.
MPD has several unit tests that should run successfully for any system on which it is installed. If you wish to run the unit tests, invoke:
$ spack unit-test --extension mpd
========================================= test session starts ==========================================
platform linux -- Python 3.9.18, pytest-8.2.1, pluggy-1.5.0
rootdir: /home/knoepfel/spack-mpd
configfile: pytest.ini
testpaths: tests
collected 8 items
tests/test_mpd_clone.py . [ 12%]
tests/test_mpd_init.py . [ 25%]
tests/test_mpd_new_project.py ...... [100%]
========================================= slowest 30 durations =========================================
1.48s call tests/test_mpd_clone.py::test_new_project_clone
1.15s call tests/test_mpd_new_project.py::test_mpd_refresh
1.12s call tests/test_mpd_new_project.py::test_new_project_all_default_paths
1.12s call tests/test_mpd_new_project.py::test_new_project_only_top_path
1.10s call tests/test_mpd_new_project.py::test_new_project_all_defaults
1.05s call tests/test_mpd_new_project.py::test_new_project_no_default_paths
1.05s call tests/test_mpd_new_project.py::test_new_project_only_srcs_path
0.08s call tests/test_mpd_init.py::test_mpd_init
0.04s setup tests/test_mpd_clone.py::test_new_project_clone
0.04s setup tests/test_mpd_new_project.py::test_new_project_all_default_paths
0.04s setup tests/test_mpd_new_project.py::test_new_project_only_srcs_path
0.03s setup tests/test_mpd_new_project.py::test_new_project_no_default_paths
0.03s setup tests/test_mpd_new_project.py::test_new_project_only_top_path
0.03s setup tests/test_mpd_new_project.py::test_mpd_refresh
(8 durations < 0.005s hidden. Use -vv to show these durations.)
========================================== 8 passed in 8.40s ===========================================If you encounter any failures, please report an issue.