[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Store channel specification in profile
From: |
zimoun |
Subject: |
Re: Store channel specification in profile |
Date: |
Mon, 6 Jan 2020 22:09:26 +0100 |
Hi Pierre,
On Mon, 6 Jan 2020 at 21:07, Pierre Neidhardt <address@hidden> wrote:
>
> zimoun <address@hidden> writes:
>
> >> > Like zimoun writes, it would be nice to have some sort of a “describe”
> >> > command for a regular profile. Actually maybe “guix describe -p”?
> >> >
> >> > Actually ‘guix describe -p ~/.guix-profile’ works but doesn’t display
> >> > anything useful. We could fix that by recognizing the kind of profile,
> >> > somehow.
> >>
> >> Seems like a good idea. How do we define "anything useful" though?
> >> The provenance of packages? How would we format it?
You asked 3 questions. :-)
1. How do we define "anything useful" though?
2. The provenance of packages?
3. How would we format it?
And the answer of these 3 questions is the file <your-profile>/manifest.
> > As I explained elsewhere, the file <your-profile>/manifest already
> > contains almost all the information we need (at least I think we need
> > ;-)). But its format is not complaint with the other format (channels,
> > manifest). And you answered: it is plumbing! :-)
> > My point is: this plumbing manifest file should be more
> > "format-friendly" -- still being plumbing -- and easily compliant with
> > the --channel or --manifest option, IMHO.
>
> I agree. But changing the format might break compatibility with existing
> functions that rely on it. In which places are manifests used?
IMHO, the improvement of ‘guix describe -p ~/.guix-profile’ or even a
kind of profile manager (e.g., a new "guix profile" subcommand doing
pieces of "guix package" and/or maybe "guix environment") should use
this file <your-profile>/manifest. Therefore, there 3 directions, the
2 as you said:
a. keep the file <your-profile>/manifest as it is today; and add
options to convert it to regular manifests and channels.
b. improve the format of this file to obtain consistent manifests.
and c. improve what the --manifest option accepts.
At the user level, the option a. breaks nothing. This file
<your-profile>/manifest is not known -- I even do not know if it is
documented -- so the option b. might not break compatibility. About
functions that rely on it, I have not checked yet. And the option c.
needs to be discussed.
>From my perspective, the option b. is a better path because it remove
layers and complexity.
> Should we not change the format, should we add a command line option to
> convert manifest to "manifest specifications" (those that work with
> `-manifest')? How do we include the provenance in manifest specifications?
The provenance of what?
Basically an entry looks like:
--8<---------------cut here---------------start------------->8---
("diffoscope"
"131"
"out"
"/gnu/store/h8zr4rxhvpikv9p07kdjkf2dsrja35wm-diffoscope-131"
(propagated-inputs ())
(search-paths ())
(properties
(provenance
(repository
(version 0)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"b5d4d5b9bcf267fddd02fcc14b88eac0bebf979f")))))
--8<---------------cut here---------------end--------------->8---
Cheers,
simon
- Re: Store channel specification in profile, Pierre Neidhardt, 2020/01/06
- Re: Store channel specification in profile,
zimoun <=
- Re: Store channel specification in profile, Pierre Neidhardt, 2020/01/08
- Re: Store channel specification in profile, zimoun, 2020/01/13
- Re: Store channel specification in profile, Pierre Neidhardt, 2020/01/13
- Re: Store channel specification in profile, zimoun, 2020/01/13
- Re: Store channel specification in profile, Pierre Neidhardt, 2020/01/13
- Re: Store channel specification in profile, Pierre Neidhardt, 2020/01/30