From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Lirzin Subject: 'guix environment' as a build tool. (was: [GSoC] Continuous integration tool =?utf-8?Q?=C3=A0?= la Hydra.) Date: Sun, 31 Jul 2016 04:05:25 +0200 Message-ID: <877fc2k1ei.fsf_-_@gnu.org> References: <871t4ksk0n.fsf@gnu.org> <87vazueezx.fsf@gnu.org> <87lh0pe6y7.fsf@gnu.org> <87invockk7.fsf@gnu.org> <87wpk291wo.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46460) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bTg8P-00009C-Ff for guix-devel@gnu.org; Sat, 30 Jul 2016 22:05:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bTg8F-0005Bp-Ux for guix-devel@gnu.org; Sat, 30 Jul 2016 22:05:44 -0400 In-Reply-To: <87wpk291wo.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sun, 31 Jul 2016 00:49:59 +0200") 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: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: guix-devel@gnu.org ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Mathieu Lirzin skribis: > >> I have tested successfully with the following command on a foreign >> system: >> >> guix environment --ad-hoc automake pkg-config guile guix libgcrypt sql= ite guile-sqlite3 >> >> Tell me if it works for you. >> >>> How about including a guix package definition then we can easily build >>> it assuming "we" know how to do out-of-guix-tree package building :) >> >> It would indeed be nice to provide an easy way for Guix users to install >> Cuirass. IMHO package definitions meant as a development build tool is >> confusing and should be avoided. Nonetheless, I think it is useful to >> document the previous 'guix environment ...' command in the README. > > What about providing a =E2=80=98guix.scm=E2=80=99 file that people could = pass to =E2=80=98guix > environment -l=E2=80=99 (instead of typing the long command above), and t= o =E2=80=98guix > package -f=E2=80=99 (info "(guix) Invoking guix package")? 'guix environment -l' uses a package definition. To me this abstraction doesn't fit well in a development context: - the origin hash doesn't make sense. - packages already included in Guix have redundant description and synopsi= s. - package definitions rely on Guix internals. In fact what 'guix.scm' contains feels more like a "debian" directory or a "PACKAGE.spec" file on steroid because of the "guix environment -l" feature which derives from it but doesn't appear as first class. An idea that I like better and is less invasive, would be to complement bootstrap scripts with: ./bootstrap --with-guix This command would: - generate a guix-env script that wraps 'guix environment ...' if it doesn't exist. - Invoke ./guix-env - Invoke autoreconf -vfi if the user wants to enter this environment Later it will have to invoke './guix-env'. Some interesting things could be done beyond this, for example by using per repository profiles that would save development environments. This would allow developpers to easily use different setups. WDYT? --=20 Mathieu Lirzin