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