43. Contributing to [PROJECT_NAME]¶
First off, thanks for taking the time to contribute! 🎉 😘 ✨
The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
43.1 Reporting bugs¶
Bugs are tracked as GitHub issues. Search the list and try to reproduce it on your local machine with a clean profile before you create an issue. When you create an issue, please provide the following information by filling in the template.
Explain the problem and include additional details to help maintainers reproduce the problem:
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible. Don't just say what you did, but explain how you did it. For example, if you moved the cursor to the end of a line, explain if you used a mouse or a keyboard.
- Provide specific examples to demonstrate the steps. Include links to files or GitHub projects, or copy/paste-able snippets, which you use in those examples. If you're providing snippets on the issue, use Markdown code blocks.
- Describe the behaviour you observed after following the steps and point out what exactly is the problem with that behaviour.
- Explain which behaviour you expected to see instead and why.
- Include screenshots and animated GIFs which show you following the described steps and clearly demonstrate the problem.
43.2 Suggesting enhancements¶
In case you want to suggest an enhancement, please follow this guideline to help maintainers and the community understand your suggestion. Before creating suggestions, please check issue list if there's already a request.
Create an issue and provide the following information:
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps. Include copy/paste-able snippets which you use in those examples, as Markdown code blocks.
- Include screenshots and animated GIFs which help demonstrate the steps or point out the part of a project to which the suggestion is related to.
- Explain why this enhancement would be useful to most users.
- List some other text editors or applications where this enhancement exists.
43.3 First code contribution¶
Unsure where to begin contributing? You can start by looking
through these document
, good first issue
and help wanted
issues:
- document issues: issues which should be reviewed or improved.
- good first issues: issues which should only require a few lines of code, and a test or two.
- help wanted issues: issues which should be a bit more involved than beginner issues.
43.4 Pull requests¶
43.4.1 Development workflow¶
- Set up your development environment
- Make changes from the right branch
- Be sure the code passes tests
- Make a pull request
43.4.2 Development environment¶
- Prepare your machine and it's packages installed.
- Checkout our repository
- Install dependencies by
pip install -r REQUIREMENTS-dev.txt
43.4.3 Make changes¶
43.4.3.1 Checkout a branch¶
- main: PR Base branch.
- production: latest release branch with distribution files. Never make a PR on this.
- gh-pages: API docs, examples and demo
43.4.3.2 Check code style¶
Run the pylance extension and make sure all the tests pass.
43.4.3.3 Test¶
Run TODO
and verify all the tests pass.
If you are adding new commands or features, they must include tests.
If you are changing functionality, update the tests if you need to.
43.4.3.4 Commit¶
Follow our commit message conventions.
43.4.4 Yes! Pull request¶
Make your pull request, then describe your changes.
43.4.4.1 Title¶
Follow other PR title formats on below.
<Type>: Short Description (fix #111)
<Type>: Short Description (fix #123, #111, #122)
<Type>: Short Description (ref #111)
- capitalise the first letter of the Type
- use present tense: 'change' not 'changed' or 'changes'
43.4.4.2 Description¶
If it has related issues, add links to the issues(like #123
) in the description.
Fill in the Pull Request Template by checking your case.
43.5 Code of conduct¶
This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behaviour to tim@kartoza.com.
This guide is based on atom contributing guide, CocoaPods and ESLint