Update JOJ3 Configuration Schema

manuel 2024-10-02 16:08:57 +08:00
parent 54a650d02a
commit f512cc9f0f

@ -1,11 +1,49 @@
# Basic meta config file specs
*Goals:* a single configuration file per assignment, which can easily be edited manually by TAs. This file is then parsed by joj-config-generation script to generate final internal `json` configurations files.
*Goals:* simple configuration files, which can easily be manually edited by TAs. These files is then parsed by joj-config-generation script to generate final internal `json` configurations files.
## repo level config file
Used to discover what assignment and tasks are requested and where corresponding json config files can be found.
- `assignments`: list of all assignments in this repo
- `assignment`: array of table with list of tasks
Example:
- 4 assignments
- no task for 0, tasks 2 3 4 5 and 6 can be tested on joj for h1, etc.
- tree structure: `h1/2/conf.json`
- expected joj commit: `feat[h1/2]: joj` or `fix[h2/4]: joj`
```toml
assignments = [ "h0", "h1", "h2", "h3" ]
[[assignment]]
[[assignment]]
tasks = [ 2, 3, 4, 5, 6 ]
[[assignment]]
tasks = [ 1, 2, 4, 6 ]
[[assignment]]
tasks = [ 2, 3, 4, 7 ]
```
Similarly for tree structure of type `hw1/ex7`
```toml
assignments = [ "hw0", "hw1", "hw2", "hw3" ]
[[assignment]]
[[assignment]]
tasks = [ "ex2", "ex3", "ex4", "ex5", "ex6" ]
```
## Assignment level
- hw_prefix
- hw_count
- lang
- mem_limit
- cpu_limit