Skip to content

spack deconcretize command#38803

Merged
tgamblin merged 8 commits intodevelopfrom
features/deconcretize-command
Nov 10, 2023
Merged

spack deconcretize command#38803
tgamblin merged 8 commits intodevelopfrom
features/deconcretize-command

Conversation

@becker33
Copy link
Copy Markdown
Member

@becker33 becker33 commented Jul 9, 2023

We have two ways to concretize now:

  • spack concretize concretizes only the root specs that are not concrete in the environment.
  • spack concretize -f eliminates all cached concretization data and reconcretizes the entire environment.

This PR adds spack deconcretize, which eliminates cached concretization data for a spec. This allows
users greater control over what is preserved from their spack.lock file and what is reused when not
using spack concretize -f. If you want to update a spec installed in your environment, you can call
spack deconcretize on it, and that spec and any relevant dependents will be removed from the lock file.

spack concretize has two options:

  • --root: limits deconcretized specs to specific roots in the environment. You can use this to deconcretize exactly one root in a unify: false environment. i.e., if foo root is a dependent of bar, both roots, spack deconcretize bar will not deconcretize foo.
  • --all: deconcretize all specs that match the input spec. By default spack deconcretize will complain about multiple matches, like spack uninstall.

@spackbot-app spackbot-app bot added commands core PR affects Spack core functionality environments new-command labels Jul 9, 2023
@alecbcs
Copy link
Copy Markdown
Member

alecbcs commented Jul 9, 2023

With the addition of deconcretize, I wonder if we shouldn't stick both concretize and deconcretize under spack env as sub commands. I think doing so will help users more intuitively understand the commands and how they apply to Spack environments as opposed to environment-less installations.

@tgamblin tgamblin added this to the v0.21.0 milestone Oct 17, 2023
@tgamblin tgamblin self-requested a review October 17, 2023 18:06
@tgamblin tgamblin self-assigned this Oct 17, 2023
@tgamblin tgamblin force-pushed the features/deconcretize-command branch from cf7d625 to 3aacbcd Compare November 1, 2023 16:08
@tgamblin tgamblin closed this Nov 2, 2023
@tgamblin tgamblin reopened this Nov 2, 2023
@tgamblin tgamblin force-pushed the features/deconcretize-command branch 2 times, most recently from b6edfc6 to a09330f Compare November 5, 2023 02:22
@becker33 becker33 force-pushed the features/deconcretize-command branch from 6bdc97c to 51c40dd Compare November 7, 2023 01:06
@spackbot-app spackbot-app bot added the tests General test capability(ies) label Nov 7, 2023
@tgamblin tgamblin merged commit 13abfb7 into develop Nov 10, 2023
@tgamblin tgamblin deleted the features/deconcretize-command branch November 10, 2023 22:55
tgamblin pushed a commit that referenced this pull request Nov 11, 2023
We have two ways to concretize now:
* `spack concretize` concretizes only the root specs that are not concrete in the environment.
* `spack concretize -f` eliminates all cached concretization data and reconcretizes the *entire* environment.

This PR adds `spack deconcretize`, which eliminates cached concretization data for a spec.  This allows
users greater control over what is preserved from their `spack.lock` file and what is reused when not
using `spack concretize -f`.  If you want to update a spec installed in your environment, you can call
`spack deconcretize` on it, and that spec and any relevant dependents will be removed from the lock file.

`spack concretize` has two options:
* `--root`: limits deconcretized specs to *specific* roots in the environment. You can use this to
  deconcretize exactly one root in a `unify: false` environment.  i.e., if `foo` root is a dependent
  of `bar`, both roots, `spack deconcretize bar` will *not* deconcretize `foo`.
* `--all`: deconcretize *all* specs that match the input spec. By default `spack deconcretize`
  will complain about multiple matches, like `spack uninstall`.
tgamblin pushed a commit that referenced this pull request Nov 11, 2023
We have two ways to concretize now:
* `spack concretize` concretizes only the root specs that are not concrete in the environment.
* `spack concretize -f` eliminates all cached concretization data and reconcretizes the *entire* environment.

This PR adds `spack deconcretize`, which eliminates cached concretization data for a spec.  This allows
users greater control over what is preserved from their `spack.lock` file and what is reused when not
using `spack concretize -f`.  If you want to update a spec installed in your environment, you can call
`spack deconcretize` on it, and that spec and any relevant dependents will be removed from the lock file.

`spack concretize` has two options:
* `--root`: limits deconcretized specs to *specific* roots in the environment. You can use this to
  deconcretize exactly one root in a `unify: false` environment.  i.e., if `foo` root is a dependent
  of `bar`, both roots, `spack deconcretize bar` will *not* deconcretize `foo`.
