summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2024-03-07Drop optional dependencies of Spack (#43081)Tim Fuller2-48/+31
Remove dependency on `importlib_metadata` and `pkg_resources`, which can be problematic if the version in PYTHONPATH is incompatible with the interpreter Spack is running under.
2024-03-07autotools: fix a typo in comment (#43080)Juan Miguel Carceller1-1/+1
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-03-07Fix `spack find` bootstrapping docs (#43074)runiq1-3/+3
Closes #43052. Maybe moving the argument to the `find` subcommand is a good idea, but I just wanted to get the docs fix out. Co-authored-by: Patrice Peterson <patrice.peterson@itz.uni-halle.de>
2024-03-06Allow loading extensions through python entry-points (#42370)Tim Fuller6-1/+291
This PR adds the ability to load spack extensions through `importlib.metadata` entry points, in addition to the regular configuration variable. It requires Python 3.8 or greater to be properly supported.
2024-03-05spack.patch: fix type hint circular import (#43041)Adam J. Stewart1-5/+5
2024-03-05spack.patch: add type hints (#42811)Adam J. Stewart2-79/+224
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2024-03-05container: don't map develop to latest (#42952)Wouter Deconinck4-45/+6
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-03-04ASP-based solver: improve reusing nodes with gcc-runtime (#42408)Massimiliano Culpo3-6/+90
* ASP-based solver: improve reusing nodes with gcc-runtime This PR skips emitting dependency constraints on "gcc-runtime", for concrete specs that are considered for reuse. Instead, an appropriate version of gcc-runtime is recomputed considering also the concrete nodes from reused specs. This ensures that root nodes in a DAG have always a runtime that is at a version greater or equal than their dependencies. * Add unit-test for view with multiple runtimes * Select latest version of runtimes in views * Construct result keeping track of latest * Keep ordering stable, just in case
2024-03-04repo.py: cleanup packages_with_tags (#42980)Harmen Stoppels5-26/+19
2024-03-04Document new environment variable expansion in projections (#42963)psakievich2-0/+30
Adding docs and test for #42917 Co-authored-by: Alec Scott <hi@alecbcs.com>
2024-03-04modules: allow autoload: run, like in environment views (#42743)Harmen Stoppels3-35/+30
2024-03-04versions: fix typing problems (#42903)Harmen Stoppels1-5/+9
Fix the type declaration of VersionList.versions. Fix further problems exposed by that fix.
2024-02-29Show extension commands with spack -h (#41726)Tim Fuller1-5/+7
* Execute `args.help` after setting main options so that extension commands will show with `spack -h` --------- Co-authored-by: psakievich <psakiev@sandia.gov>
2024-02-29Support environment variable expansion inside module projections (#42917)psakievich1-2/+4
2024-02-28Unit tests: skip tests that intermittently fail on Windows (#42909)Harmen Stoppels2-0/+2
2024-02-28versions: simplify list if union not disjoint (#42902)Harmen Stoppels2-25/+48
Spack merges ranges and concrete versions if they have non-empty intersection. That is not enough for adjacent version ranges. This commit ensures that disjoint ranges in version lists are simplified if their union is not disjoint: ```python "@1.0:2.0,2.1,2.2:3,4:6" # simplifies to "@1.0:6" ```
2024-02-27skip test which is causing spurious failures on Windows (#42832)Peter Scheibel1-0/+3
2024-02-27build(deps): bump pytest from 8.0.1 to 8.0.2 in /lib/spack/docs (#42861)dependabot[bot]1-1/+1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.0.1...8.0.2) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-26refactor: add type annotations and refactor solver conditions (#42081)Todd Gamblin2-91/+121
Refactoring `SpackSolverSetup` is a bit easier with type annotations, so I started adding some. This adds annotations for the (many) instance variables on `SpackSolverSetup` as well as a few other places. This also refactors `condition()` to reduce redundancy and to allow `_get_condition_id()` to be called independently of the larger condition function. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-02-23Windows path handling: change representation for paths with spaces (#42754)John W. Parent3-2/+47
Some builds on Windows break when encountering paths with spaces. This reencodes some paths in Windows 8.3 filename format (when on Windows): this serves as an equivalent identifier for the file, but in a form that does not have spaces. 8.3 filenames are also truncated in length, which could be helpful, but that is not the primary intended purpose of using this format. Overall * nmake/msbuild packages do this generally for the install prefix * curl/perl require additional modifications (as written now, each package may require calls to `windows_sfn` to work when the Spack root/install/staging prefixes contain spaces) Some items for follow-up: * Spack itself does not create paths with spaces "on top" of whatever the user configures or where it is placed (e.g. the Spack root, the staging directory, etc.), so it might be possible to edit some of these paths once and avoid a proliferation of individual `windows_sfn` calls in individual packages. * This approach may result in the insertion of 8.3-style paths into build artifacts (on Windows), handling this may require additional bookkeeping (e.g. when relocating).
2024-02-23Alert user to failed concretizations (#42655)Peter Scheibel4-18/+75
With this change an error message is emitted when the result of concretization is in an inconsistent state.
2024-02-23Cleanup spack.schema (#42815)Massimiliano Culpo5-74/+29
* Move spec_list into its own file, instead of __init__.py * Remove spack.schema.spack This module was introduced in #33960 It's almost an exact duplicate of spack.schema.env, and is not used anywhere. * Fix typo
2024-02-23Remove dead code from Environment (#42818)Massimiliano Culpo2-47/+0
Environment.concretize_and_add is not used anywhere.
2024-02-23Fix wrong call to a function (#42814)Massimiliano Culpo1-2/+1
2024-02-22PythonPackage: check purelib for libs/headers (#42602)Adam J. Stewart1-8/+19
* PythonPackage: check purelib for libs/headers * Update error messages too * Fix functools.reduce argument order
2024-02-22oci: when base image uses Image Manifest Version 2, follow suit (#42777)Harmen Stoppels5-17/+125
2024-02-22build(deps): bump urllib3 from 2.2.0 to 2.2.1 in /lib/spack/docs (#42757)dependabot[bot]1-1/+1
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.0 to 2.2.1. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.2.0...2.2.1) --- updated-dependencies: - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22spack gc: do not show uninstalled but needed specs (#42696)Harmen Stoppels2-26/+32
2024-02-21env activate: use Win-compatible print on Windows (#42755)John W. Parent1-1/+2
Use "echo" instead of "printf" on Windows.
2024-02-21Windows: fix error with can_symlink check (#42753)John W. Parent1-0/+1
2024-02-21rocm: removal of deprecated <5.1 versions (#42676)Harmen Stoppels1-14/+0
The package `aomp` is removed entirely, as it was too outdated to have non-deprecated dependencies.
2024-02-19Use relative target in symlinks to modified files in view (#42699)Harmen Stoppels1-1/+1
2024-02-16build(deps): bump pytest from 8.0.0 to 8.0.1 in /lib/spack/docs (#42733)dependabot[bot]1-1/+1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.0 to 8.0.1. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.0.0...8.0.1) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16build(deps): bump black from 24.1.1 to 24.2.0 in /lib/spack/docs (#42629)dependabot[bot]1-1/+1
Bumps [black](https://github.com/psf/black) from 24.1.1 to 24.2.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.1.1...24.2.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16build(deps): bump python-levenshtein in /lib/spack/docs (#42630)dependabot[bot]1-1/+1
Bumps [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) from 0.24.0 to 0.25.0. - [Release notes](https://github.com/rapidfuzz/python-Levenshtein/releases) - [Changelog](https://github.com/rapidfuzz/python-Levenshtein/blob/main/HISTORY.md) - [Commits](https://github.com/rapidfuzz/python-Levenshtein/compare/v0.24.0...v0.25.0) --- updated-dependencies: - dependency-name: python-levenshtein dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16Add support for clang with OpenMP and other minor changes to oneapi build ↵Mikael Simberg1-10/+18
system (#42717) * Add support for clang in oneapi packages with OpenMP * Add fallback search for libomp in OneApi package with OpenMP threading * Add requires for the compiler when using threads=openmp in intel-oneapi-mkl * Cosmetic changes to messages in oneapi.py * Update error message in oneapi.py Co-authored-by: Robert Cohn <rscohn2@gmail.com> * Update another error message in oneapi.py Co-authored-by: Robert Cohn <rscohn2@gmail.com> * Inline helper error function in oneapi.py * Update one more error message in oneapi.py * Wrap long line in oneapi.py --------- Co-authored-by: Robert Cohn <rscohn2@gmail.com>
2024-02-16[intel-oneapi-mkl] provide omp lib for threads=openmp (#42653)Robert Cohn1-1/+44
2024-02-15allow packages to request no submodules be updated (#40409)Tim Fuller3-5/+39
* allow packages to request no submodules be updated when self.submodules is a callable function * Extend the test added in Allow more fine-grained control over what submodules are updated: part 2 #27293 to include this case * Update the type signature for the submodules arg of version() in directives.py --------- Co-authored-by: tjfulle <tjfulle@users.noreply.github.com>
2024-02-16develop: Add -b/--build-directory option to set build_directory package ↵Victor Brunini4-1/+42
attribute (#39606) * develop: Add -b/--build-directory option to set build_directory package attribute. * Update docs --------- Co-authored-by: psakievich <psakiev@sandia.gov> Co-authored-by: vbrunini <vbrunini@users.noreply.github.com>
2024-02-15Fix spack --profile|--pdb <cmd> (#42662)Scott Wittenburg1-2/+2
2024-02-15docs: fix typo (#42688)Jemma Stachelek1-1/+1
2024-02-15compilers: fixup order of arguments to satisfies (#42682)Harmen Stoppels2-16/+62
2024-02-13cmake: Enable compilation database generation (#42353)John Pennycook1-1/+22
* cmake: Enable CMAKE_EXPORT_COMPILE_COMMANDS Enabling this option causes CMake to generate a compile_commands.json file containing a compilation database that can be used to drive third-party tools. CMAKE_EXPORT_COMPILE_COMMANDS only exists for CMake >= 3.5 Exporting compilation databases is only supported for Makefile and Ninja generators, so check these conditions as well. CMAKE_EXPORT_COMPILE_COMMANDS is only enabled in supported configurations
2024-02-13PythonExtension.add_files_to_view: link non-executable/non-shebang regular ↵Harmen Stoppels1-0/+2
files (#42641)
2024-02-12audit: detect self-referential depends_on (#42456)Massimiliano Culpo1-2/+22
2024-02-12Fix multiple issues with Python in views (#42601)Harmen Stoppels2-31/+57
This fixes bugs, performance issues, and removes no longer necessary code. Short version: 1. Creating views from Python extensions would error if the Spack `opt` dir itself was in some symlinked directory. Use of `realpath` would expand those, and keying into `merge_map` would fail. 2. Creating views from Python extensions (and Python itself, potentially) could fail if the `bin/` dir contains symlinks pointing outside the package prefix -- Spack keyed into `merge_map[target_of_symlink]` incorrectly. 3. In the `python` package the `remove_files_from_view` function was broken after a breaking API change two years ago (#24355). However, the entire function body was redundant anyways, so solved it by removing it. 4. Notions of "global view" (i.e. python extensions being linked into Python's own prefix instead of into a view) are completely outdated, and removed. It used to be supported but was removed years ago. 5. Views for Python extension would _always_ copy non-symlinks in `./bin/*`, which is a big mistake, since all we care about is rewriting shebangs of scripts; we don't want to copy binaries. Now we first check if the file is executable, and then read two bytes to check if it has a shebang, and only if so, copy the entire file and patch up shebangs. The bug fixes for (1) and (2) basically consist of getting rid of `realpath` entirely, and instead simply keep track of file identifiers of files that are copied/modified in the view. Only after patching up regular files do we iterate over symlinks and check if they target one of those. If so, retarget it to the modified file in the view.
2024-02-11[oneapi]: make headers match oneapi vars.sh (#42614)Robert Cohn1-3/+11
* [oneapi]: make headers match oneapi vars.sh * update * update
2024-02-09hooks: remove 7 unused hooks (#42575)Harmen Stoppels4-120/+12
These 7 hooks were not used. - Six of them related to install phases were unused after `spack` `monitor` was removed, and the code seems to have bit rotten as there were reports they were not (always?) triggered when they should. - The post environment one was made redundant after spack install for environment started following the common code path for generating module files in #42147. It should not be a breaking change to remove, since users cannot define hooks in extensions, they would have to fork Spack. If we ever _were_ to make those hooks extendable outside of core Spack, it would also be better to start with fewer rather than more, cause everything you expose gets relied upon... Removing those also allows us to rethink what hooks we really need, and in particular it seems like we need a hook that runs post install also when the spec is inserted into the database.
2024-02-09ASP-based solver: fix issue with conditional requirements and trigger ↵Massimiliano Culpo2-0/+51
conditions (#42566) The lack of a rule to avoid enforcing requirements on multi-valued variants, when the condition activating the environment was not met, resulted in multiple optimal solutions. The fix is to prevent imposing a requirement if the when= rule activating it is not met.
2024-02-09Allow `+` in module file names (#41999)simonLeary421-1/+1