unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Liliana Marie Prikler <liliana.prikler@gmail.com>
To: Maxime Devos <maximedevos@telenet.be>,
	Andrew Tropin <andrew@trop.in>,
	 guix-devel@gnu.org
Subject: Re: Multiple profiles with Guix Home
Date: Thu, 05 May 2022 22:53:25 +0200	[thread overview]
Message-ID: <2d0e343d6ff84281e51a8fa4e0f0b3bb54f1b7b1.camel@gmail.com> (raw)
In-Reply-To: <0fa7c8f3068e5c5f8192b307fcb3446b0724dbf9.camel@telenet.be>

Am Donnerstag, dem 05.05.2022 um 22:13 +0200 schrieb Maxime Devos:
> Liliana Marie Prikler schreef op do 05-05-2022 om 21:08 [+0200]:
> > And you're not taking into account my time cost of debating you
> > when I already have manifests split across many files that I want
> > to manage as separate profiles using Guix Home, kthxbye.
> 
> Debating things is a one-time cost, whereas potential time
> savings/time increases will be a gain for all future users / a loss
> for all future users.  Also, didn't you ask for comments on your
> proposal, implicitely by sending to guix-devel@ and explicitly by
> 
> > What do y'all think?
> 
> ?
I did, but I assumed that people are already aware of multiple profile
workflows and the pains associated with them.  Having to debate the
semantics of a 2.5 year old blog posts should not be necessary in any
of these steps.  This is an initiative for enthusiastic users who want
to split their profiles, not a trick to convince them of doing things
outside their comfort zone.  The aforementioned sanitization overhead
when using the old configuration should be comparatively small,
otherwise we need to debate field sanitizers.

> > But to entertain the idea, suppose Alice wants to make her profiles
> > smaller so that they build faster.  Which sounds more reasonable? 
> > Bundling groups of packages that fit together into their own
> > manifests, then instantiating one profile for each, or rolling a
> > six-sided die and putting the package into whichever bin is number
> > four?  If you're a machine, you probably think the latter.  
> 
> Seems like a false dichotomy, why not: Alice teaches Guix to do the
> equivalent of rolling a six-sided dice, so she doesn't have to figure
> out a bundling and she doesn't have to manually roll dices.  Now,
> teaching this is a bit of a time investment, but she shares it with
> all other Guix users, so everyone benefits of automatically better
> performance.
You are aware that by rolling a six-sided die I did include "clever"
applications of rand, are you?  Even so, your profile splitting won't
go anywhere if you don't have a data representation of what a split
profile actually looks like.  Which sounds a lot like "I want the
benefits of your system, but I don't want the user to profit from them
by making an explicit choice on their own".  If that's your take, I
have to hard disagree.

> > What could be more fair than a six-sided die?  Why, a seven-sided
> > die of course!
> 
> I assume N-sided die = N-separate profiles here?  If so, not sure
> what the 'fair' is about?  Taken to the extreme, why not N separate
> profiles, where N is the number of packages?
Fair as in balanced, meaning all the bins are of equal size.  I'm not
stopping you from allocating N bins or even 2N bins, but I would rather
you take the hint and not debate pointless side topics.

