diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..488732a62 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,47 @@ +# Welcome to libgit2! + +We're making it easy to do interesting things with git, and we'd love to have +your help. + +## Discussion & Chat + +We hang out in the #libgit2 channel on irc.freenode.net. + +## Reporting Bugs + +First, know which version of libgit2 your problem is in. Compile and test +against the `development` branch to avoid re-reporting an issue that's already +been fixed. + +It's *incredibly* helpful to be able to reproduce the problem. Please include +a bit of code and/or a zipped repository (if possible). Note that some of the +developers are employees of GitHub, so if your repository is private, find us +on IRC and we'll figure out a way to help you. + +## Pull Requests + +Life will be a lot easier for you if you create a named branch for your +contribution, rather than just using your fork's `development`. + +It's helpful if you include a nice description of your change with your PR; if +someone has to read the whole diff to figure out why you're contributing in the +first place, you're less likely to get feedback and have your change merged in. + +## Porting Code From Other Open-Source Projects + +The most common case here is porting code from core Git. Git is a GPL project, +which means that in order to port code to this project, we need the explicit +permission of the author. Check the +[`git.git-authors`](https://github.com/libgit2/libgit2/blob/development/git.git-authors) +file for authors who have already consented; feel free to add someone if you've +obtained their consent. + +Other licenses have other requirements; check the license of the library you're +porting code *from* to see what you need to do. + +## Styleguide + +We like to keep the source code consistent and easy to read. Maintaining this +takes some discipline, but it's been more than worth it. Take a look at the +[conventions file](https://github.com/libgit2/libgit2/blob/development/CONVENTIONS). +