|
| 1 | +# Contributing to Sing App |
| 2 | + |
| 3 | +Your contributions are welcome and are greatly appreciated! Every little bit helps, and credit |
| 4 | +will always be given. |
| 5 | + |
| 6 | +Please take a moment to review this document in order to make the contribution process easy and |
| 7 | +effective for everyone involved. |
| 8 | + |
| 9 | +## Conduct |
| 10 | + |
| 11 | +Please, follow the [golden rule](https://en.wikipedia.org/wiki/Golden_Rule). Be respectful, even to |
| 12 | +those that are disrespectful. |
| 13 | + |
| 14 | +## Feedback |
| 15 | + |
| 16 | +Feedback is the breakfast for champions! We'd love to hear your opinions, discuss potential |
| 17 | +improvements, architecture, theory, internal implementation, etc. Please, join or start a new |
| 18 | +conversation in our [issue tracker](https://github.com/flatlogic/react-dashboard/issues). |
| 19 | + |
| 20 | +## Documentation |
| 21 | + |
| 22 | +We need your help with improving documentation to the project. This might be the easiest way for |
| 23 | +you to contribute, because you don't even need to clone the repo but can edit or create new `.md` |
| 24 | +files right from GitHub website as described [here](https://help.github.com/articles/editing-files-in-your-repository/). |
| 25 | + |
| 26 | +## Bugs & Feature Requests |
| 27 | + |
| 28 | +Before opening an issue, please: |
| 29 | + |
| 30 | +* Check [Documentation](https://demo.flatlogic.com/sing-app/documentation). |
| 31 | +* Search the [issue tracker](https://github.com/flatlogic/sing-app/issues) to make sure |
| 32 | + your issue hasn’t already been reported. |
| 33 | +* If your issue sounds more like a question, please post it on StackOverflow.com instead with the |
| 34 | + tag [sing-app](http://stackoverflow.com/questions/tagged/sing-app). |
| 35 | + |
| 36 | +## Pull Requests |
| 37 | + |
| 38 | +Before you submit a [pull request](https://help.github.com/articles/using-pull-requests/) from your |
| 39 | +forked repo, check that it meets these guidelines: |
| 40 | + |
| 41 | +* If the pull request adds functionality, the docs should be updated as part of the same PR. |
| 42 | +* Create a separate PR for each small feature or bug fix. |
| 43 | +* [Squash](http://stackoverflow.com/questions/5189560/squash-my-last-x-commits-together-using-git) |
| 44 | + your commits into one for each PR. |
| 45 | +* When contributing to an opt-in feature, apply the `[feature/...]` tag as a prefix to your PR title |
| 46 | + |
| 47 | +## Style Guide |
| 48 | + |
| 49 | +We follow [Airbnb's Style Guide](https://github.com/airbnb/javascript) for best practices writing javascript code. |
| 50 | + |
| 51 | +## Commit Message Guidelines |
| 52 | + |
| 53 | +We have very precise rules over how our git commit messages can be formatted. This leads to **more |
| 54 | +readable messages** that are easy to follow when looking through the **project history**. But also, |
| 55 | +we use the git commit messages to **generate the ngx-admin change log**. |
| 56 | + |
| 57 | +### Commit Message Format |
| 58 | +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special |
| 59 | +format that includes a **type**, a **scope** and a **subject**: |
| 60 | + |
| 61 | +``` |
| 62 | +<type>(<scope>): <subject> |
| 63 | +<BLANK LINE> |
| 64 | +<body> |
| 65 | +<BLANK LINE> |
| 66 | +<footer> |
| 67 | +``` |
| 68 | + |
| 69 | +The **header** is mandatory and the **scope** of the header is optional. |
| 70 | + |
| 71 | +Any line of the commit message cannot be longer 100 characters! This allows the message to be easier |
| 72 | +to read on GitHub as well as in various git tools. |
| 73 | + |
| 74 | +### Revert |
| 75 | +If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of |
| 76 | +the reverted commit. In the body it should say: `This reverts commit <hash>.`, where the hash is |
| 77 | +the SHA of the commit being reverted. |
| 78 | + |
| 79 | +### Type |
| 80 | +Must be one of the following: |
| 81 | + |
| 82 | +* **feat**: A new feature |
| 83 | +* **fix**: A bug fix |
| 84 | +* **docs**: Documentation only changes |
| 85 | +* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing |
| 86 | + semi-colons, etc) |
| 87 | +* **refactor**: A code change that neither fixes a bug nor adds a feature |
| 88 | +* **perf**: A code change that improves performance |
| 89 | +* **test**: Adding missing tests or correcting existing tests |
| 90 | +* **build**: Changes that affect the build system, CI configuration or external dependencies |
| 91 | + (example scopes: gulp, broccoli, npm) |
| 92 | +* **chore**: Other changes that don't modify `src` or `test` files |
| 93 | +* **relese**: Release version commit |
| 94 | + |
| 95 | +### Scope |
| 96 | +The scope could be anything specifying place of the commit change. For example |
| 97 | +`menu`, `sidebar`, etc. |
| 98 | + |
| 99 | +### Subject |
| 100 | +The subject contains succinct description of the change: |
| 101 | + |
| 102 | +* use the imperative, present tense: "change" not "changed" nor "changes" |
| 103 | +* don't capitalize first letter |
| 104 | +* no dot (.) at the end |
| 105 | + |
| 106 | +### Body |
| 107 | +Optional. Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". |
| 108 | +The body should include the motivation for the change and contrast this with previous behavior. |
| 109 | + |
| 110 | +### Footer |
| 111 | +Optional. The footer should contain any information about **Breaking Changes** and is also the place to |
| 112 | +reference GitHub issues that this commit **Closes**. |
| 113 | + |
| 114 | +**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. |
| 115 | +The rest of the commit message is then used for this. |
| 116 | + |
| 117 | +## License |
| 118 | + |
| 119 | +By contributing to Sing App, you agree that your contributions will be licensed under its |
| 120 | +[MIT license](https://github.com/flatlogic/sing-app/blob/master/LICENSE). |
0 commit comments