Add contributing guidelines
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
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).
+