> > We disagree about the question whether users should be granted a
> > method of declaring multiple profiles to use for their own purposes
> > in whichever way they see fit through `guix home'.
> 
> I don't?  Well, initially I didn't see a reason for multiple
> profiles, so I asked for reasons, and eventually, a few reasons that
> weren't addressed yet by other things were mentioned (e.g.: tidyness
> of separate profiles, some kind of minimalism where one only has
> packages in $PATH and other search paths that are currently
> neccessary by manually activating a profile that has a selection of
> packages)?
Note that the context has always been placing multiple profiles in
well-defined locations.  It was assumed from the very first post that
you have a use for those, or at the very least that you don't mind
others having a use for them.

> 
> > there is no need to do so whereas I not only claim there is, but
> > also
> > that any existing way of achieving similar results fails to meet my
> > requirements, which are:
> > 
> > 1. multiple profiles can be configured at once
> > 2. profile locations should be specified by the user
> > 3. profile generations are not littered, instead, the user has a
> > way of linking to /var/guix/profiles/per-user
> > 4. both package lists and manifests are supported
> > 5. existing configurations can be expressed in terms of the new
> > system
> > 6. individual profiles can be "disabled", i.e. not sourced during
> > activation, but still built
> > 7. individual profiles can lack a manifest, in which case nothing
> > is built, but they are still sourced on login
> 
> (2) is already achieved by "-p".
Only works for updating, not sourcing, see enabled?
> (4) is already achieved by "-m/ no -m"
See (2).
> (3) not sure why the user would care about /var/guix/profiles/per-
> user
There are very important aesthetic reasons to place generations there
rather than literally in the user's $HOME.
> (7) is already achieved by "guix install" / "guix package -m". The
> ‘source on login’ isn't though -- half-achieved?
It's not.  You can't currently declare a noop profile in any Guix
command.  A noop profile is distinct from an empty profile.

> Remains: (1), (5), (6), (7) not yet completely achieved.
> This kind of list was what I was asking for.
> 
> > [...] along with any underspecified search path
> > For the latter we still need a solution that works regardless of
> > guix home anyway, so it is not a point of discussion here.
> 
> The extra Guix Home feature magnifies the problem of search paths, so
> it seems a point of discussion here to me.  Especially since solving
> it for Guix Home profiles seems a lot less complicated than the
> general case to me: just compute the set of search paths (combined
> over all packages in all the profiles) and use these search paths for
> all the profiles. 
See Andrew's objection in the light of non-managed profiles.  And I
have to agree with Andrew, I don't think computing search paths over
all profiles is the best solution here.  Rather, having search paths be
a first-class citizen of manifests, i.e. allowing them to be specified
in addition to packages, sounds like a solution that works in all
contexts except perhaps the command line without eval.

Cheers


  reply	other threads:[~2022-05-05 20:53 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-03 10:50 Multiple profiles with Guix Home Liliana Marie Prikler
2021-10-04  7:17 ` zimoun
2021-10-04  8:11   ` Liliana Marie Prikler
2022-05-03 14:13 ` Andrew Tropin
2022-05-03 18:34   ` Liliana Marie Prikler
2022-05-03 19:13     ` Maxime Devos
2022-05-03 20:04       ` Liliana Marie Prikler
2022-05-03 20:39         ` Maxime Devos
2022-05-03 20:44         ` Maxime Devos
2022-05-04  9:25           ` Maxime Devos
2022-05-03 20:59         ` Maxime Devos
2022-05-04  4:16           ` Liliana Marie Prikler
2022-05-04  7:01             ` Maxime Devos
2022-05-04  7:08               ` Maxime Devos
2022-05-04 13:15               ` Reza Housseini
2022-05-04 13:46                 ` Maxime Devos
2022-05-04 18:14                   ` zimoun
2022-05-04 18:21                     ` Maxime Devos
2022-05-05  8:01                 ` Andrew Tropin
2022-05-04 18:38               ` Liliana Marie Prikler
2022-05-04 20:41                 ` Maxime Devos
2022-05-05  4:25                   ` Liliana Marie Prikler
2022-05-05 10:53                     ` Maxime Devos
2022-05-05 16:24                       ` Liliana Marie Prikler
2022-05-05 16:33                         ` Maxime Devos
2022-05-05 17:21                           ` Liliana Marie Prikler
2022-05-05 17:29                             ` Maxime Devos
2022-05-05 11:03                     ` Maxime Devos
2022-05-05 16:31                       ` Liliana Marie Prikler
2022-05-05 16:42                         ` Maxime Devos
2022-05-05 17:12                           ` Maxime Devos
2022-05-05 17:27                           ` Liliana Marie Prikler
2022-05-05 17:41                             ` Maxime Devos
2022-05-05 19:17                               ` Liliana Marie Prikler
2022-05-05 19:42                                 ` Maxime Devos
2022-05-05 20:20                                   ` Liliana Marie Prikler
2022-05-05 18:00                             ` Maxime Devos
2022-05-05 19:08                               ` Liliana Marie Prikler
2022-05-05 19:44                                 ` Maxime Devos
2022-05-05 23:53                                   ` zimoun
2022-05-05 20:13                                 ` Maxime Devos
2022-05-05 20:53                                   ` Liliana Marie Prikler [this message]
2022-05-05 21:28                                     ` Maxime Devos
2022-05-06  4:19                                       ` Liliana Marie Prikler
2022-05-07 23:06                                         ` Ludovic Courtès
2022-05-05 20:50                                 ` zimoun
2022-05-05 18:25                         ` zimoun
2022-05-03 21:11         ` Maxime Devos
2022-05-04  4:23           ` Liliana Marie Prikler
2022-05-04  6:57             ` Maxime Devos
2022-05-04  9:24             ` Maxime Devos
2022-05-04 13:05     ` Andrew Tropin
2022-05-05 11:05 ` Maxime Devos
2022-05-05 16:22   ` Liliana Marie Prikler
2022-05-05 17:07     ` Maxime Devos
2022-05-05 17:19       ` Liliana Marie Prikler
2022-05-05 17:29         ` Maxime Devos
2022-05-05 18:24           ` Liliana Marie Prikler
2022-05-05 20:14             ` Maxime Devos
2022-05-05 20:27               ` Liliana Marie Prikler
2022-05-05 20:38                 ` Maxime Devos
2022-05-05 20:41                 ` Maxime Devos
2022-05-05 20:26             ` Maxime Devos
2022-05-06 18:40               ` Liliana Marie Prikler
2022-05-06 19:54                 ` Maxime Devos
2022-05-06 21:32                   ` Liliana Marie Prikler
2022-05-07  7:17                     ` Maxime Devos
2022-05-23 13:14 ` Andrew Tropin
2022-05-23 17:05   ` Liliana Marie Prikler
2022-05-24 11:55     ` Andrew Tropin
2022-05-24 18:31       ` Liliana Marie Prikler
2022-05-25 11:01         ` Andrew Tropin
2022-05-25 23:36           ` Liliana Marie Prikler
2022-05-27 12:52             ` andrew
2022-05-27 13:14               ` Liliana Marie Prikler
  -- strict thread matches above, loose matches on Subject: below --
2021-10-03 20:51 John Kehayias

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

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2d0e343d6ff84281e51a8fa4e0f0b3bb54f1b7b1.camel@gmail.com \
    --to=liliana.prikler@gmail.com \
    --cc=andrew@trop.in \
    --cc=guix-devel@gnu.org \
    --cc=maximedevos@telenet.be \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).