From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [GSoC] Continuous integration tool =?utf-8?Q?=C3=A0?= la Hydra. Date: Fri, 24 Jun 2016 14:42:32 +0200 Message-ID: <874m8i69mv.fsf@gnu.org> References: <871t4ksk0n.fsf@gnu.org> <87h9cncwf3.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]:38962) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGQRa-0001K4-CD for guix-devel@gnu.org; Fri, 24 Jun 2016 08:42:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGQRY-0004pH-E0 for guix-devel@gnu.org; Fri, 24 Jun 2016 08:42:45 -0400 In-Reply-To: <87h9cncwf3.fsf@gnu.org> (Mathieu Lirzin's message of "Tue, 21 Jun 2016 00:44:48 +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: Mathieu Lirzin Cc: guix-devel Hello Mathieu! Mathieu Lirzin 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: >=20=20=20 > - '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=E2=80=99m saying =E2=80=9Cif=E2=80=9D because while Hydra uses the databa= se 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=E2=80=99s for later! Looks like a good plan anyway! Thank you, Ludo=E2=80=99.