Accepting request 1141708 from home:mslacken:sp

- update to 0.21.1
  * Add support for reading buildcaches created by Spack v0.22 
  * Bugfixes
    + spack graph: fix coloring with environments
    + spack info: sort variants in --variants-by-name
    + Spec.format: error on old style format strings
    + ASP-based solver:
        fix infinite recursion when computing concretization errors
        don't error for type mismatch on preferences
        don't emit spurious debug output
    + Improve the error message for deprecated preferences
    + Fix MSVC preview version breaking clingo build on Windows
    + Fix multi-word aliases
    + Add a warning for unconfigured compiler
    + environment: fix an issue with deconcretization/reconcretization of specs
    + buildcache: don't error if a patch is missing, when installing from binaries
- updated to 0.21.0
  * following new features:
    + Better error messages with condition chaining:
      In v0.18, we added better error messages that could tell you what problem
      happened, but they couldn't tell you why it happened. 0.21 adds condition
      chaining to the solver, and Spack can now trace back through the conditions
      that led to an error and build a tree of causes potential causes and where
      they came from.
    + OCI build caches:
      You can now use an arbitrary OCI registry as a build cache:
      ```
      $ spack mirror add my_registry oci://user/image # Dockerhub
      $ spack mirror add my_registry oci://ghcr.io/haampie/spack-test # GHCR
      $ spack mirror set --push --oci-username ... --oci-password ... my_registry  # set login creds

OBS-URL: https://build.opensuse.org/request/show/1141708
OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=90
This commit is contained in:
Egbert Eich 2024-01-31 09:55:54 +00:00 committed by Git OBS Bridge
parent 1a9b753af0
commit 20a4f61c1e
4 changed files with 145 additions and 6 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c7deaa2f51502ff6f84f79845d8bd23202b0524f7669d3f779bd2049bc43e177
size 9691976

3
spack-0.21.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a66bc8b59d436d5c0bd7b052c36d2177b228665ece6c9a2c339c2acb3f9103e
size 10612870

View File

@ -1,3 +1,142 @@
-------------------------------------------------------------------
Thu Jan 25 14:07:19 UTC 2024 - Christian Goll <cgoll@suse.com>
- update to 0.21.1
* Add support for reading buildcaches created by Spack v0.22
* Bugfixes
+ spack graph: fix coloring with environments
+ spack info: sort variants in --variants-by-name
+ Spec.format: error on old style format strings
+ ASP-based solver:
fix infinite recursion when computing concretization errors
don't error for type mismatch on preferences
don't emit spurious debug output
+ Improve the error message for deprecated preferences
+ Fix MSVC preview version breaking clingo build on Windows
+ Fix multi-word aliases
+ Add a warning for unconfigured compiler
+ environment: fix an issue with deconcretization/reconcretization of specs
+ buildcache: don't error if a patch is missing, when installing from binaries
- updated to 0.21.0
* following new features:
+ Better error messages with condition chaining:
In v0.18, we added better error messages that could tell you what problem
happened, but they couldn't tell you why it happened. 0.21 adds condition
chaining to the solver, and Spack can now trace back through the conditions
that led to an error and build a tree of causes potential causes and where
they came from.
+ OCI build caches:
You can now use an arbitrary OCI registry as a build cache:
```
$ spack mirror add my_registry oci://user/image # Dockerhub
$ spack mirror add my_registry oci://ghcr.io/haampie/spack-test # GHCR
$ spack mirror set --push --oci-username ... --oci-password ... my_registry # set login creds
$ spack buildcache push my_registry [specs...]
```
And you can optionally add a base image to get runnable images:
```
$ spack buildcache push --base-image leap:15.5 my_registry python
Pushed ... as [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack
$ docker run --rm -it [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack
```
This creates a container image from the Spack installations on the host
system, without the need to run spack install from a Dockerfile or sif
file. It also addresses the inconvenience of losing binaries of
dependencies when RUN spack install fails inside docker build.
Further, the container image layers and build cache tarballs are the same
files. This means that spack install and docker pull use the exact same
underlying binaries. If you previously used spack install inside of docker
build, this feature helps you save storage by a factor two.
+ Multiple versions of build dependencies:
Increasingly, complex package builds require multiple versions of some
build dependencies. For example, Python packages frequently require very
specific versions of setuptools, cython, and sometimes different physics
packages require different versions of Python to build. The concretizer
enforced that every solve was unified, i.e., that there only be one version
of every package. The concretizer now supports "duplicate" nodes for build
dependencies, but enforces unification through transitive link and run
dependencies. This will allow it to better resolve complex dependency
graphs in ecosystems like Python, and it also gets us very close to
modeling compilers as proper dependencies.
+ Cherry-picking virtual dependencies:
You can now select only a subset of virtual dependencies from a spec that
may provide more. For example, if you want mpich to be your mpi provider,
you can be explicit by writing:
hdf5 ^[virtuals=mpi] mpich
Or, if you want to use, e.g., intel-parallel-studio for blas along with an external
lapack like openblas, you could write:
strumpack ^[virtuals=mpi] intel-parallel-studio+mkl ^[virtuals=lapack] openblas
+ License directive:
Spack packages can now have license metadata, with the new license() directive:
license("Apache-2.0")
Licenses use SPDX identifiers, and you can use SPDX expressions to combine them:
license("Apache-2.0 OR MIT")
Like other directives in Spack, it's conditional, so you can handle complex cases like Spack itself:
license("LGPL-2.1", when="@:0.11")
license("Apache-2.0 OR MIT", when="@0.12:")
+ spack deconcretize command:
We are getting close to having a spack update command for environments, but
we're not quite there yet. This is the next best thing. spack deconcretize
gives you control over what you want to update in an already concrete
environment. If you have an environment built with, say, meson, and you
want to update your meson version, you can run:
$spack deconcretize meson
and have everything that depends on meson rebuilt the next time you run
spack concretize. In a future Spack version, we'll handle all of this in a
single command, but for now you can use this to drop bits of your lockfile
and resolve your dependencies again.
+ UI Improvements:
The venerable spack info command was looking shabby compared to the rest of
Spack's UI, so we reworked it to have a bit more flair. spack info now
makes much better use of terminal space and shows variants, their values,
and their descriptions much more clearly. Conditional variants are grouped
separately so you can more easily understand how packages are structured.
spack checksum now allows you to filter versions from your editor, or by
version range. It also notifies you about potential download URL changes.
See
+ Environments can include definitions:
Spack did not previously support using include: with The definitions
section of an environment, but now it does. You can use this to curate
lists of specs and more easily reuse them across environments.
+ Aliases:
You can now add aliases to Spack commands in config.yaml, e.g. this might
enshrine your favorite args to spack find as spack f:
```
config:
aliases:
f: find -lv
```
+ Improved autoloading of modules:
In this release, you can start using hide_implicits: true instead, which
exposes only explicitly installed packages to the user, while still
autoloading dependencies. On top of that, you can safely use hash_length:
0, as this config now only applies to the modules exposed to the user --
you don't have to worry about file name clashes for hidden dependencies.
Note: for tcl this feature requires Modules 4.7 or higher.
* Other new commands and directives:
+ spack env activate without arguments now loads a default environment that
you do not have to create
+ spack find -H / --hashes: a new shortcut for piping spack find output to
other commands
+ Add spack checksum --verify, fix --add
+ New default_args context manager factors out common args for directives
+ spack compiler find --[no]-mixed-toolchain lets you easily mix clang and
gfortran on Linux
* Performance improvements:
+ spack external find execution is now much faster
+ spack location -i now much faster on success
+ Drop redundant rpaths post install
+ ASP-based solver: avoid cycles in clingo using hidden directive
+ Fix multiple quadratic complexity issues in environments
* Other new features of note:
+ archspec: update to v0.2.2, support for Sapphire Rapids, Power10, Neoverse V2
+ Propagate variants across nodes that don't have that variant
+ Implement fish completion
+ Can now distinguish between source/binary mirror; don't ping
mirror.spack.io as much
+ Improve status reporting on install (add [n/total] display...
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Nov 6 08:04:55 UTC 2023 - Bernhard Wiedemann <bwiedemann@suse.com> Mon Nov 6 08:04:55 UTC 2023 - Bernhard Wiedemann <bwiedemann@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package spack # spec file for package spack
# #
# Copyright (c) 2023 SUSE LLC # Copyright (c) 2024 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -41,12 +41,12 @@ ExclusiveArch: do_not_build
# packages recognized by spack, but not recommended # packages recognized by spack, but not recommended
%define spack_trigger_packages ghostscript go fish fzf hwloc-devel hugo java-11-openjdk-devel java-14-openjdk-devel java-15-openjdk-devel java-16-openjdk-devel java-1_8_0-openjdk-devel ruby sqlite3 openmpi1-devel openmpi2-devel openmpi3-devel openmpi4-devel openmpi1-gnu-hpc-devel openmpi2-gnu-hpc-devel openmpi3-gnu-hpc-devel openmpi4-gnu-hpc-devel mpich-gnu-hpc-devel mvapich2-devel mpich-devel %define spack_trigger_packages ghostscript go fish fzf hwloc-devel hugo java-11-openjdk-devel java-14-openjdk-devel java-15-openjdk-devel java-16-openjdk-devel java-1_8_0-openjdk-devel ruby sqlite3 openmpi1-devel openmpi2-devel openmpi3-devel openmpi4-devel openmpi1-gnu-hpc-devel openmpi2-gnu-hpc-devel openmpi3-gnu-hpc-devel openmpi4-gnu-hpc-devel mpich-gnu-hpc-devel mvapich2-devel mpich-devel
%define spack_trigger_compilers gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc7-c++ gcc8-c++ gcc9-c++ gcc10-c++ gcc11-c++ gcc12-c++ gcc7-fortran gcc8-fortran gcc9-fortran gcc10-fortran gcc11-fortran gcc12-fortran %define spack_trigger_compilers gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc13 gcc7-c++ gcc8-c++ gcc9-c++ gcc10-c++ gcc11-c++ gcc12-c++ gcc13-c++ gcc7-fortran gcc8-fortran gcc9-fortran gcc10-fortran gcc11-fortran gcc12-fortran gcc13-fortran
# non oss packages # non oss packages
%define spack_trigger_external cuda-nvcc %define spack_trigger_external cuda-nvcc
Name: spack Name: spack
Version: 0.20.3 Version: 0.21.1
Release: 0 Release: 0
Summary: Package manager for HPC systems Summary: Package manager for HPC systems
License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause