unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: "Clément Lassieur" <clement@lassieur.org>
Cc: guix-devel@gnu.org, guix-sysadmin@gnu.org
Subject: Re: 01/01: hydra: services: Fix Cuirass configuration.
Date: Mon, 23 Jul 2018 14:58:10 +0200	[thread overview]
Message-ID: <87va96rtwd.fsf@gnu.org> (raw)
In-Reply-To: <87o9f1mrp9.fsf@lassieur.org> ("Clément Lassieur"'s message of "Sat, 21 Jul 2018 01:07:46 +0200")

Hey!

Clément Lassieur <clement@lassieur.org> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Thanks a lot for fixing it!  Cuirass is back up and running now on
>> berlin.
>
> Yay!
>
> One note though: Cuirass reads the config once, and only adds the
> specifications whose name isn't already in the database.  So it would
> have worked if you had used '() as a specification list, because the
> database was in a consistent state (thanks to the upgrade).
>
> The four specifications I added are totally useless, except for their
> names, and the fact that they describe the database.  What I mean is
> that if you change them it won't have any effect.  But if you change
> their name, Cuirass will think they are new and try to add them to the
> database.

Yeah I know, terrible.

> This behaviour is terrible, because it means the configuration is non
> deterministic.  It would be great to add a mechanism that detects
> specification changes, and updates the database accordingly.  But I'm
> not sure it's feasible.  Another solution would be to edit the database
> through a web interface, à la hydra :-), but that would require a lot of
> work.

In practice I have to admit that I add, remove, or modify specs through
the sqlite3 command line, and that’s okayish (did you know that SQL was
initially designed to be *the* user interface to the database? :-)).

Another approach would be to have part of our database available in Git
instead of in an actual database.  So Cuirass would pull its specs from
a Git repo and that’s it.  That’s less work than writing an HTTP
interface, and that’s more flexible/convenient.

>> One question: could we have a single “guix” input corresponding to
>> https://git…/guix.git for the master branch?  I suppose that should work
>> in theory?
>
> The inputs can all be named "guix", if that's what you mean.  Actually,
> they can all be named the way you want, except the 'guix-modular' ones
> that can only be named "guix" or "guix-modular"[1].  I think we should
> add an ad-hoc 'key' field to avoid that restriction.  That 'key' field
> would be the key used by the evaluator to access the 'guix-checkout'.
>
> As for allowing the same input to be used by several specifications
> (that is, a N - N relationship between the Inputs and the Specifications
> tables), it is possible, but it would require deep changes: each input
> would need to have a associated stamp in the database, and when the
> input changes, the evaluation of all its specs would need to be
> triggered.  It would be more efficient though, because it would reduce
> the number of 'git pull'.
>
> I chose to implement a N - 1 relationship between Inputs and
> Specifications because that's how Hydra does, it requires less code
> changes, and in most cases several specifications won't use the exact
> same inputs.  But we can definitely improve it if you think it's worth
> it!

OK.  Well that’s good enough for now!

Thanks for explaining!

Ludo’.

      reply	other threads:[~2018-07-23 12:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180720182934.2138.94704@vcs0.savannah.gnu.org>
     [not found] ` <20180720182935.45B8E204A2@vcs0.savannah.gnu.org>
2018-07-20 21:22   ` 01/01: hydra: services: Fix Cuirass configuration Ludovic Courtès
2018-07-20 23:07     ` Clément Lassieur
2018-07-23 12:58       ` Ludovic Courtès [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87va96rtwd.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=clement@lassieur.org \
    --cc=guix-devel@gnu.org \
    --cc=guix-sysadmin@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).