--- Begin Message ---
Subject: |
[PATCH 0/3] 'guix describe' and improved provenance tracking |
Date: |
Tue, 4 Sep 2018 14:09:25 +0200 |
Hello Guix!
This patch series aims to unleash the power of the (guix describe) and (guix
channels) modules and related things. Highlights:
1. Add -p to ‘guix pull’ so you can do things like:
guix pull --branch=core-updates -p craziness
./craziness/bin/guix package -u
2. Add ‘guix describe’, which produces something like this:
Generation 7 Sep 04 2018 12:27:18 (current)
guix c0cfc62
repository URL: /home/ludo/src/guix
branch: origin/wip-describe
commit: c0cfc62f6e0a1c77e28dd7099f512ea2c6c01566
guix-hpc 779f4df
repository URL: https://gitlab.inria.fr/guix-hpc/guix-hpc.git
branch: origin/master
commit: 779f4df63892a95de6efba259abf82e64951d4be
or like that:
(list (channel
(name 'guix)
(url "/home/ludo/src/guix")
(commit
"c0cfc62f6e0a1c77e28dd7099f512ea2c6c01566"))
(channel
(name 'guix-hpc)
(url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")
(commit
"779f4df63892a95de6efba259abf82e64951d4be")))
3. Record “provenance meta-data” in manifest entries produced by ‘guix
package’. With this change, the ‘manifest’ file of new profiles
contains extra properties like this:
(manifest
(version 3)
(packages
(("guile"
"2.2.4"
"out"
"/gnu/store/p9wm67w3rfw3hlb9iljgvsfn84mz4w9d-guile-2.2.4"
(propagated-inputs …)
(search-paths …)
(properties
(provenance
(repository
(version 0)
(url "/home/ludo/src/guix")
(branch "origin/wip-describe")
(commit
"c0cfc62f6e0a1c77e28dd7099f512ea2c6c01566")))))
("starpu"
"1.2.5"
"out"
"/gnu/store/i1rpm373yvbdxliqpbnmv7k0942xlcf0-starpu-1.2.5"
(propagated-inputs ())
(search-paths ())
(properties
(provenance
(repository
(version 0)
(url "/home/ludo/src/guix")
(branch "origin/wip-describe")
(commit
"c0cfc62f6e0a1c77e28dd7099f512ea2c6c01566"))
(repository
(version 0)
(url "https://gitlab.inria.fr/guix-hpc/guix-hpc.git")
(branch "origin/master")
(commit
"779f4df63892a95de6efba259abf82e64951d4be"))))))))
Currently the UI doesn’t use it at all but it could in the future.
Future work: optionally record ‘provenance’ properties for whole systems.
Caveat: this information should be added only by end-user tools, and it
should be possible to disable it because it introduces silent differences
in build results that break bit-reproducibility, pretty much like timestamps.
For example, I wouldn’t ‘guix pack’ or ‘guix system vm{,-image}’ to record
it by default. Conceptually, this meta-data is also a “back edge” in that
it goes from build results to source whereas the whole functional mechanism
creates edges from source to build results.
Feedback welcome!
Ludo’.
Ludovic Courtès (3):
pull: Add '--profile'.
Add 'guix describe'.
guix package: Record package provenance in manifest entries.
Makefile.am | 2 +
doc/guix.texi | 98 ++++++++++++++++++++++-
guix/describe.scm | 4 +-
guix/profiles.scm | 6 +-
guix/scripts/describe.scm | 160 ++++++++++++++++++++++++++++++++++++++
guix/scripts/package.scm | 57 ++++++++++++--
guix/scripts/pull.scm | 22 ++++--
po/guix/POTFILES.in | 1 +
tests/guix-describe.sh | 47 +++++++++++
9 files changed, 380 insertions(+), 17 deletions(-)
create mode 100644 guix/scripts/describe.scm
create mode 100644 tests/guix-describe.sh
--
2.18.0
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#32632] [PATCH 0/3] 'guix describe' and improved provenance tracking |
Date: |
Fri, 07 Sep 2018 11:45:17 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Ludovic Courtès <address@hidden> skribis:
> pull: Add '--profile'.
> Add 'guix describe'.
> guix package: Record package provenance in manifest entries.
Applied!
Ludo’.
--- End Message ---