* [GSoC] Continuous integration tool à la Hydra.
@ 2016-05-29 20:10 Mathieu Lirzin
2016-05-30 21:34 ` Ludovic Courtès
` (3 more replies)
0 siblings, 4 replies; 20+ messages in thread
From: Mathieu Lirzin @ 2016-05-29 20:10 UTC (permalink / raw)
To: guix-devel
Hello Guix!
Here is a first update on my GSoC project after the first week.
Hydra (https://nixos.org/hydra/) is a Nix-based continuous build system
which is used by Guix to compile packages on different platforms and to
distribute packages substitutes. The aim of this project is to replace
Hydra with a more integrated software written in Guile.
Since it would be cumbersome to speak about something without giving it
a name, I have decided to call this software “Cuirass”.
While being intended as a general purpose continuous integration tool,
the first iteration of Cuirass is focusing only on building Guix
packages. The logic of the program is simple since 'cuirass' sits in a
loop:
- Fetching new changes from Guix master branch
- Compiling Guix code
- Evaluating packages derivations
- Building those derivations
The Guix repository is kept in a directory set by 'CUIRASS_CACHEDIR'
environment variable to avoid cloning it every time. Even if the
algorithm is trivial, the implementation has required some thought in
order to allow using guile code fetched from the Guix git repository.
Hopefully the solution was already in 'hydra-eval-guile-jobs' script
from Hydra, so I have used the same technique.
Currently the build phase is failing with the following error:
--8<---------------cut here---------------start------------->8---
Starting download of /gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
From http://www.zsh.org/pub/zsh-5.1.1.tar.gz...
ERROR: In procedure connect*: Network is unreachable
Starting download of /gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
From http://www.zsh.org/pub/old/zsh-5.1.1.tar.gz...
ERROR: In procedure connect*: Network is unreachable
Starting download of /gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
From http://tarballs.nixos.org/sha256/11shllzhq53fg8ngy3bgbmpf09fn2czifg7hsb41nxi3410mpvcl...
ERROR: download failed "http://tarballs.nixos.org/sha256/11shllzhq53fg8ngy3bgbmpf09fn2czifg7hsb41nxi3410mpvcl" 404 "Not Found"
failed to download "/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz" from ("http://www.zsh.org/pub/zsh-5.1.1.tar.gz" "http://www.zsh.org/pub/old/zsh-5.1.1.tar.gz")
builder for `/gnu/store/srsm569hhqiz56abp90dksknn6mqb03j-zsh-5.1.1.tar.gz.drv' failed to produce output path `/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz'
@ build-failed /gnu/store/srsm569hhqiz56abp90dksknn6mqb03j-zsh-5.1.1.tar.gz.drv - 1 builder for `/gnu/store/srsm569hhqiz56abp90dksknn6mqb03j-zsh-5.1.1.tar.gz.drv' failed to produce output path `/gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz'
cannot build derivation `/gnu/store/ri86p3f5w84r6pxyz54icyb0r00lmqaj-zsh-5.1.1.drv': 1 dependencies couldn't be built
Backtrace:
In ice-9/boot-9.scm:
157: 9 [catch #t #<catch-closure 1ffeba0> ...]
In unknown file:
?: 8 [apply-smob/1 #<catch-closure 1ffeba0>]
In ice-9/boot-9.scm:
63: 7 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 6 [eval # #]
In ice-9/boot-9.scm:
63: 5 [call-with-prompt break486 ...]
63: 4 [call-with-prompt continue487 ...]
In ice-9/eval.scm:
432: 3 [eval # #]
In ice-9/r4rs.scm:
90: 2 [dynamic-wind #<procedure 4c92620 at ice-9/boot-9.scm:1133:2 _> ...]
In ice-9/boot-9.scm:
702: 1 [map #<procedure 3b489120 at ice-9/eval.scm:416:20 (a)> (# # # # ...)]
In guix/store.scm:
684: 0 [build # # 0]
guix/store.scm:684:15: In procedure build:
guix/store.scm:684:15: Throw to key `srfi-34' with args `(#<condition &nix-protocol-error [message: "build of `/gnu/store/ri86p3f5w84r6pxyz54icyb0r00lmqaj-zsh-5.1.1.drv' failed" status: 1] 3b50d5a0>)'.
--8<---------------cut here---------------end--------------->8---
which is probably related to the fact that https is not handled.
The next step will be to fix this issue, to provide a better abstraction
for the 'build jobs', and to find a way to make some test scripts using
dummy jobs.
For those willing to see more, a Git repository is available here:
https://notabug.org/mthl/cuirass
Everyone is of course welcome to provide any feedback.
Thanks.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-05-29 20:10 Mathieu Lirzin
@ 2016-05-30 21:34 ` Ludovic Courtès
2016-05-30 21:54 ` Ludovic Courtès
` (2 subsequent siblings)
3 siblings, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2016-05-30 21:34 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Hello!
Mathieu Lirzin <mthl@gnu.org> skribis:
> Since it would be cumbersome to speak about something without giving it
> a name, I have decided to call this software “Cuirass”.
Interesting. :-)
> While being intended as a general purpose continuous integration tool,
> the first iteration of Cuirass is focusing only on building Guix
> packages. The logic of the program is simple since 'cuirass' sits in a
> loop:
>
> - Fetching new changes from Guix master branch
> - Compiling Guix code
> - Evaluating packages derivations
> - Building those derivations
>
> The Guix repository is kept in a directory set by 'CUIRASS_CACHEDIR'
> environment variable to avoid cloning it every time. Even if the
> algorithm is trivial, the implementation has required some thought in
> order to allow using guile code fetched from the Guix git repository.
> Hopefully the solution was already in 'hydra-eval-guile-jobs' script
> from Hydra, so I have used the same technique.
So far, so good!
I think eventually ‘compile’ should disappear. It should be up to the
project’s ‘evaluate.scm’ file (for Guix, it’s
‘build-aux/hydra/gnu-system.scm’) to compute whatever needs to be
computed to produce a list of derivations to build.
> Currently the build phase is failing with the following error:
>
> Starting download of /gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
> From http://www.zsh.org/pub/zsh-5.1.1.tar.gz...
> ERROR: In procedure connect*: Network is unreachable
>
> Starting download of /gnu/store/y17blrd1x80nqik4ss4djbm92a5i5ivl-zsh-5.1.1.tar.gz
> From http://www.zsh.org/pub/old/zsh-5.1.1.tar.gz...
> ERROR: In procedure connect*: Network is unreachable
Probably just a transient error on zsh.org. The 1st URL is 404, and the
second one works for me. I don’t think this has anything to do with
https.
Anyway, it’s good to see that the basics are in place! :-)
Thanks for the update,
Ludo’.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-05-29 20:10 Mathieu Lirzin
2016-05-30 21:34 ` Ludovic Courtès
@ 2016-05-30 21:54 ` Ludovic Courtès
2016-06-20 22:44 ` Mathieu Lirzin
2016-07-25 0:30 ` Mathieu Lirzin
3 siblings, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2016-05-30 21:54 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin <mthl@gnu.org> skribis:
> For those willing to see more, a Git repository is available here:
>
> https://notabug.org/mthl/cuirass
BTW, I can confirm that it “builds stuff” here when I let it go.
An improvement would be to redirect or filter
(current-build-output-port). For instance, we could let only the “@”
lines go through (build started, build failed, etc.)
Ludo’.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-05-29 20:10 Mathieu Lirzin
2016-05-30 21:34 ` Ludovic Courtès
2016-05-30 21:54 ` Ludovic Courtès
@ 2016-06-20 22:44 ` Mathieu Lirzin
2016-06-24 12:42 ` Ludovic Courtès
2016-07-25 0:30 ` Mathieu Lirzin
3 siblings, 1 reply; 20+ messages in thread
From: Mathieu Lirzin @ 2016-06-20 22:44 UTC (permalink / raw)
To: guix-devel
Hello Guix!
Here is a second update on my GSoC project after the first month.
As a reminder, Hydra (https://nixos.org/hydra/) is a Nix-based
continuous build system which is used by Guix to compile packages on
different platforms and to distribute packages substitutes. The aim of
this project is to replace Hydra with a more integrated software written
in Guile, named “Cuirass”.
After providing a first basic evaluation loop described in my previous
mail, I have started thinking about the architecture of the global job
evaluation/compilation process in order to identify what type of data
structures would make sense. It was not easy for me to reason about the
different layers of current Hydra usage in Guix, so it took me 2 weeks
to analyse it and provide a first decomposition of logic steps. For now
this decomposition is:
job-spec > job > build-result
where:
- 'job-spec' defines all the information required by Cuirass to get
the actual job definitions. These information contains the
repository type and url, the file and procedure name which yields a
list of job, and the list of arguments passed to that procedure.
- 'job' contains the derivation file name which describe all the
dependencies.
- 'build-result' contains the output obtained when realizing/building
the derivation from a job + some logs.
'job-spec' and 'job' are already implemented in Cuirass. However
'build-result' will require a database to be useful. Since I have no
experience with databases at all, this last week has been dedicated to
learn more about them, play with SQL queries, and use Guile-dbi and
Guile-sqlite3 bindings. My plan is to use Sqlite first and eventually
switch to Postgresql later when concurrent writers would be critical.
The next step is to apply my newly acquired knowledge by allowing
'build-result' entries to be added to the database. I will be AFK for 5
days so I will start working on that, next Sunday.
For those willing to follow my work, a Git repository is available here:
https://notabug.org/mthl/cuirass
Everyone is of course welcome to provide any feedback.
Thanks.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-06-20 22:44 ` Mathieu Lirzin
@ 2016-06-24 12:42 ` Ludovic Courtès
0 siblings, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2016-06-24 12:42 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Hello Mathieu!
Mathieu Lirzin <mthl@gnu.org> skribis:
> After providing a first basic evaluation loop described in my previous
> mail, I have started thinking about the architecture of the global job
> evaluation/compilation process in order to identify what type of data
> structures would make sense. It was not easy for me to reason about the
> different layers of current Hydra usage in Guix, so it took me 2 weeks
> to analyse it and provide a first decomposition of logic steps. For now
> this decomposition is:
>
> job-spec > job > build-result
>
> where:
>
> - 'job-spec' defines all the information required by Cuirass to get
> the actual job definitions. These information contains the
> repository type and url, the file and procedure name which yields a
> list of job, and the list of arguments passed to that procedure.
>
> - 'job' contains the derivation file name which describe all the
> dependencies.
>
> - 'build-result' contains the output obtained when realizing/building
> the derivation from a job + some logs.
Sounds good to me.
> 'job-spec' and 'job' are already implemented in Cuirass. However
> 'build-result' will require a database to be useful. Since I have no
> experience with databases at all, this last week has been dedicated to
> learn more about them, play with SQL queries, and use Guile-dbi and
> Guile-sqlite3 bindings. My plan is to use Sqlite first and eventually
> switch to Postgresql later when concurrent writers would be critical.
When and if. :-)
I’m saying “if” because while Hydra uses the database for inter-process
communication, I think we may as well use a message passing toolkit such
as ZeroMQ rather than abuse the database. But that’s for later!
Looks like a good plan anyway!
Thank you,
Ludo’.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-05-29 20:10 Mathieu Lirzin
` (2 preceding siblings ...)
2016-06-20 22:44 ` Mathieu Lirzin
@ 2016-07-25 0:30 ` Mathieu Lirzin
2016-07-25 21:36 ` Ludovic Courtès
3 siblings, 1 reply; 20+ messages in thread
From: Mathieu Lirzin @ 2016-07-25 0:30 UTC (permalink / raw)
To: guix-devel
Hello Guix!
Here is a third update on my GSoC project after the second month.
As a reminder, Hydra (https://nixos.org/hydra/) is a Nix-based
continuous build system which is used by Guix to compile packages on
different platforms and to distribute packages substitutes. The aim of
this project is to replace Hydra with a more integrated software written
in Guile, named “Cuirass”.
Since my second update I have first fixed a major bug. When building
different branches of Guix and evaluating package derivations the
results were always the same. The issue was that the evaluations were
happening in the same Guile process which does not play well with module
changes. To fix that I have used a separate process + pipe to get the
evaluation results.
In the last update, I have introduced usage of SRFI-9 records for
specifications, jobs, and builds. While they are nice to organize data,
they have major drawbacks:
- not flexible when you want to informally create a container.
- require serialization when passing them throught pipes.
For those reasons I have switched to good ol' alists, which are flexible,
persistant, directly readable and don't require messing with load paths.
The downside is of course that there is no compile time checks when
manipulating data.
As stated in my last update. I have been working on storing data in a
database. For that I have decided to use Guile-sqlite3. The principal
efforts have consist of using an external schema file and design it.
I have come up with this, but this will likely evolve in the future:
--8<---------------cut here---------------start------------->8---
CREATE TABLE Specifications (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
repo_name TEXT NOT NULL,
url TEXT NOT NULL,
load_path TEXT NOT NULL,
file TEXT NOT NULL,
proc TEXT NOT NULL,
arguments TEXT NOT NULL,
-- The following columns are optional.
branch TEXT,
tag TEXT,
revision TEXT
);
CREATE TABLE Evaluations (
derivation TEXT NOT NULL PRIMARY KEY,
job_name TEXT NOT NULL,
specification INTEGER NOT NULL,
FOREIGN KEY (specification) REFERENCES Specifications (id)
);
CREATE TABLE Builds (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
derivation TEXT NOT NULL,
log TEXT NOT NULL,
output TEXT, -- NULL if build failed
FOREIGN KEY (derivation) REFERENCES Evaluations (derivation)
);
--8<---------------cut here---------------end--------------->8---
The next step will be to continue improving the database communication,
and start looking how to implement the HTTP API.
For those willing to follow my work, a Git repository is available here:
https://notabug.org/mthl/cuirass
Everyone is of course welcome to provide any feedback.
Thanks.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-25 0:30 ` Mathieu Lirzin
@ 2016-07-25 21:36 ` Ludovic Courtès
2016-07-27 14:28 ` Mathieu Lirzin
2016-07-29 11:20 ` Florian Paul Schmidt
0 siblings, 2 replies; 20+ messages in thread
From: Ludovic Courtès @ 2016-07-25 21:36 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Hello!
Mathieu Lirzin <mthl@gnu.org> skribis:
> Since my second update I have first fixed a major bug. When building
> different branches of Guix and evaluating package derivations the
> results were always the same. The issue was that the evaluations were
> happening in the same Guile process which does not play well with module
> changes. To fix that I have used a separate process + pipe to get the
> evaluation results.
Sounds good. Using a separate process makes sure what’s evaluated
doesn’t erroneously ends up using modules already loaded by the
evaluator, and vice versa.
> In the last update, I have introduced usage of SRFI-9 records for
> specifications, jobs, and builds. While they are nice to organize data,
> they have major drawbacks:
>
> - not flexible when you want to informally create a container.
> - require serialization when passing them throught pipes.
>
> For those reasons I have switched to good ol' alists, which are flexible,
> persistant, directly readable and don't require messing with load paths.
> The downside is of course that there is no compile time checks when
> manipulating data.
OK.
> As stated in my last update. I have been working on storing data in a
> database. For that I have decided to use Guile-sqlite3. The principal
> efforts have consist of using an external schema file and design it.
>
> I have come up with this, but this will likely evolve in the future:
>
> CREATE TABLE Specifications (
> id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
> repo_name TEXT NOT NULL,
> url TEXT NOT NULL,
> load_path TEXT NOT NULL,
> file TEXT NOT NULL,
> proc TEXT NOT NULL,
> arguments TEXT NOT NULL,
> -- The following columns are optional.
> branch TEXT,
> tag TEXT,
> revision TEXT
> );
>
> CREATE TABLE Evaluations (
> derivation TEXT NOT NULL PRIMARY KEY,
> job_name TEXT NOT NULL,
> specification INTEGER NOT NULL,
> FOREIGN KEY (specification) REFERENCES Specifications (id)
> );
An evaluation leads to several derivations (for Guix, roughly one
derivation per package and per system type), but the table above seems
to suggest that each evaluation is mapped to only one derivation?
> CREATE TABLE Builds (
> id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
> derivation TEXT NOT NULL,
> log TEXT NOT NULL,
> output TEXT, -- NULL if build failed
> FOREIGN KEY (derivation) REFERENCES Evaluations (derivation)
> );
>
> The next step will be to continue improving the database communication,
> and start looking how to implement the HTTP API.
Cool! It seems that the database already has or is about to have the
info we typically look for at
<https://hydra.gnu.org/jobset/gnu/core-updates>: which evaluations were
performed, what commit (specification) they correspond to, which
derivations they correspond to and whether they
succeeded/failed/aborted.
If the HTTP API exposes this info, possibly using the same API as Hydra
(see guix-hydra-jobset.el), that will cover an important part of our
daily needs.
> For those willing to follow my work, a Git repository is available here:
>
> https://notabug.org/mthl/cuirass
… and the README has instructions on how to run it. If anyone has spare
CPU cycles, run Cuirass, ‘guix publish’, and share. :-)
I’m happy with the progress that’s been made, thank you!
Ludo’.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-25 21:36 ` Ludovic Courtès
@ 2016-07-27 14:28 ` Mathieu Lirzin
2016-07-28 12:38 ` Ludovic Courtès
2016-07-29 11:20 ` Florian Paul Schmidt
1 sibling, 1 reply; 20+ messages in thread
From: Mathieu Lirzin @ 2016-07-27 14:28 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
Hello,
ludo@gnu.org (Ludovic Courtès) writes:
> Mathieu Lirzin <mthl@gnu.org> skribis:
>
[...]
>> CREATE TABLE Specifications (
>> id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
>> repo_name TEXT NOT NULL,
>> url TEXT NOT NULL,
>> load_path TEXT NOT NULL,
>> file TEXT NOT NULL,
>> proc TEXT NOT NULL,
>> arguments TEXT NOT NULL,
>> -- The following columns are optional.
>> branch TEXT,
>> tag TEXT,
>> revision TEXT
>> );
>>
>> CREATE TABLE Evaluations (
>> derivation TEXT NOT NULL PRIMARY KEY,
>> job_name TEXT NOT NULL,
>> specification INTEGER NOT NULL,
>> FOREIGN KEY (specification) REFERENCES Specifications (id)
>> );
>
> An evaluation leads to several derivations (for Guix, roughly one
> derivation per package and per system type), but the table above seems
> to suggest that each evaluation is mapped to only one derivation?
In my "confused" mind each derivation was considered an individual
evaluation. But as you pointed out this makes more sense to decouple
those. Fixed in commit d493a58823aed8c556bf795d02207e57718b96c9
Thanks,
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-27 14:28 ` Mathieu Lirzin
@ 2016-07-28 12:38 ` Ludovic Courtès
0 siblings, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2016-07-28 12:38 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin <mthl@gnu.org> skribis:
> Hello,
>
> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mathieu Lirzin <mthl@gnu.org> skribis:
>>
> [...]
>>> CREATE TABLE Specifications (
>>> id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
>>> repo_name TEXT NOT NULL,
>>> url TEXT NOT NULL,
>>> load_path TEXT NOT NULL,
>>> file TEXT NOT NULL,
>>> proc TEXT NOT NULL,
>>> arguments TEXT NOT NULL,
>>> -- The following columns are optional.
>>> branch TEXT,
>>> tag TEXT,
>>> revision TEXT
>>> );
>>>
>>> CREATE TABLE Evaluations (
>>> derivation TEXT NOT NULL PRIMARY KEY,
>>> job_name TEXT NOT NULL,
>>> specification INTEGER NOT NULL,
>>> FOREIGN KEY (specification) REFERENCES Specifications (id)
>>> );
>>
>> An evaluation leads to several derivations (for Guix, roughly one
>> derivation per package and per system type), but the table above seems
>> to suggest that each evaluation is mapped to only one derivation?
>
> In my "confused" mind each derivation was considered an individual
> evaluation. But as you pointed out this makes more sense to decouple
> those. Fixed in commit d493a58823aed8c556bf795d02207e57718b96c9
Perfect, thanks!
Ludo’.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-25 21:36 ` Ludovic Courtès
2016-07-27 14:28 ` Mathieu Lirzin
@ 2016-07-29 11:20 ` Florian Paul Schmidt
2016-07-29 19:26 ` Mathieu Lirzin
1 sibling, 1 reply; 20+ messages in thread
From: Florian Paul Schmidt @ 2016-07-29 11:20 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1.1: Type: text/plain, Size: 2039 bytes --]
On 07/25/2016 11:36 PM, Ludovic Courtès wrote:
>> For those willing to follow my work, a Git repository is available here:
>>
>> https://notabug.org/mthl/cuirass
>
> … and the README has instructions on how to run it. If anyone has spare
> CPU cycles, run Cuirass, ‘guix publish’, and share. :-)
Sorry, if this mail comes around twice. Thunderbird crashed :(
Sadly the instructions to build it are a bit unclear. I tried:
fps@guix ~/cuirass$ guix environment --ad-hoc gcc gcc:lib automake guix
guile
guix environment: warning: ambiguous package specification `guile'
guix environment: warning: choosing guile-2.0.11 from
gnu/packages/guile.scm:131:2
fps@guix ~/cuirass [env]$
GUILE_LOAD_PATH=$GUILE_LOAD_PATH:/home/fps/guix/ ./configure
checking for a BSD-compatible install...
/run/current-system/profile/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p...
/run/current-system/profile/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking whether make supports nested variables... (cached) no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for pkg-config... no
checking for GUILE... no
configure: error: in `/home/fps/cuirass':
configure: error: The pkg-config script could not be found or is too
old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables GUILE_CFLAGS
and GUILE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details
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 :)
Regards,
Flo
--
https://fps.io
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-29 11:20 ` Florian Paul Schmidt
@ 2016-07-29 19:26 ` Mathieu Lirzin
2016-07-30 22:49 ` Ludovic Courtès
2016-07-31 7:09 ` Florian Paul Schmidt
0 siblings, 2 replies; 20+ messages in thread
From: Mathieu Lirzin @ 2016-07-29 19:26 UTC (permalink / raw)
To: Florian Paul Schmidt; +Cc: guix-devel
Hello,
Florian Paul Schmidt <mista.tapas@gmx.net> writes:
> On 07/25/2016 11:36 PM, Ludovic Courtès wrote:
>
>>> For those willing to follow my work, a Git repository is available here:
>>>
>>> https://notabug.org/mthl/cuirass
>>
>> … and the README has instructions on how to run it. If anyone has spare
>> CPU cycles, run Cuirass, ‘guix publish’, and share. :-)
>
> Sorry, if this mail comes around twice. Thunderbird crashed :(
>
> Sadly the instructions to build it are a bit unclear. I tried:
>
> fps@guix ~/cuirass$ guix environment --ad-hoc gcc gcc:lib automake guix
> guile
> guix environment: warning: ambiguous package specification `guile'
> guix environment: warning: choosing guile-2.0.11 from
> gnu/packages/guile.scm:131:2
> fps@guix ~/cuirass [env]$
> GUILE_LOAD_PATH=$GUILE_LOAD_PATH:/home/fps/guix/ ./configure
>
>
>
>
> checking for a BSD-compatible install...
> /run/current-system/profile/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p...
> /run/current-system/profile/bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... no
> checking whether make supports nested variables... no
> checking whether make supports nested variables... (cached) no
> checking build system type... x86_64-unknown-linux-gnu
> checking host system type... x86_64-unknown-linux-gnu
> checking for pkg-config... no
> checking for GUILE... no
> configure: error: in `/home/fps/cuirass':
> configure: error: The pkg-config script could not be found or is too
> old. Make sure it
> is in your PATH or set the PKG_CONFIG environment variable to the full
> path to pkg-config.
>
> Alternatively, you may set the environment variables GUILE_CFLAGS
> and GUILE_LIBS to avoid the need to call pkg-config.
> See the pkg-config man page for more details.
>
> To get pkg-config, see <http://pkg-config.freedesktop.org/>.
> See `config.log' for more details
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.
Thank you for your feedback.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-29 19:26 ` Mathieu Lirzin
@ 2016-07-30 22:49 ` Ludovic Courtès
2016-07-31 7:09 ` Florian Paul Schmidt
1 sibling, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2016-07-30 22:49 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
Mathieu Lirzin <mthl@gnu.org> 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")?
Ludo’.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-29 19:26 ` Mathieu Lirzin
2016-07-30 22:49 ` Ludovic Courtès
@ 2016-07-31 7:09 ` Florian Paul Schmidt
2016-07-31 12:03 ` Mathieu Lirzin
1 sibling, 1 reply; 20+ messages in thread
From: Florian Paul Schmidt @ 2016-07-31 7:09 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
[-- Attachment #1.1: Type: text/plain, Size: 4965 bytes --]
Hi!
On 07/29/2016 09:26 PM, Mathieu Lirzin wrote:
>> To get pkg-config, see <http://pkg-config.freedesktop.org/>.
>> See `config.log' for more details
>
> 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.
Yes, that makes configure run fine. Thanks
This is what I get when I run it:
fps@guix ~/cuirass [env]$ ./pre-inst-env cuirass
--specifications=tests/hello-singleton.scm --database=test.db
Cloning into 'guix'...
remote: Counting objects: 101761, done.
remote: Compressing objects: 100% (28866/28866), done.
remote: Total 101761 (delta 74214), reused 99101 (delta 72173)
Receiving objects: 100% (101761/101761), 35.86 MiB | 6.27 MiB/s, done.
Resolving deltas: 100% (74214/74214), done.
Checking connectivity... done.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
+ exec autoreconf -vfi
./bootstrap: line 5: exec: autoreconf: not found
In execvp of ./configure: No such file or directory
In execvp of make: No such file or directory
;;; note: source file /home/fps/.cache/cuirass/guix/./guix/derivations.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/derivations.go
;;; note: source file /home/fps/.cache/cuirass/guix/./guix/store.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/store.go
;;; note: source file /home/fps/.cache/cuirass/guix/./guix/utils.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/utils.go
;;; note: source file /home/fps/.cache/cuirass/guix/./guix/combinators.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/combinators.go
;;; note: source file /home/fps/.cache/cuirass/guix/./guix/build/utils.scm
[.... more here ....]
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/unrtf.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/unrtf.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/uucp.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/uucp.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/vtk.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/vtk.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/wdiff.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/wdiff.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/wine.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/wine.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/xfce.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/xfce.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/xnee.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/xnee.go
;;; note: source file
/home/fps/.cache/cuirass/guix/./gnu/packages/yubico.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/yubico.go
;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/zsh.scm
;;; newer than compiled
/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/zsh.go
evaluate 'hello-2.10.x86_64-linux': 32.563 seconds
building /gnu/store/cw502hifb3q32h2x0gl1afgzmbx9295y-hello-2.10.drv...
/gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
^C
fps@guix ~/cuirass [env]$
And then:
fps@guix ~/cuirass [env]$ ./pre-inst-env cuirass --database=test.db
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
[....]
Is that the expected output/behaviour?
Regards,
Flo
--
https://fps.io
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-31 7:09 ` Florian Paul Schmidt
@ 2016-07-31 12:03 ` Mathieu Lirzin
2016-08-01 18:55 ` Florian Paul Schmidt
0 siblings, 1 reply; 20+ messages in thread
From: Mathieu Lirzin @ 2016-07-31 12:03 UTC (permalink / raw)
To: Florian Paul Schmidt; +Cc: guix-devel
Hi,
Florian Paul Schmidt <mista.tapas@gmx.net> writes:
> On 07/29/2016 09:26 PM, Mathieu Lirzin wrote:
>>> To get pkg-config, see <http://pkg-config.freedesktop.org/>.
>>> See `config.log' for more details
>>
>> 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.
>
> Yes, that makes configure run fine. Thanks
Cool. :)
> This is what I get when I run it:
>
> fps@guix ~/cuirass [env]$ ./pre-inst-env cuirass
> --specifications=tests/hello-singleton.scm --database=test.db
> Cloning into 'guix'...
> remote: Counting objects: 101761, done.
> remote: Compressing objects: 100% (28866/28866), done.
> remote: Total 101761 (delta 74214), reused 99101 (delta 72173)
> Receiving objects: 100% (101761/101761), 35.86 MiB | 6.27 MiB/s, done.
> Resolving deltas: 100% (74214/74214), done.
> Checking connectivity... done.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> + exec autoreconf -vfi
> ./bootstrap: line 5: exec: autoreconf: not found
> In execvp of ./configure: No such file or directory
> In execvp of make: No such file or directory
> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/derivations.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/derivations.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/store.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/store.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/utils.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/utils.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/combinators.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/combinators.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/build/utils.scm
>
> [.... more here ....]
>
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/unrtf.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/unrtf.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/uucp.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/uucp.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/vtk.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/vtk.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/wdiff.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/wdiff.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/wine.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/wine.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/xfce.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/xfce.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/xnee.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/xnee.go
> ;;; note: source file
> /home/fps/.cache/cuirass/guix/./gnu/packages/yubico.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/yubico.go
> ;;; note: source file /home/fps/.cache/cuirass/guix/./gnu/packages/zsh.scm
> ;;; newer than compiled
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/zsh.go
> evaluate 'hello-2.10.x86_64-linux': 32.563 seconds
> building /gnu/store/cw502hifb3q32h2x0gl1afgzmbx9295y-hello-2.10.drv...
> /gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> ^C
> fps@guix ~/cuirass [env]$
>
> And then:
>
> fps@guix ~/cuirass [env]$ ./pre-inst-env cuirass --database=test.db
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> [....]
>
> Is that the expected output/behaviour?
Yes The output is not really explicit nor clean and should be filtered.
However this is working like intended. To explain What is happening:
> HEAD is now at XXX....
each time this line is displayed the repository is polled and if a
commit happened since, the evaluation/building process restarts which is
what the first lines was displaying.
> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
> [...]
> /gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/zsh.go
> evaluate 'hello-2.10.x86_64-linux': 32.563 seconds
> building /gnu/store/cw502hifb3q32h2x0gl1afgzmbx9295y-hello-2.10.drv...
> /gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10
If you have any suggestion to improve Cuirass, feel free to share.
Thank you very much for going this far. :)
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-07-31 12:03 ` Mathieu Lirzin
@ 2016-08-01 18:55 ` Florian Paul Schmidt
0 siblings, 0 replies; 20+ messages in thread
From: Florian Paul Schmidt @ 2016-08-01 18:55 UTC (permalink / raw)
To: Mathieu Lirzin; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 6529 bytes --]
Hi again. Sorry I'm on vacation in Sweden so the formatting of this mail suffered ;) The one thing that had me worried was the errors right after the git pull..
Regards,
Flo
On July 31, 2016 2:03:59 PM GMT+02:00, Mathieu Lirzin <mthl@gnu.org> wrote:
>Hi,
>
>Florian Paul Schmidt <mista.tapas@gmx.net> writes:
>
>> On 07/29/2016 09:26 PM, Mathieu Lirzin wrote:
>>>> To get pkg-config, see <http://pkg-config.freedesktop.org/>.
>>>> See `config.log' for more details
>>>
>>> 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.
>>
>> Yes, that makes configure run fine. Thanks
>
>Cool. :)
>
>> This is what I get when I run it:
>>
>> fps@guix ~/cuirass [env]$ ./pre-inst-env cuirass
>> --specifications=tests/hello-singleton.scm --database=test.db
>> Cloning into 'guix'...
>> remote: Counting objects: 101761, done.
>> remote: Compressing objects: 100% (28866/28866), done.
>> remote: Total 101761 (delta 74214), reused 99101 (delta 72173)
>> Receiving objects: 100% (101761/101761), 35.86 MiB | 6.27 MiB/s,
>done.
>> Resolving deltas: 100% (74214/74214), done.
>> Checking connectivity... done.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> + exec autoreconf -vfi
>> ./bootstrap: line 5: exec: autoreconf: not found
>> In execvp of ./configure: No such file or directory
>> In execvp of make: No such file or directory
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./guix/derivations.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/derivations.go
>> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/store.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/store.go
>> ;;; note: source file /home/fps/.cache/cuirass/guix/./guix/utils.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/utils.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./guix/combinators.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/guix/combinators.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./guix/build/utils.scm
>>
>> [.... more here ....]
>>
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/unrtf.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/unrtf.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/uucp.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/uucp.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/vtk.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/vtk.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/wdiff.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/wdiff.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/wine.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/wine.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/xfce.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/xfce.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/xnee.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/xnee.go
>> ;;; note: source file
>> /home/fps/.cache/cuirass/guix/./gnu/packages/yubico.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/yubico.go
>> ;;; note: source file
>/home/fps/.cache/cuirass/guix/./gnu/packages/zsh.scm
>> ;;; newer than compiled
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/zsh.go
>> evaluate 'hello-2.10.x86_64-linux': 32.563 seconds
>> building
>/gnu/store/cw502hifb3q32h2x0gl1afgzmbx9295y-hello-2.10.drv...
>> /gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> ^C
>> fps@guix ~/cuirass [env]$
>>
>> And then:
>>
>> fps@guix ~/cuirass [env]$ ./pre-inst-env cuirass --database=test.db
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> [....]
>>
>> Is that the expected output/behaviour?
>
>Yes The output is not really explicit nor clean and should be filtered.
>However this is working like intended. To explain What is happening:
>
> > HEAD is now at XXX....
>
>each time this line is displayed the repository is polled and if a
>commit happened since, the evaluation/building process restarts which
>is
>what the first lines was displaying.
>
>> HEAD is now at 2fa66f4 gnu: mutt: Update to 1.6.2.
>> [...]
>>
>/gnu/store/044sj7g4gxmy9garq6ii5aips4jn6hr6-profile/share/guile/site/2.0/gnu/packages/zsh.go
>> evaluate 'hello-2.10.x86_64-linux': 32.563 seconds
>> building
>/gnu/store/cw502hifb3q32h2x0gl1afgzmbx9295y-hello-2.10.drv...
>> /gnu/store/zby49aqfbd9w9br4l52mvb3y6f9vfv22-hello-2.10
>
>If you have any suggestion to improve Cuirass, feel free to share.
>Thank you very much for going this far. :)
>
>--
>Mathieu Lirzin
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
[-- Attachment #2: Type: text/html, Size: 7816 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
@ 2016-08-06 11:05 David Craven
2016-08-06 16:19 ` Mark H Weaver
2016-08-06 23:45 ` Mathieu Lirzin
0 siblings, 2 replies; 20+ messages in thread
From: David Craven @ 2016-08-06 11:05 UTC (permalink / raw)
To: guix-devel
Hi Mathieu,
Are you already working on a package/service for guix?
I'd like to deploy it to my server to avoid silly mistakes
like in my last two pushes to master...
Does it rebuild from commit individually or only HEAD?
This would be nice to check for rebase mistakes where
HEAD builds but a commit doesn't.
Does it already support building packages for all guix
supported systems?
```
(define (local-file file)
;; In the common case jobs will be defined relative to the repository.
;; However for testing purpose use local gnu-system.scm instead.
(string-append (dirname (current-filename)) "/" file))
(define hello-master
`((#:name . "guix")
(#:url . "git://git.savannah.gnu.org/guix.git")
(#:load-path . ".")
(#:file . ,(local-file "gnu-system.scm"))
(#:proc . hydra-jobs)
(#:arguments (subset . "hello"))
(#:branch . "master")))
(list hello-master)
```
Can I also define custom jobs like running guix --rounds=2 and
guix lint?
Thank you,
David
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-08-06 11:05 [GSoC] Continuous integration tool à la Hydra David Craven
@ 2016-08-06 16:19 ` Mark H Weaver
2016-08-06 16:23 ` David Craven
2016-08-06 23:45 ` Mathieu Lirzin
1 sibling, 1 reply; 20+ messages in thread
From: Mark H Weaver @ 2016-08-06 16:19 UTC (permalink / raw)
To: David Craven; +Cc: guix-devel
David Craven <david@craven.ch> writes:
> Hi Mathieu,
>
> Are you already working on a package/service for guix?
>
> I'd like to deploy it to my server to avoid silly mistakes
> like in my last two pushes to master...
>
> Does it rebuild from commit individually or only HEAD?
> This would be nice to check for rebase mistakes where
> HEAD builds but a commit doesn't.
We don't have enough build farm capacity to make it practical to check
every commit. It might make sense to include an option for this, but
most of the time we'd need to disable it.
Mark
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-08-06 16:19 ` Mark H Weaver
@ 2016-08-06 16:23 ` David Craven
2016-08-06 16:58 ` David Craven
0 siblings, 1 reply; 20+ messages in thread
From: David Craven @ 2016-08-06 16:23 UTC (permalink / raw)
To: Mark H Weaver; +Cc: guix-devel
> We don't have enough build farm capacity to make it practical to check
> every commit. It might make sense to include an option for this, but
> most of the time we'd need to disable it.
I understand that, but developers should have a simple way to check
their own work. Hopefully commits made to master are good commits
and hydra only has to rebuild from HEAD.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-08-06 16:23 ` David Craven
@ 2016-08-06 16:58 ` David Craven
0 siblings, 0 replies; 20+ messages in thread
From: David Craven @ 2016-08-06 16:58 UTC (permalink / raw)
To: Mark H Weaver; +Cc: guix-devel
> I understand that, but developers should have a simple way to check
> their own work. Hopefully commits made to master are good commits
> and hydra only has to rebuild from HEAD.
It would also be nice if developers could easily hook up their servers to
the guix build farm, if I do run my own continuous integration system,
my server would be idling most of the time anyway, so it would be
nice to use that time.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [GSoC] Continuous integration tool à la Hydra.
2016-08-06 11:05 [GSoC] Continuous integration tool à la Hydra David Craven
2016-08-06 16:19 ` Mark H Weaver
@ 2016-08-06 23:45 ` Mathieu Lirzin
1 sibling, 0 replies; 20+ messages in thread
From: Mathieu Lirzin @ 2016-08-06 23:45 UTC (permalink / raw)
To: David Craven; +Cc: guix-devel
Hello David,
David Craven <david@craven.ch> writes:
> Are you already working on a package/service for guix?
This would indeed be the goal, however I am not there yet.
> I'd like to deploy it to my server to avoid silly mistakes
> like in my last two pushes to master...
>
> Does it rebuild from commit individually or only HEAD?
> This would be nice to check for rebase mistakes where
> HEAD builds but a commit doesn't.
That would make sense as an option, however the current model is
simplistic and only evaluates the new HEAD commit.
> Does it already support building packages for all guix
> supported systems?
For now, you have to modify the 'gnu-system.scm' file to your needs to
achieve that. basically you need to define another "subset" case in
'gnu-system.scm' and adjust the '#:arguments' value in the job
specification.
> ```
> (define (local-file file)
> ;; In the common case jobs will be defined relative to the repository.
> ;; However for testing purpose use local gnu-system.scm instead.
> (string-append (dirname (current-filename)) "/" file))
> (define hello-master
> `((#:name . "guix")
> (#:url . "git://git.savannah.gnu.org/guix.git")
> (#:load-path . ".")
> (#:file . ,(local-file "gnu-system.scm"))
> (#:proc . hydra-jobs)
> (#:arguments (subset . "hello"))
> (#:branch . "master")))
> (list hello-master)
> ```
>
> Can I also define custom jobs like running guix --rounds=2 and
> guix lint?
Likewise. However this would require more work. :)
I guess the future approach will be to define both the scheme code
running on the client side and on the build (remote) side in the job
specification. I mean something similar to what Guix is doing for its
package definitions. The details are not defined yet.
Thanks for your questions.
--
Mathieu Lirzin
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2016-08-06 23:45 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-06 11:05 [GSoC] Continuous integration tool à la Hydra David Craven
2016-08-06 16:19 ` Mark H Weaver
2016-08-06 16:23 ` David Craven
2016-08-06 16:58 ` David Craven
2016-08-06 23:45 ` Mathieu Lirzin
-- strict thread matches above, loose matches on Subject: below --
2016-05-29 20:10 Mathieu Lirzin
2016-05-30 21:34 ` Ludovic Courtès
2016-05-30 21:54 ` Ludovic Courtès
2016-06-20 22:44 ` Mathieu Lirzin
2016-06-24 12:42 ` Ludovic Courtès
2016-07-25 0:30 ` Mathieu Lirzin
2016-07-25 21:36 ` Ludovic Courtès
2016-07-27 14:28 ` Mathieu Lirzin
2016-07-28 12:38 ` Ludovic Courtès
2016-07-29 11:20 ` Florian Paul Schmidt
2016-07-29 19:26 ` Mathieu Lirzin
2016-07-30 22:49 ` Ludovic Courtès
2016-07-31 7:09 ` Florian Paul Schmidt
2016-07-31 12:03 ` Mathieu Lirzin
2016-08-01 18:55 ` Florian Paul Schmidt
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).