UNPKG

9.79 kBMarkdownView Raw
1# Contributing to Plumes project
2
3We'd love for you to contribute to our source code and to make this project even better and fun than it is
4today! Here are the guidelines we'd like you to follow:
5
6 - [Code of Conduct](#coc)
7 - [Question or Problem?](#question)
8 - [Issues and Bugs](#issue)
9 - [Feature Requests](#feature)
10 - [Submission Guidelines](#submit)
11 - [Coding Rules](#rules)
12 - [Commit Message Guidelines](#commit)
13 - [Releases](#releases)
14 - [Further Info](#info)
15
16## <a name="coc"></a> Code of Conduct
17As contributors and maintainers of the project, we pledge to respect everyone who contributes by posting issues, submitting pull requests, providing feedback in comments, and any other activities.
18
19Communication through any of project's channels (GitHub, IRC, mailing lists, Google+, Twitter, etc.) must be constructive and never resort to personal attacks, trolling, public or private harrassment, insults, or other unprofessional conduct.
20
21We promise to extend courtesy and respect to everyone involved in this project regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the project to do the same.
22
23If any member of the community violates this code of conduct, the maintainers of the project may take action, removing issues, comments, and PRs or blocking accounts as deemed appropriate.
24
25If you are subject to or witness unacceptable behavior, or have any other concerns, please contact us.
26
27## <a name="question"></a> Got a Question or Problem?
28
29If you have questions about how to use Plumes, please direct these to hello@codecorico.com.
30
31## <a name="issue"></a> Found an Issue?
32If you find a bug in the source code or a mistake in the wiki, you can help us by
33submitting an issue to the [GitHub Repository](https://github.com/CodeCorico/plumes/issues). Even better you can submit a Pull Request with a fix.
34
35**Please see the Submission Guidelines below**.
36
37## <a name="feature"></a> Want a Feature?
38You can request a new feature by submitting an issue to the [GitHub Repository](https://github.com/CodeCorico/plumes). If you
39would like to implement a new feature then consider what kind of change it is:
40
41* **Major Changes** that you wish to contribute to the project should be discussed first with us so that we can better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.
42* **Small Changes** can be crafted and submitted to the [GitHub Repository](https://github.com/CodeCorico/plumes) as a Pull Request.
43
44A new issue create a discussion thread. Other contributors can advise and contribute to your ideas. Please search whether the subject does not already exists on the [opened issues](https://github.com/CodeCorico/plumes/issues?q=is%3Aopen+is%3Aissue) before that to prevent duplicates issues.
45
46### Write a _How to reproduce_ for a bug
47
48We have a _Bug issue pattern_ that all contributor should use. When you create a new bug issue, use this format to explain your unexpected behavior:
49
50```
51**Bug**
52<BLANK LINE>
53The description of your bug
54<BLANK LINE>
55**How to reproduce**
56<BLANK LINE>
57How to reproduce your bug, step by step.
58More information you add, the faster the bug will be
59understood by other agents and corrected.
60```
61
62### Write a User Story for a new feature
63
64To help us understand what is your needs you have to use the [User Story](http://en.wikipedia.org/wiki/User_story) pattern.
65
66In Plumes, a feature needs to be in a _user story_ format that represent user's real expectations. When you create a new issue, use this format to explain your request:
67
68```
69As a <role> I want <goal/desire> so that <benefit>
70```
71
72Describe with details your role, like _daily user_ or _windows developer_ and don't forget the benefit. You can add other informations to be more understanding. Optionnaly you can add a list of **technical criteria** with actions to do.
73
74## <a name="submit"></a> Submission Guidelines
75
76### Submitting an Issue
77Before you submit your issue please search the archive, maybe your question was already answered.
78
79If your issue appears to be a bug, and hasn't been reported, open a new issue.
80Help us to maximize the effort we can spend fixing issues and adding new
81features, by not reporting duplicate issues. Providing the following information will increase the
82chances of your issue being dealt with quickly:
83
84* **Overview of the issue** - if an error is being thrown a non-minified stack trace helps
85* **Motivation for or Use Case** - explain why this is a bug for you
86* **Version(s)** - is it a regression?
87* **Browsers and Operating System** - is this a problem with all browsers or only IE8?
88* **Reproduce the error** - provide a live example (using [Plunker](http://plnkr.co) or [JSFiddle](http://jsfiddle.net)) or a unambiguous set of steps.
89* **Related issues** - has a similar issue been reported before?
90* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be causing the problem (line of code or commit)
91
92**If you get help, help others. Good karma rulez!**
93
94### Submitting a Pull Request
95Before you submit your pull request consider the following guidelines:
96
97* Search [GitHub pulls](https://github.com/CodeCorico/plumes/pulls) for an open or closed Pull Request
98 that relates to your submission. You don't want to duplicate effort.
99* Make your changes in a new git branch
100
101 ```shell
102 git checkout -b my-fix-branch master
103 ```
104
105* Create your patch, **including appropriate test cases**.
106* Follow the [Coding Rules](#rules).
107* Commit your changes using a descriptive commit message that follows the
108 [commit message conventions](#commit-message-format).
109
110 ```shell
111 git commit -a
112 ```
113 Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files.
114
115* Push your branch to GitHub:
116
117 ```shell
118 git push origin my-fix-branch
119 ```
120
121* In GitHub, send a pull request to `plumes:master`.
122* If we suggest changes then
123 * Make the required updates.
124 * Rebase your branch and force push to your GitHub repository (this will update your Pull Request):
125
126 ```shell
127 git rebase master -i
128 git push -f
129 ```
130
131That's it! Thank you for your contribution!
132
133#### After your pull request is merged
134
135After your pull request is merged, you can safely delete your branch and pull the changes
136from the main (upstream) repository:
137
138* Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows:
139
140 ```shell
141 git push origin --delete my-fix-branch
142 ```
143
144* Check out the master branch:
145
146 ```shell
147 git checkout master -f
148 ```
149
150* Delete the local branch:
151
152 ```shell
153 git branch -D my-fix-branch
154 ```
155
156* Update your master with the latest upstream version:
157
158 ```shell
159 git pull --ff upstream master
160 ```
161
162## <a name="rules"></a> Coding Rules
163To ensure consistency throughout the source code, keep these rules in mind as you are working:
164
165* All features or bug fixes **must be tested** by one or more contributors.
166
167## <a name="commit"></a> Git Commit Guidelines
168
169We have very precise rules over how our git commit messages can be formatted. This leads to **more
170readable messages** that are easy to follow when looking through the **project history**.
171
172### Commit Message Format
173Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
174format that includes a **type**, a **scope** and a **subject**:
175
176```
177<type>(<scope>): <subject>
178<BLANK LINE>
179<body>
180<BLANK LINE>
181<footer>
182```
183
184Any line of the commit message cannot be longer 100 characters! This allows the message to be easier
185to read on github as well as in various git tools.
186
187### Type
188Must be one of the following:
189
190* **chore**: Modifications on project details (like readme files)
191* **feat**: A new feature
192* **fix**: A bug fix
193* **rules**: Modifications on rules
194* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
195* **refactor**: A code change that neither fixes a bug or adds a feature
196* **perf**: A code change that improves performance
197
198### Scope
199The scope could be anything specifying place of the commit change. For example `feature`,
200`component`, `class`, etc...
201
202### Subject
203The subject contains succinct description of the change:
204
205* use the imperative, present tense: "change" not "changed" nor "changes"
206* don't capitalize first letter
207* no dot (.) at the end
208
209###Body
210Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes"
211The body should include the motivation for the change and contrast this with previous behavior.
212
213###Footer
214The footer should contain any information about **Breaking Changes** and is also the place to
215reference GitHub issues that this commit **Closes**.
216
217## <a name="releases"></a> Releases
218
219Only the lead contribution team can publish a new version. To do that, it requires that the milestone is completely finished ([Milestones](https://github.com/CodeCorico/plumes/issues/milestones?state=open)).
220
221Publish the new version:
222* Pull the last version of `master` branch
223* Build the distribution files by starting ```gulp```
224* Define the new version number (format MAJOR.MINOR.REVISION)
225* Update the `package.json` version
226* Update the `CHANGELOG.md` file with the new changes
227* Commit these changes with `chore(*): update version to 0.0.0`
228* Create a new tag on this commit named `[new version number]` (format: 0.0.0)
229* Push the branch
230* Push the new tag release with ```git push --tags```
231
232## <a name="infos"></a> Further Info
233
234Inspired file from https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md
235
\No newline at end of file