From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre Neidhardt Subject: Re: Store channel specification in profile Date: Thu, 30 Jan 2020 20:24:13 +0100 Message-ID: <87zhe4px2a.fsf@ambrevar.xyz> References: <87blsyelgm.fsf@ambrevar.xyz> <87tv69bezo.fsf@gnu.org> <87zhg1xvmo.fsf@ambrevar.xyz> <874kx8gxh1.fsf@ambrevar.xyz> <87blreasgd.fsf@ambrevar.xyz> <87pnfpsgfx.fsf@gnu.org> <87a76rqu5j.fsf@ambrevar.xyz> <877e1vqowd.fsf@ambrevar.xyz> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:40344) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ixFQK-0002wN-Kt for guix-devel@gnu.org; Thu, 30 Jan 2020 14:24:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ixFQJ-0004gN-1z for guix-devel@gnu.org; Thu, 30 Jan 2020 14:24:20 -0500 In-Reply-To: <877e1vqowd.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-mx.org@gnu.org Sender: "Guix-devel" To: zimoun Cc: Guix Devel --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable We've made some progress on the topic during the Guix Days. First, let's recall some of the use cases: 1. Allow the user to reproduce a profile easily. 2. Keep a profile specification under version control with least effort. 3. Eaysily interface with inferiors (e.g. build a profile with pkg1 and pkg= 2 from two different Guix versions.) =20=20=20 Ideas that are not that good on second thought: =2D Create a profile specification file from CLI options, like --export PROFILE or --convert MANIFEST. The problem is that those are extra steps that the user would have to run manually. We can save those extra steps by dumping the specification file automatically into the profile. The Plan=C2=A9: On every profile installation, we generate a "specifications.scm" file alon= gside the internal "manifest". Problems: =2D There may be too many provenances, we need to add a CLI flag to ignore provenance. =20=20 =2D Too many provenances can be unusable (too slow to install, this happens= when using imperative style). Raise a warning, option to use latest Guix only. In all cases, we need an option to override all the provenance with a cha= nnel specification as per =3Dguix describe -f channels=3D. Proposed format for "specifications.scm": we can reuse `specifications->manifest`. Each entry is either or string, in which case = it acts as before, or a list, with the following self-explanatory elements: =2D-8<---------------cut here---------------start------------->8--- (specifications->manifest '(("my-package" #:outputs '("out") #:version "2.3" #:channel (channel (name 'guix) (branch "master") (url "https://git.savannah.gnu.org/git/guix.git") (commit "704719edade1368f798c9301f3a8197a0df5c930"))) ("my-package2") "old-style-package")) =2D-8<---------------cut here---------------end--------------->8--- =20=20=20 A somewhat unrelated propostion: To avoid further confusion between the int= ernal "manifest" and the user-facing "--manifest", we could rename the internal manifest to $profile/internal-maifest. Thoughts? Green light for a patch? =2D-=20 Pierre Neidhardt https://ambrevar.xyz/ --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl4zLV0ACgkQm9z0l6S7 zH81WggAmekt/aPNErZaQdCVhEQq4W9bFAdfqmt4PXZyxZxbP+MYWjkowTlKneLM fQLeg0orjDsgSAz+dpDxdtx+/IiueVvzEiBMOY3Rrk1I0x6BPrOBArUuU7KnYBP4 jFB0AcKP+IyUpfXfwWdz7zzvIpp0VE5qKNmV4gtB3O4Owi9KPLEQdxOPOVimBS9Y GDOvey7Jh09S/mNvVMUi7G3mhKrVD5kNUfQ5Yi4NZoq9DAKT5Z6zg8BMFIkSZ8Cv VJ8xKFBKQQwpIsJPWE/GiSj6Rn814RxyxtyqCtVYklOV9cmdvZUS93NAtPm+M9rZ Q0eUrR8uXrxaIQ+F9mCK25bGIoFMKA== =gDAd -----END PGP SIGNATURE----- --=-=-=--