summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2024-09-02db: type hints (#46168)Harmen Stoppels2-69/+73
2024-09-02projections: simplify expression (#46167)Harmen Stoppels1-6/+1
2024-09-02remove dead code: fs.is_writable_dir was used on file (#46166)Harmen Stoppels1-24/+2
2024-09-02package_base: sort deprecated versions later in `preferred_version` (#46025)Wouter Deconinck3-8/+7
2024-09-02cuda: add v12.6.1 (#46143)pauleonix1-1/+2
Update build system conflict between CUDA 12.6 and Clang 18
2024-09-02docs: update conditional definition arch (#46139)Georgia Stuart1-1/+1
Signed-off-by: Georgia Stuart <gstuart@umass.edu> Co-authored-by: Jordan Galby <67924449+Jordan474@users.noreply.github.com>
2024-09-01Remove redundant inspect.getmodule(self) idiom in packages (#46073)Harmen Stoppels22-97/+62
2024-08-30Remove `DetectedPackage` class (#46071)Massimiliano Culpo9-95/+55
This PR simplifies the code doing external spec detection by removing the `DetectedPackage` class. Now, functions accepting or returning lists of `DetectedPackage`, will accept or return list of specs. Performance doesn't seem to change if we use `Spec.__reduce__` instead of `DetectionPackage.__reduce__`.
2024-08-29CMakePackage: Set policy CMP0042 NEW on macos (#46114)Chris Marsh1-0/+5
so linking to shared libraries works well at runtime on darwin for all packages with cmake_minimum_required < 3.
2024-08-29windows_establish_runtime_linkage: post install hook (#46103)Harmen Stoppels2-2/+0
2024-08-29Executable: make the timeout message readable (#46098)Tamara Dahlgren1-3/+3
2024-08-29Remove "get_compiler_duplicates" (#46077)Massimiliano Culpo2-37/+0
This function is used only in tests.
2024-08-28Don't check checksums on spack-develop packages (#46076)Jordan Galby1-0/+1
Fix regression introduced in spack 0.22.1 where Spack would ask about checksums on spack-develop packages.
2024-08-28For "when:" and install_environment.json: Support fully qualified hostname ↵Jordan Galby2-2/+4
(#45522)
2024-08-28buildcache.py: elide string not spec (#46074)Harmen Stoppels2-7/+6
2024-08-28Drop now redundant use of inspect (#46057)Harmen Stoppels8-14/+9
inspect.isclass -> isinstance(..., type) inspect.getmro -> cls.__mro__
2024-08-28Spec.from_detection now accounts for external prefix (#46063)Massimiliano Culpo6-69/+38
Change the signature of Spec.from_detection to set the external prefix, and the external modules, if they are present. Delete "spack.package_prefs.spec_externals" since it is unused.
2024-08-28Remove llnl.util.lang.has_method, use built-in hasattr instead (#46072)Massimiliano Culpo1-14/+4
2024-08-27spack_yaml: delete custom deepcopy (#46048)Harmen Stoppels1-15/+0
2024-08-27Remove "prevent_cray_detection" context manager (#46060)Massimiliano Culpo3-18/+2
This context manager was used to prevent detecting a platform as "cray". Since now Cray machines are detected as linux, we can remove the context manager.
2024-08-27config.py: tell don't ask (#46040)Harmen Stoppels1-20/+13
2024-08-27Remove a few unused classes and globals (#46054)Massimiliano Culpo1-68/+0
2024-08-27Move `spack.compilers._to_dict` to `Compiler` (#46051)Massimiliano Culpo2-30/+35
2024-08-27abi.py: remove (#46047)Harmen Stoppels3-198/+0
2024-08-26jsonschema: remove optional deps (#46041)Harmen Stoppels2-173/+188
2024-08-26distro.py: avoid excessive stat calls (#46030)Harmen Stoppels2-11/+58
2024-08-26cuda: add v12.6 (#45558)pauleonix1-2/+2
2024-08-26`ci generate`: don't warn when no cdash config (#46004)Todd Gamblin1-1/+2
Right now if you run `spack ci generate` you get a warning about CDash credentials even if there's no CDash configuration specified. We should only warn if there was actually a CDash config. Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-08-26compilers: avoid redundant fs operations and cache (#46031)Harmen Stoppels2-13/+17
2024-08-24variant.py: extract spec bits into spec.py (#45941)Harmen Stoppels5-166/+156
2024-08-24PythonExtension: use different bin dir on Windows (#45427)John W. Parent1-1/+7
2024-08-24mirror: fetch by digest (#45809)Harmen Stoppels8-182/+173
Source mirrors store entries by digest and add a human readable alias of the form 'name-version'. If no digest is available, the alias is used as the primary storage location. Spack erroneously fetches by alias when the digest path does not exist. This is problematic if `version(..., sha256=...)` changes in package.py, and the mirror is populated with the old shasum. That would result in an error when a digest is available, but in case of git versions with a modified commit sha, the wrong sources would be fetched without error. With this PR, only the digest path is used, not the alias, in case a digest is available. This is also a small performance optimization, as the number of request is halved for mirrors that don't contain the sources. Further, for git sources the tag was used as a digest, but this is a moving target. Only commit sha is used now. Also whenever the alias already existed, Spack used to keep it in place when updating the mirror cache, which means that aliases would always point to outdated mirror entries whenever digests are modified. With this PR the alias is moved in place. Lastly, fix a recent regression where `Stage.disable_mirrors` disabled mirrors but not the local download cache, which was the intention.
2024-08-23Substitute `__import__` with `importlib.import_module` (#45965)Massimiliano Culpo8-49/+15
2024-08-23spack create: add depends_on(<lang>) statements (#45296)Harmen Stoppels4-106/+236
2024-08-23Add missing MultiMethodMeta metaclass in builders (#45879)Harmen Stoppels10-280/+277
* Add missing MultiMethodMeta metaclass in builders and remove the Python 2 fallback option in favor of hard errors to catch similar issues going forward. The fallback option can cause about 10K stat calls due to use of `realpath` in the inspect module, depending on how deep Spack itself is nested in the file system, which is ... undesirable. * code shuffling to avoid circular import * more reshuffling * move reserved variant names into variants module
2024-08-22Add a new audit to find missing package.py files (#45868)Massimiliano Culpo1-1/+28
* Add a new audit to find missing package.py files * Remove directory without package.py
2024-08-22Windows: port tests for mirror/blame (#45259)Nicole C.2-8/+6
2024-08-22Make spack compiler find use external find (#45784)Massimiliano Culpo16-1107/+336
so that there is no duplicate detection logic for compilers
2024-08-21Windows: Port icu4c; define cxx std flags for MSVC (#45547)John W. Parent1-0/+24
* Adds an MSBuild system + Builder to the icu4c package * Adds custom install method as MSBuild system does not vendor an install target * The cxxstd variant is not supported on Windows (there are no config options you use to tell the build system what cxx standard to build against), so the variant definition was updated to occur everywhere except Windows Also, this commit defines the c/cxx..._flag properties of the MSVC compiler (although they are not used by `icu4c` and not strictly necessary to bundle with this PR).
2024-08-20spack bootstrap status --dev: function call for new interface (#45822)Greg Becker1-1/+1
2024-08-20Increase min version for sparse_checkout (#45818)psakievich2-2/+4
* Increase min version for sparse_checkout * Update git_fetch.py * style
2024-08-20Unify url and oci buildcache push code paths (#45776)Harmen Stoppels10-142/+206
2024-08-19build_environment: explicitly disable ccache if disabled (#45275)Harmen Stoppels1-1/+4
2024-08-19Simplify URLFetchStrategy (#45741)Harmen Stoppels10-233/+93
2024-08-19Remove deprecated `--safe-only` in spack version cmd (#45765)Alec Scott2-19/+3
2024-08-17util/web.py: parse new GitLab JS dropdown links (#45764)Wouter Deconinck3-4/+31
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2024-08-16include_concrete: read from older env formats properly (#45766)Greg Becker3-39/+43
* include_concrete: read from older env formats properly * spack env rm: fix logic for checking env includes * regression test Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-08-16Windows: fix stage cleaning for long paths (#45786)James Smillie1-0/+6
Paths over 260 characters in length are not handled by `shutil.rmtree` unless they use the extended-length path syntax (using a prefix of "\\?\"). This fixes an issue where stage cleaning fails when paths in a stage exceed the normal 260-character limit. This indicates that other parts of the codebase should be examined/ refactored to handle long paths.
2024-08-16Revert "Change environment modifications to escape with double quotes ↵Harmen Stoppels2-45/+16
(#36789)" (#42780) This reverts commit 690394fabc29908bbc4188ec29fd187fbb3ba13b, as it causes arbitrary code execution.
2024-08-16oci: support --only=package (#45775)Harmen Stoppels3-36/+51
Previously `spack buildcache push --only=package` errored in the OCI case, but it's been requested that OCI can be used as pure storage w/o the need for runnable container images. This commit makes it so that 1. manifests refer only to runtime dependencies that were selected to be pushed 2. failure to upload a blob among the selected specs does not prevent a manifest/tag to be created for dependents: they just don't refer to the missing blob as a layer/dependency This fixes the following issues: 1. dependents of non-redistributable specs can now be pushed to oci build caches without error 2. failure to upload one tarball does not cause cascading failures for dependents whose tarballs do upload succesfully -- so it's better best-effort behavior 3. for some people uploading with deps caused a massive amount of fetches of their manifests (which certain registries count as a download of an image, even though their layers are not fetched) -- being able to specify --only=package reduces the number of fetches.