diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..dca47d0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,114 @@ +# Contributing code to the Matrix GLib SDK + +Everyone is welcome to contribute code to this SDK, provided that they +are willing to license their contributions under the same license as +the project itself. We follow a simple 'inbound=outbound' model for +contributions: the act of submitting an 'inbound' contribution means +that the contributor agrees to license the code under the same terms +as the project's overall 'outbound' license - which is the GNU Lesser +General Public License (see COPYING). + +## How to contribute + +The preferred and easiest way to contribute changes to the Matrix GLib +SDK is to fork the project on GitHub, and then create a pull request +to ask us to pull your changes into our repo +(https://help.github.com/articles/using-pull-requests/) + +**The single biggest thing you need to know is: please base your changes on +the develop branch - /not/ master.** + +We use the master branch to track the most recent release, so that +folks who blindly clone the repo and automatically check out master +get something that works. Develop is the unstable branch where all the +development actually happens: the workflow is that contributors should +fork the develop branch to make a 'feature' branch for a particular +contribution, and then make a pull request to merge this back into the +matrix.org 'official' develop branch. We use GitHub's pull request +workflow to review the contribution, and either ask you to make any +refinements needed or merge it and make them ourselves. The changes +will then land on master when we next do a release. + +## Code style + +The projects have a loosely-defined code-style, which is close to +GNOME's with a few differences. Check the source files for a hint. + +Please ensure your changes match the cosmetic style of the project, +and **never** mix cosmetic and functional changes in the same commit, +as it makes it horribly hard to review otherwise. + +## Attribution + +Everyone who contributes anything to this SDK is welcome to be listed in the +AUTHORS file for the project in question. Please feel free to include a +change to AUTHORS in your pull request to list yourself and a short +description of the area(s) you've worked on. + +## Sign off + +In order to have a concrete record that your contribution is +intentional and you agree to license it under the same terms as the +project's license, we've adopted the same lightweight approach that +the +[Linux Kernel](https://www.kernel.org/doc/Documentation/SubmittingPatches), +[Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md), +and many other projects use: the DCO +([Developer Certificate of Origin](http://developercertificate.org/)). This +is a simple declaration that you wrote the contribution or otherwise +have the right to contribute it to the SDK: + + Developer Certificate of Origin + Version 1.1 + + Copyright (C) 2004, 2006 The Linux Foundation and its contributors. + 660 York Street, Suite 102, + San Francisco, CA 94110 USA + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + + Developer's Certificate of Origin 1.1 + + By making a contribution to this project, I certify that: + + (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + + (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + + (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + + (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +If you agree to this for your contribution, then all that's needed is +to include the line in your commit or pull request comment: + + Signed-off-by: Your Name + +using your real name; unfortunately pseudonyms and anonymous +contributions can't be accepted. Git makes this trivial - just use the +`-s` flag when you do `git commit`, having first set `user.name` and +`user.email` git configs (which you should have done anyway :) + +## Conclusion + +That's it! Similar to Matrix, this SDK is a very open and project as +you might expect given our obsession with open communication. If we're +going to successfully matrix together all the fragmented communication +technologies out there we are reliant on contributions and +collaboration from the community to do so. So please get involved - +and we hope you have as much fun hacking on Matrix as we do! diff --git a/README.md b/README.md index a8f3f41..b51e8a8 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,10 @@ For a working example, see [test-client.c](src/test-client.c). For a full blown example, see [test-api-client.c](src/test-api-client.c). +# Contribution + +See the file [CONTRIBUTING.md](CONTRIBUTING.md) for details. + # Code of Conduct See the file [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details.