Age | Commit message (Collapse) | Author | Files | Lines |
|
Without some enforcement of spec ordering, python 2 produced
different results in the affected test than did python 3. This
change makes the arbitrary but reproducible decision to sort
the specs by their lockfile key alphabetically.
|
|
Issue described in the following PR comment:
https://github.com/spack/spack/pull/28504#issuecomment-1051835568
Solution described in subsequent comment:
https://github.com/spack/spack/pull/28504#issuecomment-1053986132
|
|
|
|
|
|
|
|
The full hash appears twice in the spec dict now, replacing just
the value replaces it under "hash" and "full_hash". Only replace
the one that appears after "full_hash".
I'm actually not sure what purpose this test served, so maybe it
could be removed, as it may be testing some distinction between
full and dag hash which no longer exists.
|
|
For a long time, Spack has used a coarser hash to identify packages
than it likely should. Packages are identified by `dag_hash()`, which
includes only link and run dependencies. Build dependencies are
stripped before hashing, and we have notincluded hashes of build
artifacts or the `package.py` files used to build. This means the
DAG hash actually doesn't represent all the things Spack can build,
and it reduces reproducibility.
We did this because, in the early days, users were (rightly) annoyed
when a new version of CMake, autotools, or some other build dependency
would necessitate a rebuild of their entire stack. Coarsening the hash
avoided this issue and enabled a modicum of stability when only reusing
packages by hash match.
Now that we have `--reuse`, we don't need to be so careful. Users can
avoid unnecessary rebuilds much more easily, and we can add more
provenance to the spec without worrying that frequent hash changes
will cause too many rebuilds.
This commit starts the refactor with the following major change:
- [x] Make `Spec.dag_hash()` include build, run, and link
dependencides and the package hash (it is now equivalent to
`full_hash()`).
It also adds a couple of bugfixes for problems discovered during
the switch:
- [x] Don't add a `package_hash()` in `to_node_dict()` unless
the spec is concrete (fixes breaks on abstract specs)
- [x] Don't add source ids to the package hash for packages without
a known fetch strategy (may mock packages are like this)
- [x] Change how `Spec.patches` is memoized. Using
`llnl.util.lang.memoized` on `Spec` objects causes specs to
be stored in a `dict`, which means they need a hash. But,
`dag_hash()` now includes patch `sha256`'s via the package
hash, which can lead to infinite recursion
|
|
* Enable reuse by default in Spack
* Update documentation to match new default
* Configure pipelines not to reuse software
|
|
The program_options variant is disabled by default in Boost and
has to be enabled explicitly.
|
|
|
|
For tutorial builds, we should continue to allow deprecated builds to be installed. We
can update them as needed when we update the tutorial, but we don't need to correct them
immediately on deprecation in CI.
- [x] add `deprecated:true` to tutorial `spack.yaml` config.
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 12b0278f08c5557c8c458fdbf4886c5f67aa40c9.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-authored-by: David Kuehn <las_dkuehn@iastate.edu>
|
|
|
|
|
|
Co-authored-by: Marcos Mazzini - <mmazzini@serafin.ccad.unc.edu.ar>
|
|
that packages are precisely dependant upon. This is the second batch
of 20 packages with modified boost dependencies.
|
|
* Allow read-only access to file cache (when needed)
* Tweaked and added unit tests
* Skip test_cache_init_entry_fails for windows
|
|
include new dependencies on autotools/m4/etc.
|
|
* bamutil: updating to 1.0.15
* bamutil: switching to github archive
|
|
GTEST_DISALLOW_ASSIGN_Error (#30563)
* updating googletest version to 1.11 to avoid GTEST_DISALLOW_ASSIGN_ error
* limiting the version scope
* modified the version limit
Co-authored-by: mohan babu <mohbabul@amd.com>
|
|
|
|
|
|
|
|
|
|
* rocfft: add spack build test support
* Style cleanup for variant specs
|
|
No build system visible changes, so AFAIK this should Just Work
|
|
Resolve path/URL parsing issues introduced by #27021
|
|
|
|
|
|
Jasper v3.x changed a default to hide hidden symbols, but apparently
eccodes relies on those symbols and fails to link otherwise.
|
|
|
|
|
|
Upstream neovim builds with luajit-openresty or luajit in almost all
cases. To support the current usage, a user can specify that they want
lua, but this will allow the use of the normal (faster, better tested
and better maintained) setup.
|
|
|
|
|
|
|