Message ID | 20230228062846.19516-1-atai@atai.org |
---|---|
State | New |
Headers | show |
Series | [bug#61864] scripts: expose 'allow-collisions' for 'guix install' | expand |
On Mon, Feb 27, 2023 at 10:28:46PM -0800, Andy Tai wrote: > * guix/scripts/install.scm: 'allow-collisions' option of 'package' > exposed for 'install' alias I'm curious, what's the rationale for this?
I run into collisions in profile from time to time and I can resolve it via guix package --allow-collosions -i (or -u) so it is useful to make that available in the two "alias" commands as well On Thu, Mar 2, 2023 at 12:02 PM Leo Famulari <leo@famulari.name> wrote: > On Mon, Feb 27, 2023 at 10:28:46PM -0800, Andy Tai wrote: > > * guix/scripts/install.scm: 'allow-collisions' option of 'package' > > exposed for 'install' alias > > I'm curious, what's the rationale for this? >
On Thu, Mar 02, 2023 at 12:38:45PM -0800, Andy Tai wrote: > I run into collisions in profile from time to time and I can resolve it via > > guix package --allow-collosions -i (or -u) > > so it is useful to make that available in the two "alias" commands as well I see, that makes sense. Sorry I'm slow to reply, I thought about it for a while. Allowing profile collisions is a risky action that can cause subtle and hard to diagnose bugs, and it often is done without understanding the consequences. In my experience, collisions are often allowed by people who don't understand the negative effects of collisions, or how profiles are constructed. When reported, the consequent problems can take up a lot of time for the people trying to help. Because of those reasons, I prefer to only expose this option in `guix package`, which is a more advanced interface. My hope is that segregating the option like this will discourage use of '--allow-collisions' and prevent an increase in bug reports of the "user error" type. If you disagree, please feel free to reopen the bug and optionally CC some other reviewers, or bring it up on IRC.
diff --git a/guix/scripts/install.scm b/guix/scripts/install.scm index 63e625f266..4ab64b5b54 100644 --- a/guix/scripts/install.scm +++ b/guix/scripts/install.scm @@ -34,6 +34,8 @@ (define (show-help) (display (G_ " -p, --profile=PROFILE use PROFILE instead of the user's default profile")) ;; '--bootstrap' not shown here. + (display (G_ " + --allow-collisions do not treat collisions in the profile as an error")) (display (G_ " -v, --verbosity=LEVEL use the given verbosity LEVEL")) (newline) @@ -61,7 +63,8 @@ (define %options ;; Preserve some of the 'guix package' options. (append (filter (lambda (option) (any (cut member <> (option-names option)) - '("profile" "dry-run" "verbosity" "bootstrap"))) + '("profile" "dry-run" "verbosity" "bootstrap" + "allow-collisions"))) %package-options) %transformation-options