fix: typo + new commit format
parent
7c91713f05
commit
0656dd5c42
|
|
@ -5,7 +5,7 @@ JOJ3 is the latest version of [JOJ Online Judge](https://focs.ji.sjtu.edu.cn/git
|
|||
## Simplified JOJ3 structure
|
||||
|
||||
JOJ3 takes advantage of the latest technologies in order to secure and simplify your workflow. It is composed of three main layers:
|
||||
- Heath-check: ensures your repository is healthy, eg. commit messages follow common industry standards, no unexpected files are pushed, etc.
|
||||
- Heath-check: ensures your repository is healthy, eg. commit messages follow common industry standards, no unexpected files are pushed
|
||||
- Runners and online judge: test the quality and correctness of the submitted work
|
||||
- Teapot: format all the feedback and post an issue in your repository
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ On every single push, heath-check is run, while other layers are activated based
|
|||
|
||||
All commit messages are expected to comply with [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) specifications. JOJ3 parses your commit message and based on its content will trigger different sets of actions. Any commit must be in the format
|
||||
```
|
||||
type(scope): message
|
||||
type(scope): message [footer]
|
||||
```
|
||||
#### Conventional commits format cheat-sheet
|
||||
|
||||
|
|
@ -29,25 +29,28 @@ The `type` must be one of
|
|||
- `refactor`: changes to the code which neither add a feature nor fix a bug
|
||||
- `perf`: a commit which helps improve performance
|
||||
- `test`: adding or correcting tests
|
||||
- `build`: changes affecting the build system, eg. Makefile, dependencies
|
||||
- `build`: changes affecting the build system, eg. `Makefile`, dependencies
|
||||
- `ci`: commit related to Continuous Integration (CI), eg. Gitea actions configuration
|
||||
- `chores`: changes not modifying source code or test cases
|
||||
- `revert`: revert a previous commit
|
||||
|
||||
The `scope` is defined and provided by TT for each task or each assignment. For instance, it could be `hw2/ex4` for homework 2 exercise 4 or `p1/m3` for project 1 milestone 3. If you are unsure of the scope of a task reaching to TT.
|
||||
The `scope` is defined and provided by TT for each task or each assignment. For instance, it could be `hw2/ex4` for homework 2 exercise 4 or `p1/m3` for project 1 milestone 3. If you are unsure of the scope of a task, reach out to TT.
|
||||
|
||||
The `message` should concisely describe the changes included in this commit. If `message` contains the keyword `joj` then your work will be tested for correctness through the online judge layer of JOJ3.
|
||||
The `message` should concisely describe the changes included in this commit.
|
||||
|
||||
The `footer` is used to specify what "steps" should be run, eg. `joj` to test the correctness or `build` to only compile. Footers can vary between courses and assignments, please refer to information provided by TT to know which ones are available.
|
||||
|
||||
#### Examples
|
||||
|
||||
Valid commit messages:
|
||||
```bash
|
||||
git commit -m"feat(h1/e2): skeleton" # no online-judge
|
||||
git commit -m"fix(h1/e2): allocate memory before using it" # no online-judge
|
||||
git commit -m"feat(h1e2): joj task completed" # run online-judge
|
||||
git commit -m"fix(h1/e2): joj fix for test-case 3" # run online-judge
|
||||
git commit -m"test(h1/e2): joj ensure all test-cases passed" # run online-judge
|
||||
git commit -m"docs(h1): student ids added" # no online-judge
|
||||
git commit -m"feat(h1/ex2): skeleton" # no online-judge
|
||||
git commit -m"fix(h1/ex2): allocate memory before using it" # no online-judge
|
||||
git commit -m"feat(h1ex2): task completed [joj]" # run online-judge
|
||||
git commit -m"fix(h1/ex2): test-case 3 [joj]" # run online-judge
|
||||
git commit -m"test(h1/ex2): ensure all test-cases passed [joj]" # run online-judge
|
||||
git commit -m"docs(h1): student ID added" # no online-judge
|
||||
git commit -m"feat(h4/ex3): card display completed [build]" # only compile, no online-judge
|
||||
```
|
||||
|
||||
Invalid commit message:
|
||||
|
|
@ -68,7 +71,7 @@ git push
|
|||
|
||||
### Results
|
||||
|
||||
Once you have pushed your work connect to Gitea and check the issue tab for all the feedback on your submission.
|
||||
Once you have pushed your work, connect to Gitea and check the issue tab for all the feedback on your submission.
|
||||
|
||||
## More advanced usage
|
||||
|
||||
|
|
@ -86,14 +89,14 @@ JOJ3 doesn't change the way to handle (open, create, review, and approve) Pull R
|
|||
|
||||
Add the following to your `.bashrc`
|
||||
```bash
|
||||
jojsubmit() { scope=$1; shift; git commit --allow-empty -m"test($scope): joj $@" && git push; }
|
||||
jojsubmit() { scope=$1; shift; git commit --allow-empty -m"test($scope): $@ [joj]" && git push; }
|
||||
alias joj-submit=jojsubmit
|
||||
```
|
||||
|
||||
Then submit to joj using
|
||||
Then submit to JOJ using
|
||||
```bash
|
||||
joj-submit h2/e5 # creates and pushes commit test(h2/5): joj
|
||||
joj-submit h2/e5 more tests # creates and pushes commit test(h2/e5): joj more tests
|
||||
joj-submit h2/ex5 # creates and pushes commit test(h2/x5): [joj]
|
||||
joj-submit h2/ex5 more tests # creates and pushes commit test(h2/e5): more tests [joj]
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user