Welcome to gget's contributing guide
Thank you for investing your time in contributing to our project! Any contribution you make will be reflected on the gget repo. ✨
Read our Code of Conduct to keep our community approachable and respectable.
In this guide you will get an overview of the contribution workflow from opening an issue or creating a pull request (PR) to reviewing and merging a PR.
Issues
Create a new issue
If you spot a problem with gget or you have an idea for a new feature, check if an issue already exists. If a related issue doesn't exist, you can open a new issue using the relevant issue form.
Solve an issue
Scan through our existing issues to find one that interests you. You can narrow down the search using labels
as filters. If you find an issue to work on, you are welcome to open a PR with a fix.
Contribute through pull requests
Getting started
- Fork the repository.
-
Using GitHub Desktop:
- Getting started with GitHub Desktop will guide you through setting up Desktop.
- Once Desktop is set up, you can use it to fork the repo!
-
Using the command line:
- Fork the repo so that you can make your changes without affecting the original project until you're ready to merge them.
- Create a working branch and start with your changes!
Commit your update
Commit the changes once you are happy with them.
‼️ Self-review the following before creating a Pull Request ‼️
- Review the content for technical accuracy.
- Copy-edit the changes/comments for grammar, spelling, and adherence to the general style of existing gget code.
- Format your code using black.
- Make sure the unit tests pass:
- Developer dependencies can be installed with
pip install -r dev-requirements.txt
- Run existing unit tests from the gget repository root with
coverage run -m pytest -ra -v tests && coverage report --omit=main.py,tests*
- Developer dependencies can be installed with
- Add new unit tests if applicable:
- Arguments and expected results are stored in json files in ./tests/fixtures/
- Unit tests can be added to ./tests/test_*.py and will be automatically detected
- Make sure the edits are compatible with both the Python and the command line interface
- The command line interface and arguments are defined in ./gget/main.py
- Add new modules/arguments to the documentation if applicable:
- The manual for each module can be edited/added as ./docs/src/*.md
If you have any questions, feel free to start a discussion or create an issue as described above.
Pull Request
When you're finished with the changes, create a pull request, also known as a PR.
‼️ Please make all PRs against the dev
branch of the gget repository.
- Don't forget to link PR to issue if you are solving one.
- Enable the checkbox to allow maintainer edits so the branch can be updated for a merge.
- If you run into any merge issues, checkout this git tutorial to help you resolve merge conflicts and other issues.
Once you submit your PR, a gget team member will review your proposal. We may ask questions or request additional information.
Your PR is merged!
Congratulations! 🎉 The gget team thanks you. ✨
Once your PR is merged, your contributions will be publicly visible on the gget repo.