summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2024-03-18use directives in some packages (#43238)Harmen Stoppels1-3/+3
2024-03-18Fix CMake generator documentation (#43232)Pieter P1-1/+1
2024-03-18performance: avoid `jinja2` import at startup unless needed (#43237)Todd Gamblin1-2/+2
`jinja2` can be a costly import, and right now it happens at startup every time we run Spack. This slows down `spack --print-shell-vars` a bit, which is needed by `setup-env.*sh`.
2024-03-15build(deps): bump black from 24.2.0 to 24.3.0 in /lib/spack/docs (#43228)dependabot[bot]1-1/+1
Bumps [black](https://github.com/psf/black) from 24.2.0 to 24.3.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.2.0...24.3.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-03-15Allow compilers to be configured in packages.yaml (#42016)Greg Becker8-20/+270
Co-authored-by: becker33 <becker33@users.noreply.github.com>
2024-03-14Clingo bootstrapping: Remove msvc constraint (#43199)John W. Parent1-3/+0
Patch allowing Clingo to build with VS22 has landed both in Spack and Clingo upstream, update Spack's bootstrap constraints to handle this. Additionally, properly scope the patch application in the clingo package to handle upstream patch.
2024-03-14Improve error message when an unknown compiler is requested (#43143)Massimiliano Culpo3-6/+18
Fixes #43141
2024-03-14`spack develop`: stage build artifacts in same root as non-dev builds (#41373)Peter Scheibel8-119/+289
Currently (outside of this PR) when you `spack develop` a path, this path is treated as the staging directory (this means that for example all build artifacts are placed in the develop path). This PR creates a separate staging directory for all `spack develop`ed builds. It looks like ``` # the stage root /the-stage-root-for-all-spack-builds/ spack-stage-<hash> # Spack packages inheriting CMakePackage put their build artifacts here spack-build-<hash>/ ``` Unlike non-develop builds, there is no `spack-src` directory, `source_path` is the provided `dev_path`. Instead, separately, in the `dev_path`, we have: ``` /dev/path/for/foo/ build-{arch}-<hash> -> /the-stage-root-for-all-spack-builds/spack-stage-<hash>/ ``` The main benefit of this is that build artifacts for out-of-source builds that are relative to `Stage.path` are easily identified (and you can delete them with `spack clean`). Other behavior added here: - [x] A symlink is made from the `dev_path` to the stage directory. This symlink name incorporates spec details, so that multiple Spack environments that develop the same path will not conflict with one another - [x] `spack cd` and `spack location` have added a `-c` shorthand for `--source-dir` Spack builds can still change the develop path (in particular to keep track of applied patches), and for in-source builds, this doesn't change much (although logs would not be written into the develop path). Packages inheriting from `CMakePackage` should get this benefit automatically though.
2024-03-14move --deprecated arg to concretizer args (#43177)Greg Becker7-27/+16
2024-03-14compiler.py: simplify implicit link dir bits (#43078)Harmen Stoppels2-51/+36
2024-03-14build(deps): bump pytest from 8.0.2 to 8.1.1 in /lib/spack/docs (#43134)dependabot[bot]1-1/+1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.2 to 8.1.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.2...8.1.1) --- updated-dependencies: - dependency-name: pytest 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-03-13msvc: patch property ref bug (#43173)John W. Parent1-1/+1
2024-03-12spack.patch: support reversing patches (#43040)Adam J. Stewart3-10/+107
The `patch()` directive can now be invoked with `reverse=True` to apply a patch in reverse. This is useful for reverting commits that caused errors in projects, even if only the forward patch is available, e.g. via a GitHub commit patch URL. `patch(..., reverse=True)` runs `patch -R` behind the scenes. This is a POSIX option so we can expect it to be available on the `patch` command. --------- Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-03-12perl testing: refactor stand-alone testing into base class (#43044)Tamara Dahlgren3-2/+124
2024-03-12Update archspec to v0.2.3 (#42854)Massimiliano Culpo17-214/+1837
2024-03-11Fix callbacks accumulation when using mixins with builders (#43100)Massimiliano Culpo3-14/+33
fixes #43097 Before this PR the behavior of mixins used together with builders was to mask completely the callbacks defined from the class coming later in the MRO. Here we fix the behavior by accumulating all callbacks, and de-duplicating them later.
2024-03-11Remove dead code (#43114)Massimiliano Culpo6-238/+0
* Remove dead code in spack * Remove dead code in llnl
2024-03-10build(deps): bump mypy from 1.8.0 to 1.9.0 in /lib/spack/docs (#43103)dependabot[bot]1-1/+1
Bumps [mypy](https://github.com/python/mypy) from 1.8.0 to 1.9.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.8.0...1.9.0) --- updated-dependencies: - dependency-name: mypy 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-03-08Retiring as PythonPackage maintainer (#43091)Adam J. Stewart4-19/+3
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.