First off, thank you for considering contributing to the hac-game-lib. We all really appreciate.
Before we start, here are some valuable resources:
These guidelines are heavily insprired by https://github.com/nayafia/contributing-template/blob/master/CONTRIBUTING-template.md thanks a lot to them.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they will reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
We are always happy to receive contrbutions. There is a lot of area to contribute too:
- Documentation: the documentation needs to be up to date, so we are always happy to receive contributions on that. This includes tutorials.
- Bug fixes: PR that fix a bug. If it is not already referenced in the issue tracker, please add an issue before sending your PR.
- Improvements/new features: There is a lot of things on the roadmap, if you want to be a dedicated contributor to the point you add and maintain features you should contact us first so we add you to the dev team.
First of all, we expect everyone (contributors and maintainers alike) to respect the Code of conduct. It is not a recomandation, it is mandatory.
For all contributions, please respect the following guidelines:
- Each pull request should implement ONE feature or bugfix. If you want to add or fix more than one thing, submit more than one pull request.
- Do not commit changes to files that are irrelevant to your feature or bugfix (eg:
.gitignore
). - Do not add unnecessary dependencies.
- Remember: the hac-game-lib is supposed to require only python3, colorama and a terminal to run. Anything more needs to be discussed. Any dependency to a specific platform or OS will be refused.
- Be aware that the pull request review process is not immediate, and is generally proportional to the size of the pull request.
- Please, check the pull request checklist before submitting your PR.
If you are unsure where to begin look for the following tags:
- new coders friendly: Issues with this tag are easy to address and are well suited for new developpers that want to contribute.
- good first issue: Issues with that tag are good candidates to start contributing the hac-game-lib
- Help wanted issues: issues which should be a bit more involved than beginner issues.
Some resources for newcomers:
- https://www.firsttimersonly.com/
- http://makeapullrequest.com/
- http://www.contribution-guide.org/#contributing-to-open-source-projects
At this point let me quote from Active Admin:
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first 😸
If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.
Here is a good tutorial on rebasing: https://benmarshall.me/git-rebase/.
The general process to submit a contribution is as follow:
- Create your own fork of the code
- Do the changes in your fork
- Make sure you went through the pull request checklist
- Submit a pull request that respects the PR template.
If you find a security vulnerability, do NOT open an issue. Email [email protected] instead.
Let's be honnest here, it is highly unlikely to happen but better safe than sorry.
Please follow the bug report template.
When filing an issue, make sure to answer these five questions:
- What version of Python are you using?
- What operating system and processor architecture are you using?
- What did you do?
- What did you expect to happen?
- What happened instead?
Ideally a feature request or improvement suggestion should include a description of the problem not addressed by the hac-game-lib, a suggestion of behavior and the solution you would like to see implemented.
In any case, there is a template that should be followed.