Commit Graph

7777 Commits

Author SHA1 Message Date
psakiev
b0541cb5d5 Remove Philter 2025-04-30 17:23:22 -06:00
psakievich
ca40480908
Merge branch 'develop' into psakiev/f/git-version-refactor 2025-04-30 17:22:23 -06:00
psakiev
72cf35aeab Fix tests and test reuse 2025-04-30 17:17:08 -06:00
Greg Becker
b42ef1e7b8
spack solve: respect unify:false config (#50243)
----------

Signed-off-by: Gregory Becker <becker33@llnl.gov>
2025-04-30 21:51:19 +00:00
Wouter Deconinck
b9b7450f60
Revert "XorgPackage, glx: conflicts windows and darwin (#50216)" (#50231)
This reverts commit 382847976f.
2025-04-29 14:09:40 +00:00
Harmen Stoppels
a6b0dfbd53
package_base.py: use sys.modules for module lookup (#50230) 2025-04-29 10:53:30 +00:00
Massimiliano Culpo
ecc3752ee9
fix %compiler satisfaction with specs v4 format (#50140)
This PR improves compatibility with specs installed before #45189, and with externals specifying a compiler, by using the annotated compiler to "satisfy" a spec query.

On top of that, the PR adds a new flag for:
```console
$ spack find --specfile-format -I %gcc
-- linux-ubuntu20.04-icelake / gcc@10.5.0 -----------------------
[+]  [v4] ca-certificates-mozilla@2023-05-30  [e]  [v4] cmake@3.31.6  [+]  [v4] gcc-runtime@10.5.0  [e]  [v4] glibc@2.31  [+]  [v4] gmake@4.4.1  [+]  [v4] hdf5@1.14.5  [+]  [v4] pkgconf@2.2.0  [+]  [v4] zlib-ng@2.2.1
==> 8 installed packages
```
which shows the specfile format of the specs being retrieved.
2025-04-29 10:09:49 +02:00
Wouter Deconinck
382847976f
XorgPackage, glx: conflicts windows and darwin (#50216)
* XorgPackage: conflicts windows and darwin

* xorg: import conflicts

* xorg: fix style

* glx: conflicts windows and darwin
2025-04-28 15:33:02 -05:00
Massimiliano Culpo
3df5a85237
input_analysis.py: fix conditional requirements (#50194)
Fixes a logic bug where a -> b was assumed to imply not a -> not b
in conditional requirements.

Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2025-04-25 09:44:05 +02:00
Peter Scheibel
a3c430e810
CompilerAdaptor: add support for opt_flags/debug_flags (#50126) 2025-04-24 07:08:54 +02:00
Alec Scott
41ff0500f9
Add ls alias to spack {compiler, external} (#50189) 2025-04-24 05:08:20 +00:00
Adam J. Stewart
3f063ace1d
Add type hints to all setup_*environment functions (#49985) 2025-04-23 15:41:22 +02:00
Ryan Krattiger
3fd6066e54
ci: copy logs from failed job stage dir (#49884) 2025-04-22 23:23:49 +02:00
Stephen Nicholas Swatman
6085586407
oneapi: Move temporary home directory to stage (#50160)
When trying to use Spack to build Intel TBB on the EOS network file
system we use at CERN, I am facing the following error:

```
Launching the installer...
Installation directory is not empty.
The product cannot be installed into nonempty directory
'/eos/home-s/sswatman/spack/opt/spack/linux-x86_64_v2/...
    intel-oneapi-tbb-2021.12.0-3jlx6hlr3z6di42f3qy35eizcse7u2tk'.
```

This error appears to happen because Spack tries to set `$HOME` to the
prefix of the package, into which the Intel installer is also trying to
install it's software. I've found that an easy fix is to set `$HOME` to
a directory in the build stage instead, as this can be guaranteed to
remain empty.
2025-04-22 15:47:30 +00:00
Harmen Stoppels
31c5c0b423
directives_meta.py: remove global decl (#50162)
silence flake8
2025-04-22 17:08:14 +02:00
Harmen Stoppels
60f6f8d836
python.py/r.py: fix type issues with classproperty/constant (#50059) 2025-04-22 09:53:34 +02:00
Joe
d39382bec8
Env vars docs (#49346) 2025-04-21 18:59:01 -06:00
Wouter Deconinck
18eebce04d
external: list licensing in init summary (#46042) 2025-04-18 21:28:23 -06:00
Peter Scheibel
e78d9d93dd
c23 standard typo (#50101) 2025-04-17 10:20:40 -04:00
Massimiliano Culpo
be492e1ed7
solver: encode % as "build requirement", not as "dependency" (take 2) (#50104)
reland 8fc1ccc686

Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2025-04-17 15:25:02 +02:00
Alec Scott
986102ab7a
Revert "solver: encode % as "build requirement", not as "dependency" (#50011)" (#50092)
This reverts commit 8fc1ccc686.

conflicts("%gcc@:11", when="@2.17:")
conflicts("%gcc", when="+ompt")

regressed.
2025-04-17 08:45:29 +02:00
Massimiliano Culpo
04f6881b76
Environment: remove leftover code to attach test deps (#50097)
This should not be needed anymore after #49405

Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2025-04-17 07:55:32 +02:00
Harmen Stoppels
883bbf3826
variants: fix narrowing multi -> single -> bool (#49880)
* `x=*` constrained by `+x` now produces a boolean valued variant instead of a multi-valued variant.
   
* Values are now always stored as a tuple internally, whether bool, single or multi-valued. 

* Value assignment has a stricter api to prevent ambiguity / type issues related to 
   `variant.value = "x"` / `variant.value = ["x"]` / `variant.value = ("x",)`. It's now `variant.set("x", ...)` for 
   single and multi-valued variants.

* The `_original_value` prop is dropped, since it was unused.

* The wildcard `*` is no longer a possible variant value in any type of variant, since the *parser*
   deals with it and creates a variant with no values.
2025-04-16 09:44:38 +02:00
Harmen Stoppels
1dc9bac745
detection/common.py: catch is_file() inside loop (#50042) 2025-04-16 09:40:14 +02:00
Harmen Stoppels
dbd3895cbf
version_types.py: Version -> Union[StandardVersion, GitVersion] (#50061) 2025-04-16 09:15:13 +02:00
John W. Parent
4a7508c9df
Update make/nmake invocations (mostly Windows) (#49022)
The second change technically affects non-Windows, but the
behavior should be exactly the same:

* Packages no longer have access to `.msbuild` and `.nmake`
  automatically; they now get them via a dependency on `msvc`.
* Update two CMake-based packages that call `make test` to
  instead call `ctest` (`netcdf-cxx4` and `pegtl`).
  CMake-based packages should do this because on Windows
  `make test` will not generally work, but `ctest` does.
* Fix `openssl` "make test" on Windows (WRT prior point: not
  a CMake-based package).
2025-04-15 14:44:25 -06:00
Harmen Stoppels
ebef5f75fb
util/environment.py: allow PurePath for path modifiers and improve file/lineno of warnings (#50038) 2025-04-14 14:52:12 +02:00
Massimiliano Culpo
25beeef865
Environment: separate parsing concerns from SpecList (#49973)
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2025-04-14 11:22:13 +02:00
dependabot[bot]
7794d51adb
build(deps): bump urllib3 from 2.3.0 to 2.4.0 in /lib/spack/docs (#50014)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.3.0 to 2.4.0.
- [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.3.0...2.4.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.4.0
  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>
2025-04-14 10:07:24 +02:00
Harmen Stoppels
cc3d40d9d3
fetch_strategy.py: show progress (#50003)
Show progress meter for fetches when `stdout` is a `tty`.

* fetch_strategy.py: show progress
* "Fetched: x MB at y MB/s"
* add tests, show % if content-length
2025-04-11 12:39:42 -07:00
Massimiliano Culpo
8fc1ccc686
solver: encode % as "build requirement", not as "dependency" (#50011)
This PR fixes the issues with `%` and reused specs, due to https://github.com/spack/spack/issues/49847#issuecomment-2774640234 

It does so by adding another layer of indirection, so that whenever a spec
`foo %bar` is encountered, the `%bar` part is encoded as an
`attr("build_requirement", ...)`.

Then:

1. If `foo` is a node to be built, then the build requirement implies a dependency
2. Otherwise it implies looking e.g. reused specs metadata, and ensure it matches

---------

Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2025-04-11 11:09:21 -07:00
Harmen Stoppels
fd1b982073
solver: dump output specs to file if not satisfied (#50019)
When the solver produces specs that do not satisfy the input
constraints, dump both input and output specs as json in an temporary
dir and ask the user to upload these files in a bug report.
2025-04-11 19:01:27 +02:00
Harmen Stoppels
fd31f7e014
spec.py: remove exceptions of old concretizer (#50018) 2025-04-11 15:52:11 +02:00
Scott Wittenburg
23d7305efd
buildcache: Remove deprecated commands and arguments (#49999) 2025-04-10 09:42:01 +02:00
psakievich
252ceeedbe
spack develop: avoid deprecated package_class (#49997) 2025-04-10 09:40:16 +02:00
Harmen Stoppels
84dcc654ec
util/environment.py: require string values in env mods (#49987) 2025-04-09 19:29:47 +02:00
psakievich
7b68d31143
Update packages.py 2025-04-08 21:07:37 -06:00
psakievich
4e29975eed
Update core.py 2025-04-08 21:07:31 -06:00
psakiev
434541b408 Disable failing tests 2025-04-08 20:19:06 -06:00
psakiev
24c32b6183 Style and fixes 2025-04-08 17:24:33 -06:00
Philip Sakievich
f85329e792 Ideas for facts that will close the loop 2025-04-08 16:07:23 -06:00
Philip Sakievich
9dc57d2864 WIP: More rules 2025-04-08 16:05:58 -06:00
Philip Sakievich
b5456c0fa7 Rework concretizer rules still not passing 2025-04-08 16:04:59 -06:00
Philip Sakievich
f61001d94d Style 2025-04-08 16:04:43 -06:00
Philip Sakievich
ebd5b2203c Revert random style changes 2025-04-08 16:04:43 -06:00
Philip Sakievich
820cf473cc Fix problem 2025-04-08 16:04:43 -06:00
Philip Sakievich
1d441c1a7a Rework test 2025-04-08 16:04:13 -06:00
Philip Sakievich
1d6662abfb New test on version satisfaction 2025-04-08 16:00:57 -06:00
psakiev
dc1b0662d9 Add package tests 2025-04-08 15:56:10 -06:00
psakiev
a5f0ba5692 Add lookup check tests 2025-04-08 15:56:10 -06:00