guix-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]