maint: update-guix-package: Prevent accidentally breaking guix pull.
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>
Sat, 10 Oct 2020 04:33:32 +0000 (00:33 -0400)
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>
Mon, 19 Oct 2020 18:02:53 +0000 (14:02 -0400)
commit5800d2aae2490f4192823323b72d17f2645aeb9e
tree1c9f78b9279901054e772f34f2ed2fdefc6c1cd6
parentc949530b6f6fea38bbc783a3fa4afd591316812d
maint: update-guix-package: Prevent accidentally breaking guix pull.

Fixes <https://issues.guix.gnu.org/43893>.

This changes the 'update-guix-package' tool so that it:

1. Always uses a clean checkout to compute the hash of the updated 'guix'
package.
2. Ensures the commit used in the updated 'guix' package definition has already
been pushed upstream.

* build-aux/update-guix-package.scm (%savannah-guix-git-repo-push-url): New
variable.
(with-input-pipe-to-string, with-temporary-git-worktree): New syntaxes.
(find-origin-remote, git-add-worktree): New procedures.
(commit-already-pushed?): New predicate.
(main): Check the commit used has already been pushed upstream and compute the
hash from a clean checkout.
* doc/contributing.texi (Updating the Guix Package): Document it.
* .dir-locals.el (scheme-mode): Fix indentation of with-temporary-git-worktree.
.dir-locals.el
build-aux/update-guix-package.scm
doc/contributing.texi