summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2023-08-14Windows: executable/path handling (#37762)markus-ferrell4-55/+86
Windows executable paths can have spaces in them, which was leading to errors when constructing Executable objects: the parser was intended to handle cases where users could provide an executable along with one or more space-delimited arguments. * Executable now assumes that it is constructed with a string argument that represents the path to the executable, but no additional arguments. * Invocations of Executable.__init__ that depended on this have been updated (this includes the core, tests, and one instance of builtin repository package). * The error handling for failed invocations of Executable.__call__ now includes a check for whether the executable name/path contains a space, to help users debug cases where they (now incorrectly) concatenate the path and the arguments.
2023-08-14Windows: enable "spack install" tests (#34696)markus-ferrell8-181/+72
* The module-level skip for tests in `cmd.install` on Windows is removed. A few classes of errors still persist: * Cdash tests are not working on Windows * Tests for failed installs are also not working (this will require investigating bugs in output redirection) * Environments are not yet supported on Windows overall though, this enables testing of most basic uses of "spack install" * Git repositories cached for version lookups were using a layout that mimicked the URL as much as possible. This was useful for listing the cache directory and understanding what was present at a glance, but the paths were overly long on Windows. On all systems, the layout is now a single directory based on a hash of the Git URL and is shortened (which ensures a consistent and acceptable length, and also avoids special characters). * In particular, this removes util.url.parse_git_url and its associated test, which were used exclusively for generating the git cache layout * Bootstrapping is now enabled for unit tests on Windows
2023-08-14Fix style issues with latest versions of tools (#39422)Massimiliano Culpo10-20/+19
2023-08-14Fix containerize view symlink issue (#39419)Harmen Stoppels1-10/+11
2023-08-14Fix broken semver regex (#39414)Harmen Stoppels2-9/+36
2023-08-14spack bootstrap dev: detect git as an external (#39417)Harmen Stoppels2-2/+11
#36770 added git as a dependency to `setuptools-scm`. This in turn makes `git` a transitive dependency for our bootstrapping process. Since `git` may take a long time to build, and is found on most systems, try to detect it as an external.
2023-08-13autotools: set 'ldlibs' as 'LIBS' (#17254)Sergey Kosukhin1-1/+2
2023-08-12ci: continue to support SPACK_SIGNING_KEY (#39170)Scott Wittenburg1-6/+5
2023-08-12Python: remove maintainer (#39384)Adam J. Stewart3-9/+4
2023-08-11Revert "package import: remove magic import line (#39183)" (#39380)Todd Gamblin5-46/+43
This reverts commit 8e7c53a8ba32e0793e36e66b5fdac8f4f61e644d.
2023-08-11spack.repo: uppercase the global PATH variable (#39372)Massimiliano Culpo74-246/+246
This makes the name of the global variable representing the repository currently in use uppercase. Doing so is advised by pylint rules, and helps to identify where the global is used.
2023-08-11build(deps): bump mypy from 1.4.1 to 1.5.0 in /lib/spack/docs (#39383)dependabot[bot]1-1/+1
Bumps [mypy](https://github.com/python/mypy) from 1.4.1 to 1.5.0. - [Commits](https://github.com/python/mypy/compare/v1.4.1...v1.5.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>
2023-08-10Windows build systems: use ninja and enable tests (#33589)markus-ferrell2-3/+4
* Set default CMake generator is ninja on Windows * Enable build systems tests (except for autotools/make)
2023-08-10build(deps): bump pygments from 2.15.1 to 2.16.1 in /lib/spack/docs (#39365)dependabot[bot]1-1/+1
Bumps [pygments](https://github.com/pygments/pygments) from 2.15.1 to 2.16.1. - [Release notes](https://github.com/pygments/pygments/releases) - [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES) - [Commits](https://github.com/pygments/pygments/compare/2.15.1...2.16.1) --- updated-dependencies: - dependency-name: pygments 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>
2023-08-10build(deps): bump flake8 from 6.0.0 to 6.1.0 in /lib/spack/docs (#39366)dependabot[bot]1-1/+1
Bumps [flake8](https://github.com/pycqa/flake8) from 6.0.0 to 6.1.0. - [Commits](https://github.com/pycqa/flake8/compare/6.0.0...6.1.0) --- updated-dependencies: - dependency-name: flake8 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>
2023-08-10build(deps): bump sphinx-design from 0.4.1 to 0.5.0 in /lib/spack/docs (#39367)dependabot[bot]1-1/+1
Bumps [sphinx-design](https://github.com/executablebooks/sphinx-design) from 0.4.1 to 0.5.0. - [Release notes](https://github.com/executablebooks/sphinx-design/releases) - [Changelog](https://github.com/executablebooks/sphinx-design/blob/main/CHANGELOG.md) - [Commits](https://github.com/executablebooks/sphinx-design/compare/v0.4.1...v0.5.0) --- updated-dependencies: - dependency-name: sphinx-design 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>
2023-08-10Prefix conflict messages with package name (#39106)Aiden Grossman2-4/+6
* Prefix conflict messages with package name This patch prefixes all conflict messages with the package name to alleviate what was otherwise a very manual process. Note that this patch is a one line change but has a fairly outsized impact. * same for requires directive --------- Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
2023-08-10Fixed broken calls to _if_ninja_target_execute (#38992)Ricard Zarco Badia1-2/+2
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2023-08-10Revert "Spec versions: allow `git.` references for branches with `/` ↵Harmen Stoppels3-36/+3
(#38239)" (#39354) This reverts commit 3453259c98c7d39655b8495ca2e3677c51284b43.
2023-08-10build(deps): bump urllib3 from 2.0.3 to 2.0.4 in /lib/spack/docs (#39002)dependabot[bot]1-1/+1
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.3 to 2.0.4. - [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.0.3...2.0.4) --- 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>
2023-08-09Windows: enable more stage tests (#36834)markus-ferrell1-8/+9
Enable some already-supported tests (no changes to staging logic).
2023-08-09add info about devito and qe for intel env (#39357)Andrey Parfenov1-0/+2
Signed-off-by: Andrey Parfenov <andrey.parfenov@intel.com>
2023-08-09Fix package.py error handling bug (#39017)Jordan Galby1-3/+2
2023-08-09build(deps): bump black from 23.1.0 to 23.7.0 in /lib/spack/docs (#38982)dependabot[bot]1-1/+1
Bumps [black](https://github.com/psf/black) from 23.1.0 to 23.7.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/23.1.0...23.7.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>
2023-08-09package import: remove magic import line (#39183)Harmen Stoppels5-43/+46
2023-08-09Fix suffix of tab completion scripts (#39154)Adam J. Stewart2-4/+5
2023-08-09zlib-api: new virtual with zlib/zlib-ng as providers (#37372)Harmen Stoppels2-2/+2
Introduces a new virtual zlib-api, which replaces zlib in most packages. This allows users to switch to zlib-ng by default for better performance.
2023-08-09containerize: ensure bootstrap images contain all system dependencies (#36818)Jonathon Anderson2-2/+9
This also makes `spack bootstrap status` exit 1 if some dependency is missing
2023-08-09Spec versions: allow `git.` references for branches with `/` (#38239)Peter Scheibel3-3/+36
2023-08-09Push conflict between rocm and blt down to packages that actually use blt ↵Massimiliano Culpo1-2/+0
(#39339)
2023-08-08Ensure that all variants have a description (#39025)Adam J. Stewart2-30/+41
* Ensure that all variants have a description * Update mock packages too * Fix test invocations * Black fix * mgard: update variant descriptions * flake8 fix * black fix * Add to audit tests * Relax type hints * Older Python support * Undo all changes to mock packages * Flake8 fix
2023-08-08Name clash error message include hash of clashing packages (#39234)simonLeary421-1/+2
Co-authored-by: Simon <simonleary@umass.edu>
2023-08-08Fix broken inode assertion (#39188)Harmen Stoppels1-1/+1
2023-08-07use {%compiler.name}{@compiler.version} in matching_specs (#39247)Harmen Stoppels1-1/+1
2023-08-07Extract prefix locks and failure markers from Database (#39024)Massimiliano Culpo12-383/+357
This PR extracts two responsibilities from the `Database` class: 1. Managing locks for prefixes during an installation 2. Marking installation failures and pushes them into their own class (`SpecLocker` and `FailureMarker`). These responsibilities are also pushed up into the `Store`, leaving to `Database` only the duty to manage `index.json` files. `SpecLocker` classes no longer share a global list of locks, but locks are per instance. Their identifier is simply `(dag hash, package name)`, and not the spec prefix path, to avoid circular dependencies across Store / Database / Spec.
2023-08-07Picklable HTTPError (#39285)Harmen Stoppels2-2/+36
2023-08-05Add a more detailed HTTPError (#39187)Harmen Stoppels1-3/+26
2023-08-04py-pyqt6: add new package (#32696)Adam J. Stewart2-61/+35
2023-08-03repo cache: use -inf default instead of 0 (#39214)Harmen Stoppels2-28/+24
FastPackageChecker.modified_since should use a default number < 0 When the repo cache does not exist, Spack uses mtime 0. This causes the repo cache not to be generated when the repo has mtime 0. Some popular package managers such as spack use 0 mtime normalization for reproducible tarballs. So when installing spack with spack from a buildcache, the repo cache doesn't generate Also add some typehints
2023-08-03Buildcache commands cleanup, again... (#39203)Harmen Stoppels6-158/+114
* Inform mypy that tty.die is noreturn * avoid temporary allocation in env * update spack buildcache save-specfile * fix spack buildcache check/download/get-buildcache-name - ensure that required args and mutually exclusive ones are marked as such in argparse for better error messages - deprecate --spec-file everywhere - use disambiguate for better error messages
2023-08-02Add qmake virtual provider (#38848)Adam J. Stewart1-1/+1
2023-08-02CI: Refactor ci reproducer (#37088)kwryankrattiger3-93/+184
* CI: Refactor ci reproducer * Autostart container * Reproducer paths match CI paths * Generate start scripts for docker and reproducer * CI: Add interactive and gpg options to reproduce-build * Interactive will determine if the docker container persists after running reproduction. * GPG path/url allow downloading GPG keys needed for binary cache download validation. This is important for running reproducer for protected CI jobs. * Add exit_on_failure option to CI scripts * CI: Add runtime option for reproducer
2023-08-02version: move to module, avoid circular imports (#39077)Harmen Stoppels8-268/+358
2023-08-02buildcache extractall: extract directly into spec.prefix (#37441)Harmen Stoppels5-60/+159
- Run `mkdirp` on `spec.prefix` - Extract directly into `spec.prefix` 1. No need for `$store/tmp.xxx` where we extract the tarball directly, pray that it has one subdir `<name>-<version>-<hash>`, and then `rm -rf` the package prefix followed by `mv`. 2. No need to clean up this temp dir in `spack clean`. 3. Instead figure out package directory prefix from the tarball contents, and strip the tarinfo entries accordingly (kinda like tar --strip-components but more strict) - Set package dir permissions - Don't error during error handling when files cannot removed - No need to "enrich" spec.json with this tarball-toplevel-path After this PR, we can in fact tarball packages relative to `/` instead of `spec.prefix/..`, which makes it possible to use Spack tarballs as container layers, where relocation is impossible, and rootfs tarballs are expected.
2023-08-02feat: move -N/--namespace(s) to common args, allow in `buildcache list` (#36719)Wouter Deconinck7-31/+25
`spack buildcache list` did not have a way to display the namespace of packages in the buildcache. This PR adds that functionality. For consistency's sake, it moves the `-N/--namespace` arg definition to the `common/arguments.py` and modifies `find`, `solve`, `spec` to use the common definition. Previously, `find` was using `--namespace` (singular) to control whether to display the namespace (it doesn't restrict the search to that namespace). The other commands were using `--namespaces` (plural). For backwards compatibility and for consistency with `--deps`, `--tags`, etc, the plural `--namespaces` was chosen. The argument parser ensures that `find --namespace` will continue to behave as before. Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
2023-08-01remove CMAKE_GENERATOR from the host-config because it cannot be overwritten ↵Chris White1-11/+0
on the command line (#39044)
2023-07-31Add `spack checksum --verify`, fix `--add` (#38458)Alec Scott6-113/+266
* Add rewrite of spack checksum to include --verify and better add versions to package.py files * Fix formatting and remove unused import * Update checksum unit-tests to correctly test multiple versions and add to package * Remove references to latest in stage.py * Update bash-completion scripts to fix unit tests failures * Fix docs generation * Remove unused url_dict argument from methods * Reduce chance of redundant remote_versions work * Add print() before tty.die() to increase error readablity * Update version regular expression to allow for multi-line versions * Add a few unit tests to improve test coverage * Update command completion * Add type hints to added functions and fix a few py-lint suggestions * Add @no_type_check to prevent mypy from failing on pkg.versions * Add type hints to format.py and fix unit test * Black format lib/spack/spack/package_base.py * Attempt ignoring type errors * Add optional dict type hint and declare versions in PackageBase * Refactor util/format.py to allow for url_dict as an optional parameter * Directly reference PackageBase class instead of using TypeVar * Fix comment typo --------- Co-authored-by: Tamara Dahlgren <dahlgren1@llnl.gov>
2023-07-31Remove Xcode mock-up (#39020)Adam J. Stewart3-227/+0
* Remove Xcode mock-up * Remove unused imports
2023-07-26ci: Make signing requirement explicit (#38995)Scott Wittenburg4-9/+50
Instead of inferring whether to sign binaries, make it explicit, and fail rebuild jobs early if signing is required but cannot be accomplished.
2023-07-24Always set workflow:rules in spack ci pipelines (#38921)Jonathon Anderson2-13/+20