Typo helper doesn't always know which command is missing

  • Open
  • quality assurance status badge
Details
2 participants
  • Leo Famulari
  • zimoun
Owner
unassigned
Submitted by
Leo Famulari
Severity
normal
L
L
Leo Famulari wrote on 4 Feb 2021 20:53
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . bug-guix@gnu.org)
YBxQxSO57N4kV4N0@jasmine.lan
On Tue, Jan 19, 2021 at 10:28:08PM +0100, zimoun wrote:
Toggle quote (4 lines)
> * guix/utils.scm (string-distance): New procedure.
> (string-closest): New procedure.
> * tests/utils.scm: Test it.

This is a great feature, but I found a tricky failure:

------
$ ./pre-inst-env guix system vm --no-grafts doc/os-config-bare-bones.texi --substitute-urls=https://ci.guix.gnu.org-d
guix: system: command not found
hint: Did you mean `system'?

Try `guix --help' for more information.
$ guix environment guix
$ ./pre-inst-env guix system vm --no-grafts doc/os-config-bare-bones.texi -d
/gnu/store/pw453xpixcll02w1nz9mfggm2cn0jqpx-run-vm.sh.drv
------

It will only be seen by developers, so not a big deal, but it would
still be nice to correctly report which command is missing. Some
run-time dependency of guix is missing.
Z
Z
zimoun wrote on 4 Feb 2021 22:29
(name . Leo Famulari)(address . leo@famulari.name)(address . bug-guix@gnu.org)
86tuqrbjxr.fsf@gmail.com
Hi Leo,

On Thu, 04 Feb 2021 at 14:53, Leo Famulari <leo@famulari.name> wrote:
Toggle quote (22 lines)
> On Tue, Jan 19, 2021 at 10:28:08PM +0100, zimoun wrote:
>> * guix/utils.scm (string-distance): New procedure.
>> (string-closest): New procedure.
>> * tests/utils.scm: Test it.
>
> This is a great feature, but I found a tricky failure:
>
> ------
> $ ./pre-inst-env guix system vm --no-grafts doc/os-config-bare-bones.texi --substitute-urls=https://ci.guix.gnu.org -d
> guix: system: command not found
> hint: Did you mean `system'?
>
> Try `guix --help' for more information.
> $ guix environment guix
> $ ./pre-inst-env guix system vm --no-grafts doc/os-config-bare-bones.texi -d
> /gnu/store/pw453xpixcll02w1nz9mfggm2cn0jqpx-run-vm.sh.drv
> ------
>
> It will only be seen by developers, so not a big deal, but it would
> still be nice to correctly report which command is missing. Some
> run-time dependency of guix is missing.

I am missing, because the command line is not wrong. :-)

Well, I am missing what you are suggesting. I mean if “./pre-inst-env
guix <foo>” is run in an incorrect environment, then, I am not sure what
could be done. How does it work with a commit which predates the hint
introduction? How does it fail? I guess it fails, if not I am missing
something. :-)


Basically, when “guix system” is called (or any other command), it
enters in ’run-guix-command’ and does this snippet:

Toggle snippet (13 lines)
(catch 'misc-error
(lambda ()
(resolve-interface `(guix scripts ,command)))
(lambda _
(let ((hint (command-hint command (commands))))
(format (current-error-port)
(G_ "guix: ~a: command not found~%") command)
(when hint
(display-hint (format #f (G_ "Did you mean @code{~a}?")
hint)))
(show-guix-usage)))))

Therefore, it means that “(resolve-interface `(guix scripts ,command))”
fails for some reasons. It seems really hard to catch the reasons.
Well, this cannot happen with regular “guix <foo>” otherwise it is
severe bug. And in a developer setup, so much stuff could be wrong.

Well, these run-time dependencies could be checked by the script
“./pre-inst-env” but I do not know if it is worth.

Could you explain more what you would like?


On a side note, trying I get that the hint seems to work…

Toggle snippet (5 lines)
$ guix system vm --no-grafts ~/src/guix/guix/doc/os-config-bare-bones.texi --substitute-urls=https://ci.guix.gnu.org --dry-run --derivatio
guix system: error: derivatio: unrecognized option
hint: Did you mean `derivation'?

…but not work for all the options:

Toggle snippet (4 lines)
$ guix system vm --no-grafts ~/src/guix/guix/doc/os-config-bare-bones.texi --substitute-rls=https://ci.guix.gnu.org --dr-run --derivation
guix system: error: substitute-rls=https://ci.guix.gnu.org: unrecognized option

Another story than your report, right?


Cheers,
simon
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 46303@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 46303
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch