> > (define-public sbcl-feeder > > (name "sbcl-feeder") > > (version (extended-version > > (base "1.0.0") > > (revision 1) > > (commit "b05f517d7729564575cc809e086c262646a94d34"))) > > (source > > (origin > > (method git-fetch) > > (uri (git-reference ...) > > (url ...) > > ;; git-reference needs to be extended to retrieve the commit > > from the version > > (version version))) > > (file-name (git-file-name "feeder" version)) > > (sha256 ...))) > > [...]) > > How will this work for SVN and CVS? I am not familiar with either, but > I know that SVN has its own ‘revision’ thing.
Maybe:
(extended-version
(base-version "14.12.0")
(revision 123) ; what guix considers a revision
(commit 38938)) ; what svn considers a revision (TODO figure out
non-confusing terminology)
(define (version->string v)
(cond ((string? v) v)
;; for SVN
(REVISION is set but COMMIT isn't
(string-append base-version "-" (number->string revision)))
;; for git and mercurial
(both REVISION and COMMIT are set
the code from git-version)))
Or have separate types <git-version>, <mercurial-version>, <svn-version> ...
Greetings,
Maxime.
signature.asc
Description: This is a digitally signed message part
