summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2023-08-15Introduce unification setsMassimiliano Culpo1-5/+13
Unification sets are possibly overlapping sets of nodes that might contain at most a single configuration for any package.
2023-08-15Allow clingo to generate edgesMassimiliano Culpo2-20/+33
2023-08-15Rework the encoding to introduce node(ID, Package) nested factsMassimiliano Culpo3-543/+635
So far the encoding has a single ID per package, i.e. all the facts will be node(0, Package). This will prepare the stage for extending this logic and having multiple nodes from the same package in a DAG.
2023-08-15Remove unneeded #defined directivesMassimiliano Culpo1-31/+0
2023-08-15Remove useless ruleMassimiliano Culpo1-5/+0
The version_equivalent fact was deleted in #36347, but the corresponding rule was not removed.
2023-08-15Transform many package related facts to use a nested functionMassimiliano Culpo3-112/+141
Each fact that is deduced from package rules, and start with a bare package atom, is transformed into a "facts" atom containing a nested function. For instance we transformed version_declared(Package, ...) -> facts(Package, version_declared(...)) This allows us to clearly mark facts that represent a rule on the package, and will be of help later when we'll have to distinguish the cases where the atom "Package" is being used referred to package rules and not to a node in the DAG.
2023-08-15spack.caches: uppercase global variables (#39428)Massimiliano Culpo9-23/+24
2023-08-15spack.config: use all caps for globals (#39424)Harmen Stoppels29-160/+147
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