mbox

[bug#34838,0/6] Add '--with-git-url' and make sure it composes well

Message ID 20190313095755.15378-1-ludo@gnu.org
Headers show

Message

Ludovic Courtès March 13, 2019, 9:57 a.m. UTC
Hello Guix!

This patch series allows for things like this:

  guix build python-numpy \
    --with-git-url=python=https://github.com/python/cpython \
    --with-commit=python=86900a49000c4a96ad1dc34e49d8af4245b08843

Initially I just wanted to add a ‘--with-git-url’ transformation option,
but then allowing it to be combined with ‘--with-branch’, for example,
turned out to be more involved.

To achieve that, this patch series changes transformation options so
they match packages by spec (“guile”, “guile@2”, etc.) instead of
matching them by identity as was the case before (specifically, we’d
get the identity of the package to be replaced with ‘specification->package’.)

That leads to a slight semantic change: transformations now apply
to any package that matches the given spec, whereas before they would
only apply to the public package that matches the spec.  In practice,
it probably doesn’t make any difference since there are rarely (if ever)
several distinct packages with the same name.

Feedback welcome!

Ludo’.

Ludovic Courtès (6):
  guix build: Add '--with-git-url'.
  packages: Add 'package-input-rewriting/spec'.
  guix build: Factorize 'package-git-url'.
  guix build: Transformation options match packages by spec.
  guix build: '--with-commit' makes recursive checkouts.
  guix build: '--with-branch' strips slashes from the version string.

 doc/guix.texi           |  61 ++++++++++++++---
 guix/packages.scm       |  38 +++++++++++
 guix/scripts/build.scm  | 146 +++++++++++++++++++++++++++-------------
 tests/packages.scm      |  51 ++++++++++++++
 tests/scripts-build.scm | 109 ++++++++++++++++++++++++++++--
 5 files changed, 343 insertions(+), 62 deletions(-)