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