concretizer: update reuse: default to True#41302
Conversation
|
I think it's pretty ambiguous which default is better. Iterating with So is |
|
please add to #30634 |
reuse: default to True
|
I agree with @haampie, the usual development workflows are pretty annoying with Moreover, this breaks the upgrade workflow: With |
|
Ok given the lack of consensus, I'm proposing we move this to a more detailed discussion. I started one here: The gist of it is that I think both consumer workflows and dev/upgrade/iterative workflows are important, so we should have command that serve them both. So I'm proposing to split some of this out to Please throw your thoughts over there. |
|
@spackbot fix style |
|
Let me see if I can fix that for you! |
|
I was able to run spack style --fix==> Running style checks on spack
selected: isort, black, flake8, mypy
==> Modified files
lib/spack/spack/solver/asp.py
lib/spack/spack/test/cmd/common/arguments.py
lib/spack/spack/test/concretize.py
==> Running isort checks
isort checks were clean
==> Running black checks
reformatted lib/spack/spack/test/concretize.py
All done! ✨ 🍰 ✨
1 file reformatted, 2 files left unchanged.
black checks were clean
==> Running flake8 checks
flake8 checks were clean
==> Running mypy checks
Success: no issues found in 610 source files
mypy checks were clean
==> spack style checks were clean
I've updated the branch with style fixes. |
|
@tgamblin finally tracked down all the tests that relied on the old behavior and fixed them. |
|
Based on the conflicting view here, I think we should wait to merge this for an upgrade command, so please weigh in on the discussion. It seems like we're pretty close to a consensus over there -- there is a debate about how aggressive |
|
I changed my mind about this after #43190. Build caches are much more useful, and the experience is more I would say let's change this default for 0.22 |
|
With $ spack install gccto work without a compiler currently configured, if a binary is in a registered buildcache. |
|
Since the consensus changed, I'm going to merge this one. Checked with @michaelkuhn in DM |
We've seen a rash of issues with the default reuse parameters for the concretizer.
Specifically, many users have the following workflow:
In that workflow,
fooshould install asfoo+barfrom binary. That will not necessarily happen with the current defaults.This gets even worse in the case of a shared binary cache (like the spack public caches) that may have newer versions of the dependencies. In that case, the install may not work from binary even without specifying a variant or without any non-default aspects for the package in the buildcache.
@tgamblin and I have come to the belief that the current default is less intuitive than pure reuse. The
reuse: dependenciesconfig options and the--reuse-depsflags are still available for users who want the fresh concretization of roots.