summaryrefslogtreecommitdiff
path: root/doc/guix.texi
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-01-07 10:00:50 +0100
committerLudovic Courtès <ludo@gnu.org>2021-01-19 17:45:39 +0100
commit9ab817b2a4601b4a6755983590ed7d93ebdc8d09 (patch)
tree15bab050a0fa6e6719a43aed8e08fbb85f022bf5 /doc/guix.texi
parent30c164e3fda4b7585acc1beacc653645a8186552 (diff)
transformations: Add '--with-latest'.
* guix/upstream.scm (upstream-source-compiler): New procedure. (%updaters): Set! it. * guix/transformations.scm (transform-package-latest): New procedure. (%transformations): Add 'with-latest'. (%transformation-options, show-transformation-options-help/detailed): Add '--with-latest'. * tests/transformations.scm ("options->transformation, with-latest"): New test. * doc/guix.texi (Package Transformation Options): Document it.
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi31
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index f02353d9fa..c49bd36f85 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -10381,6 +10381,37 @@ guix build coreutils --with-patch=glibc=./glibc-frob.patch
In this example, glibc itself as well as everything that leads to
Coreutils in the dependency graph is rebuilt.
+@cindex upstream, latest version
+@item --with-latest=@var{package}
+So you like living on the bleeding edge? This option is for you! It
+replaces occurrences of @var{package} in the dependency graph with its
+latest upstream version, as reported by @command{guix refresh}
+(@pxref{Invoking guix refresh}).
+
+It does so by determining the latest upstream release of @var{package}
+(if possible), downloading it, and authenticating it @emph{if} it comes
+with an OpenPGP signature.
+
+As an example, the command below builds Guix against the latest version
+of Guile-JSON:
+
+@example
+guix build guix --with-latest=guile-json
+@end example
+
+There are limitations. First, in cases where the tool cannot or does
+not know how to authenticate source code, you are at risk of running
+malicious code; a warning is emitted in this case. Second, this option
+simply changes the source used in the existing package definitions,
+which is not always sufficient: there might be additional dependencies
+that need to be added, patches to apply, and more generally the quality
+assurance work that Guix developers normally do will be missing.
+
+You've been warned! In all the other cases, it's a snappy way to stay
+on top. We encourage you to submit patches updating the actual package
+definitions once you have successfully tested an upgrade
+(@pxref{Contributing}).
+
@cindex test suite, skipping
@item --without-tests=@var{package}
Build @var{package} without running its tests. This can be useful in