From: ludo@gnu.org (Ludovic Courtès)
To: David Thompson <dthompson2@worcester.edu>
Cc: guix-devel@gnu.org
Subject: Re: Reproducible profiles
Date: Wed, 20 May 2015 14:36:02 +0200 [thread overview]
Message-ID: <87pp5va0jx.fsf@gnu.org> (raw)
In-Reply-To: <87egmd8ui0.fsf@fsf.org> (David Thompson's message of "Mon, 18 May 2015 17:07:35 -0400")
David Thompson <dthompson2@worcester.edu> skribis:
> Below is a new patch set taking into account the feedback received thus
> far. The (guix profiles) module still needs to be documented in the
> manual, but there's quite a lot of procedures and variables to account
> for. Would anyone be intertested in helping with this part?
I can help with that, but it’s even better if someone else does it. :-)
> From d506ad1d8824cc694364be502acddb25b76d0020 Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Mon, 18 May 2015 07:49:44 -0400
> Subject: [PATCH 1/3] ui: Factorize user-provided Scheme file loading.
>
> * guix/ui.scm (make-user-module, read-scheme-file): New procedures.
> * guix/scripts/system.scm (%user-module): Define in terms of
> 'make-user-module'.
> (read-operating-system): Define in terms of 'read-scheme-file'.
[...]
> +(define (read-scheme-file file user-module)
> + "Read the user provided Scheme source code FILE."
What about calling it ‘load*’ and s/Read/Load/ in the docstring?
It’s really a variant of ‘load’ rather than a variant of ‘read’.
If that’s fine with you, OK to push with this change.
> From 5665da9934726ce0a8c4ed358b7f606d917c300a Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Mon, 18 May 2015 07:51:56 -0400
> Subject: [PATCH 2/3] profiles: Add 'packages->manifest' procedure.
>
> * guix/profiles.scm (packages->manifest): New procedure.
[...]
> +(define (packages->manifest packages)
> + "Convert PACKAGES into a manifest containing entries for all of them."
What about something like:
Return a list of manifest entries, one for each item listed in
PACKAGES. Elements of PACKAGES can be either package objects or
package/string tuples denoting a specific output of a package.
OK to push with something along these lines.
> From 3be657353bfebc33dc9733b820165699ac07b43d Mon Sep 17 00:00:00 2001
> From: David Thompson <dthompson2@worcester.edu>
> Date: Thu, 14 May 2015 21:11:57 -0400
> Subject: [PATCH 3/3] package: Add --manifest option.
>
> * guix/scripts/package.scm (show-help): Add help text.
> (%options): Add manifest option.
> (guix-package): Add manifest option handler.
> * doc/guix.texi ("Invoking guix package"): Document it.
> * tests/guix-package.sh: Add test.
[...]
> +@item --manifest=@var{file}
> +@itemx -m @var{file}
> +Create a new @dfn{generation} of the profile from the manifest object
> +contained in @var{file}, a Scheme source code file.
s/contained in.*/returned by the Scheme code in @var{file}./
> +A manifest file may look like this:
> +
> +@example
> +(use-package-modules guile emacs gcc)
> +
> +(packages->manifest
> + (list guile-2.0
> + emacs
> + ;; Use a specific package output.
> + (list gcc "debug")))
> +@end example
Maybe s/gcc/guile-2.0/, which might better illustrate the use case.
> + -m, --manifest=FILE create a new profile generation with the manifest
> + contained within FILE."))
s/contained within/from/
Also no period at the end.
> +# Applying a manifest file
> +cat > "$module_dir/manifest.scm"<<EOF
> +(use-package-modules bootstrap)
> +
> +(packages->manifest (list %bootstrap-guile))
> +EOF
> +guix package --bootstrap -m "$module_dir/manifest.scm"
Maybe just add something like:
guix package -I | grep guile
test `guix package -I | wc -l` -eq 1
OK with these changes! I think it’s going to be nice to be able to use
this declarative approach for user profiles, have the file under VC, etc.
Thanks!
Ludo’.
next prev parent reply other threads:[~2015-05-20 12:36 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-15 1:19 Reproducible profiles David Thompson
2015-05-16 11:16 ` Ludovic Courtès
2015-05-16 11:35 ` 宋文武
2015-05-16 20:05 ` Ludovic Courtès
2015-05-17 19:27 ` David Thompson
2015-05-22 12:02 ` 宋文武
2015-05-17 19:23 ` David Thompson
2015-05-17 20:22 ` Ludovic Courtès
2015-05-17 20:51 ` David Thompson
2015-05-18 19:28 ` Syntax for package inputs Ludovic Courtès
2015-05-18 13:38 ` Reproducible profiles David Thompson
2015-05-18 19:29 ` Ludovic Courtès
2015-05-18 21:07 ` David Thompson
2015-05-20 12:36 ` Ludovic Courtès [this message]
2015-05-20 16:14 ` David Thompson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pp5va0jx.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=dthompson2@worcester.edu \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.