Commit 41b00cccb14ad1ffae703fe0f7f5843a5ec7b5b0

Ben Straub 2012-11-20T20:59:58

Add contributing guidelines

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..488732a
--- /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).
+