|
| 1 | +# How to Contribute |
| 2 | + |
| 3 | +We love Pull Requests! Your contributions help make LibGit2Sharp great. |
| 4 | + |
| 5 | +## Getting Started |
| 6 | + |
| 7 | +So you want to contribute to LibGit2Sharp. Great! Contributions take many forms from |
| 8 | +submitting issues, writing documentation, to making code changes. We welcome it all. |
| 9 | + |
| 10 | +But first things first... |
| 11 | + |
| 12 | +* Make sure you have a [GitHub account](https://github.com/signup/free) |
| 13 | +* Submit a ticket for your issue, assuming one does not already exist. |
| 14 | + * Clearly describe the issue including steps to reproduce when it is a bug. |
| 15 | + * Make sure you fill in the earliest version that you know has the issue. |
| 16 | +* Fork the repository on GitHub, then clone it using your favorite Git client. |
| 17 | +* Make sure the project builds and all tests pass on your machine by running |
| 18 | + the `build.libgit2sharp.cmd` script on Windows or `build.libgit2sharp.sh` on Linux/Mac. |
| 19 | + |
| 20 | +## LibGit2 |
| 21 | + |
| 22 | +LibGit2Sharp brings all the might and speed of libgit2, a native Git implementation, to the managed world of .Net and Mono. |
| 23 | +LibGit2 is a git submodule referencing the [libgit2 project](https://github.com/libgit2/libgit2). To learn more about |
| 24 | +submodules read [here](http://git-scm.com/book/en/v2/Git-Tools-Submodules). |
| 25 | +To build libgit2 see [here](https://github.com/libgit2/libgit2sharp/wiki/How-to-build-x64-libgit2-and-LibGit2Sharp). |
| 26 | + |
| 27 | +## Making Changes |
| 28 | + |
| 29 | +* Create a topic branch off vNext (don't work directly on vNext). |
| 30 | +* Implement your feature or fix your bug. Please following existing coding styles and do not introduce new ones. |
| 31 | +* Make atomic, focused commits with good commit messages. |
| 32 | +* Make sure you have added the necessary tests for your changes. |
| 33 | +* Run _all_ the tests to assure nothing else was accidentally broken. |
| 34 | + |
| 35 | +## Submitting Changes |
| 36 | + |
| 37 | +* Push your changes to a topic branch in your fork of the repository. |
| 38 | +* Send a Pull Request targeting the vNext branch. Note what issue/issues your patch fixes. |
| 39 | + |
| 40 | +Some things that will increase the chance that your pull request is accepted. |
| 41 | + |
| 42 | +* Following existing code conventions. |
| 43 | +* Including unit tests that would otherwise fail without the patch, but pass after applying it. |
| 44 | +* Updating the documentation and tests that are affected by the contribution. |
| 45 | +* If code from elsewhere is used, proper credit and a link to the source should exist in the code comments. |
| 46 | + Then licensing issues can be checked against LibGit2Sharp's very permissive MIT based open source license. |
| 47 | +* Having a configured git client that converts line endings to LF. [See here.](https://help.github.com/articles/dealing-with-line-endings/). |
| 48 | +# Additional Resources |
| 49 | + |
| 50 | +* [General GitHub documentation](http://help.github.com/) |
| 51 | +* [GitHub pull request documentation](https://help.github.com/articles/using-pull-requests/) |
0 commit comments