MyGit

v0.18.0

spack/spack

版本发布时间: 2022-05-28 23:59:37

spack/spack最新发布版本:v0.21.3(2024-10-03 18:44:31)

v0.18.0 (2022-05-28)

v0.18.0 is a major feature release.

Major features in this release

  1. Concretizer now reuses by default

    spack install --reuse was introduced in v0.17.0, and --reuse is now the default concretization mode. Spack will try hard to resolve dependencies using installed packages or binaries (#30396).

    To avoid reuse and to use the latest package configurations, (the old default), you can use spack install --fresh, or add configuration like this to your environment or concretizer.yaml:

    concretizer:
        reuse: false
    
  2. Finer-grained hashes

    Spack hashes now include link, run, and build dependencies, as well as a canonical hash of package recipes. Previously, hashes only included link and run dependencies (though build dependencies were stored by environments). We coarsened the hash to reduce churn in user installations, but the new default concretizer behavior mitigates this concern and gets us reuse and provenance. You will be able to see the build dependencies of new installations with spack find. Old installations will not change and their hashes will not be affected. (#28156, #28504, #30717, #30861)

  3. Improved error messages

    Error handling with the new concretizer is now done with optimization criteria rather than with unsatisfiable cores, and Spack reports many more details about conflicting constraints. (#30669)

  4. Unify environments when possible

    Environments have thus far supported concretization: together or concretization: separately. These have been replaced by a new preference in concretizer.yaml:

    concretizer:
        unify: [true|false|when_possible]
    

    concretizer:unify:when_possible will try to resolve a fully unified environment, but if it cannot, it will create multiple configurations of some packages where it has to. For large environments that previously had to be concretized separately, this can result in a huge speedup (40-50x). (#28941)

  5. Automatically find externals on Cray machines

    Spack can now automatically discover installed packages in the Cray Programming Environment by running spack external find (or spack external read-cray-manifest to only query the PE). Packages from the PE (e.g., cray-mpich are added to the database with full dependency information, and compilers from the PE are added to compilers.yaml. Available with the June 2022 release of the Cray Programming Environment. (#24894, #30428)

  6. New binary format and hardened signing

    Spack now has an updated binary format, with improvements for security. The new format has a detached signature file, and Spack verifies the signature before untarring or decompressing the binary package. The previous format embedded the signature in a tar file, which required the client to run tar before verifying (#30750). Spack can still install from build caches using the old format, but we encourage users to switch to the new format going forward.

    Production GitLab pipelines have been hardened to securely sign binaries. There is now a separate signing stage so that signing keys are never exposed to build system code, and signing keys are ephemeral and only live as long as the signing pipeline stage. (#30753)

  7. Bootstrap mirror generation

    The spack bootstrap mirror command can automatically create a mirror for bootstrapping the concretizer and other needed dependencies in an air-gapped environment. (#28556)

  8. Initial Windows support

    Spack now has initial support for Windows. Spack core has been refactored to run in the Windows environment, and a small number of packages can now build for Windows. More details are in the documentation (#27021, #28385, many more)

  9. Makefile generation

    spack env depfile can be used to generate a Makefile from an environment, which can be used to build packages the environment in parallel on a single node. e.g.:

    spack -e myenv env depfile > Makefile
    make
    

    Spack propagates gmake jobserver information to builds so that their jobs can share cores. (#30039, #30254, #30302, #30526)

  10. New variant features

    In addition to being conditional themselves, variants can now have conditional values that are only possible for certain configurations of a package. (#29530)

    Variants can be declared "sticky", which prevents them from being enabled or disabled by the concretizer. Sticky variants must be set explicitly by users on the command line or in packages.yaml. (#28630)

Other new features of note

Major internal refactors

Performance Improvements

Archspec improvements

Removals and Deprecations

Notable Bugfixes

Packages

Spack community stats

相关地址:原始地址 下载(tar) 下载(zip)

1、 spack-0.18.0.tar.gz 7.19MB

查看:2022-05-28发行的版本