CONTRIBUTING.md 4.63 KB
Newer Older
1
2
# CONTRIBUTING GUIDELINES

ncanceill's avatar
ncanceill committed
3
4
Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged and appreciated.
It is also essential for the development of the project.
5

6
These guidelines are an attempt at better addressing the huge amount of pending
ncanceill's avatar
ncanceill committed
7
issues and pull requests. Please read them closely.
8

9
Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
ncanceill's avatar
ncanceill committed
10
you would make is not already covered.
11

ncanceill's avatar
ncanceill committed
12
13
14
15
16
17
18
19
* [Issues](#reporting-issues)
  * [You have a problem](#you-have-a-problem)
  * [You have a suggestion](#you-have-a-suggestion)
* [Pull Requests](#submitting-pull-requests)
  * [Getting started](#getting-started)
  * [You have a solution](#you-have-a-solution)
  * [You have an addition](#you-have-an-addition)
* [Information sources (_aka_ search)](#use-the-search-luke)
20

ncanceill's avatar
ncanceill committed
21
**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
22

ncanceill's avatar
ncanceill committed
23
## Reporting Issues
24

ncanceill's avatar
ncanceill committed
25
26
27
28
### You have a problem

Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
your problem.
29

ncanceill's avatar
ncanceill committed
30
If you find one, comment on it so we can know there are more people experiencing it.
31

ncanceill's avatar
ncanceill committed
32
33
If not, look at the [Troubleshooting](https://github.com/robbyrussell/oh-my-zsh/wiki/Troubleshooting)
page for instructions on how to gather data to better debug your problem.
34

ncanceill's avatar
ncanceill committed
35
36
Then, you can go ahead and create an issue with as much detail as you can provide.
It should include the data gathered as indicated above, along with:
37

ncanceill's avatar
ncanceill committed
38
39
40
1. How to reproduce the problem
2. What the correct behavior should be
3. What the actual behavior is
41

ncanceill's avatar
ncanceill committed
42
43
Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
(starting with `@`) in your message.
44

ncanceill's avatar
ncanceill committed
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
We will do our very best to help you.

### You have a suggestion

Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
your suggestion.

If you find one, comment on it so we can know there are more people supporting it.

If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.

## Submitting Pull Requests

### Getting started
60

ncanceill's avatar
ncanceill committed
61
62
63
You should be familiar with the basics of
[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
[properly set up](https://github.com/robbyrussell/oh-my-zsh/wiki/Contribution-Technical-Practices).
64

ncanceill's avatar
ncanceill committed
65
You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
66

ncanceill's avatar
ncanceill committed
67
68
69
70
If you create your own PR, please make sure you do it right. Also be so kind as to reference
any issue that would be solved in the PR description body,
[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
_"Fixes #XXXX"_ for issue number XXXX.
71

ncanceill's avatar
ncanceill committed
72
### You have a solution
73

ncanceill's avatar
ncanceill committed
74
75
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
your [problem](#you-have-a-problem), and any pending PR covering your solution.
76
77
78
79
80

If the solution is already reported, try it out and +1 the pull request if the
solution works ok. On the other hand, if you think your solution is better, post
it so we can have both solutions to compare.

ncanceill's avatar
ncanceill committed
81
82
If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
83

ncanceill's avatar
ncanceill committed
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
### You have an addition

Please [do not](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#dont-send-us-your-theme-for-now)
send themes for now.

Please be so kind as to [search](#use-the-search-luke) for any pending PR covering or
related to what you want to add.

If you find one, try it out and work with the author on a common solution.

If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.

----

## Use the Search, Luke

101
_May the Force (of past experiences) be with you_
ncanceill's avatar
ncanceill committed
102
103
104
105
106
107
108
109

GitHub offers [many search features](https://help.github.com/articles/searching-github/)
to help you check whether a similar contribution to yours already exists. Please search
before making any contribution, it avoids duplicates and eases maintenance. Trust me,
that works 90% of the time.

You can also take a look at the [FAQ](https://github.com/robbyrussell/oh-my-zsh/wiki/FAQ)
to be sure your contribution has not already come up.
110

ncanceill's avatar
ncanceill committed
111
112
If all fails, your thing has probably not been reported yet, so you can go ahead
and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
113
114
115

----

ncanceill's avatar
ncanceill committed
116
### You have spare time to volunteer
117
118
119
120
121

Very nice!! :)

Please have a look at the [Volunteer](https://github.com/robbyrussell/oh-my-zsh/wiki/Volunteers)
page for instructions on where to start and more.