[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

'guix environment' as a build tool. (was: [GSoC] Continuous integration

From: Mathieu Lirzin
Subject: 'guix environment' as a build tool. (was: [GSoC] Continuous integration tool à la Hydra.)
Date: Sun, 31 Jul 2016 04:05:25 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

address@hidden (Ludovic Courtès) writes:

> Mathieu Lirzin <address@hidden> skribis:
>> I have tested successfully with the following command on a foreign
>> system:
>>   guix environment --ad-hoc automake pkg-config guile guix libgcrypt sqlite 
>> 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 ‘guix.scm’ file that people could pass to ‘guix
> environment -l’ (instead of typing the long command above), and to ‘guix
> package -f’ (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 synopsis.
 - 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

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.


Mathieu Lirzin

reply via email to

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