summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2022-05-13 18:11:10 +0200
committerGitHub <noreply@github.com>2022-05-13 09:11:10 -0700
commitd900ac2003a39d1789ee62107e3fc2c6e2d8a78f (patch)
treee5cf98ba6de81865513e76615027e55a6b032400
parentfaa277778e290cb9815269034029cc777162e774 (diff)
downloadspack-d900ac2003a39d1789ee62107e3fc2c6e2d8a78f.tar.gz
spack-d900ac2003a39d1789ee62107e3fc2c6e2d8a78f.tar.bz2
spack-d900ac2003a39d1789ee62107e3fc2c6e2d8a78f.tar.xz
spack-d900ac2003a39d1789ee62107e3fc2c6e2d8a78f.zip
Reuse concretization by default (#30396)
* Enable reuse by default in Spack * Update documentation to match new default * Configure pipelines not to reuse software
-rw-r--r--etc/spack/defaults/concretizer.yaml4
-rw-r--r--lib/spack/docs/basic_usage.rst38
-rw-r--r--lib/spack/docs/build_settings.rst7
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml3
-rw-r--r--share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml3
10 files changed, 43 insertions, 27 deletions
diff --git a/etc/spack/defaults/concretizer.yaml b/etc/spack/defaults/concretizer.yaml
index 2aadccd6cd..643107d3c0 100644
--- a/etc/spack/defaults/concretizer.yaml
+++ b/etc/spack/defaults/concretizer.yaml
@@ -14,7 +14,7 @@ concretizer:
# concretizing specs. If `true`, we'll try to use as many installs/binaries
# as possible, rather than building. If `false`, we'll always give you a fresh
# concretization.
- reuse: false
+ reuse: true
# Options that tune which targets are considered for concretization. The
# concretization process is very sensitive to the number targets, and the time
# needed to reach a solution increases noticeably with the number of targets
@@ -27,4 +27,4 @@ concretizer:
# If "false" allow targets that are incompatible with the current host (for
# instance concretize with target "icelake" while running on "haswell").
# If "true" only allow targets that are compatible with the host.
- host_compatible: false
+ host_compatible: true
diff --git a/lib/spack/docs/basic_usage.rst b/lib/spack/docs/basic_usage.rst
index 96fee4a125..7a3c44a759 100644
--- a/lib/spack/docs/basic_usage.rst
+++ b/lib/spack/docs/basic_usage.rst
@@ -192,32 +192,32 @@ you can use them to customize an installation in :ref:`sec-specs`.
Reusing installed dependencies
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. warning::
-
- The ``--reuse`` option described here will become the default installation
- method in the next Spack version, and you will be able to get the current
- behavior by using ``spack install --fresh``.
+By default, when you run ``spack install``, Spack tries hard to reuse existing installations
+as dependencies, either from a local store or from remote buildcaches if configured.
+This minimizes unwanted rebuilds of common dependencies, in particular if
+you update Spack frequently.
-By default, when you run ``spack install``, Spack tries to build a new
-version of the package you asked for, along with updated versions of
-its dependencies. This gets you the latest versions and configurations,
-but it can result in unwanted rebuilds if you update Spack frequently.
-
-If you want Spack to try hard to reuse existing installations as dependencies,
-you can add the ``--reuse`` option:
+In case you want the latest versions and configurations to be installed instead,
+you can add the ``--fresh`` option:
.. code-block:: console
- $ spack install --reuse mpich
+ $ spack install --fresh mpich
+
+Reusing installations in this mode is "accidental", and happening only if
+there's a match between existing installations and what Spack would have installed
+anyhow.
-This will not do anything if ``mpich`` is already installed. If ``mpich``
-is not installed, but dependencies like ``hwloc`` and ``libfabric`` are,
-the ``mpich`` will be build with the installed versions, if possible.
-You can use the :ref:`spack spec -I <cmd-spack-spec>` command to see what
+You can use the ``spack spec -I mpich`` command to see what
will be reused and what will be built before you install.
-You can configure Spack to use the ``--reuse`` behavior by default in
-``concretizer.yaml``.
+You can configure Spack to use the ``--fresh`` behavior by default in
+``concretizer.yaml``:
+
+.. code-block:: yaml
+
+ concretizer:
+ reuse: false
.. _cmd-spack-uninstall:
diff --git a/lib/spack/docs/build_settings.rst b/lib/spack/docs/build_settings.rst
index 3b49375b30..568b92aac3 100644
--- a/lib/spack/docs/build_settings.rst
+++ b/lib/spack/docs/build_settings.rst
@@ -242,12 +242,7 @@ to enable reuse for a single installation, and you can use:
spack install --fresh <spec>
to do a fresh install if ``reuse`` is enabled by default.
-
-.. note::
-
- ``reuse: false`` is the current default, but ``reuse: true`` will be the default
- in the next Spack release. You will still be able to use ``spack install --fresh``
- to get the old behavior.
+``reuse: true`` is the default.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Selection of the target microarchitectures
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml
index 9616a503fb..fb39028e03 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/build_systems/spack.yaml
@@ -2,6 +2,9 @@ spack:
view: false
concretization: separately
+ concretizer:
+ reuse: false
+
config:
install_tree:
root: /home/software/spack
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
index f6939853ed..85b9dc0f6c 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk/spack.yaml
@@ -2,6 +2,9 @@ spack:
view: false
concretization: separately
+ concretizer:
+ reuse: false
+
config:
install_tree:
root: /home/software/spack
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml
index 191639ca41..ce669069a3 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac/spack.yaml
@@ -2,6 +2,9 @@ spack:
view: false
concretization: separately
+ concretizer:
+ reuse: false
+
config:
concretizer: clingo
install_tree:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml
index b283b837cb..0344c30a6a 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s-on-power/spack.yaml
@@ -2,6 +2,9 @@ spack:
view: false
concretization: separately
+ concretizer:
+ reuse: false
+
config:
concretizer: clingo
install_tree:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
index 5d635d40d9..bdc00bddf3 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/e4s/spack.yaml
@@ -2,6 +2,9 @@ spack:
view: false
concretization: separately
+ concretizer:
+ reuse: false
+
config:
concretizer: clingo
install_tree:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
index f6f46c20a6..69b783aaea 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/radiuss/spack.yaml
@@ -2,6 +2,9 @@ spack:
concretization: separately
view: false
+ concretizer:
+ reuse: false
+
config:
concretizer: clingo
install_tree:
diff --git a/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml
index aceb25a00d..9beda80a3e 100644
--- a/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml
+++ b/share/spack/gitlab/cloud_pipelines/stacks/tutorial/spack.yaml
@@ -2,6 +2,9 @@ spack:
view: false
concretization: separately
+ concretizer:
+ reuse: false
+
config:
install_tree:
root: /home/software/spack