|
| 1 | +# 💁 Contributing to this project |
| 2 | + |
| 3 | + |
| 4 | +> First off, thank you for considering contributing to this project. |
| 5 | +> It’s [people like you][ref-contributors] that keep this project alive and make it great! |
| 6 | +> Thank you! 🙏💜🎉👍 |
| 7 | +
|
| 8 | +The following is a set of **guidelines for contributing** to this project. |
| 9 | +Use your best judgment and feel free to propose changes to this document in a pull request. |
| 10 | + |
| 11 | +**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) |
| 12 | + |
| 13 | +### 💡 Your contribution - the sky is the limit 🌈 |
| 14 | + |
| 15 | +This is an open source project and we love to receive contributions from our community — [**you**][ref-contributors]! |
| 16 | + |
| 17 | +There are many ways to contribute, from writing __tutorials__ or __blog posts__, improving the [__documentation__][ref-documentation], submitting __bug reports__ and __feature requests__ or |
| 18 | +__writing code__ which can be incorporated into the repository itself. |
| 19 | + |
| 20 | +When contributing to this project, please feel free to discuss the change you wish to make via issue with the repository owners before making a change. |
| 21 | + |
| 22 | +<!--Note that we have a [code of conduct][ref-code-of-conduct], please follow it in all your interactions with the project.--> |
| 23 | + |
| 24 | +### 🐞 You want to report a bug or file an issue? |
| 25 | + |
| 26 | +1. Ensure that it was **not already reported** and is being worked on by checking [open issues][ref-issues]. |
| 27 | +2. Create a [new issue][ref-issues-new] with a **clear and descriptive title** |
| 28 | +3. Write a **detailed comment** with as much relevant information as possible including |
| 29 | + - *how to reproduce* the bug |
| 30 | + - a *code sample* or an *executable test case* demonstrating the expected behavior that is not occurring |
| 31 | + - any *files that could help* trace it down (i.e. logs) |
| 32 | + |
| 33 | +### 🩹 You wrote a patch that fixes an issue? |
| 34 | + |
| 35 | +1. Open a [new pull request (PR)][ref-pull-request-new] with the patch. |
| 36 | +2. Ensure the PR description clearly describes the problem and solution. |
| 37 | +3. Link the relevant **issue** if applicable ([how to link issues in PRs][ref-pull-request-how-to]). |
| 38 | +4. Ensure that [**no tests are failing**][ref-gh-actions] and **coding conventions** are met |
| 39 | +5. Submit the patch and await review. |
| 40 | + |
| 41 | +### 🎁 You want to suggest or contribute a new feature? |
| 42 | + |
| 43 | +That's great, thank you! You rock 🤘 |
| 44 | + |
| 45 | +If you want to dive deep and help out with development on this project, then first get the project [installed locally][ref-readme]. |
| 46 | +After that is done we suggest you have a look at tickets in our [issue tracker][ref-issues]. |
| 47 | +You can start by looking through the beginner or help-wanted issues: |
| 48 | + - [__Good first issues__][ref-issues-first] are issues which should only require a few lines of code, and a test or two. |
| 49 | + - [__Help wanted issues__][ref-issues-help] are issues which should be a bit more involved than beginner issues. |
| 50 | +These are meant to be a great way to get a smooth start and won't put you in front of the most complex parts of the system. |
| 51 | + |
| 52 | +If you are up to more challenging tasks with a bigger scope, then there are a set of tickets with a __feature__, __enhancement__ or __improvement__ tag. |
| 53 | +These tickets have a general overview and description of the work required to finish. |
| 54 | +If you want to start somewhere, this would be a good place to start. |
| 55 | +That said, these aren't necessarily the easiest tickets. |
| 56 | + |
| 57 | +For any new contributions please consider these guidelines: |
| 58 | +1. Open a [new pull request (PR)][ref-pull-request-new] with a **clear and descriptive title** |
| 59 | +2. Write a **detailed comment** with as much relevant information as possible including: |
| 60 | + - What your feature is intended to do? |
| 61 | + - How it can be used? |
| 62 | + - What alternatives where considered? |
| 63 | + - Has this feature impact on performance or stability of the project? |
| 64 | + |
| 65 | +#### Your contribution responsibilities |
| 66 | + |
| 67 | +Don't be intimidated by these responsibilities, they are easy to meet if you take your time to develop your feature 😌 |
| 68 | + |
| 69 | +- [x] Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback. |
| 70 | +- [x] Ensure (cross-)platform compatibility for every change that's accepted. An addition should not reduce the number of platforms that the project supports. |
| 71 | +- [x] Ensure **coding conventions** are met. Lint your code with the project's default tools. |
| 72 | +- [x] Add tests for your feature that prove it's working as expected. Code coverage should not drop below its previous value. |
| 73 | +- [x] Ensure none of the existing tests are failing after adding your changes. |
| 74 | +- [x] Document your public API code and ensure to add code comments where necessary. |
| 75 | + |
| 76 | + |
| 77 | +### ⚙️ How to set up the environment |
| 78 | + |
| 79 | +Please consult the [README][ref-readme] for installation instructions. |
| 80 | + |
| 81 | +<!-- REFERENCES --> |
| 82 | + |
| 83 | +[ref-code-of-conduct]: t.b.d. |
| 84 | +[ref-contributors]: https://github.com/fireblade-engine/ecs/graphs/contributors |
| 85 | +[ref-documentation]: https://github.com/fireblade-engine/ecs/wiki |
| 86 | +[ref-gh-actions]: https://github.com/fireblade-engine/ecs/actions |
| 87 | +[ref-issues-first]: https://github.com/fireblade-engine/ecs/issues?q=is%3Aopen+is%3Aissue+label%3A"good+first+issue" |
| 88 | +[ref-issues-help]: https://github.com/fireblade-engine/ecs/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted" |
| 89 | +[ref-issues-new]: https://github.com/fireblade-engine/ecs/issues/new/choose |
| 90 | +[ref-issues]: https://github.com/fireblade-engine/ecs/issues |
| 91 | +[ref-pull-request-how-to]: https://docs.github.com/en/github/writing-on-github/autolinked-references-and-urls |
| 92 | +[ref-pull-request-new]: https://github.com/fireblade-engine/ecs/compare |
| 93 | +[ref-readme]: https://github.com/fireblade-engine/ecs/blob/master/README.md |
0 commit comments