diff --git a/JOJ3-Forge-configuration-documentation-for-TAs.md b/JOJ3-Forge-configuration-documentation-for-TAs.md index 85ec641..2c14694 100644 --- a/JOJ3-Forge-configuration-documentation-for-TAs.md +++ b/JOJ3-Forge-configuration-documentation-for-TAs.md @@ -1,34 +1,45 @@ # JOJ3 configuration documentation for TAs -*Goals:* simple configuration files, which can easily be manually edited by TAs. These files are then parsed by `joj-config-generation` script to generate final internal `json` configurations files used by JOJ3. +*Goals:* simple configuration files in `toml` format, which can easily be manually edited by TAs. These `toml` files are then parsed by `joj3-forge` script to generate final internal `json` configurations files used by JOJ3. Levels: -- repository: global repository configuration + +- repository: global repository configuration - assignment: eg. homework or project - task: eg. exercise or milestone A task is composed of *stages* which are composed of one or more *steps*, eg. in stage "online-judge" each test-case can be viewed as a step -## Background +## Background -Brief introduction to the structure of JOJ configuration and how it impacts students' submissions. +Brief introduction to the structure of JOJ3 configuration and how it impacts students' submissions. ### Configuration repository -All configuration is done through a `-joj` repository. TAs connect to the repository, read the -`Readme.md`, and follow instructions to setup JOJ3 for a course. If previous TAs have already -prepared JOJ3, then only testing is required. Otherwise more setup is required. +All configuration is done through a `-joj` repository, e.g. `ece281-joj`. TAs connect to the repository, read the `README.md`, and follow instructions to setup JOJ3 for a course. If previous TAs have already prepared configuration JOJ3, then only testing is required. Otherwise more setup is required. Meanwhile, TAs who want to make new testcases should follow the rule of `toml` configuration, then convert them into `json`. -The repository follow the server structure, so that deploying is can done easily using a simple -script. To find JOJ configuration files go to `home/tt/.config/joj`. Each folder should correspond -to a different assignment. This is where `.toml` files will have to be pushed in order to generate -the corresponding JOJ3 `conf.json` files. +The repository follow the server structure, so that deploying is can done easily using a simple script. To find JOJ3 configuration files go to `/home/tt/.config/joj`. Each folder should correspond to a different assignment. This is where `.toml` files will have to be pushed in order to generate the corresponding JOJ3 `conf.json` files. +The logs of JOJ3 can be found under the folder `/home/tt/.cache`, which is then visualized in `joj-mon`, who parse the logs into more readable ones. ### Commit messages When using JOJ3, Commit messages must follow conventional commits format: `type(scope): message`, where `scope` is used to track the exact task which is being worked on. +The conventional type should be: + +- **feat**: adding new features +- **fix**: fix bugs +- **docs**: only fixing the docs, without touching the code +- **style**: adjustment on the format of the code, not affecting the functionality (e.g. space, semicollon, code indentation) +- **refactor**: restructure on the code, neither fixing the bugs nor adding new functions, only optimize the structure of the code +- **perf**: enhance the performance of the code +- **test**: adding or fixing the test code, not affecting the logic of the main code +- **build**: affecting the build of the system or outer dependency (e.g. `npm`, `Makefile`) +- **ci**: fixing CI/CD configuration files or scripts (e.g. Github Actions, Gitea Actions, CircleCI) +- **chore**: other chore changes (e.g. update dependencies, constructions of tasks etc.) +- **revert**: revert the commits pushed before + Basic rules: - health check is **always** run first - all non JOJ stages are run on each push