1# Contribution Guide
2
3We welcome and encourage community contributions to this project.
4
5Since the project is still unstable, there are specific priorities for development. Pull requests that do not address these priorities will not be accepted until this project is production ready.
6
7Please familiarize yourself with the Contribution Guidelines and Project Roadmap before contributing.
8
9There are many ways to help this projects besides contributing code:
10
11 - Fix bugs or file issues
12 - Improve the documentation
13
14<!-- START doctoc generated TOC please keep comment here to allow auto update -->
15<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
16**Table of Contents**
17
18- [Contributing Code](#contributing-code)
19- [Code Style](#code-style)
20- [Developer’s Certificate of Origin](#developer%E2%80%99s-certificate-of-origin)
21- [Pull request procedure](#pull-request-procedure)
22- [Conduct](#conduct)
23
24<!-- END doctoc generated TOC please keep comment here to allow auto update -->
25
26## Contributing Code
27
28Unless you are fixing a known bug, we **strongly** recommend discussing it with the core team via a GitHub issue before getting started to ensure your work is consistent with this project's roadmap and architecture.
29
30All contributions are made via pull request. Note that **all patches from all contributors get reviewed**. After a pull request is made other contributors will offer feedback, and if the patch passes review a maintainer will accept it with a comment. When pull requests fail testing, authors are expected to update their pull requests to address the failures until the tests pass and the pull request merges successfully.
31
32At least one review from a maintainer is required for all patches (even patches from maintainers).
33
34Reviewers should leave a "LGTM" comment once they are satisfied with the patch. If the patch was submitted by a maintainer with write access, the pull request should be merged by the submitter after review.
35
36## Code Style
37
38Please follow these guidelines when formatting source code:
39
40* Go code should match the output of `gofmt -s`
41
42## Developer’s Certificate of Origin
43
44All contributions must include acceptance of the DCO:
45
46```text
47Developer Certificate of Origin
48Version 1.1
49
50Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
51660 York Street, Suite 102,
52San Francisco, CA 94110 USA
53
54Everyone is permitted to copy and distribute verbatim copies of this
55license document, but changing it is not allowed.
56
57
58Developer's Certificate of Origin 1.1
59
60By making a contribution to this project, I certify that:
61
62(a) The contribution was created in whole or in part by me and I
63 have the right to submit it under the open source license
64 indicated in the file; or
65
66(b) The contribution is based upon previous work that, to the best
67 of my knowledge, is covered under an appropriate open source
68 license and I have the right under that license to submit that
69 work with modifications, whether created in whole or in part
70 by me, under the same open source license (unless I am
71 permitted to submit under a different license), as indicated
72 in the file; or
73
74(c) The contribution was provided directly to me by some other
75 person who certified (a), (b) or (c) and I have not modified
76 it.
77
78(d) I understand and agree that this project and the contribution
79 are public and that a record of the contribution (including all
80 personal information I submit with it, including my sign-off) is
81 maintained indefinitely and may be redistributed consistent with
82 this project or the open source license(s) involved.
83```
84
85To accept the DCO, simply add this line to each commit message with your name and email address (`git commit -s` will do this for you):
86
87```text
88Signed-off-by: Jane Example <jane@example.com>
89```
90
91For legal reasons, no anonymous or pseudonymous contributions are accepted ([contact us](mailto:aeneas@ory.am) if this is an issue).
92
93## Pull request procedure
94
95To make a pull request, you will need a GitHub account; if you are unclear on this process, see GitHub's documentation on [forking](https://help.github.com/articles/fork-a-repo) and [pull requests](https://help.github.com/articles/using-pull-requests). Pull requests should be targeted at the `master` branch. Before creating a pull request, go through this checklist:
96
971. Create a feature branch off of `master` so that changes do not get mixed up.
981. [Rebase](https://git-scm.com/book/en/Git-Branching-Rebasing) your local changes against the `master` branch.
991. Run the full project test suite with the `go test $(glide novendor)` (or equivalent) command and confirm that it passes.
1001. Run `gofmt -s` (if the project is written in Go).
1011. Accept the Developer's Certificate of Origin on all commits (see above).
1021. Ensure that each commit has a subsystem prefix (ex: `controller: `).
103
104Pull requests will be treated as "review requests," and maintainers will give feedback on the style and substance of the patch.
105
106Normally, all pull requests must include tests that test your change. Occasionally, a change will be very difficult to test for. In those cases, please include a note in your commit message explaining why.
107
108## Conduct
109
110Whether you are a regular contributor or a newcomer, we care about making this community a safe place for you and we've got your back.
111
112* We are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, disability, ethnicity, religion, or similar personal characteristic.
113* Please avoid using nicknames that might detract from a friendly, safe and welcoming environment for all.
114* Be kind and courteous. There is no need to be mean or rude.
115* We will exclude you from interaction if you insult, demean or harass anyone. In particular, we do not tolerate behavior that excludes people in socially marginalized groups.
116* Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel ops or a member of this project's core team immediately.
117* Likewise any spamming, trolling, flaming, baiting or other attention-stealing behaviour is not welcome.
118
119We welcome discussion about creating a welcoming, safe, and productive environment for the community. If you have any questions, feedback, or concerns please let us know with a GitHub issue.
View as plain text