From 9e8cc4f84a496bab3cf2c89e0192ad7fd894e823 Mon Sep 17 00:00:00 2001 From: manuel Date: Sat, 12 Oct 2024 22:05:10 +0800 Subject: [PATCH] feat: simplified format --- JOJ3-Configuration-Schema.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/JOJ3-Configuration-Schema.md b/JOJ3-Configuration-Schema.md index 1ae6f0d..9b3ec40 100644 --- a/JOJ3-Configuration-Schema.md +++ b/JOJ3-Configuration-Schema.md @@ -7,6 +7,8 @@ Levels: - assignment: eg. homework or project - task: eg. exercise or milestone +A task is composed of *stages* which themselves are composed of one or more *steps*. + ## Background Brief introduction to the structure of JOJ configuration and how it impacts students' submissions. @@ -54,6 +56,7 @@ It contains the part of the configuration that will be used globally for all ass - `[repo]` table: general configuration parameters - `max_size [float]`: maximum size allowed for a repo in MB - `owners [array of string]`: TT members' jaccount + - `release_tags [array of string]`: list of allowed release tags - `[files]` table: file configuration parameters - `whitelist.patterns [array of string]`: patterns of files allowed in the repository - `whitelist.file [string]`: file containing student defined patterns of files. This option should not be enabled unless strictly necessary @@ -74,6 +77,7 @@ It contains the part of the configuration that will be used globally for all ass [repo] owners = ["mac-wang", "jon-lee", "allen_wr"] # jaccounts max_size = 5 # repo max size in MB +release_tags = ["h1", "h2", "h3"] # list of valid release tags # files section # file related global parameters for the whole repo @@ -94,16 +98,18 @@ share back with students. ### General options -- global setup +- Global setup - `task [string]`: name the task (eg. an exercise or project milestone) - `stages [array of string]`: list all stages run for this task - `[stage]` table: configuration for `stage` stage - `command [string]`: command to run for `compile` stage - `file.input [array of string]`: list of files to copy to ensure command runs as expected (eg. driver and header files needed for compilation) - - `parsers [array of string]`: list of parser to run on the result of command. -- `[[stages]] [array of table]`: configuration for a list of similar stages (eg. code quality stages) -- `[[steps]] [array of table]`: configuration for list of similar steps (eg. test cases for the online judge) + - `parsers [array of string]`: list of parsers to run on the result of command + - `limit.cpu [int]`: maximum running time for the stage or step in sec + - `limit.mem [int]`: maximum amount of RAM allowed for stage of step in MB +- `[[stages]] [array of table]`: individual configuration for a group of similar stages (eg. code quality stages) +- `[[steps]] [array of table]`: individual configuration for a list of similar steps (eg. test cases for the online judge) ### Parsers @@ -124,7 +130,7 @@ Currently the following parsers are available: Note that parsers can be combined. For instance one might want to show the `diff`, `stat`, and `stderr` outputs for the online judge. -Parser can also be further configured. +Some parsers can also be further configured.
Sample task.toml