GNU bug report logs -
#32424
[PATCH] database: Add a Checkouts table.
Previous Next
Reported by: Clément Lassieur <clement <at> lassieur.org>
Date: Sat, 11 Aug 2018 22:28:01 UTC
Severity: normal
Tags: patch
Done: Clément Lassieur <clement <at> lassieur.org>
Bug is archived. No further changes may be made.
Full log
Message #16 received at 32424-done <at> debbugs.gnu.org (full text, mbox):
Ludovic Courtès <ludo <at> gnu.org> writes:
> Hello,
>
> Clément Lassieur <clement <at> lassieur.org> skribis:
>
>> It is used to know when a new evaluation must be triggered and to display
>> input changes.
>>
>> * Makefile.am (dist_sql_DATA): Add 'src/sql/upgrade-3.sql'.
>> * bin/evaluate.in (input-checkout, format-checkouts): Rename '#:name' to
>> '#:input'.
>> * doc/cuirass.texi (Stamps): Remove section.
>> (Checkouts): New section.
>> * src/cuirass/base.scm (fetch-input, fetch-inputs, compile-checkouts): Rename
>> '#:name' to '#:input'.
>> (evaluate): Remove the COMMITS argument. Add an EVAL-ID argument. Don't call
>> DB-ADD-EVALUATION because it was called sooner. Remove the EVAL-ID argument
>> to AUGMENT-JOB because it's a closure.
>> (build-packages): Add an EVAL-ID argument. Call DB-SET-EVALUATION-DONE once
>> all the derivations are registered.
>> (process-specs): Replace the stamping mechanism by the primary key constraint
>> of the Checkouts table: call "evaluate" only when DB-ADD-EVALUATION is true,
>> which means that at least one checkout was added. Change the EVALUATE and
>> BUILD-PACKAGES arguments accordingly.
>> * src/cuirass/database.scm (db-add-stamp, db-get-stamp): Remove procedures.
>> (db-set-evaluation-done): New exported procedure.
>> (db-add-checkout): New procedure that returns #f if a checkout with the same
>> revision already exists.
>> (db-add-evaluation): Replace the EVAL argument with a SPEC-NAME and a
>> CHECKOUTS arguments. Insert the evaluation only if at least one checkout was
>> inserted. Return #f otherwise.
>> (db-get-checkouts): New procedure.
>> (db-get-evaluations, db-get-evaluations-build-summary): Handle the
>> 'in_progress' column, remove the 'commits' column. Return the result of
>> DB-GET-CHECKOUTS as part of the evaluation.
>> * src/cuirass/templates.scm (input-changes, evaluation-badges): New
>> procedures.
>> (evaluation-info-table): Rename "Commits" to "Input changes". Use
>> INPUT-CHANGES to display the input changes that triggered the evaluation. Use
>> EVALUATION-BADGES to display a message indicating that the evaluation is in
>> progress.
>> * src/schema.sql (Stamps): Remove table.
>> (Checkouts): New table.
>> (Evaluations): Remove the 'commits' column. Add an 'in_progress' column.
>> * src/sql/upgrade-3.sql: New file with SQL queries to upgrade the database.
>> * tests/database.scm (make-dummy-eval): Remove procedure.
>> (make-dummy-checkouts): New procedure.
>> ("sqlite-exec"): Remove the 'commits' column. Add the 'in_progress' column.
>> ("db-update-build-status!", "db-get-builds", "db-get-pending-derivations"):
>> Update the arguments of DB-ADD-EVALUATION accordingly.
>> * tests/http.scm (hash-table=?): Add support for lists of hash tables.
>> (evaluations-query-result): Replace '#:commits' with '#:checkouts'. Return a
>> list instead of returning one element, for symmetry.
>> ("fill-db"): Add a new input so that the second checkout can refer to it.
>> Replace EVALUATION1 and EVALUATION2 with CHECKOUTS1 and CHECKOUTS2. Update
>> the arguments of DB-ADD-EVALUATION accordingly.
>> ("/api/queue?nr=100"): Take the CAR of the EVALUATIONS-QUERY-RESULT list to
>> make it symmetrical with the other argument of HASH-TABLE=?.
>
> Woow! I really like the result (nice screenshot ;-)). I took only a
> cursory look at the code, but you’re the expert now anyway, so if it
> works for you, got for it! The new ‘Checkouts’ table make sense to me.
>
>> + (log-message "Evaluation ~a for '~a' completed" eval-id spec-name)
>
> Nitpick: I prefer not to capitalize log messages because these are not
> full sentences. (No big deal though.)
>
> Thank you!
>
> Ludo’.
Pushed with that change. Thanks!
This bug report was last modified 6 years and 271 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.