Nov 18, 2025 4:27:26 AM Ludovic Courtès <[email protected]>:
Hi Jodi,
"Jodi Jodington (dev)" <[email protected]> skribis:
It was quite discouraging to me that following the official
instructions wasn't enough to contribute to guix.
It would be nice if the manual warned you that if you were doing this
with a fork, you should look at
the `Invoking Guix Authenticate` chapter of the guix manual to see how
to add your GPG key
as a valid signature for your branch (or suggest deleting the pre-push
hook if you don't care).
I agree, it’s poor experience when the official instructions do not
match reality.
Would you like to create a pull request fixing it, or at least an issue
so we don’t lose track of it?
To be clear, you mean a PR to have the Building from Git manual talk
about `guix git authenticate` and how to use it with a fork? I can open a
PR later today, sure!
I also think that `guix git authenticate` creating a git hook without
any prompting or explicit arguments is pretty invasive behavior in
general and
doesn't really justify itself. I would prefer it if you had to do
something like
`guix git authenticate --add-hook` or similar (or just have users
create the hook themselves, it isnt a big deal imo)
‘guix git authenticate’ prints a message when it installs hooks.
I personally never saw it, but maybe thats not the common experience.
Maybe highlighting it in a different color or something to that effect
could be useful? It already uses some fancy effects to make a loading bar
so id imagine some colors wouldn't be too jarring.
The choice to install those hooks by default was made a while back and
the rationale was that, generally speaking, the goal of the tool is to
authenticate your Git checkout and doing it automatically is the only
sensible way to avoid mistakes.
But as you point out, that’s not a good default for someone willing to
work on a fork.
Perhaps we could keep the default unchanged and add a ‘--no-hooks’
option?
I think that kinda defeats the purpose. Anyone who knows about the hook
can delete the pre-push hook after its written and anyone who doesn't
know about the pre-push hook wouldn't know about this option. Is there
any precedent for a y/n user input prompt for things like this? I.e "do
you want to write a pre-push hook to re-run this command? [Y/n]: ". This
is probably too complicated of a solution though.
Realistically, I think just changing the manual page would clear up all
of this confusion anyway so I'm content with keeping guix git
authenticate the same if this is the intended behavior and is something
theres a general consensus on already
Nov 18, 2025 4:43:30 AM Ludovic Courtès <[email protected]>:
"Jodi Jodington (dev)" <[email protected]> skribis:
I then proceeded to
make a change and commit it locally
and then tried to push it to my fork. This resulted in an error
message about how my commit
isn't signed and blocked me from pushing.
I realized that as soon as you run:
./configure && make
a new ‘pre-push’ hook is installed and that one does not run ‘guix git
authenticate’ when pushing to an unofficial repository.
Perhaps you did not run ‘make’ before pushing?
I did but this is maybe where another misunderstanding came into play:
Right after telling you to run make and make check, the manual says:
From there on, you can authenticate all the commits included in your
checkout by running:
guix git authenticate \
9edb3f66fd807b096b48283debdcddccfea34bad \
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
So I ran it again and thats when it mustve re-re-placed the pre-push hook