> > (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 , , ... Greetings, Maxime.