diff --git a/Assignments.md b/Assignments-overview.md similarity index 94% rename from Assignments.md rename to Assignments-overview.md index 7907d3f..ccae2f0 100644 --- a/Assignments.md +++ b/Assignments-overview.md @@ -1,11 +1,7 @@ -# Assignments +# Assignments overview Assignments are programming tasks that can be tested by a worker after a user -submits their solution. - -## Configuration format - -An assignment is described by a YAML file that contains information on how to +submits their solution. An assignment is described by a YAML file that contains information on how to build, run and test it. ### Terminology @@ -62,7 +58,8 @@ These parameters are stored in global, structured parameter space. I would sugge Input parameters have two sources, some defaults are present in the configuration of the worker, another set is provided in the configuration of the job. These sets are merged, job config has a priority. -Parameters are only read by the tasks (they can be used in task parameters). Some simple syntax needs to be used for evaluation of parameter expressions -- e.g., ("${params.tests[1].memoryLimit}"). _**TODO:** analysis required -- how complex expressions do we really need_ +Parameters are only read by the tasks (they can be used in task parameters). Some simple syntax needs to be used for evaluation of parameter expressions -- e.g., ("${params.tests[1].memoryLimit}"). _Parameters should be stored in worker's global namespace. Task configuration can make references to this structure. Validity should be checked before executing first task from the job. In this structure is only writable section "results" - here are written achieved memory and time limits of each task. Whole structure is send to WebApp with all logs._ + _**TODO:** analysis required -- how complex expressions do we really need_ ### Logs There is one general (mandatory) log, where the job progress is logged. Each row corresponds to one task and it holds only the task name, task exit code (or some other indication whether the task ended OK or not), and optionally things like consumed memory and time.