* `--all`: deconcretize *all* specs that match the input spec. By default `spack deconcretize`
  will complain about multiple matches, like `spack uninstall`.
gabrielctn pushed a commit to gabrielctn/spack that referenced this pull request Nov 24, 2023
We have two ways to concretize now:
* `spack concretize` concretizes only the root specs that are not concrete in the environment.
* `spack concretize -f` eliminates all cached concretization data and reconcretizes the *entire* environment.

This PR adds `spack deconcretize`, which eliminates cached concretization data for a spec.  This allows
users greater control over what is preserved from their `spack.lock` file and what is reused when not
using `spack concretize -f`.  If you want to update a spec installed in your environment, you can call
`spack deconcretize` on it, and that spec and any relevant dependents will be removed from the lock file.

`spack concretize` has two options:
* `--root`: limits deconcretized specs to *specific* roots in the environment. You can use this to
  deconcretize exactly one root in a `unify: false` environment.  i.e., if `foo` root is a dependent
  of `bar`, both roots, `spack deconcretize bar` will *not* deconcretize `foo`.
* `--all`: deconcretize *all* specs that match the input spec. By default `spack deconcretize`
  will complain about multiple matches, like `spack uninstall`.
mtaillefumier pushed a commit to mtaillefumier/spack that referenced this pull request Dec 14, 2023
We have two ways to concretize now:
* `spack concretize` concretizes only the root specs that are not concrete in the environment.
* `spack concretize -f` eliminates all cached concretization data and reconcretizes the *entire* environment.

This PR adds `spack deconcretize`, which eliminates cached concretization data for a spec.  This allows
users greater control over what is preserved from their `spack.lock` file and what is reused when not
using `spack concretize -f`.  If you want to update a spec installed in your environment, you can call
`spack deconcretize` on it, and that spec and any relevant dependents will be removed from the lock file.

`spack concretize` has two options:
* `--root`: limits deconcretized specs to *specific* roots in the environment. You can use this to
  deconcretize exactly one root in a `unify: false` environment.  i.e., if `foo` root is a dependent
  of `bar`, both roots, `spack deconcretize bar` will *not* deconcretize `foo`.
* `--all`: deconcretize *all* specs that match the input spec. By default `spack deconcretize`
  will complain about multiple matches, like `spack uninstall`.
RikkiButler20 pushed a commit to RikkiButler20/spack that referenced this pull request Jan 31, 2024
We have two ways to concretize now:
* `spack concretize` concretizes only the root specs that are not concrete in the environment.
* `spack concretize -f` eliminates all cached concretization data and reconcretizes the *entire* environment.

This PR adds `spack deconcretize`, which eliminates cached concretization data for a spec.  This allows
users greater control over what is preserved from their `spack.lock` file and what is reused when not
using `spack concretize -f`.  If you want to update a spec installed in your environment, you can call
`spack deconcretize` on it, and that spec and any relevant dependents will be removed from the lock file.

`spack concretize` has two options:
* `--root`: limits deconcretized specs to *specific* roots in the environment. You can use this to
  deconcretize exactly one root in a `unify: false` environment.  i.e., if `foo` root is a dependent
  of `bar`, both roots, `spack deconcretize bar` will *not* deconcretize `foo`.
* `--all`: deconcretize *all* specs that match the input spec. By default `spack deconcretize`
  will complain about multiple matches, like `spack uninstall`.
vjranagit pushed a commit to vjranagit/spack that referenced this pull request Jan 18, 2026
We have two ways to concretize now:
* `spack concretize` concretizes only the root specs that are not concrete in the environment.
* `spack concretize -f` eliminates all cached concretization data and reconcretizes the *entire* environment.

This PR adds `spack deconcretize`, which eliminates cached concretization data for a spec.  This allows
users greater control over what is preserved from their `spack.lock` file and what is reused when not
using `spack concretize -f`.  If you want to update a spec installed in your environment, you can call
`spack deconcretize` on it, and that spec and any relevant dependents will be removed from the lock file.

`spack concretize` has two options:
* `--root`: limits deconcretized specs to *specific* roots in the environment. You can use this to
  deconcretize exactly one root in a `unify: false` environment.  i.e., if `foo` root is a dependent
  of `bar`, both roots, `spack deconcretize bar` will *not* deconcretize `foo`.
* `--all`: deconcretize *all* specs that match the input spec. By default `spack deconcretize`
  will complain about multiple matches, like `spack uninstall`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands core PR affects Spack core functionality environments new-command shell-support tests General test capability(ies)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants