108 lines
3.9 KiB
Markdown
108 lines
3.9 KiB
Markdown
## Contributing to commitizen
|
|
|
|
First of all, thank you for taking the time to contribute! 🎉
|
|
|
|
When contributing to [commitizen](https://github.com/commitizen-tools/commitizen), please first create an [issue](https://github.com/commitizen-tools/commitizen/issues) to discuss the change you wish to make before making a change.
|
|
|
|
If you're a first-time contributor, you can check the issues with [good first issue](https://github.com/commitizen-tools/commitizen/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) tag.
|
|
|
|
## Install before contributing
|
|
|
|
1. Install [poetry](https://python-poetry.org/) `>=2.0.0`, installation [pages](https://python-poetry.org/docs/#installing-with-the-official-installer)
|
|
2. Install [gpg](https://gnupg.org), installation [pages](https://gnupg.org/documentation/manuals/gnupg/Installation.html#Installation). For Mac users, you could try [homebrew](https://brew.sh/).
|
|
|
|
## Before making a pull request
|
|
|
|
1. Fork [the repository](https://github.com/commitizen-tools/commitizen).
|
|
2. Clone the repository from your GitHub.
|
|
3. Setup development environment through [poetry](https://python-poetry.org/) (`poetry install`).
|
|
4. Setup [pre-commit](https://pre-commit.com/) hook (`poetry setup-pre-commit`)
|
|
5. Check out a new branch and add your modification.
|
|
6. Add test cases for all your changes.
|
|
(We use [CodeCov](https://codecov.io/) to ensure our test coverage does not drop.)
|
|
7. Use [commitizen](https://github.com/commitizen-tools/commitizen) to do git commit. We follow [conventional commits](https://www.conventionalcommits.org/).
|
|
8. Run `poetry all` to ensure you follow the coding style and the tests pass.
|
|
9. Optionally, update the `./docs/README.md` or `docs/images/cli_help` (through running `poetry doc:screenshots`).
|
|
9. **Do not** update the `CHANGELOG.md`, it will be automatically created after merging to `master`.
|
|
10. **Do not** update the versions in the project, they will be automatically updated.
|
|
10. If your changes are about documentation. Run `poetry doc` to serve documentation locally and check whether there is any warning or error.
|
|
11. Send a [pull request](https://github.com/commitizen-tools/commitizen/pulls) 🙏
|
|
|
|
## Use of GitHub Labels
|
|
|
|
* good-first-issue *(issue only)*
|
|
* help-wanted
|
|
* issue-status: needs-triage *(issue only)* **(default label for issues)**
|
|
* issue-status: wont-fix
|
|
* issue-status: wont-implement
|
|
* issue-status: duplicate
|
|
* issue-status: invalid
|
|
* issue-status: wait-for-response
|
|
* issue-status: wait-for-implementation
|
|
* issue-status: pr-created
|
|
* pr-status: wait-for-review **(default label for PRs)**
|
|
* pr-status: reviewing
|
|
* pr-status: wait-for-modification
|
|
* pr-status: wait-for-response
|
|
* pr-status: ready-to-merge
|
|
* needs: test-case *(pr only)*
|
|
* needs: documentation *(pr only)*
|
|
* type: feature
|
|
* type: bug
|
|
* type: documentation
|
|
* type: refactor
|
|
* type: question *(issue only)*
|
|
* os: Windows
|
|
* os: Linux
|
|
* os: macOS
|
|
|
|
|
|
### Issue life cycle
|
|
|
|
```mermaid
|
|
graph TD
|
|
input[/issue created/] -->
|
|
needs-triage
|
|
needs-triage --triage--> close(wont-implement, wont-fix, duplicate, invalid)
|
|
|
|
needs-triage --triage--> wait-for-implementation
|
|
needs-triage --triage--> wait-for-response
|
|
|
|
wait-for-response --response--> needs-triage
|
|
|
|
wait-for-implementation --PR-created--> pr-created --PR-merged--> output[/close/]
|
|
|
|
close --> output[/close/]
|
|
```
|
|
|
|
### Pull request life cycle
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
input[/pull request created/] -->
|
|
wait-for-review
|
|
--start reviewing -->
|
|
reviewing
|
|
--finish review -->
|
|
reviewed{approved}
|
|
|
|
reviewed --Y-->
|
|
wait-for-merge -->
|
|
output[/merge/]
|
|
|
|
reviewed --n-->
|
|
require-more-information{require more information}
|
|
|
|
require-more-information --y-->
|
|
wait-for-response
|
|
--response-->
|
|
require-more-information
|
|
|
|
require-more-information --n-->
|
|
wait-for-modification
|
|
--modification-received-->
|
|
review
|
|
```
|
|
|
|
|
|
[conventional-commits]: https://www.conventionalcommits.org/
|