summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2021-12-15Provide meaningful message for empty environment installs (#28031)Tamara Dahlgren2-9/+26
* Provide a meaningful failure message for installation of an empty environment * Allow regenerating view per offline discussion
2021-12-16Bugfix: Simplify preferred-test versions; set checksum defaults (#28026)Tamara Dahlgren4-12/+12
* Simplify preferred-test versions; set checksum defaults * Fix test_preferred failure
2021-12-15Revert "patches: make re-applied patches idempotent (#26784)" (#27625)Harmen Stoppels4-137/+25
This reverts commit c5ca0db27fce5d772dc8a4fcffec3b62bb0bf1f3.
2021-12-15Add option to minimize full debug cores. include warning message about ↵Greg Becker4-21/+73
performance (#27970) Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-14ci: Catch Exceptions when attempting to register a CDash build (#27883)Zack Galbreath2-18/+22
This PR also slightly changes the behavior in ci_rebuild(). We now still attempt to submit `spack install` results to CDash even if the initial registration failed due to connection issues. This commit follows in the spirit of #24299. We do not want `spack install` to exit with a non-zero status when something goes wrong while attempting to report results to CDash.
2021-12-13Install dir creation message demoted to "debug" level (#27911)Harmen Stoppels1-2/+1
2021-12-10Extends: support spec, not just package name (#27754)Adam J. Stewart2-1/+11
2021-12-10Improve debug info from concretizer (#27707)Greg Becker2-2/+33
2021-12-10Refactor "spack buildcache" command (#27776)Massimiliano Culpo11-438/+511
This PR is meant to move code with "business logic" from `spack.cmd.buildcache` to appropriate core modules[^1]. Modifications: - [x] Add `spack.binary_distribution.push` to create a binary package from a spec and push it to a mirror - [x] Add `spack.binary_distribution.install_root_node` to install only the root node of a concrete spec from a buildcache (may check the sha256 sum if it is passed in as input) - [x] Add `spack.binary_distribution.install_single_spec` to install a single concrete spec from a buildcache - [x] Add `spack.binary_distribution.download_single_spec` to download a single concrete spec from a buildcache to a local destination - [x] Add `Spec.from_specfile` that construct a spec given the path of a JSON or YAML spec file - [x] Removed logic from `spack.cmd.buildcache` - [x] Removed calls to `spack.cmd.buildcache` in `spack.bootstrap` - [x] Deprecate `spack buildcache copy` with a message that says it will be removed in v0.19.0 [^1]: The rationale is that commands should be lightweight wrappers of the core API, since that helps with both testing and scripting (easier mocking and no need to invoke `SpackCommand`s in a script).
2021-12-08Make external detection more resilient to individual package errors (#27854)Massimiliano Culpo1-3/+9
After this PR an error in a single package while detecting external software won't abort the entire procedure. The error is reported to screen as a warning.
2021-12-07rocm: add gfx90a (#27823)Tamara Dahlgren1-1/+1
2021-12-07"spack buildcache install": don't catch exception (#27674)Harmen Stoppels1-8/+2
Remove a try/catch for an error with no handling. If the affected code doesn't execute successfully, then the associated variable is undefined and another (more-obscure) error occurs shortly after.
2021-12-07Release procedure: add a step to update docs (#27734)Massimiliano Culpo1-0/+4
2021-12-02Support packages which need to explicitly refer to dpcpp by name (#27168)Peter Scheibel3-1/+31
* Hack to support packages which need to explicitly refer to dpcpp by name * cc script needs to know about dpcpp
2021-11-30spack audit: fix API calls (#27713)Massimiliano Culpo1-4/+4
This broke in #24858
2021-11-29Speed up install of environments with dev packages (#27167)Thomas Madlener1-44/+60
* only check file modification times once per dev package
2021-11-29distro: don't use deprecated linux_distribution (#27658)Harmen Stoppels1-4/+2
2021-11-29bootstrap: restrict patchelf to v0.13.x (#27685)Massimiliano Culpo1-1/+4
2021-11-29Handle byte sequences which are not encoded as UTF8 while logging. (#21447)Paul Ferrell2-1/+24
Fix builds which produce a lines with non-UTF8 output while logging The alternative is to read in binary mode, and then decode while ignoring errors.
2021-11-26Bootstrap patchelf like GnuPG (#27532)Massimiliano Culpo4-83/+70
Remove a custom bootstrapping procedure to use spack.bootstrap instead Modifications: * Reference count the bootstrap context manager * Avoid SpackCommand to make the bootstrapping procedure more transparent * Put back requirement on patchelf being in PATH for unit tests * Add an e2e test to check bootstrapping patchelf
2021-11-25module_file_support: update format for configuration (#27598)Maxim Belkin1-67/+77
2021-11-24spack flake8: remove deprecated command (#27290)Massimiliano Culpo1-25/+0
The "spack flake8" command wwas deprecated in favor of "spack style". The deprecation wwarning is in the 0.17.X series, so removing it for v0.18.x
2021-11-24intel-oneapi-mkl: add cluster libs and option for static linking (#26256)Robert Cohn2-2/+45
2021-11-24Make patchelf test use the realpath (#27618)Harmen Stoppels1-1/+1
I think this test should be removed, but when it stays, it should at least follow the symlink, cause it fails for me if I let spack build patchelf and have a symlink in a view.
2021-11-24Update distro to v1.6.0 (#27263)Massimiliano Culpo2-217/+502
2021-11-24Update Jinja2 to v2.11.3 and MarkupSafe to v1.1.1 (#27264)Massimiliano Culpo37-4147/+5002
2021-11-24Update six to v1.16.0 (#27265)Massimiliano Culpo2-21/+128
2021-11-23Fix leaky tests (#27616)Harmen Stoppels3-7/+7
* fix: cc.py should use a function not session scope * fix: don't let build env vars leak to other tests * fix: don't leak build env in dev_build test
2021-11-23Remove support for Python 2.6 (#27256)Massimiliano Culpo25-288/+62
Modifications: - [x] Removed `centos:6` unit test, adjusted vermin checks - [x] Removed backport of `collections.OrderedDict` - [x] Removed backport of `functools.total_ordering` - [x] Removed Python 2.6 specific skip markers in unit tests - [x] Fixed a few minor Python 2.6 related TODOs in code Updating the vendored dependencies will be done in separate PRs
2021-11-22bugfix: Allow legacy tests to be read after hash break (#26078)Nathan Hanford2-1/+33
* added a test case Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
2021-11-22Intel packages: add support for LLVM OpenMP (#26517)Piotr Luszczek1-1/+7
2021-11-22Make CUDA and ROCm architecture conditional (#27185)Massimiliano Culpo2-2/+4
* Make CUDA and ROCm architecture conditional fixes #14337 The variant to specify which architecture to use for CUDA and ROCm are now conditional on +cuda and +rocm respectively. * cp2k: make all CUDA related variants conditional on +cuda
2021-11-22Make _enable_or_disable(...) return an empty array for conditional variants ↵Harmen Stoppels3-0/+32
whose condition is not met (#27504)
2021-11-19Add connection specification to mirror creation (#24244)Joseph Snyder11-43/+218
* Add connection specification to mirror creation This allows each mirror to contain information about the credentials used to access it. Update command and tests based on comments Switch to only "long form" flags for the s3 connection information. Use the "any" function instead of checking for an empty list when looking for s3 connection information. Split test to use the access token separately from the access id and key. Use long flag form in test. Add endpoint_url to available S3 options. Extend the special parameters for an S3 mirror to accept the endpoint_url parameter. Add a test. * Add connection information per URL not per mirror Expand the mirror-based connection information to be per-URL. This will allow a user to specify different S3 connection information for both the fetch and the push URLs. Add a parameter for "profile", another way of storing the id/secret pair. * Switch from "access_profile" to "profile"
2021-11-19define_from_variant: return an empty string for non-existing variants (#27503)Harmen Stoppels3-0/+29
This permits to use conditional variants without a lot of boilerplate.
2021-11-19Adding --reuse to dev-build command. (#27487)Michael Davis1-2/+2
2021-11-19Remove spurious debug print (#27541)Massimiliano Culpo1-1/+0
2021-11-18Refactor bootstrap of "spack style" dependencies (#27485)Massimiliano Culpo4-156/+156
Remove the "get_executable" function from the spack.bootstrap module. Now "flake8", "isort", "mypy" and "black" will use the same bootstrapping method as GnuPG.
2021-11-18Allow recent pytest versions to be used with Spack (#25371)Massimiliano Culpo94-28/+76
Currently Spack vendors `pytest` at a version which is three major versions behind the latest (3.2.5 vs. 6.2.4). We do that since v3.2.5 is the latest version supporting Python 2.6. Remaining so much behind the currently supported versions though might introduce some incompatibilities and is surely a technical debt. This PR modifies Spack to: - Use the vendored `pytest@3.2.5` only as a fallback solution, if the Python interpreter used for Spack doesn't provide a newer one - Be able to parse `pytest --collect-only` in all the different output formats from v3.2.5 to v6.2.4 and use it consistently for `spack unit-test --list-*` - Updating the unit tests in Github Actions to use a more recent `pytest` version
2021-11-18ci: run style unit tests only if we target develop (#27472)Harmen Stoppels2-2/+17
Some tests assume the base branch is develop, but this branch may not have been checked out.
2021-11-17Fix overly generic exceptions in log parser (#27413)Harmen Stoppels1-4/+0
This type of error is skipped: make[1]: *** [Makefile:222: /tmp/user/spack-stage/.../spack-src/usr/lib/julia/libopenblas64_.so.so] Error 1 but it's useful to have it, especially when a package sets a variable incorrectly in makefiles
2021-11-16Intel mpi: allow use of external libfabric (#27292)Robert Cohn1-9/+10
Intel mpi comes with an installation of libfabric (which it needs as a dependency). It can use other implementations of libfabric at runtime though, so if you install a package that depends on `mpi` and `libfabric`, you can specify `intel-mpi+external-libfabric` and ensure that the Spack-built instance is used (both by `intel-mpi` and the root). Apply analogous change to intel-oneapi-mpi.
2021-11-15Turn some verbose messages into debug messages (#27408)Harmen Stoppels1-8/+8
2021-11-12Add PyPI docs and warning in auto-generated package (#27404)Seth R. Johnson2-3/+16
* docs: Add cross-references for pypi setup * create: add warning for missing pypi
2021-11-11Fix overloaded argparse keys (#27379)Harmen Stoppels5-15/+14
Commands should not reuse option names defined in main.
2021-11-09spack tutorial: fix output to screen (#27316)Massimiliano Culpo1-1/+3
Spack was checking out v0.17, the output reported v0.16
2021-11-09Fix typos (ouptut) (#27317)Maxim Belkin2-2/+2
2021-11-09Fix log-format reporter ignoring install errors (#25961)Jordan Galby3-31/+48
When running `spack install --log-format junit|cdash ...`, install errors were ignored. This made spack continue building dependents of failed install, ignoring `--fail-fast`, and exit 0 at the end.
2021-11-09make --enable-locks actually enable locks (#24675)Dylan Simon1-2/+3
2021-11-09build_environment: clean *_ROOT variables (#26474)Valentin Volkl1-0/+7
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>