Hi, Ekaitz Zarraga <[email protected]> writes:
> Hi Yarl > > On 2026-02-21 11:06, Yarl wrote: >> I think that since a GCD is necessary, we should take this >> opportunity >> to carry out a complete restructuring. This would allow us to >> standardize the user interface once and for all. What do you think? >> This is the current state: >> ━━━━━━━━━━━━━━━━━━━━━━━━━━ >> archive >> build >> challenge >> container >> copy >> deploy >> describe >> download >> edit >> environment (deprecated) >> gc >> git >> graph >> hash >> home >> import >> install >> lint >> locate >> pack >> package >> processes >> publish >> pull >> refresh >> remove >> repl >> search >> shell >> show >> size >> style >> system >> time-machine >> upgrade >> weather >> ━━━━━━━━━━━━━━━━━━━━━━━━━━ >> Table 1: User commands >> ━━━━━━━━━━━━━━━━━━ >> authenticate >> discover >> offload >> perform-download >> substitute >> ━━━━━━━━━━━━━━━━━━ >> Table 2: Internal commands >> What follows is a *rough* proposal, intended to raise the right >> questions and get things started. >> Group related commands/actions under a common domain or >> subdomain. e.g. *guix domain action*. >> With that in mind, we avoid overly long command lines. >> e.g. *guix domain subdomain subsubdomain … action*. >> Flags should not represent actions but options. >> Goal: >> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> build >> deploy >> describe >> home build >> container >> delete-generations >> describe >> edit >> extension-graph >> import >> list-generations >> reconfigure >> roll-back >> search >> shepherd-graph >> switch-generation >> package edit >> import >> lint >> list-available >> locate >> refresh >> search >> search-paths >> show >> style >> processes >> profile delete-generations >> export-channels >> export-manifest >> install >> list-generations >> list-installed >> list-profiles >> manifest >> remove >> roll-back >> switch-generation >> upgrade >> pull >> repl >> shell >> store archive export >> extract >> generate-key >> import >> list >> missing >> authorize >> copy >> derivers >> diff >> download >> gc >> list-busy >> list-dead >> list-failures >> list-live >> list-roots >> optimize >> pack >> publish >> references >> referrers >> requisites >> vacuum-database >> verify >> system build >> container >> delete-generations >> describe >> docker-image >> edit >> extension-graph >> image >> import >> init >> installer >> list-generations >> reconfigure >> roll-back >> search >> shepherd-graph >> switch-generation >> vm >> time-machine >> tool challenge >> container-exec >> download >> git-authenticate >> graph >> hash >> size >> weather >> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ >> Table 3: Futur >> yarl >> > > > About this, I always hated that `guix package` and `guix sytem|home` > use different pattern for things like `delete-generations` (in package > it's `--delete-generations=[PATTERN]`, which is an option, not a > sub-command). I've seen at least one user, excluding myself, trip on this one. > Also I see that `guix system delete-generations -h` shows the help of > the `system` subcommand, not of the `delete-generations` subcommand. Agreed that this could use a good overhaul to make the --help output less confusing. I'm not sure if this is caused by limitations of the arguments parsing library used (currently (srfi srfi-37)) or some other reason. Yarl, note that some of the commands you suggest to reorganize are alias that were added at the top level relatively recently, such as 'guix search' -> 'guix package --search' or 'guix install' -> 'guix package --install'; I think these are good to have. -- Thanks, Maxim
