docs: adding some details
parent
80119f1deb
commit
185ceb0740
|
@ -1,34 +1,45 @@
|
||||||
# JOJ3 configuration documentation for TAs
|
# 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:
|
Levels:
|
||||||
- repository: global repository configuration
|
|
||||||
|
- repository: global repository configuration
|
||||||
- assignment: eg. homework or project
|
- assignment: eg. homework or project
|
||||||
- task: eg. exercise or milestone
|
- 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
|
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
|
### Configuration repository
|
||||||
|
|
||||||
All configuration is done through a `<course_name>-joj` repository. TAs connect to the repository, read the
|
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`.
|
||||||
`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.
|
|
||||||
|
|
||||||
The repository follow the server structure, so that deploying is can done easily using a simple
|
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.
|
||||||
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 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
|
### 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.
|
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:
|
Basic rules:
|
||||||
- health check is **always** run first
|
- health check is **always** run first
|
||||||
- all non JOJ stages are run on each push
|
- all non JOJ stages are run on each push
|
||||||
|
|
Loading…
Reference in New Issue
Block a user