Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
418 commits
Select commit Hold shift + click to select a range
4594fee
wayland: dot is a build dependency (#39854)
aumuell Oct 13, 2023
e05d48e
cairo: add shared and pic variants (#40302)
AlexanderRichert-NOAA Oct 13, 2023
c194c42
sqlite: add 3.43.2 (#40520)
michaelkuhn Oct 14, 2023
8a3e209
glib: add 2.78.0, 2.76.6 (#40517)
michaelkuhn Oct 14, 2023
cf32b47
Fix pkgconfig dependencies (#40524)
michaelkuhn Oct 14, 2023
e40b9cd
rocksdb: add 8.6.7 (#40525)
michaelkuhn Oct 14, 2023
81cf923
mariadb-c-client: add 3.3.7 (#40521)
michaelkuhn Oct 14, 2023
76d510b
libfuse: add 3.16.2 (#40519)
michaelkuhn Oct 14, 2023
5f3708c
libbson, mongo-c-driver: add 1.24.4 (#40518)
michaelkuhn Oct 14, 2023
a0f0f03
git: add 2.42 (#40528)
haampie Oct 14, 2023
8600fdf
screen: add v4.9.1 (#40529)
haampie Oct 14, 2023
fdd01cb
cpr: new package (#40509)
sethrj Oct 14, 2023
d346a69
py-urllib3: add 2.0.6 (#40207)
manuelakuhn Oct 14, 2023
5534c13
[add] py-graphene-tornado: new recipe, required by py-cylc-uiserver (…
LydDeb Oct 14, 2023
d7e1e63
py-python-fmask: update to latest versions (#40378)
gillins Oct 14, 2023
fc2d1dd
py-pyqt6: add 6.5.2 (#40413)
manuelakuhn Oct 14, 2023
425767e
py-bidskit: add 2023.9.7 (#40444)
manuelakuhn Oct 14, 2023
50e158e
py-certifi: add 2023.7.22 (#40445)
manuelakuhn Oct 14, 2023
b799ca3
py-chardet: add 5.2.0 (#40468)
manuelakuhn Oct 14, 2023
d286284
py-click: add 8.1.7 (#40473)
manuelakuhn Oct 14, 2023
203469b
py-charset-normalizer: add 3.3.0 (#40471)
manuelakuhn Oct 14, 2023
f5ca272
py-cfgv: add 3.4.0 (#40465)
manuelakuhn Oct 14, 2023
3725c19
py-pybids: add 0.16.3 (#40486)
manuelakuhn Oct 14, 2023
4ed3b6e
py-pydicom: add 2.4.3 (#40487)
manuelakuhn Oct 14, 2023
2e34bcd
Add static support for proj (#40322)
AlexanderRichert-NOAA Oct 14, 2023
0e4b901
Bug fixes in py-awscrt to fix build errors reported in #40386 (#40469)
climbfuji Oct 14, 2023
27a233c
heffte: fix rocm deps (#40514)
mkstoyanov Oct 15, 2023
00d3bc9
mfem: add a patch for v4.6 for gcc 13, see mfem PR 3903 (#40495)
v-dobrev Oct 15, 2023
3e5c3e6
tasmanian: patch for clang17 (#40515)
mkstoyanov Oct 15, 2023
c845779
Add matrix space link and badge to README (#40532)
alecbcs Oct 15, 2023
8692ebf
py-click: fix Python 3.6 support (#40535)
adamjstewart Oct 15, 2023
f2c494b
Python: allow OneAPI 2024 when it's released (#40536)
adamjstewart Oct 15, 2023
b766df4
py-torchdata: version rename (#40522)
adamjstewart Oct 15, 2023
c22089d
Version update and simplify dependencies (#40543)
garth-wells Oct 15, 2023
9f15187
spack checksum: handle all versions dropped better (#40530)
haampie Oct 15, 2023
065569e
README.md: tweak matrix description to indicate bridging (#40540)
tgamblin Oct 15, 2023
5842a8d
fix: flux-core needs libarchive with +iconv (#40541)
vsoch Oct 15, 2023
3ac3a44
[add] py-cylc-uiserver: new recipe (#39983)
LydDeb Oct 16, 2023
2e8c1a5
py-fenics-ufl: update version and add test (#40534)
garth-wells Oct 16, 2023
172597c
intel-oneapi-compilers: ifx uses --gcc-name & --gxx-name (#40557)
Oct 16, 2023
fd70d81
fenics-basix: update for v0.7 (#40440)
garth-wells Oct 16, 2023
8907efa
Add nextflow 23.10.0 (#40547)
dialvarezs Oct 16, 2023
2f4dc6f
Fix version incompatibilities of py-pandas and py-openpyxl (#40472)
climbfuji Oct 16, 2023
09e3dda
Updating patch to enable flag mcode-object-version=none (#40367)
renjithravindrankannath Oct 16, 2023
1408009
py-lightning: add v2.1.0 (#40496)
adamjstewart Oct 16, 2023
df8a279
py-grpcio: cython 3 still not supported (#40537)
adamjstewart Oct 16, 2023
8d94874
py-shapely: add v2.0.2 (#40523)
adamjstewart Oct 16, 2023
c806f82
py-fiona: add v1.9.5 (#40497)
adamjstewart Oct 16, 2023
feebdb4
Use string representation of deptypes for concrete specs (#40566)
alalazo Oct 16, 2023
dba5903
py-grayskull: add new package (#40293)
adamjstewart Oct 16, 2023
f686212
py-furo: new version (#40559)
sethrj Oct 16, 2023
b507aef
intel-oneapi-compilers: ifx is located in bin not bin/intel64 (#40561)
Oct 17, 2023
00079b5
Add latest versions of rlwrap (#40563)
berquist Oct 17, 2023
f7d4ba4
Creation of Beatnik package and associated updates to silo and cabana…
patrickb314 Oct 17, 2023
0585f68
packages: use "requires" to allow only selected compilers (#40567)
alalazo Oct 17, 2023
9832b6f
Support `spack env activate --with-view <name> <env>` (#40549)
haampie Oct 17, 2023
908c72a
Support apple-clang in pdt (#40582)
wspear Oct 17, 2023
6a87523
patchelf: fix compilation with GCC 7 (#40581)
haampie Oct 17, 2023
e7a174f
hiop: 1.0.1 release (#40580)
Oct 17, 2023
6014b1c
py-rtree: add v1.1.0 (#40575)
adamjstewart Oct 17, 2023
de0dc30
Add mpi_f08 variant to CP2K (#40574)
RMeli Oct 17, 2023
3903440
Allow / in GitVersion (#39398)
scheibelp Oct 17, 2023
3f0f8b5
Add tracy 0.10 (#40573)
msimberg Oct 17, 2023
b836932
xmlto: add more dependencies (#40578)
dennisklein Oct 17, 2023
88caf01
paraview: add variant for NVIDIA IndeX (#40577)
jfavre Oct 17, 2023
a9adce5
abi.py: fix typo, add type-hints (#38216)
becker33 Oct 18, 2023
c334094
Add license directive (#39346)
boomanaiden154 Oct 18, 2023
4abe5d1
[fix] py-werkzeug: add constraint in python dependence (#40590)
LydDeb Oct 18, 2023
19917ca
Fix dev-build keep_stage behavior (#40576)
haampie Oct 18, 2023
1f813be
llvm: fix ncurses+termlib linking in lldb (#40594)
haampie Oct 18, 2023
f9d67ed
AutotoolsPackage / MakefilePackage: add gmake build dependency (#40380)
haampie Oct 18, 2023
001190a
unparse: also support generic type aliases (#40328)
haampie Oct 18, 2023
fa91f85
acfl: add version 23.10 (#40510)
annop-w Oct 19, 2023
5b73081
julia: Fix build for @1.9 (#39045)
michaelkuhn Oct 19, 2023
49ef8b5
busybox: respect compiler choice (#39239)
boomanaiden154 Oct 19, 2023
0160a34
bioawk: respect compiler choice (#39241)
boomanaiden154 Oct 19, 2023
7d9e60a
connect-proxy: respect compiler choice (#39243)
boomanaiden154 Oct 19, 2023
78aebca
byte-unixbench: respect compiler choice (#39242)
boomanaiden154 Oct 19, 2023
18eb049
Stand-alone test feature deprecation postponed to v0.22 (#40600)
tldahlgren Oct 19, 2023
c7551a6
ASP-based solver: single Spec instance per dag hash (#39590)
alalazo Oct 19, 2023
4dff8b9
ci: remove incorrect compilers.yaml (#40610)
haampie Oct 19, 2023
b14e1b7
petsc: add variant +sycl (#40562)
balay Oct 19, 2023
50d8ba8
gitlab ci: Rework how mirrors are configured (#39939)
scottwittenburg Oct 19, 2023
c721209
libvorbis: drop -force_cpusubtype_ALL flag (#40616)
haampie Oct 19, 2023
039ea29
Automated deployment to update package flux-core 2023-10-19 (#40605)
vsoch Oct 19, 2023
a1ccbcd
spack checksum: restore ability to select top n (#40531)
haampie Oct 19, 2023
f7946c1
Improve setup build / run / test environment (#35737)
haampie Oct 19, 2023
077cddc
add nvechip to sundials components when mfem+rocm (#40512)
balos1 Oct 19, 2023
cadab55
py-rasterio: add v1.3.9 (#40621)
adamjstewart Oct 19, 2023
565a273
build(deps): bump urllib3 from 2.0.6 to 2.0.7 in /lib/spack/docs (#40…
dependabot[bot] Oct 19, 2023
c5ad77f
build(deps): bump mypy from 1.6.0 to 1.6.1 in /.github/workflows/styl…
dependabot[bot] Oct 19, 2023
0161660
build(deps): bump mypy from 1.6.0 to 1.6.1 in /lib/spack/docs (#40603)
dependabot[bot] Oct 19, 2023
b77a73e
build(deps): bump actions/checkout from 4.1.0 to 4.1.1 (#40584)
dependabot[bot] Oct 19, 2023
518c1d6
perl: change permissions in order to apply patch on version 5.38.0 (…
LydDeb Oct 19, 2023
26c3779
vtk-m: update to latest release (#40624)
vicentebolea Oct 20, 2023
664f707
TAU: Respect ~fortran for +mpi (#40617)
wspear Oct 20, 2023
c87d2af
Drop support for external PythonX.Y (#40628)
adamjstewart Oct 20, 2023
dac8d8b
schema/compilers.py: fix validation of 2+ entries (#40627)
haampie Oct 20, 2023
88a6a71
Add package py-macs3 and dependencies (#40498)
snehring Oct 20, 2023
d67f425
py-bidscoin: add v4.1.1 and py-argparse-manpage: add new package (#40…
manuelakuhn Oct 20, 2023
f01cde4
py-dcm2bids: add v3.1.0 (#40447)
manuelakuhn Oct 20, 2023
308b6d5
py-statsmodels: add 0.14.0 (#39156)
manuelakuhn Oct 20, 2023
311cb7f
[add] py-css-parser: new package (#40550)
LydDeb Oct 20, 2023
002534f
[add] py-cssutils: new package (#40551)
LydDeb Oct 20, 2023
4a9793f
[add] py-fraction: new package (#40554)
LydDeb Oct 20, 2023
5061ce1
add recipes for sphinx-book-theme and its dependencies if unknown (#4…
Bidibulke Oct 20, 2023
b9e872e
TensorFlow/Keras/TensorBoard: add v2.14.0 (#40297)
adamjstewart Oct 20, 2023
54054ac
ASP-based solver: minimize weights over edges (#40632)
alalazo Oct 20, 2023
3b6cb60
py-corner: new package (#40546)
LydDeb Oct 20, 2023
b5d41eb
gromacs +cp2k: build in CI (#40494)
haampie Oct 20, 2023
8bfcdc4
concretize separately: show concretization time per spec as they conc…
haampie Oct 20, 2023
608f1b5
py-fenics-ffcx: update to v0.7 (#40569)
garth-wells Oct 20, 2023
8093c6b
gromacs: add 2022.6, 2023.2, 2023.3 versions (#38906)
al42and Oct 20, 2023
c6a9d56
[add] py-dict2css: new package (#40552)
LydDeb Oct 21, 2023
19fd8a8
py-kombu: pick older version of py-setuptools (#40642)
scottwittenburg Oct 21, 2023
7e8ef2c
py-kombu: fix setuptools bound (#40646)
haampie Oct 21, 2023
3ed2194
intel-tbb: patch patch for Apple's patch (#40640)
aumuell Oct 21, 2023
28e60a6
Docs: Add version range example to conditional dependencies (#40630)
tldahlgren Oct 22, 2023
982f53b
py-kiwisolver: add a new version (#40653)
jmcarcell Oct 22, 2023
c541003
zlib-ng: add v2.1.4 (#40647)
haampie Oct 22, 2023
c02cbb4
glib: add patch with a fix for PTRACE_0_EXITKILL (#40655)
jmcarcell Oct 22, 2023
15b38ce
Add Score-P 8.3 and dependencies (#40478)
wrwilliams Oct 22, 2023
0d746f3
libxml2: fix GitLab patch (#40658)
michaelkuhn Oct 23, 2023
1b0d3c3
vtk: fix GitLab patch (#40659)
michaelkuhn Oct 23, 2023
b0afe7f
garfieldpp: fix GitLab patch (#40660)
michaelkuhn Oct 23, 2023
bbc0678
gobject-introspection: fix GitLab patch (#40661)
michaelkuhn Oct 23, 2023
a1cd074
knem: fix GitLab patch (#40662)
michaelkuhn Oct 23, 2023
7028e92
libtheora: fix GitLab patch (#40657)
michaelkuhn Oct 23, 2023
67be918
Docs: Update spec variant checks plus python quotes and string format…
tldahlgren Oct 23, 2023
954ec97
py-cython: new version, python 3.11 upperbound (#40343)
haampie Oct 23, 2023
0720274
concretizer verbose: show progress in % too (#40654)
haampie Oct 23, 2023
1ad6240
3proxy: respect compiler choice (#39240)
boomanaiden154 Oct 23, 2023
a843453
nghttp2: add v1.57.0 (#40652)
haampie Oct 23, 2023
b5bbcaf
geant4: add patch for when using the system expat library (#40650)
jmcarcell Oct 23, 2023
79cda87
ngspice: new version 41 and option osdi (#40664)
cessenat Oct 23, 2023
c9d3abe
audit: add check for GitLab patches (#40656)
michaelkuhn Oct 23, 2023
9da048d
py-scikit-learn: add v1.3.2 (#40672)
adamjstewart Oct 23, 2023
5239d43
Update survey package file for survey version 9 changes. (#40619)
jgalarowicz Oct 23, 2023
37b70bf
Add rccl and nccl variants to cp2k and cosma (#40451)
mtaillefumier Oct 23, 2023
c1d8d86
Adios2: add kokkos variant (#40623)
vicentebolea Oct 23, 2023
e7892df
fix installation error of bear (#40637)
namachan10777 Oct 23, 2023
9bb025c
armpl-gcc: add version 23.10 and macOS support (#40511)
annop-w Oct 24, 2023
85541c7
exago: fix v1.5.1 tag; only allow python up to 3.10 for for @:1.5 (#4…
eugeneswalker Oct 24, 2023
3fb2cfb
hiop +cuda: fix issue 40678 (#40688)
eugeneswalker Oct 24, 2023
ecaf0df
neovim: conflict for libluv problem on macOS + add newer versions of …
albestro Oct 24, 2023
f037238
Added new benchmark version up to 1.8.3 (#40689)
fbarbari Oct 24, 2023
9268210
openmpi: fix [email protected]: compat (#40686)
amd-toolchain-support Oct 24, 2023
0d3172f
Updating rvs binary path. (#40604)
renjithravindrankannath Oct 24, 2023
fb0fa96
Add [email protected] (#40695)
AlexanderRichert-NOAA Oct 24, 2023
5fe989f
Windows: search PATH for patch utility (#40513)
johnwparent Oct 24, 2023
34b6212
[cp2k] Use fftw3 MKL by default when cp2k is compiled with mkl (#40671)
mtaillefumier Oct 25, 2023
4be590d
Add dlaf variant to cp2k (#40702)
RMeli Oct 25, 2023
d0d095a
py-lightning: py-torch~distributed is broken again (#40696)
adamjstewart Oct 25, 2023
ce4fbd1
ci: darwin aarch64 use apple-clang-15 tag (#40706)
haampie Oct 25, 2023
8b88ac8
ci: don't put compilers in config (#40700)
haampie Oct 25, 2023
4ab878e
build(deps): bump pytest from 7.4.2 to 7.4.3 in /lib/spack/docs (#40697)
dependabot[bot] Oct 25, 2023
564716c
PyTorch: patch breakpad dependency (#40648)
adamjstewart Oct 25, 2023
f7e6064
Added Highway versions up to 1.0.7 (#40691)
fbarbari Oct 25, 2023
8493662
cuda: add NVHPC_CUDA_HOME. (#40507)
dominichofer Oct 25, 2023
b6b0cf4
initial commit to fix mivisionx build for 5.6 (#40579)
afzpatel Oct 25, 2023
888da91
fdb: add releases v5.11.23 and v5.11.17 (#40571)
victoria-cherkas Oct 25, 2023
9f30e74
Paraview 5.12 prep (#40527)
mathstuf Oct 25, 2023
642485b
git versions: fix commit shas [automated] (#40703)
haampie Oct 26, 2023
5231847
libluv: require CMake 3 and CMP0042 (#40716)
albestro Oct 26, 2023
2357373
modules: hide implicit modulefiles (#36619)
xdelaruelle Oct 26, 2023
d33b057
spack checksum: show long flags in usage output (#40407)
haampie Oct 26, 2023
3d91c58
PythonPackage: nested config_settings (#40693)
adamjstewart Oct 26, 2023
1de326a
modules: no --delim option if separator is colon character (#39010)
xdelaruelle Oct 26, 2023
57fbd33
Add conflict between cxxstd > 17 and cuda < 12 in pika (#40717)
aurianer Oct 26, 2023
a1e8615
spack checksum [email protected], use as version filter (#39694)
haampie Oct 26, 2023
668ff99
Update spack package for [email protected] release (#40614)
ryandanehy Oct 26, 2023
fee88d7
unmaintained a* packages: update to use f-strings (#40467)
alecbcs Oct 26, 2023
2d8897a
curl: Fix librtmp variant (#40713)
tobbez Oct 26, 2023
396c6a9
PythonPackage: allow archive_files to be overridden (#40694)
adamjstewart Oct 26, 2023
2092885
dataTransferKit: add v3.1.1, v3.1.0 (#40556)
masterleinad Oct 26, 2023
f9f306b
ldak: add v5.2 & add maintainer (#40710)
snehring Oct 26, 2023
caa7f56
itk: misc fixes (#39832)
zzzoom Oct 26, 2023
44370f3
plasma: add version 23.8.2 (#40728)
balay Oct 26, 2023
43aac04
akantu: use f-strings (#40466)
alecbcs Oct 27, 2023
91ab81f
gromacs: fix version branch in intel fftw (#40489)
haampie Oct 27, 2023
4f97853
Fixes and options for package spglib (#40684)
dmt4 Oct 27, 2023
95bc24d
ci: spack compiler find should list extra config scopes (#40727)
haampie Oct 27, 2023
8d3c141
gromacs: default to external blas & lapack (#40490)
haampie Oct 27, 2023
8bdd1a8
strumpack: add version 7.2.0 (#40732)
balay Oct 27, 2023
734e950
octopus: split netcdf-c and netcdf-fortran dependency (#40685)
iamashwin99 Oct 27, 2023
2ca3ab5
OCI buildcache (#38358)
haampie Oct 27, 2023
d215f0d
External finding: update default paths; treat .bat as executable on W…
johnwparent Oct 27, 2023
c976e8e
mgard@2020-10-01 %oneapi@2023: turn of c++11-narrowing via cxxflags (…
eugeneswalker Oct 27, 2023
75a4882
e4s ci stacks: add exago specs (#40712)
eugeneswalker Oct 27, 2023
124671f
hipsycl: restrict compatibility with llvm for v0.8.0 (#40736)
giordano Oct 27, 2023
6e098be
MSVC: detection from registry (#38500)
johnwparent Oct 27, 2023
47c850b
py-numpy: add v1.26 (#40057)
adamjstewart Oct 28, 2023
fd4650e
py-comm: add 0.1.4 (#40669)
manuelakuhn Oct 28, 2023
c0b1329
py-bluepyemodel: opensourcing with dependencies (#40592)
heerener Oct 28, 2023
bb66115
New version of py-langsmith (#40674)
qwertos Oct 28, 2023
5e446e6
NCCL: Add version 2.19.3-1 (#40704)
RemiLacroix-IDRIS Oct 28, 2023
755de55
py-generateds: new package (#40555)
LydDeb Oct 28, 2023
f3671f2
py-moarchiving: new package (#40558)
LydDeb Oct 28, 2023
4381484
mercury: add v2.3.1 (#40749)
soumagne Oct 28, 2023
e6c7225
Add liggght patched for newer compiler (#38685)
SofiaXu Oct 29, 2023
2fe68d1
py-numcodecs: fix broken sse / avx2 variables (#40754)
haampie Oct 29, 2023
9fea0e1
acts: add v28.1.0:30.3.2 (#40723)
wdconinc Oct 30, 2023
98ab781
ASP-based solver: avoid cycles in clingo using hidden directive (#40720)
alalazo Oct 30, 2023
fce8927
mfem: support petsc+rocm with spack-installed rocm (#40768)
v-dobrev Oct 30, 2023
4aa4342
exago: fix exago missing on PYTHONPATH when `+python` (#40748)
Oct 30, 2023
bf93ed4
pcl: checksum new versions (#39039)
aumuell Oct 30, 2023
9c8c416
PyTorch: build with external fp16 (#40760)
adamjstewart Oct 30, 2023
7bb91d5
py-pandas: add v2.1.2 (#40734)
adamjstewart Oct 30, 2023
d5824a9
Fix an issue with using the environment variable `MACHTYPE` which is …
v-dobrev Oct 30, 2023
2dc7500
RAJA: add "plugins" variant (#40750)
wspear Oct 30, 2023
fc812fb
acts: new variant +binaries when +examples (#40738)
wdconinc Oct 30, 2023
6020c23
aluminum: make network variants "sticky" (#40715)
bvanessen Oct 30, 2023
88cae4c
justbuild: add version 1.2.2 (#40701)
asartori86 Oct 30, 2023
93bd0c5
pegtl: add v3.2.7 (#35687)
nazavode Oct 30, 2023
776d202
ISPC: Drop ncurses workaround in favor of patch (#39662)
kwryankrattiger Oct 30, 2023
30b23d8
Fetch recola from gitlab and add a new version of collier (#40651)
jmcarcell Oct 30, 2023
d3aa421
binary_distribution.py: fix type annotation singleton (#40572)
haampie Oct 30, 2023
f1182e6
linaro-forge: add v23.0.4 (#40772)
RichardBuntLinaro Oct 30, 2023
bc20c61
Get utilities necessary for successful PIO build (#40502)
vanderwb Oct 30, 2023
342b569
spectre: add v2023.10.11 (#40463)
sxs-bot Oct 30, 2023
3ee4f97
must: remove release candidates (#40476)
alecbcs Oct 30, 2023
44b79ae
freesurfer: fix support for linux (#39864)
marcost2 Oct 30, 2023
a2f2ea3
tty: flush immediately (#40774)
haampie Oct 30, 2023
eb12c3c
ci: print colored specs in concretization progress (#40711)
haampie Oct 30, 2023
97a7660
squashfuse: add version 0.5.0 (#40775)
aweits Oct 30, 2023
d92b260
adding sha for OMB 7.3 release (#40784)
MatthewLieber Oct 30, 2023
f465bc7
build(deps): bump black from 23.9.1 to 23.10.1 in /lib/spack/docs (#4…
dependabot[bot] Oct 30, 2023
4779faa
Add hdf5 version 1.14.3. (#40786)
lrknox Oct 30, 2023
ccf497a
dd4hep: Add tag for version 1.27 (#40776)
tmadlener Oct 31, 2023
9fcb093
selalib: add (sca)lapack dependency (#40667)
freifrauvonbleifrei Oct 31, 2023
4055fb5
docs: update `license()` docs with examples and links (#40598)
tgamblin Oct 31, 2023
4ea353d
Added NVML and cgroup support to the slurm package (#40638)
G-Ragghianti Oct 31, 2023
d24baf2
tutorial: replace zlib -> gmake to avoid deprecated versions (#40769)
haampie Oct 31, 2023
a087db7
ci: bump tutorial image and toolchain (#40795)
haampie Oct 31, 2023
053615a
spack checksum: fix error when initial filter yields empty list (#40799)
haampie Oct 31, 2023
cb7329d
Seacas: Update for latest seacas releaes version (#40698)
gsjaardema Oct 31, 2023
ffcdd6a
spack checksum: improve signature (#40800)
haampie Oct 31, 2023
4fe5fa2
Fix interaction of spec literals that propagate variants with unify:f…
alalazo Oct 31, 2023
0cc2989
add new recipe for rocm packages- amdsmi (#39270)
srekolam Oct 31, 2023
1adc5f4
TAU: Added dyninst variant (#40790)
jordialcaraz Oct 31, 2023
a0bb9bc
Fix cflags requirements (#40639)
scheibelp Oct 31, 2023
da34c1b
Update sperr (#40626)
shaomeng Oct 31, 2023
eb93234
PyTorch: build with external gloo (#40759)
adamjstewart Oct 31, 2023
30b7664
force color in subshell if not SPACK_COLOR (#40782)
haampie Oct 31, 2023
0ebf978
beatnik: mall changes for v1.0 (#40726)
patrickb314 Oct 31, 2023
07bea45
Merge remote-tracking branch 'upstream/develop' into develop
RikkiButler20 Nov 6, 2023
1cfb249
Merge remote-tracking branch 'upstream/develop' into develop
RikkiButler20 Nov 6, 2023
edf7aea
Merge upstream
RikkiButler20 Nov 21, 2023
be0224c
Merge remote-tracking branch 'upstream/develop' into develop
RikkiButler20 Nov 21, 2023
68d13a1
build(deps): bump mypy from 1.6.1 to 1.8.0 in /.github/workflows/style
dependabot[bot] Dec 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/style/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ black==23.11.0
clingo==5.6.2
flake8==6.1.0
isort==5.12.0
mypy==1.6.1
mypy==1.8.0
types-six==1.16.21.9
vermin==1.5.2
77 changes: 75 additions & 2 deletions lib/spack/spack/build_systems/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import os
import re
import shutil
import stat
from typing import Optional

import archspec
Expand Down Expand Up @@ -367,6 +368,51 @@ def libs(self):
raise NoLibrariesError(msg.format(self.spec.name, root))


def fixup_shebangs(path: str, old_interpreter: bytes, new_interpreter: bytes):
# Recurse into the install prefix and fixup shebangs
exe = stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH
dirs = [path]
hardlinks = set()

while dirs:
with os.scandir(dirs.pop()) as entries:
for entry in entries:
if entry.is_dir(follow_symlinks=False):
dirs.append(entry.path)
continue

# Only consider files, not symlinks
if not entry.is_file(follow_symlinks=False):
continue

lstat = entry.stat(follow_symlinks=False)

# Skip over files that are not executable
if not (lstat.st_mode & exe):
continue

# Don't modify hardlinks more than once
if lstat.st_nlink > 1:
key = (lstat.st_ino, lstat.st_dev)
if key in hardlinks:
continue
hardlinks.add(key)

# Finally replace shebangs if any.
with open(entry.path, "rb+") as f:
contents = f.read(2)
if contents != b"#!":
continue
contents += f.read()

if old_interpreter not in contents:
continue

f.seek(0)
f.write(contents.replace(old_interpreter, new_interpreter))
f.truncate()


@spack.builder.builder("python_pip")
class PythonPipBuilder(BaseBuilder):
phases = ("install",)
Expand Down Expand Up @@ -464,8 +510,11 @@ def global_options(self, spec, prefix):
"""
return []

def install(self, pkg, spec, prefix):
"""Install everything from build directory."""
@property
def _build_venv_path(self):
"""Return the path to the virtual environment used for building when
python is external."""
return os.path.join(self.spec.package.stage.path, "build_env")

args = PythonPipBuilder.std_args(pkg) + [f"--prefix={prefix}"]

Expand All @@ -492,4 +541,28 @@ def install(self, pkg, spec, prefix):
with fs.working_dir(self.build_directory):
pip(*args)

@spack.builder.run_after("install")
def fixup_shebangs_pointing_to_build(self):
"""When installing a package using an external python, we use a temporary virtual
environment which improves build isolation. The downside is that pip produces shebangs
that point to the temporary virtual environment. This method fixes them up to point to the
underlying Python."""
# No need to fixup shebangs if no build venv was used. (this post install function also
# runs when install was overridden in another package, so check existence of the venv path)
if not os.path.exists(self._build_venv_path):
return

# Use sys.executable, since that's what pip uses.
interpreter = (
lambda python: python("-c", "import sys; print(sys.executable)", output=str)
.strip()
.encode("utf-8")
)

fixup_shebangs(
path=self.spec.prefix,
old_interpreter=interpreter(self._build_venv_python),
new_interpreter=interpreter(self.spec["python"].command),
)

spack.builder.run_after("install")(execute_install_time_tests)
11 changes: 11 additions & 0 deletions lib/spack/spack/modules/lmod.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,13 @@ def modulerc(self):
"""Returns the modulerc file associated with current module file"""
return os.path.join(os.path.dirname(self.filename), f".modulerc.{self.extension}")

@property
def modulerc(self):
"""Returns the modulerc file associated with current module file"""
return os.path.join(
os.path.dirname(self.filename), ".".join([".modulerc", self.extension])
)

def token_to_path(self, name, value):
"""Transforms a hierarchy token into the corresponding path part.

Expand Down Expand Up @@ -481,6 +488,10 @@ class LmodModulefileWriter(BaseModuleFileWriter):

hide_cmd_format = 'hide_version("%s")'

modulerc_header: list = []

hide_cmd_format = 'hide_version("%s")'


class CoreCompilersNotFoundError(spack.error.SpackError, KeyError):
"""Error raised if the key 'core_compilers' has not been specified
Expand Down
1 change: 0 additions & 1 deletion lib/spack/spack/solver/asp.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import enum
import itertools
import os
import pathlib
import pprint
import re
import types
Expand Down
14 changes: 13 additions & 1 deletion lib/spack/spack/spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,9 @@
SPECFILE_FORMAT_VERSION = 4


PropagateValue = collections.namedtuple("PropagateValue", ["value", "propagate"])


class InstallStatus(enum.Enum):
"""Maps install statuses to symbols for display.

Expand Down Expand Up @@ -2042,6 +2045,10 @@ def to_node_dict(self, hash=ht.dag_hash):

params = syaml.syaml_dict(sorted(v.yaml_entry() for _, v in self.variants.items()))

for k, v in params.items():
if self.variants[k].propagate:
params[k] = PropagateValue(params[k], self.variants[k].propagate)

# Only need the string compiler flag for yaml file
params.update(
sorted(
Expand Down Expand Up @@ -5012,7 +5019,12 @@ def from_node_dict(cls, node):
for val in values:
spec.compiler_flags.add_flag(name, val, False)
else:
spec.variants[name] = vt.MultiValuedVariant.from_node_dict(name, values)
if isinstance(values, PropagateValue):
spec.variants[name] = vt.MultiValuedVariant.from_node_dict(
name, values.value, values.propagate
)
else:
spec.variants[name] = vt.MultiValuedVariant.from_node_dict(name, values)

spec.external_path = None
spec.external_modules = None
Expand Down
2 changes: 1 addition & 1 deletion lib/spack/spack/test/cmd/pkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ def test_pkg_grep(mock_packages, capfd):
output, _ = capfd.readouterr()
assert output.strip() == "\n".join(
spack.repo.PATH.get_pkg_class(name).module.__file__
for name in ["splice-a", "splice-h", "splice-t", "splice-vh", "splice-z"]
for name in ["splice-a", "splice-b", "splice-h", "splice-t", "splice-vh", "splice-z"]
)

# ensure that this string isn't fouhnd
Expand Down
3 changes: 2 additions & 1 deletion lib/spack/spack/test/concretize.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import spack.solver.asp
import spack.variant as vt
from spack.concretize import find_spec
from spack.main import SpackCommand
from spack.spec import CompilerSpec, Spec
from spack.version import Version, ver

Expand Down Expand Up @@ -1468,7 +1469,7 @@ def test_non_default_provider_of_multiple_virtuals(self):
@pytest.mark.regression("27237")
@pytest.mark.parametrize(
"spec_str,expect_installed",
[("mpich", True), ("mpich+debug", False), ("mpich~debug", True)],
[("mpich", True), ("mpich+debug", False), ("mpich~debug", True), ("mpich++debug", False)],
)
@pytest.mark.only_clingo("Use case not supported by the original concretizer")
def test_concrete_specs_are_not_modified_on_reuse(
Expand Down
78 changes: 78 additions & 0 deletions lib/spack/spack/test/spec_semantics.py
Original file line number Diff line number Diff line change
Expand Up @@ -1183,6 +1183,84 @@ def test_spec_format_path_posix(spec_str, format_str, expected):
_check_spec_format_path(spec_str, format_str, expected, path_ctor=pathlib.PurePosixPath)


@pytest.mark.parametrize(
"spec_str,format_str,expected",
[
("[email protected]/bar", "{name}-{version}", str(pathlib.Path("zlib-git.foo_bar"))),
("[email protected]/bar", "{name}-{version}-{/hash}", None),
("[email protected]/bar", "{name}/{version}", str(pathlib.Path("zlib", "git.foo_bar"))),
(
"zlib@{0}=1.0%gcc".format("a" * 40),
"{name}/{version}/{compiler}",
str(pathlib.Path("zlib", "{0}_1.0".format("a" * 40), "gcc")),
),
(
"[email protected]/bar=1.0%gcc",
"{name}/{version}/{compiler}",
str(pathlib.Path("zlib", "git.foo_bar_1.0", "gcc")),
),
],
)
def test_spec_format_path(spec_str, format_str, expected):
_check_spec_format_path(spec_str, format_str, expected)


def _check_spec_format_path(spec_str, format_str, expected, path_ctor=None):
spec = Spec(spec_str)
if not expected:
with pytest.raises((spack.spec.SpecFormatPathError, spack.spec.SpecFormatStringError)):
spec.format_path(format_str, _path_ctor=path_ctor)
else:
formatted = spec.format_path(format_str, _path_ctor=path_ctor)
assert formatted == expected


@pytest.mark.parametrize(
"spec_str,format_str,expected",
[
(
"[email protected]/bar",
r"C:\\installroot\{name}\{version}",
r"C:\installroot\zlib\git.foo_bar",
),
(
"[email protected]/bar",
r"\\hostname\sharename\{name}\{version}",
r"\\hostname\sharename\zlib\git.foo_bar",
),
# Windows doesn't attribute any significance to a leading
# "/" so it is discarded
("[email protected]/bar", r"/installroot/{name}/{version}", r"installroot\zlib\git.foo_bar"),
],
)
def test_spec_format_path_windows(spec_str, format_str, expected):
_check_spec_format_path(spec_str, format_str, expected, path_ctor=pathlib.PureWindowsPath)


@pytest.mark.parametrize(
"spec_str,format_str,expected",
[
("[email protected]/bar", r"/installroot/{name}/{version}", "/installroot/zlib/git.foo_bar"),
("[email protected]/bar", r"//installroot/{name}/{version}", "//installroot/zlib/git.foo_bar"),
# This is likely unintentional on Linux: Firstly, "\" is not a
# path separator for POSIX, so this is treated as a single path
# component (containing literal "\" characters); secondly,
# Spec.format treats "\" as an escape character, so is
# discarded (unless directly following another "\")
(
"[email protected]/bar",
r"C:\\installroot\package-{name}-{version}",
r"C__installrootpackage-zlib-git.foo_bar",
),
# "\" is not a POSIX separator, and Spec.format treats "\{" as a literal
# "{", which means that the resulting format string is invalid
("[email protected]/bar", r"package\{name}\{version}", None),
],
)
def test_spec_format_path_posix(spec_str, format_str, expected):
_check_spec_format_path(spec_str, format_str, expected, path_ctor=pathlib.PurePosixPath)


@pytest.mark.regression("3887")
@pytest.mark.parametrize("spec_str", ["py-extension2", "extension1", "perl-extension"])
def test_is_extension_after_round_trip_to_dict(config, mock_packages, spec_str):
Expand Down
8 changes: 4 additions & 4 deletions lib/spack/spack/variant.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,19 +254,19 @@ def __init__(self, name, value, propagate=False):
self.value = value

@staticmethod
def from_node_dict(name, value):
def from_node_dict(name, value, propagate=False):
"""Reconstruct a variant from a node dict."""
if isinstance(value, list):
# read multi-value variants in and be faithful to the YAML
mvar = MultiValuedVariant(name, ())
mvar = MultiValuedVariant(name, (), propagate)
mvar._value = tuple(value)
mvar._original_value = mvar._value
return mvar

elif str(value).upper() == "TRUE" or str(value).upper() == "FALSE":
return BoolValuedVariant(name, value)
return BoolValuedVariant(name, value, propagate)

return SingleValuedVariant(name, value)
return SingleValuedVariant(name, value, propagate)

def yaml_entry(self):
"""Returns a key, value tuple suitable to be an entry in a yaml dict.
Expand Down
29 changes: 29 additions & 0 deletions var/spack/repos/builtin.mock/packages/splice-b/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack.package import *


class SpliceB(Package):
"""Simple package with one optional dependency"""

homepage = "http://www.example.com"
url = "http://www.example.com/splice-b-1.0.tar.gz"

version("1.0", md5="0123456789abcdef0123456789efghij")

variant("foo", default=True, description="nope")
variant("bar", default=False, description="nope")
variant("baz", default=False, description="nope")

depends_on("splice-a")

provides("something")
provides("somethingelse")

def install(self, spec, prefix):
with open(prefix.join("splice-b"), "w") as f:
f.write("splice-b: {0}".format(prefix))
f.write("splice-z: {0}".format(spec["splice-z"].prefix))
14 changes: 14 additions & 0 deletions var/spack/repos/builtin/packages/clingo/setuptools.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/cmake/python-site.py b/cmake/python-site.py
index 1e7fc8ce..95ef827f 100644
--- a/cmake/python-site.py
+++ b/cmake/python-site.py
@@ -1,4 +1,7 @@
-from distutils.sysconfig import get_python_lib, get_config_vars
+try:
+ from setuptools.sysconfig import get_python_lib, get_config_vars
+except ImportError:
+ from distutils.sysconfig import get_python_lib, get_config_vars
import sys
if sys.argv[1] == "prefix":
print(get_python_lib(True, False, sys.argv[2] if len(sys.argv) > 2 else None))

Loading