16080: Writeup of CONTRIBUTING.md
[arvados.git] / CONTRIBUTING.md
1 [comment]: # (Copyright © The Arvados Authors. All rights reserved.)
2 [comment]: # ()
3 [comment]: # (SPDX-License-Identifier: CC-BY-SA-3.0)
4
5 # Contributing
6
7 Arvados is free software, which means it is free for all to use, learn
8 from, and improve.  We encourage contributions from the community that
9 improve Arvados for everyone.  Some examples of contributions are bug
10 reports, bug fixes, new features, and scripts or documentation that help
11 with using, administering, or installing Arvados.  We also love to
12 hear about Arvados success stories.
13
14 Interested contributers should begin by joining the [Arvados community
15 channel](https://gitter.im/arvados/community) and tell us what you
16 have found or how you would like to contribute.
17
18 Contributers should also create an account at https://dev.arvados.org
19 to be able to create and comment on bug tracker issues.  The
20 Arvados public bug tracker is located at
21 https://dev.arvados.org/projects/arvados/issues .
22
23 # Development
24
25 Git repositories for primary development are located at
26 https://git.arvados.org/ and can also be browsed at
27 https://dev.arvados.org/projects/arvados/repository .  Every push to
28 the master branch is also mirrored to Github at
29 https://github.com/arvados/arvados .
30
31 Visit [Hacking Arvados](https://dev.arvados.org/projects/arvados/wiki/Hacking) for
32 detailed information about setting up an Arvados development
33 environment, development process, coding standards, and notes about specific components.
34
35 # Pull requests
36
37 The preferred method for making contributions is through Github pull requests.
38
39 This is the general contribution process:
40
41 1. Fork the Arvados repository using the Github "Fork" button
42 2. Clone your fork, do your development, commit changes to your fork.
43 3. Every commit message must have a DCO sign-off and every file must have a SPDX license (see below).
44 4. When your fork is ready, through Github, Create a Pull Request against `arvados:master`
45 5. Notify the core team through the [Arvados development
46 channel](https://gitter.im/arvados/development) (or other means, such as email) about your pull request.
47 6. A member of the core team will review the pull request.  They may have questions or comments, or request changes.
48 7. When the contribution is ready, a member of the core team will
49 merge the pull request into the master branch, which will
50 automatically resolve the pull request.
51
52 The Arvados project does not require a contributor agreement in advance, but does require each commit message include a [Developer Certificate of Origin.](https://dev.arvados.org/projects/arvados/wiki/Developer_Certificate_Of_Origin .  Please ensure *every git commit message* includes `Arvados-DCO-1.1-Signed-off-by`. If you have already made commits without it, fix them with `git commit --amend` or `git rebase`.
53
54 The Developer Certificate of Origin line looks like this:
55
56 ```
57 Arvados-DCO-1.1-Signed-off-by: Joe Smith <joe.smith@example.com>
58 ```
59
60 New files must also include `SPDX-License-Identifier` at the top with one of the three Arvados open source licenses.  See [COPYING](COPYING) for details.
61
62 # Continuous integration
63
64 Continuous integration is hosted at https://ci.arvados.org/
65
66 Currently, external contributers cannot trigger builds.  We are investigating integration with Github pull requests for the future.
67
68 [![Build Status](https://ci.arvados.org/buildStatus/icon?job=run-tests)](https://ci.arvados.org/job/run-tests/)
69
70 [![Go Report Card](https://goreportcard.com/badge/github.com/arvados/arvados)](https://goreportcard.com/report/github.com/arvados/arvados)