all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Pierre Neidhardt <mail@ambrevar.xyz>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel@gnu.org
Subject: Re: Profiles/manifests-related command line interface enhancements
Date: Mon, 04 Nov 2019 11:39:40 +0100	[thread overview]
Message-ID: <877e4glyc3.fsf@ambrevar.xyz> (raw)
In-Reply-To: <87mudd59ho.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2802 bytes --]

Ludovic Courtès <ludo@gnu.org> writes:

> Another way is:
>
>   eval `guix package --search-paths=prefix`
>
> or similar.

Note that this suffers from the shell compatibility issue, e.g. it won't
work with Fish / Eshell.

> Another one is:
>
>   guix environment …

This is a bit different since it spawns a subshell.
Depends on the use case.

> The MANPATH issue is orthogonal so I don’t think we should bring it up
> in this context.  See <https://issues.guix.gnu.org/issue/22138> for
> context.

Oh, this is exactly it!  Thanks for the link, I had no clue this had
been under discussion... since 2015 O.o :)

>> - All commands that accept manifests should be able to compose manifests
>>   by passing multiple =--manifest FILE= options.
>
> Do you have a use case?  :-)
>
> Sounds like something quite easy to do but I’ve never heard anyone
> request it before so I’m curious.

I'm actually surprised you find it surprising! :)
I can think of Simon, maybe Konrad(?) and myself who mentioned it
before.

Examples:

- `guix pack` can only pack ` manifest at a time.  Impossible to combine
  2 manifests.

- Same for guix weather if you want to avoid calling guix weather
  multiple times in a row.

- `guix environment` can work around this limitation by calling the
  manifest from the generated subshells.  It's not super convenient, and
  it does not work for scripts.  For instance, we can't do this at the moment:

   guix environment -m manifest1 -m manifest2 -- my command line...

I'm sure we can come up with tons of examples :)

>> - Use a default manifest by default with =guix install= and =guix
>>   remove=.  This way would basically get rid of "ad-hoc" profiles which
>>   has so many flaws (non-reproducible, non-trackable, etc.).
>
> Ambitious!
>
> Note that “ad-hoc” profiles (imperatively-managed profiles) contain
> provenance info in their ‘manifest’ file, so it’s not black and white.

I actually never noticed this :p

>> Last, one that's at the Scheme level:
>>
>> - A Scheme function to create a manifest for the necessary inputs of a
>>   package, like =guix environment PACKAGE= does.  (Maybe it's already possible?)
>
> Like ‘specifications->manifest’?

Can specifications->manifest do this?

Concrete example:  You want a profile to work on IceCat, so you need a
manifest that has all the necessary inputs required to work with Icecat.
How can we automate the generation of the manifest?

> Note that another option is to overhaul ‘guix environment’ like David
> proposed a while back:
>
>   https://lists.gnu.org/archive/html/guix-devel/2017-08/msg00300.html

Nice thread, lots of good ideas in there.

Cheers!

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

  reply	other threads:[~2019-11-04 10:39 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-23 16:37 Profiles/manifests-related command line interface enhancements Pierre Neidhardt
2019-10-24  9:00 ` Mark H Weaver
2019-10-24  9:32   ` Pierre Neidhardt
2019-10-24 16:28     ` Pierre Neidhardt
2019-10-24 16:42     ` Danny Milosavljevic
2019-10-24 18:16       ` Pierre Neidhardt
2019-10-24 19:23         ` Mark H Weaver
2019-10-24 20:04           ` Pierre Neidhardt
2019-10-24 21:35             ` Mark H Weaver
2019-10-25  9:29               ` Pierre Neidhardt
2019-10-31 11:38                 ` Pierre Neidhardt
2019-11-03 14:18 ` Ludovic Courtès
2019-11-04 10:39   ` Pierre Neidhardt [this message]
2019-11-04 11:06     ` zimoun
2019-11-05  6:26     ` Konrad Hinsen
2019-11-05  8:35       ` Hartmut Goebel
2019-11-05  9:03         ` Konrad Hinsen
2019-11-05  9:09           ` Hartmut Goebel
2019-11-05  9:22             ` Pierre Neidhardt
2019-11-05 15:36       ` zimoun
2019-11-05 16:05         ` Konrad Hinsen
2019-11-06 12:09           ` zimoun
2019-11-07 13:07             ` Konrad Hinsen
2019-11-06 17:07           ` Ludovic Courtès
2019-11-06 22:21             ` Bengt Richter
2019-11-07 13:52             ` Konrad Hinsen
2019-11-06 16:35       ` Ludovic Courtès
2019-11-07  7:46         ` Konrad Hinsen
2019-11-07  9:04           ` Pierre Neidhardt
2019-11-07 11:14             ` Konrad Hinsen
2019-11-07 11:36               ` Pierre Neidhardt
2019-11-09 17:59               ` Ludovic Courtès
2019-11-10  9:36                 ` Konrad Hinsen
2019-11-11 15:56                   ` A better XML, config is code (was Re: Profiles/manifests-related command line...) Giovanni Biscuolo
2019-11-13 15:28                     ` Konrad Hinsen
2019-11-12  8:55                   ` Profiles/manifests-related command line interface enhancements Andy Wingo
2019-11-12 20:07                     ` Konrad Hinsen
2019-11-13 20:58                     ` Bengt Richter
2019-11-16 22:02                   ` Ludovic Courtès
2019-11-17 10:44                     ` Konrad Hinsen
2019-11-18 14:25                       ` zimoun
2019-11-19 10:24                         ` Konrad Hinsen
2019-11-23 17:10                       ` Ludovic Courtès
2019-11-25 11:06                         ` Konrad Hinsen
2019-11-26  9:51                           ` On DSLs Ludovic Courtès
2019-12-02 19:05                             ` zimoun
2019-12-02 19:11                               ` Julien Lepiller
2019-12-03 10:19                                 ` Konrad Hinsen
2019-12-03 14:12                                   ` Ricardo Wurmus
2019-12-03 15:46                                     ` zimoun
2019-12-04  6:33                                     ` Bengt Richter
2019-12-10 16:26                                 ` Ludovic Courtès
2019-12-08  8:48                               ` Konrad Hinsen
2019-12-03 10:26                             ` Konrad Hinsen
2019-12-03 12:00                               ` zimoun
2019-11-11 14:13           ` Profiles/manifests-related command line interface enhancements Hartmut Goebel
2019-11-16 22:27           ` Ludovic Courtès
2019-11-17 11:30             ` Konrad Hinsen
2019-11-18 14:40               ` zimoun
2019-12-22 19:40               ` Andreas Enge
2019-12-22 20:39                 ` Pjotr Prins
2019-11-18 14:15             ` zimoun
2019-11-26  9:36               ` Ludovic Courtès
2019-11-06 16:42     ` Ludovic Courtès
2019-11-07 12:57       ` zimoun
2019-11-17 10:35         ` Package inputs in manifests Ludovic Courtès
2019-11-17 23:11           ` Bengt Richter
2019-11-18 17:14             ` zimoun
2019-11-23 14:05             ` Ludovic Courtès
2019-11-24  5:49               ` Bengt Richter
2019-11-24  7:17                 ` Timothy Sample
2019-11-25  3:42                   ` Bengt Richter
2019-11-18 16:18           ` zimoun

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=877e4glyc3.fsf@ambrevar.xyz \
    --to=mail@ambrevar.xyz \
    --cc=guix-devel@gnu.org \
    --cc=ludo@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.