1 | # How to contribute
|
2 |
|
3 | Third-party patches are essential for keeping joolaio great and we want to
|
4 | keep it as easy as possible to contribute changes that get things working in
|
5 | your environment. There are a few guidelines that we need contributors to
|
6 | follow so that we can have a chance of keeping on top of things.
|
7 |
|
8 | ## Getting Started
|
9 |
|
10 | * Make sure you have a [GitHub account](https://github.com/signup/free)
|
11 | * Make sure you have a [JIRA account](https://joolatech.atlassian.net/browse/JARVIS)
|
12 | * Submit a ticket for your issue (https://joolatech.atlassian.net/browse/JARVIS),
|
13 | assuming one does not already exist.
|
14 | * Clearly describe the issue including steps to reproduce when it is a bug.
|
15 | * Make sure you select the relating components to the issue.
|
16 | * Make sure you fill in the earliest version that you know has the issue.
|
17 | * Fork the repository on GitHub
|
18 |
|
19 | ## Making Changes
|
20 |
|
21 | * Create a ticket branch (name your branch JARVIS-nnn, according to the ticket you raised) from where you want to base your work.
|
22 | * This is usually the develop branch.
|
23 | * Only target release branches if you are certain your fix must be on that
|
24 | branch.
|
25 | * To quickly create a ticket branch based on master; `git branch
|
26 | feature/JARVIS-nnn develop` then checkout the new branch with `git
|
27 | checkout feature/JARVIS-nnn`. Please avoid working directly on the
|
28 | `master` branch.
|
29 | * Make commits of logical units.
|
30 | * Check for unnecessary whitespace with `git diff --check` before committing.
|
31 | * Make sure your commit messages are in the proper format `JARVIS-nnn message`.
|
32 |
|
33 | ````
|
34 | JARVIS-123 Make the example in CONTRIBUTING imperative and concrete
|
35 |
|
36 | Without this patch applied the example commit message in the CONTRIBUTING
|
37 | document is not a concrete example. This is a problem because the
|
38 | contributor is left to imagine what the commit message should look like
|
39 | based on a description rather than an example. This patch fixes the
|
40 | problem by making the example concrete and imperative.
|
41 |
|
42 | The first line is a real life imperative statement with a ticket number
|
43 | from our issue tracker. The body describes the behavior without the patch,
|
44 | why this is a problem, and how the patch fixes the problem when applied.
|
45 | ````
|
46 |
|
47 | * Make sure you have added the necessary tests for your changes.
|
48 | * Run _all_ the tests to assure nothing else was accidentally broken.
|
49 |
|
50 | ## Documentation
|
51 |
|
52 | We manage documentation using Confluence (https://joolatech.atlassian.net/wiki/display/JAD).
|
53 | For changes of a trivial nature to comments and documentation, it is not
|
54 | always necessary to update confluence. For contributions affecting documentation,
|
55 | please contact project admins to ensure you have been granted with an editor role.
|
56 |
|
57 | ## Submitting Changes
|
58 |
|
59 | * Sign the [Contributor License Agreement]().
|
60 | * Push your changes to a ticket branch in your fork of the repository.
|
61 | * Submit a pull request to the repository in the joola organization.
|
62 | * Update your JIRA ticket to mark that you have submitted code and are ready for it to be reviewed.
|
63 | * Include a link to the pull request in the ticket
|
64 |
|
65 | # Additional Resources
|
66 |
|
67 | * [Bug tracker (JIRA)](https://joolatech.atlassian.net/browse/JARVIS)
|
68 | * [Contributor License Agreement]()
|
69 | * [General GitHub documentation](http://help.github.com/)
|
70 | * [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
|
71 | * #joola.io IRC channel on freenode.org |
\ | No newline at end of file |