summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2022-07-05Remove fetch from depfile (#31433)Harmen Stoppels3-51/+19
2022-07-05ROCmPackage: unify amdgpu_targets (#30582)Alberto Invernizzi1-3/+4
* unify amdgpu_targets for rocsolver and rocblas * add more archs * adapt all roc packages to unified amdgpu_targets
2022-07-01gitlab: Fix pipeline generation for non-develop protected pipelines (#31378)Scott Wittenburg1-6/+9
Release branches and tags run protected pipelines, and we noticed that those pipelines were generating all jobs in the stack, even when the mirror contained all the built specs and an up to date index. The problem was caused because the override mirror was not present in spacks mirror configuration at the time when the binary_distribution.update() method was called. This fixes that by always adding the mirror override, if present, to the list of configured mirrors.
2022-06-29Cray manifest: compiler duplicates (#31173)Peter Scheibel3-7/+33
* remove unhelpful comment * Filter compiler duplicates while reading manifest * more-specific version matching edited to use module-specific version (to avoid an issue where a user might add a compiler with the same version to the initial test configuration
2022-06-29PythonPackage: add default libs/headers attributes (#28527)Adam J. Stewart1-0/+34
* PythonPackage: add default libs/headers attributes * Style fix * libs and headers should be properties * Check both platlib and include * Fix variable reference
2022-06-29Update containerize templates to account for view indirection (#31321)Massimiliano Culpo1-1/+2
fixes #30965
2022-06-28oneAPI supports cxx17_flag and cxx20_flag (#31274)Wouter Deconinck1-0/+8
2022-06-28Feature: use git branches/tags as versions (#31200)Greg Becker8-120/+304
Building on #24639, this allows versions to be prefixed by `git.`. If a version begins `git.`, it is treated as a git ref, and handled as git commits are starting in the referenced PR. An exception is made for versions that are `git.develop`, `git.main`, `git.master`, `git.head`, or `git.trunk`. Those are assumed to be greater than all other versions, as those prefixed strings are in other contexts.
2022-06-27oneapi-* packages: improve use with modules (#30981)Sergey Kosukhin1-14/+12
This commit adds some changes which improve use of Spack-installed oneAPI packages with Spack-generated modules, but not within Spack (e.g. if you install some of these packages with Spack, then load their associated modules to build other packages outside of Spack). The majority of the PR diff is refactoring. The functional changes are: * intel-oneapi-mkl: * setup_run_environment: update Intel compiler flags to RPATH the mkl libs * intel-oneapi-compilers: update the compiler configuration to RPATH libraries installed by this package (note that Spack already handled this when installing dependent packages with Spack, but this is specifically to use the intel-oneapi-compilers package outside of Spack). Specifically: * inject_rpaths: this modifies the binaries installed as part of the intel-oneapi-compilers package to RPATH libraries provided by this package * extend_config_flags: this instructs the compiler executables provided by this package to RPATH those same libraries Refactoring includes: * intel-oneapi-compilers: in addition to the functional changes, a large portion of this diff is reorganizing the creation of resources/archives downloaded for the install * The base oneAPI package renamed component_path, so several packages changed as a result: * intel-oneapi-dpl * intel-oneapi-dnn * extrae * intel-oneapi-mpi: * Perform file filtering in one pass rather than two
2022-06-27`spack external find`: handle manifest with bad permissions (#31201)Peter Scheibel4-0/+98
Allow `spack external find` (with no extra args) to proceed if the manifest file exists but without sufficient permissions; in that case, print a warning. Also add a test for that behavior. TODOs: - [x] continue past any exception raised during manifest parsing as part of `spack external find`, except for CTRL-C (and other errors that indicate immediate program termination) - [x] Semi-unrelated but came up when discussing this with the user who reported this issue to me: the manifest parser now accepts older schemas See: https://github.com/spack/spack/issues/31191
2022-06-27Rename os_facts.lp to os_compatibility.lp (#31206)Massimiliano Culpo2-1/+1
Follow-up from #31170
2022-06-24Fix typo in documentation note about concretizer:unify (#31246)Cody Balos1-3/+3
2022-06-23ASP-based solver: rescale target weights so that 0 is always the best score ↵Massimiliano Culpo2-49/+15
(#31226) fixes #30997 Instead of giving a penalty of 30 to all nodes when preferences are not package specific, give a penalty of 100 to all targets of a node where we have package specific preferences, if the target is not explicitly preferred.
2022-06-22relocation: x-pie-executable needs relocation (#31248)eugeneswalker1-1/+2
2022-06-22spack create: fix for no URL (#31239)Adam J. Stewart2-1/+7
2022-06-22Remove update functions used to ease the transition in v0.16 (#31216)Massimiliano Culpo4-301/+12
2022-06-21Canonicalize positional argument to spack bootstrap mirror (#31180)Massimiliano Culpo1-1/+3
fixes #31139
2022-06-20Stricter compatibility rules for OS and compiler when reusing specs (#31170)Massimiliano Culpo4-3/+57
* Stricter compatibility rules for OS and compiler when reusing specs * Add unit test
2022-06-20OpenSUSE Tumbleweed: use GLIBC version as distro version (#19895)Christian Goll1-0/+12
Tumbleweed is a rolling release that would have used a date as a version instead.
2022-06-20Fix request for bzip2, since bzip was pulled due to patent issues (#31198)Sam Broderick1-2/+2
2022-06-17Bugfix external find --all for libraries (#31186)Brian Van Essen2-2/+2
* Fixed a bug in the 'external find --all' command where the call failed to find packages by both executable and library. The bug was that the call `path.all_packages()` incorrectly turned the variable `packages_to_check` into a generator rather than keeping it a list. Thus the second call to `detection.by_library` had no work to do. * Fixed the help message for the find external and compiler commands as well as others that used the `scopes_metavar` field to define where the results should be stored in configuration space. Specifically, the fact that configuration could be added to the environment was not mentioned in the help message.
2022-06-17docs: quote string to show valid YAML (#31178)Massimiliano Culpo1-1/+1
fixes #31167
2022-06-17Spec: Add a new virtual-customizable `home` attribute (#30917)Chuck Atkins4-9/+331
* Spec: Add a new virtual-customizable home attribute * java: Use the new builtin home attribute * python: Use the new builtin home attribute
2022-06-17Update Intel package descriptions (#31150)Robert Cohn2-4/+7
2022-06-16ASP-based solver: fix rules on version weights selection (#31153)Massimiliano Culpo3-4/+61
* ASP: sort and deduplicate version weights from installed specs * Pick version weights according to provenance * Add unit test
2022-06-16Manifest parsing: avoid irrelevant files (#31144)Peter Scheibel2-1/+6
* Manifest directory may not contain manifest files: exclude non-manifest files * Manifest files use different name for rocmcc: add translation for it
2022-06-16concretize.lp: impose a lower bound on the number of version facts if a ↵Massimiliano Culpo2-0/+26
solution exists (#31142) * concretize.lp: impose a lower bound on the number of version facts if a valid version exists fixes #30864 * Add a unit test
2022-06-15Allow bootstrapping to work when partial or incompatible modules exist in ↵Tom Scogland1-23/+32
the module path (#31035)
2022-06-14Make the IntelPackage fail successfully (#30773)G-Ragghianti1-0/+8
Co-authored-by: Robert Cohn <rscohn2@gmail.com>
2022-06-13Fix spack style arbitrary git rev as base (#31019)Jordan Galby2-5/+25
Allow `spack style -b @` or `spack style -b origin/develop` to work as expected. Regression since spack 0.17 #25085
2022-06-11fix doubly shell quoting args to `spack spec` (#29282)Danny McClanahan5-19/+145
* add test to verify fix works * fix spec cflags/variants parsing test (breaking change) * fix `spack spec` arg quoting issue * add error report for deprecated cflags coalescing * use .group(n) vs subscript regex group extraction for 3.5 compat * add random test for untested functionality to pass codecov * fix new test failure since rebase
2022-06-10bugfix: preserve dict order for `Spec.dag_hash()` in Python 2 (#31092)Todd Gamblin2-3/+80
Fix a bug introduced in #21720. `spack_json.dump()` calls `_strify()` on dictionaries to convert `unicode` to `str`, but it constructs `dict` objects instead of `collections.OrderedDict` objects, so in Python 2 (or earlier versions of 3) it can scramble dictionary order. This can cause hashes to differ between Python 2 and Python 3, or between Python 3.7 and earlier Python 3's. - [x] use `OrderedDict` in `_strify` - [x] add a regression test
2022-06-10clingo: fix string formatting in error messages (#31084)Sergey Kosukhin1-2/+2
2022-06-09Allow more fine-grained control over what submodules are updated (#27293)Tim Fuller5-6/+78
The "submodules" argument of the "version" directive can now accept a callable that returns a list of submodules, in addition to the usual Boolean values
2022-06-08bootstrap: account for disabled sources (#31042)Massimiliano Culpo2-4/+22
* bootstrap: account for disabled sources Fix a bug introduced in #30192, which effectively skips any prescription on disabled bootstrapping sources. * Add unit test to avoid regression
2022-06-07Staging: determine extensions from nonstandard URLs (#31027)Peter Scheibel2-5/+2
Fixes #31021 With #25185, we no longer default to using tar when we can't determine the extension type, opting to fail instead. This broke fetching for the pcre package, where we couldn't determine the extension. To determine the extension, we were attempting to extract it from the destination filename; however, this file name may omit details of the origin URL that are required to determine the extension, so instead we examine the URL directly. This also updates the decompressor_for method not to set ext=None by default: it must now always be set by the caller.
2022-06-07docs: update the list of Docker images with Spack preinstalled (#31003)Massimiliano Culpo3-7/+17
Also, update the image in the docs and use ghcr.io
2022-06-07Fix empty install prefix post-install sanity check (#30983)Jordan Galby2-7/+17
2022-06-07archspec: bump to v0.1.4 (#30856)Massimiliano Culpo2-10/+49
Fixes compiler flags for oneapi and dpcpp
2022-06-06Update decompression support on Windows (#25185)John W. Parent19-61/+397
Most package installations include compressed source files. This adds support for common archive types on Windows: * Add support for using system 7zip functionality to decompress .Z files when available (and on Windows, use 7zip for .xz archives) * Default to using built-in Python support for tar/bz2 decompression (note that Python tar documentation mentions preservation of file permissions) * Add tests for decompression support * Extract logic for handling exploding archives (i.e. compressed archives that expand to more than one base file) into an exploding_archive_catch context manager in the filesystem module
2022-06-06Package: Don't warn for missing source on bundle packages without code (#30913)Chuck Atkins2-1/+19
2022-06-04Sanitize filepath from URL (#30625)John W. Parent3-75/+123
Spack's staging logic constructs a file path based on a URL. The URL may contain characters which are not allowed in valid file paths on the system (e.g. Windows prohibits ':' and '?' among others). This commit adds a function to remove such offending characters (but otherwise preserves the URL string when constructing a file path).
2022-06-02Use stable URLs for patch-diff GitHub patches (#30953)Adam J. Stewart1-1/+2
2022-05-31Fix module support for oneapi compilers (#28901)Robert Cohn1-0/+8
Updates to improve Spack-generated modules for Intel oneAPI compilers: * intel-oneapi-compilers set CC etc. * Add a new package intel-oneapi-compilers-classic which can be used to generate a module which sets CC etc. to older compilers (e.g. icc) * lmod module logic now updated to treat the intel-oneapi-compilers* packages as compilers
2022-05-30CUDA: make cuda_arch sticky (#30910)Adam J. Stewart1-0/+1
2022-05-280.18.0.dev0 -> 0.19.0.dev0 (#30907)Todd Gamblin1-1/+1
2022-05-28refactor: packages import `spack.package` explicitly (#30404)Tom Scogland80-3362/+3420
Explicitly import package utilities in all packages, and corresponding fallout. This includes: * rename `spack.package` to `spack.package_base` * rename `spack.pkgkit` to `spack.package` * update all packages in builtin, builtin_mock and tutorials to include `from spack.package import *` * update spack style * ensure packages include the import * automatically add the new import and remove any/all imports of `spack` and `spack.pkgkit` from packages when using `--fix` * add support for type-checking packages with mypy when SPACK_MYPY_CHECK_PACKAGES is set in the environment * fix all type checking errors in packages in spack upstream * update spack create to include the new imports * update spack repo to inject the new import, injection persists to allow for a deprecation period Original message below: As requested @adamjstewart, update all packages to use pkgkit. I ended up using isort to do this, so repro is easy: ```console $ isort -a 'from spack.pkgkit import *' --rm 'spack' ./var/spack/repos/builtin/packages/*/package.py $ spack style --fix ``` There were several line spacing fixups caused either by space manipulation in isort or by packages that haven't been touched since we added requirements, but there are no functional changes in here. * [x] add config to isort to make sure this is maintained going forward
2022-05-27target optimization: re-norm optimization scale so that 0 is best. (#29926)Greg Becker3-16/+34
referred targets are currently the only minimization criteria for Spack for which we allow negative values. That means Spack may be incentivized to add nodes to the DAG if they match the preferred target. This PR re-norms the minimization criteria so that preferred targets are weighted from 0, and default target weights are offset by the number of preferred targets per-package to calculate node_target_weight. Also fixes a bug in the test for preferred targets that was making the test easier to pass than it should be.
2022-05-28update tutorial command for v0.18.0 and new gpg key (#30904)Greg Becker1-1/+1
2022-05-26Revert "strip -Werror: all specific or none (#30284)" (#30878)Scott Wittenburg5-127/+3
This reverts commit 330832c22cfa59554f6681a570bdec24ca46e79b.