Skip to content

Latest commit

 

History

History
90 lines (62 loc) · 4.68 KB

CONTRIBUTING.md

File metadata and controls

90 lines (62 loc) · 4.68 KB

Introduction

Welcome!

First off, thank you for considering contributing to the pygamelib. We all really appreciate.

Resources

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.

Why the guidelines.

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.

How and what to contribute

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.

Ground Rules

Code of conduct and guidelines

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 pygamelib 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.

Your First Contribution

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 pygamelib
  • Help wanted issues: issues which should be a bit more involved than beginner issues.

Some resources for newcomers:

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/.

Getting started

How to submit a contribution.

The general process to submit a contribution is as follow:

  1. Create your own fork of the code
  2. Do the changes in your fork
  3. Make sure you went through the pull request checklist
  4. Submit a pull request that respects the PR template.

How to add issues

Security issues

If you find a security vulnerability, do NOT open an issue. Email hyrule.astronomy.club+security@gmail.com instead.
Let's be honest here, it is highly unlikely to happen but better safe than sorry.

Bug reports

Please follow the bug report template.

When filing an issue, make sure to answer these five questions:

  1. What version of Python are you using?
  2. What operating system and processor architecture are you using?
  3. What did you do?
  4. What did you expect to happen?
  5. What happened instead?

How to suggest a feature or enhancement

Ideally a feature request or improvement suggestion should include a description of the problem not addressed by the pygamelib, a suggestion of behavior and the solution you would like to see implemented.

In any case, there is a template that should be followed.