I have a local branch where I try to build packages with python-3.12.
On python, loosely maintained packages often won't make releases, but
seldomly commit to add compatibility changes with the latest versions of
python.

This forces me to migrate a lot of packages under git-version+commit
style. I'm unsatisfied with the current tooling available to do that.

I can imagine useful `guix refresh` extensions to allow updating both
the revision/commit/hash, but for this kind of things, IIUC with
package-location, we need those inside the record, not outside with let.

I made a first proposition in https://codeberg.org/guix/guix/pulls/1571
but this one didn't reach a consensus, probably because it changed the
package-version itself to a record (I persist to think that although
the assumption is backed everywhere, it's still only a handful of
places that are easily changed).

Alternative propositions have been made :

1) pisemky proposes the following style
```
    (properties '((commit . "1354b63eb7120e5d0d40855c18d69e413a636ef2")
                  (revision . "1")))
    (version (git-version "0"
                          (assoc-ref properties 'revision)
                          (assoc-ref properties 'commit)))
```
It doesn't require any additional development, but changes a bit the
understanding of <package-properties> (which aren't defined in the
manual BTW).

2) lilyp proposes
```
(package 
  (shorthands
    (revision "0")
    (commit "…"))
  (name "le-package")
  (version (git-version "1.0" revision commit))
  …)
```

This requires some additional development though, but looks handier to
use.

I wish to reach an agreement to settle for one style, so that I can
standardize my use, and maybe extend `guix refresh` to handle this
commit syntax. Is a discussion here enough, or should I reach for a GCD?

-- 
Best regards,
Nicolas Graves

Reply via email to