From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: Guile 3 migration plan Date: Thu, 16 Jan 2020 11:08:15 +0100 Message-ID: <874kwvemsw.fsf@inria.fr> 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]:43881) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1is24a-0000Xv-Eb for guix-devel@gnu.org; Thu, 16 Jan 2020 05:08:21 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53384) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1is24a-0006Gj-B3 for guix-devel@gnu.org; Thu, 16 Jan 2020 05:08:20 -0500 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=46460 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1is24Z-0006Ak-N0 for guix-devel@gnu.org; Thu, 16 Jan 2020 05:08:19 -0500 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: Guix-devel Hello Guix! Today is Guile 3 day, a day to celebrate, woohoo! \o/ How will Guix migrate to Guile 3? That=E2=80=99s a threefold process: 1. We must first migrate packages. I propose to rename =E2=80=9Cguile-ne= xt=E2=80=9D to =E2=80=9Cguile=E2=80=9D today, such that =E2=80=9Cguix install guil= e=E2=80=9D will now install Guile 3 (no mass rebuild involved: the =E2=80=9Cdefault=E2=80=9D Guile= remains 2.2.) The downside is that if you run =E2=80=9Cguix install guile guile-json= =E2=80=9D, you=E2=80=99ll get Guile 3 with Guile-JSON for 2.2; instead, you have = to explicitly select =E2=80=9Cguile3.0-json=E2=80=9D. I propose renaming all the =E2=80=9Cguile3.0-=E2=80=9D packages to =E2= =80=9Cguile-=E2=80=9D, and all the =E2=80=9Cguile-=E2=80=9D packages to =E2=80=9Cguile2.2-=E2=80= =9D as a second step, which will address this issue. This could be done within a few days or weeks. 2. We must be able to run Guix itself on Guile 3. This is already possible if you add =E2=80=9C3.0=E2=80=9D to the =E2=80=98GUILE_PKG=E2= =80=99 invocation in =E2=80=98configure.ac=E2=80=99, but there are still a few test failure= s that I=E2=80=99ve been working on. Almost all of them relate to the use of =E2=80=98@@= =E2=80=99 and =E2=80=98mock=E2=80=99, which do not work with Guile 3 =E2=80=9Cdeclar= ative modules=E2=80=9D. In many cases, it=E2=80=99s an opportunity to clean up our tests; see = for example 4aea90b1876179aab8d603a42533a6bdf97ccd3c and the preceding commit. It should be possible to be done real soon! Once we=E2=80=99re done, we can change (guix self) so that =E2=80=98gu= ix pull=E2=80=99 pulls Guix on Guile 3. 3. Change =E2=80=98default-guile=E2=80=99 to point to Guile 3 in =E2=80= =98core-updates=E2=80=99, and switch all the packages that consume .go files coming from =E2=80=98with-imported-modules=E2=80=99 to Guile 3, in particular =E2= =80=98shepherd=E2=80=99 and =E2=80=98mcron=E2=80=99. Thoughts? You can celebrate Guile 3 day by helping out any of these! Let=E2=80=99s synchronize here and on IRC! :-) Ludo.=E2=80=99