docs: adding some details

李衍志523370910113 2025-06-11 22:53:31 +08:00
parent 80119f1deb
commit 185ceb0740

@ -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 `<course_name>-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 `<course_name>-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