Subject: [PATCH WIP 0/4] Add upstream updater for git-fetch origins.

From: Sarah Morgensen <[email-masked]>
Date: Sun, 15 Aug 2021 16:16:13 -0700

Hello Guix,

This is a proof-of-concept for extending `guix refresh -u` to support packages
with git-fetch origins.  The potential impact is large: approximately 4.5k
packages use git-fetch, although only some fraction would be supported.

Currently, this enables update support for (at least) any package where

* github-updater finds an update,
* origin-method is 'git-fetch', and
* the package version is a suffix of the 'commit' field.

Drawbacks currently include the fact that libgit2 doesn't (yet) support
shallow checkouts [0], so the entire repository must be cloned. There is also
no support for verifying commits.

There should probably also be a few tests added.

WDYT?

[0] https://github.com/libgit2/libgit2/issues/3058

--
Sarah Morgensen (4):
  guix hash: Extract file hashing procedures.
  import: Factorize file hashing.
  refresh: Support non-tarball sources.
  upstream: Support updating git-fetch origins.

 guix/git-download.scm    | 18 +++++++++++++-
 guix/hash.scm            | 51 ++++++++++++++++++++++++++++++++++++++++
 guix/import/cran.scm     | 32 +++----------------------
 guix/import/elpa.scm     | 28 ++++------------------
 guix/import/go.scm       | 26 +++-----------------
 guix/scripts/hash.scm    | 29 ++++++-----------------
 guix/scripts/refresh.scm | 10 ++++----
 guix/upstream.scm        | 41 +++++++++++++++++++++++++++++++-
 8 files changed, 130 insertions(+), 105 deletions(-)
 create mode 100644 guix/hash.scm

base-commit: 12099eac1b161d364be923451d27d7d739d0f14d
-- 
2.31.1