From mboxrd@z Thu Jan 1 00:00:00 1970 From: zimoun Subject: Re: Store channel specification in profile Date: Mon, 6 Jan 2020 22:09:26 +0100 Message-ID: References: <87blsyelgm.fsf@ambrevar.xyz> <87tv69bezo.fsf@gnu.org> <87zhg1xvmo.fsf@ambrevar.xyz> <874kx8gxh1.fsf@ambrevar.xyz> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:47815) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioZdA-0001r0-UD for guix-devel@gnu.org; Mon, 06 Jan 2020 16:09:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioZd9-0002Fx-KE for guix-devel@gnu.org; Mon, 06 Jan 2020 16:09:44 -0500 In-Reply-To: <874kx8gxh1.fsf@ambrevar.xyz> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Pierre Neidhardt Cc: Guix Devel Hi Pierre, On Mon, 6 Jan 2020 at 21:07, Pierre Neidhardt wrote: > > zimoun writes: > > >> > Like zimoun writes, it would be nice to have some sort of a =E2=80= =9Cdescribe=E2=80=9D > >> > command for a regular profile. Actually maybe =E2=80=9Cguix describ= e -p=E2=80=9D? > >> > > >> > Actually =E2=80=98guix describe -p ~/.guix-profile=E2=80=99 works bu= t doesn=E2=80=99t display > >> > anything useful. We could fix that by recognizing the kind of profi= le, > >> > 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 /manifest. > > As I explained elsewhere, the file /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 =E2=80=98guix describe -p ~/.guix-profile=E2=80=99= 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 /manifest. Therefore, there 3 directions, the 2 as you said: a. keep the file /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 /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 specification= s? 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