From: ludo@gnu.org (Ludovic Courtès)
To: "Clément Lassieur" <clement@lassieur.org>
Cc: 31813@debbugs.gnu.org
Subject: [bug#31813] [PATCH] evaluate: Use a generic key to identify Cuirass arguments.
Date: Fri, 15 Jun 2018 11:23:16 +0200 [thread overview]
Message-ID: <87tvq4v1x7.fsf@gnu.org> (raw)
In-Reply-To: <87efh9ug1f.fsf@lassieur.org> ("Clément Lassieur"'s message of "Fri, 15 Jun 2018 01:03:40 +0200")
Hey!
Clément Lassieur <clement@lassieur.org> skribis:
> Ludovic Courtès <ludo@gnu.org> writes:
>
>>> @@ -98,7 +99,7 @@ building things during evaluation~%")
>>> (proc (module-ref %user-module proc-name))
>>> (commit (assq-ref spec #:current-commit))
>>> (name (assq-ref spec #:name))
>>> - (args `((,(string->symbol name)
>>> + (args `((guix
>>> (revision . ,commit)
>>> (file-name . ,source))
>>> ,@(or (assq-ref spec #:arguments) '())))
>>
>> If we do that, then everything is called ‘guix’.
>
> Why is it a problem?
In theory you can have several inputs (checkouts) to a given jobset, and
they need to have different names so that you can distinguish among
them.
> I don't think the current situation is good because:
> - a simple mistake from the user gets their build task to silently
> vanish,
> - it is inconvenient to use guix-modular.scm with several different
> specifications,
> - that #:name key is useless if users can't choose a custom name,
> - allowing custom names would make it way easier to understand
> /api/latestbuilds. For an example with custom names, see
> https://cuirass.lassieur.org:8081/api/latestbuilds?nr=100.
I agree with all this. :-) I think the custom name should appear in
the arguments passed to the build procedure, though.
>> diff --git a/src/schema.sql b/src/schema.sql
>> index 65aebbd..bad2f6d 100644
>> --- a/src/schema.sql
>> +++ b/src/schema.sql
>> @@ -1,7 +1,7 @@
>> BEGIN TRANSACTION;
>>
>> CREATE TABLE Specifications (
>> - repo_name TEXT NOT NULL PRIMARY KEY,
>> + repo_name TEXT NOT NULL,
>> url TEXT NOT NULL,
>> load_path TEXT NOT NULL,
>> file TEXT NOT NULL,
>> @@ -11,7 +11,8 @@ CREATE TABLE Specifications (
>> branch TEXT,
>> tag TEXT,
>> revision TEXT,
>> - no_compile_p INTEGER
>> + no_compile_p INTEGER,
>> + PRIMARY KEY (repo_name, branch)
>> );
>>
>> CREATE TABLE Stamps (
>>
>> ?
>>
>> That way we can have one ‘guix-modular’ job for each branch, for example.
>
> I don't think it would work because our Specifications table looks like
> this:
>
> sqlite> select * from specifications;
> guix-modular-savannah|git://git.savannah.gnu.org/guix.git|.|build-aux/cuirass/guix-modular.scm|cuirass-jobs|((systems "x86_64-linux"))|master|||1
> guix-modular-clem|git://git.lassieur.org/guix.git|.|build-aux/cuirass/guix-modular.scm|cuirass-jobs|((systems "x86_64-linux"))|master|||1
> guix-manifest-savannah|git://git.savannah.gnu.org/guix.git|.|/gnu/store/iv4p56ja708gdwvj85982srqnx2cz056-cuirass-derivations.scm|drv-list|()|master|||1
> guix-manifest-clem|git://git.lassieur.org/guix.git|.|/gnu/store/iv4p56ja708gdwvj85982srqnx2cz056-cuirass-derivations.scm|drv-list|()|master|||1
>
> and so we would have two (guix-modular, master) pairs, thus conflicting
> with the PRIMARY KEY constraint again.
Good point.
> Using an auto-incrementing ID column could work, but I don't like it
> for the reasons I explained above.
You didn’t mention auto-incrementing ID above, did you? It would seem
like a simple solution to the problem.
> :-) Yes it works well, but we use it only for 5 machines. And we only
> build the packages in our manifests (and guix-modular), which isn't
> much.
Heh, pretty cool. :-)
Thanks,
Ludo’.
next prev parent reply other threads:[~2018-06-15 9:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-13 13:50 [bug#31813] [PATCH] evaluate: Use a generic key to identify Cuirass arguments Clément Lassieur
2018-06-13 13:58 ` Mathieu Othacehe
2018-06-14 20:42 ` Ludovic Courtès
2018-06-14 23:03 ` Clément Lassieur
2018-06-15 9:23 ` Ludovic Courtès [this message]
2018-06-15 13:40 ` Clément Lassieur
2018-06-16 8:45 ` Ludovic Courtès
2018-06-18 16:16 ` bug#31813: " Clément Lassieur
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tvq4v1x7.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=31813@debbugs.gnu.org \
--cc=clement@lassieur.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 external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.