Merge feature/update_to_spack_v1 into spack-stack-dev#572
Merged
climbfuji merged 1049 commits intospack-stack-devfrom Dec 4, 2025
Merged
Merge feature/update_to_spack_v1 into spack-stack-dev#572climbfuji merged 1049 commits intospack-stack-devfrom
climbfuji merged 1049 commits intospack-stack-devfrom
Conversation
* py-pycocotools: numpy 2.3 not yet supported * Update homepage * py-pycocotools: add v2.0.9
Adds support for Spack package repositories from external git repos.
```yaml
repos:
my_repo:
git: https://example.com/example/example.git
destination: ~/example # optional
paths: # optional
- subdir/spack_repo/example/x
- subdir/spack_repo/example/y
```
If `destination` is not configured, Spack clones the git repo to `~/.spack/git_repos/{hash(repository)}`.
Package repositories can put a file `spack-repo-index.yaml` in their root with relative paths to roots of package repositories (i.e. directories that contain `repo.yaml`):
```yaml
repo_index:
paths:
- subdir/spack_repo/example/x
- subdir/spack_repo/example/y
```
so users don't have to put that under `paths` in config. The `spack-repo-index.yaml` is simply a list of paths under `repo_index`. The idea is to avoid duplicating data such as "namespace" already specified in `<git repo>/<repo path>/repo.yaml`, to avoid that there are two sources of truth that go out of sync.
Further, `paths` in user config takes precedence, which allows users to enable specific package repositories in case the git monorepo provides multiple.
Remote package repositories are cloned/initialized in:
* `spack.main`
* `spack repo add`
This is process safe due to the lock in `$SPACK_USER_CACHE_PATH/package-repository.lock`; only one process can clone at a time.
The `spack repo add` command has a few new flags and a new positional arg:
```
spack repo add [-h] [--name NAME] [--path PATH] [--scope ...] path_or_repo [destination]
```
The signature is similar to the familiar `git clone <repository> <directory>`.
The `path_or_repo` argument is detected as a remote git repo if it contains a `:` not preceded by a `/`, which is what git does as well. If in the future we would support package repositories other than local file paths and remote git repos, we can resolve ambiguities with a new flag `[--git | --path | --<other-type>]`, but this is currently unnecessary.
The positional `destination` argument allows users to pick their own clone path, and only applies in case of git repos.
The flag `--path` corresponds to `repos:<name>:paths` and can be repeated to select specific package repositories in a git monorepo, and is also required if the git repo does not provide a `spack-repo-index.yaml` file in its root. Spack will never scan for `repo.yaml` files recursively, it only relies on `spack-repo-index.yaml` and `--repo-path` for package repository roots inside a git repo.
The flag `--name` applies to the *config* name/key in `repos.yaml` under `repos:<name>`. This flag is optional in the common case of adding just one package repository: it is set to the package repository's namespace. In case of monorepos with multiple package repositories, the `--name` flag is required.
spack#50656) intel-oneapi-compilers added to optim_opts Transfer cflags, cxxflags from Spack to COPTS, CXXOPTS. --------- Co-authored-by: teabagk7 <[email protected]>
Using the -d flag leads to unreadable, and possibly truncated, output. See: - https://gitlab.spack.io/spack/spack/-/jobs/16901136 Signed-off-by: Massimiliano Culpo <[email protected]>
Move the functions responsible for retrieving buildcache manifests into the url_buildcache.py module, and generalize the API so that manifests for any type of buildcache component (specs, indices, keys, etc) can be fetched the same way.
spack.repo.PATH is constructed either in: 1. spack.main.setup_main_options (entrypoint of Spack) 2. or spack.repo.PATH.__getattr__ (singleton, in sub-processes that don't run main) The latter was using an old named constructor of RepoPath, which had regressed.
* Bump Trilinos/Kokkos dependency Signed-off-by: Samuel E. Browne <[email protected]> * Pin Kokkos/KokkosKernels more specifically for releases Signed-off-by: Samuel E. Browne <[email protected]> --------- Signed-off-by: Samuel E. Browne <[email protected]>
* set release channel for non nightly builds * style * use .satisfies Co-authored-by: Alec Scott <[email protected]> --------- Co-authored-by: Alec Scott <[email protected]>
* RepoSplit/tests: sync mock packages for build_systems.py * Switch to use of underscore in package directories
* Define components for GitVersion provenance Adding binary provenance requires we track the commit. Typically this has been an optional form for the encompassing git ref. Moving towards always defining a commit means we need to have space to store a user requested ref that will then be paired with a commit sha. * Convert internal members to new names * Style fixes * Update lib/spack/spack/spec.py * Update lib/spack/spack/spec.py * commit variant concretizes and check is commit * Add tests * Add version attribute restrictions for commit variant * dev_path and commit mutually exclusive * Have fetcher respect the commit variant Ensure that if a commit variant is on the spec fetch operations use the commit * Add package class hook for SNL work * Fix commit check * Add a more specific function for shas * Handler for overlapping attributes * Fix tests * Add additional reserved variants * Add unit-tests to verify requirements * Write tests and stub out core changes * Attempt to add solver constraint * Fix lp constraint * First new unit test passes * Review fixes * WIP: refactor test * Add lookup check tests * Add package tests * New test on version satisfaction * Rework test * Fix problem * Revert random style changes * Style * Rework concretizer rules still not passing * WIP: More rules * Ideas for facts that will close the loop * Style and fixes * Disable failing tests * Update core.py * Update packages.py * Fix tests and test reuse * Remove Philter * Add docs * Relocate test package * Okay dir * Move test package * Use underscores * Fix package * [@spackbot] updating style on behalf of psakievich * Update path * Respond to review comments * Fix test --------- Co-authored-by: psakievich <[email protected]>
* fix qt bounds hdf5 patch * bound qt at paraview < 6
Speed up the concretizer, guided by the profiling results from the development version of clingo v6: - Use a positive fact `concrete(PackageNode)`, instead of `not build(PackageNode)` - Simplify construction of `condition_set` given the current set of rules Signed-off-by: Massimiliano Culpo <[email protected]>
Tracks unsupported targets explicitly to avoid clingo having to figure out a negative statement. This should improve solver performance. Signed-off-by: Massimiliano Culpo <[email protected]>
Signed-off-by: Harmen Stoppels <[email protected]>
… feature/update_to_spack_v1p0p0
In this way trying to solve more input specs is at higher priority than trying to satisfy strong preferences or requirements. Fixes a regression introduced by spack#44373 Signed-off-by: Massimiliano Culpo <[email protected]>
…ts.yaml to use new script REMOVE_SPACK_STACK_MODS_FOR_CI.sh to revert spack-stack extensions
…re/update_to_spack_v1
…/spack into feature/update_to_spack_v1p0p0
[feature/update_to_spack_v1] Update to spack version 1.0.1
…ases (spack#50477) * Append to install-time test log for multiple test phases Signed-off-by: Alex Richert <[email protected]> * log.py: fix tmp dir arg Signed-off-by: Alex Richert <[email protected]> * log.py: fix typo (:) Signed-off-by: Alex Richert <[email protected]> * use existing tests/pkg Signed-off-by: Alex Richert <[email protected]> * remove new test file/pkg Signed-off-by: Alex Richert <[email protected]> * test/cmd/install.py: skip log append check for win32 Signed-off-by: Alex Richert <[email protected]> * test/cmd/install.py: skip install 'tests' for win32 Signed-off-by: Alex Richert <[email protected]> * test/cmd/install.py: fix install test-skip logic (win32) Signed-off-by: Alex Richert <[email protected]> * test/cmd/install.py: skip test_package_output for windows Signed-off-by: Alex Richert <[email protected]> * Revert "test/cmd/install.py: skip test_package_output for windows" This reverts commit f14beed. Signed-off-by: Alex Richert <[email protected]> --------- Signed-off-by: Alex Richert <[email protected]>
install_test.py: append to install-time test log for multiple test phases (spack#50477)
11 tasks
AlexanderRichert-NOAA
approved these changes
Dec 4, 2025
rickgrubin-noaa
approved these changes
Dec 4, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR merges the long-lived feature branch
feature/update_to_spack_v1intospack-stack-dev.Testing
See JCSDA/spack-stack#1830
Issues
See JCSDA/spack-stack#1830