|
| 1 | +# How to contribute |
| 2 | + |
| 3 | +Ideally, this wouldn't be a one-person project, as it would take forever. |
| 4 | +Therefore, I'm absolutely open to pull requests, as long as you realize what |
| 5 | +contributing to the project entails. |
| 6 | + |
| 7 | +## Prerequisites |
| 8 | + |
| 9 | +* Create a [GitHub account](https://github.com/signup/free) if you haven't already. |
| 10 | +* Check the [issue list](https://github.com/freem/freemlib-neogeo/issues) for your |
| 11 | +issue/idea, and if it doesn't exist already, create a new one. |
| 12 | + * For bugs, describe the issue in as much detail as you can, including steps to |
| 13 | + reproduce, if possible. Please mention the earliest version you know is affected. |
| 14 | + Failing that, just mention what version or checkout date/hash you experienced |
| 15 | + the bug on. |
| 16 | + * For new ideas/code, it is recommended to submit an issue as a feature request |
| 17 | + before immediately issuing a pull request, as discussion can be had. Of course, |
| 18 | + if your code is finished and tested, there is nothing wrong with having this |
| 19 | + discussion on a pull request. ;) |
| 20 | +* If you are able to fix a bug and feel like doing so, fork the repository on GitHub. |
| 21 | + |
| 22 | +## Make Changes |
| 23 | + |
| 24 | +* In your forked repository, create a topic branch for your upcoming patch. (e.g. `trackball-support` or `fix-banking`) |
| 25 | + * Usually this is based on the master branch. Only target release branches if |
| 26 | + you are certain your fix needs to be on that branch. |
| 27 | + * To quickly create a topic branch based on master: |
| 28 | + `git branch fix/master/my_contribution master` |
| 29 | + |
| 30 | + Then checkout the new branch with `git checkout fix/master/my_contribution`. |
| 31 | + |
| 32 | + For the time being, please avoid working directly on the `master` branch. |
| 33 | + This may change in the future, especially if ownership of the repo is |
| 34 | + transferred to a group, or if other people are added as committers. |
| 35 | +* Make sure you stick to the coding style that is used already. |
| 36 | +* Use the `.editorconfig` file if you want. It doesn't matter too much. |
| 37 | +* Make commits of logical units and describe them properly. |
| 38 | +* Ideally, check for unnecessary whitespace with `git diff --check` before committing. |
| 39 | +However, I don't even do this most days, so don't stress about it. |
| 40 | +* If possible, submit examples for your patch/new feature so it can be tested easily. |
| 41 | +* Assure nothing is broken by running all the examples. |
| 42 | + |
| 43 | +## Submit Changes |
| 44 | + |
| 45 | +* Push your changes to a topic branch in your fork of the repository. |
| 46 | +* Open a pull request on the branch you want to patch. |
| 47 | +* If not done in commit messages (which you really should do) please reference and |
| 48 | +update your issue with the code changes. But _please do not close the issue yourself_. |
| 49 | +* At this time, @freem is the arbiter of all changes. As long as your stuff works |
| 50 | +in MAME/MESS, it'll probably be accepted. If it's known to work on real hardware, |
| 51 | +then there's a very large chance it will be accepted. |
| 52 | + |
| 53 | +# Additional Resources |
| 54 | + |
| 55 | +* [General GitHub documentation](http://help.github.com/) |
| 56 | +* [GitHub pull request documentation](http://help.github.com/send-pull-requests/) |
| 57 | +* [Read the Issue Guidelines by @necolas](https://github.com/necolas/issue-guidelines/blob/master/CONTRIBUTING.md) for more details |
| 58 | +* [A Note About Git Commit Messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) |
0 commit comments