summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-07-20Make CI work for Windows on a push to the release branchv0.18.1Massimiliano Culpo1-1/+0
2022-07-20Add changelog and bumped versionMassimiliano Culpo2-1/+19
2022-07-20Fix typo in functionMassimiliano Culpo1-1/+1
2022-07-20Only hack botocore when needed (#31610)Jonathon Anderson1-6/+10
Newer versions of botocore (>=1.23.47) support the full IOBase interface, so the hacks added to supplement the missing attributes are no longer needed. Conditionally disable the hacks if they appear to be unnecessary based on the class hierarchy found at runtime.
2022-07-20Use lexists instead of exists during fetch (#31509)Harmen Stoppels1-11/+11
2022-07-20environment.py: only acquire write lock when necessary (#31493)Harmen Stoppels1-3/+4
2022-07-20file_cache.py: idempotent remove without races (#31477)Harmen Stoppels2-4/+19
There's a race condition in `remove()` as the lockfile is removed after releasing the lock, which is a problem when another process acquires a write lock during deletion. Also simplify life a bit in multiprocessing when a file is possibly removed multiple times, which currently is an error on the second deletion, so the proposed fix is to make remove(...) idempotent and not error when deleting non-existing cache entries. Don't tests for existence of lockfile, cause windows/linux behavior is different
2022-07-20Cray manifest: compiler duplicates (#31173)Peter Scheibel3-7/+33
* remove unhelpful comment * Filter compiler duplicates while reading manifest * more-specific version matching edited to use module-specific version (to avoid an issue where a user might add a compiler with the same version to the initial test configuration
2022-07-20`spack external find`: handle manifest with bad permissions (#31201)Peter Scheibel4-0/+98
Allow `spack external find` (with no extra args) to proceed if the manifest file exists but without sufficient permissions; in that case, print a warning. Also add a test for that behavior. TODOs: - [x] continue past any exception raised during manifest parsing as part of `spack external find`, except for CTRL-C (and other errors that indicate immediate program termination) - [x] Semi-unrelated but came up when discussing this with the user who reported this issue to me: the manifest parser now accepts older schemas See: https://github.com/spack/spack/issues/31191
2022-07-20Fix typo in documentation note about concretizer:unify (#31246)Cody Balos1-3/+3
2022-07-20Try fixing the CI issue in WindowsMassimiliano Culpo1-0/+1
2022-07-20Modify dockerfile template, so that any command can be executed (#29741)Marco De La Pierre1-1/+2
2022-07-20Update containerize templates to account for view indirection (#31321)Massimiliano Culpo3-1/+4
fixes #30965
2022-07-20ASP-based solver: rescale target weights so that 0 is always the best score ↵Massimiliano Culpo2-49/+15
(#31226) fixes #30997 Instead of giving a penalty of 30 to all nodes when preferences are not package specific, give a penalty of 100 to all targets of a node where we have package specific preferences, if the target is not explicitly preferred.
2022-07-20Canonicalize positional argument to spack bootstrap mirror (#31180)Massimiliano Culpo1-1/+3
fixes #31139
2022-07-20Bugfix external find --all for libraries (#31186)Brian Van Essen2-2/+2
* Fixed a bug in the 'external find --all' command where the call failed to find packages by both executable and library. The bug was that the call `path.all_packages()` incorrectly turned the variable `packages_to_check` into a generator rather than keeping it a list. Thus the second call to `detection.by_library` had no work to do. * Fixed the help message for the find external and compiler commands as well as others that used the `scopes_metavar` field to define where the results should be stored in configuration space. Specifically, the fact that configuration could be added to the environment was not mentioned in the help message.
2022-07-20OpenSUSE Tumbleweed: use GLIBC version as distro version (#19895)Christian Goll1-0/+12
Tumbleweed is a rolling release that would have used a date as a version instead.
2022-07-20Stricter compatibility rules for OS and compiler when reusing specs (#31170)Massimiliano Culpo4-3/+57
* Stricter compatibility rules for OS and compiler when reusing specs * Add unit test
2022-07-20docs: quote string to show valid YAML (#31178)Massimiliano Culpo1-1/+1
fixes #31167
2022-07-20Manifest parsing: avoid irrelevant files (#31144)Peter Scheibel2-1/+6
* Manifest directory may not contain manifest files: exclude non-manifest files * Manifest files use different name for rocmcc: add translation for it
2022-07-20ASP-based solver: fix rules on version weights selection (#31153)Massimiliano Culpo3-4/+61
* ASP: sort and deduplicate version weights from installed specs * Pick version weights according to provenance * Add unit test
2022-07-20concretize.lp: impose a lower bound on the number of version facts if a ↵Massimiliano Culpo3-0/+42
solution exists (#31142) * concretize.lp: impose a lower bound on the number of version facts if a valid version exists fixes #30864 * Add a unit test
2022-07-20Pin setuptools version in Github Action Workflows (#31118)Massimiliano Culpo2-2/+2
fixes #31109
2022-07-20fix doubly shell quoting args to `spack spec` (#29282)Danny McClanahan5-19/+145
* add test to verify fix works * fix spec cflags/variants parsing test (breaking change) * fix `spack spec` arg quoting issue * add error report for deprecated cflags coalescing * use .group(n) vs subscript regex group extraction for 3.5 compat * add random test for untested functionality to pass codecov * fix new test failure since rebase
2022-07-20bugfix: preserve dict order for `Spec.dag_hash()` in Python 2 (#31092)Todd Gamblin2-3/+80
Fix a bug introduced in #21720. `spack_json.dump()` calls `_strify()` on dictionaries to convert `unicode` to `str`, but it constructs `dict` objects instead of `collections.OrderedDict` objects, so in Python 2 (or earlier versions of 3) it can scramble dictionary order. This can cause hashes to differ between Python 2 and Python 3, or between Python 3.7 and earlier Python 3's. - [x] use `OrderedDict` in `_strify` - [x] add a regression test
2022-07-20clingo: fix string formatting in error messages (#31084)Sergey Kosukhin1-2/+2
2022-07-20openPMD-api: 0.14.5 (#31023)Axel Huebl1-0/+1
Add the latest release.
2022-07-20WarpX: 22.06 (#31012)Axel Huebl2-1/+9
* WarpX: 22.06 Update `warpx` & `py-warpx` to the latest release, `22.06`. * Patch: Fix 1D CUDA Builds
2022-07-20Prepare: openPMD-api 0.15.0-dev (#29484)Axel Huebl1-12/+19
Anticipate openPMD-api changes in the next major release that are already in `dev` (aka Spack `develop`): - C++17 requirement - drop: `mpark-variant` public dependency - add: `toml11` private dependency Also add @franzpoeschel as co-maintainer for the Spack package.
2022-07-20WarpX: Patch no-MPI & Lib Install (#30866)Axel Huebl2-36/+22
Fixes WarpX issues: - https://github.com/ECP-WarpX/WarpX/pull/3134 - https://github.com/ECP-WarpX/WarpX/pull/3141 and uses GitHub patch URLs directly instead of storing patch copies.
2022-07-20bootstrap: account for disabled sources (#31042)Massimiliano Culpo2-4/+22
* bootstrap: account for disabled sources Fix a bug introduced in #30192, which effectively skips any prescription on disabled bootstrapping sources. * Add unit test to avoid regression
2022-07-20archspec: bump to v0.1.4 (#30856)Massimiliano Culpo2-10/+49
Fixes compiler flags for oneapi and dpcpp
2022-07-20Use stable URLs for patch-diff GitHub patches (#30953)Adam J. Stewart3-5/+6
2022-07-20Python: fix clingo bootstrapping on Apple M1 (#30834)Adam J. Stewart1-44/+75
This PR fixes several issues I noticed while trying to get Spack working on Apple M1. - [x] `build_environment.py` attempts to add `spec['foo'].libs` and `spec['foo'].headers` to our compiler wrappers for all dependencies using a try-except that ignores `NoLibrariesError` and `NoHeadersError` respectively. However, The `libs` and `headers` attributes of the Python package were erroneously using `RuntimeError` instead. - [x] `spack external find python` (used during bootstrapping) currently has no way to determine whether or not an installation is `+shared`, so previously we would only search for static Python libs. However, most distributions including XCode/Conda/Intel ship shared Python libs. I updated `libs` to search for both shared and static (order based on variant) as a fallback. - [x] The `headers` attribute was recursively searching in `prefix.include` for `pyconfig.h`, but this could lead to non-deterministic behavior if multiple versions of Python are installed and `pyconfig.h` files exist in multiple `<prefix>/include/pythonX.Y` locations. It's safer to search in `sysconfig.get_path('include')` instead. - [x] The Python installation that comes with XCode is broken, and `sysconfig.get_paths` is hard-coded to return specific directories. This meant that our logic for `platlib`/`purelib`/`include` where we replace `platbase`/`base`/`installed_base` with `prefix` wasn't working and the `mkdirp` in `setup_dependent_package` was trying to create a directory in root, giving permissions issues. Even if you commented out those `mkdirp` calls, Spack would add the wrong directories to `PYTHONPATH`. Added a fallback hard-coded to `lib/pythonX.Y/site-packages` if sysconfig is broken (this is what distutils always did).
2022-05-31Added AWS-AHUG alinux2 pipeline (#24601)Evan Bollig3-0/+737
Add spack stacks targeted at Spack + AWS + ARM HPC User Group hackathon. Includes a list of miniapps and full-apps that are ready to run on both x86_64 and aarch64. Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>
2022-05-31Alinux isc buildcache (#30462)Evan Bollig4-0/+605
Add two new stacks targeted at x86_64 and arm, representing an initial list of packages used by current and planned AWS Workshops, and built in conjunction with the ISC22 announcement of the spack public binary cache. Co-authored-by: Scott Wittenburg <scott.wittenburg@kitware.com>
2022-05-28fix dev paths for depsGreg Becker1-3/+8
2022-05-28update changelog for v0.18.0 (#30905)v0.18.0Todd Gamblin1-1/+203
2022-05-28Remove the warning that Spack prints at each spec (#30872)Massimiliano Culpo2-3/+7
Add instead a warning box in the documentation
2022-05-27target optimization: re-norm optimization scale so that 0 is best. (#29926)Greg Becker3-16/+34
referred targets are currently the only minimization criteria for Spack for which we allow negative values. That means Spack may be incentivized to add nodes to the DAG if they match the preferred target. This PR re-norms the minimization criteria so that preferred targets are weighted from 0, and default target weights are offset by the number of preferred targets per-package to calculate node_target_weight. Also fixes a bug in the test for preferred targets that was making the test easier to pass than it should be.
2022-05-27update tutorial command for v0.18.0 and new gpg keyGreg Becker2-35/+162
2022-05-26Revert "strip -Werror: all specific or none (#30284)"Todd Gamblin5-127/+3
This reverts commit 330832c22cfa59554f6681a570bdec24ca46e79b. `-Werror` chagnes were unfortunately causing the `rdma-core` build to fail. Reverting on `v0.18`; we can fix this in `develop`
2022-05-26ci: Support secure binary signing on protected pipelines (#30753)Scott Wittenburg13-172/+534
This PR supports the creation of securely signed binaries built from spack develop as well as release branches and tags. Specifically: - remove internal pr mirror url generation logic in favor of buildcache destination on command line - with a single mirror url specified in the spack.yaml, this makes it clearer where binaries from various pipelines are pushed - designate some tags as reserved: ['public', 'protected', 'notary'] - these tags are stripped from all jobs by default and provisioned internally based on pipeline type - update gitlab ci yaml to include pipelines on more protected branches than just develop (so include releases and tags) - binaries from all protected pipelines are pushed into mirrors including the branch name so releases, tags, and develop binaries are kept separate - update rebuild jobs running on protected pipelines to run on special runners provisioned with an intermediate signing key - protected rebuild jobs no longer use "SPACK_SIGNING_KEY" env var to obtain signing key (in fact, final signing key is nowhere available to rebuild jobs) - these intermediate signatures are verified at the end of each pipeline by a new signing job to ensure binaries were produced by a protected pipeline - optionallly schedule a signing/notary job at the end of the pipeline to sign all packges in the mirror - add signing-job-attributes to gitlab-ci section of spack environment to allow configuration - signing job runs on special runner (separate from protected rebuild runners) provisioned with public intermediate key and secret signing key
2022-05-25release number for v0.18.0Gregory Becker1-1/+1
2022-05-26bugfix: do not compute `package_hash` for old concrete specs (#30861)Todd Gamblin2-35/+50
Old concrete specs were slipping through in `_assign_hash`, and `package_hash` was attempting to recompute a package hash when we could not know the package a time of concretization. Part of this was that the logic for `_assign_hash` was hard to understand -- it was called twice from `_finalize_concretization` and had special cases for both args it was called with. It's much easier to understand the logic here if we just inline it. - [x] Get rid of `_assign_hash` and just integrate it with `_finalize_concretization` - [x] Don't call `_package_hash` at all for already-concrete specs. - [x] Add regression test.
2022-05-25py-numpy: add v1.22.4 (#30827)Adam J. Stewart2-1/+4
2022-05-25py-pythran: add v0.11.0 (#30829)Adam J. Stewart1-0/+4
2022-05-25openmpi: fixes for slurm and #29449 (#30299)Seth R. Johnson1-44/+19
2022-05-25Add nextflow 22.04.3 (#30855)Diego Alvarez1-0/+1
2022-05-25eagle: updating to version 1.1.3 (#30852)snehring1-3/+4