summaryrefslogtreecommitdiff
path: root/doc/cuirass.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/cuirass.texi')
-rw-r--r--doc/cuirass.texi59
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/cuirass.texi b/doc/cuirass.texi
index 2899ffb..a8d2af7 100644
--- a/doc/cuirass.texi
+++ b/doc/cuirass.texi
@@ -339,6 +339,65 @@ This text field holds the absolute directory name of the build output or
@code{NULL} if the build failed.
@end table
+@section Database State Machine
+
+
+ -> Read in and store @code{Specifications}
+
+ -> Main loop
+
+ -> Fetch @code{Specifications}
+
+ -> For each @code{Specification}
+
+ -> If a @code{Stamp} does not exist?
+
+ -> Create and store an @code{Evaluation}
+
+ -> For each job
+
+ -> Create a @code{Derivation}
+
+ -> Build all derivations for jobs
+
+ -> For each job
+
+ -> Create a @code{Build}
+
+
+Specification part
+
+ -> Loop
+
+ -> Read in and store @code{Specifications}
+
+ -> Trigger creating a @code{Evaluation} / @code{Stamp} ???
+
+Evaluation part
+
+ -> Check if an @code{Evaluation} / @code{Stamp} exists?
+
+ -> Create an @code{Evaluation} / @code{Stamp}
+
+ ...
+
+ -> Build all derivations for jobs
+
+ -> Trigger storing results
+
+Build results part
+
+ -> Check if the derivation has build?
+
+ -> Create a @code{Build}
+
+
+
+The database contains the following tables: @code{Specifications},
+@code{Stamps}, @code{Evaluations}, @code{Derivations}, and
+@code{Builds}. The purpose of each of these tables is explained below.
+
+
@c *********************************************************************
@node Contributing