diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..35ae0eb --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,81 @@ +# Contributing Guidelines + +Some basic conventions for contributing to this project. + +## General + +Please make sure that there aren't existing pull requests attempting to address +the issue mentioned. Likewise, please check for issues related to update, as +someone else may be working on the issue in a branch or fork. + +* Non-trivial changes should be discussed in an issue first +* Develop in a topic branch, not master +* Squash your commits + +## Commit Message Format + +Each commit message should include a **type**, a **scope** and a **subject**: + +``` + (): +``` + +Lines should not exceed 100 characters. This allows the message to be easier to +read on GitLab as well as in various git tools and produces a nice, neat commit +log ie: + +``` + #271 feat(standard): add style config and refactor to match + #270 fix(config): only override publicPath when served by webpack + #269 feat(eslint-config-defaults): replace eslint-config-airbnb + #268 feat(config): allow user to configure webpack stats output +``` + +### Type + +Must be one of the following: + +* **feat**: A new feature +* **fix**: A bug fix +* **docs**: Documentation only changes +* **style**: Changes that do not affect the meaning of the code (white-space, + formatting, semi-colons, etc) +* **refactor**: A code change that neither fixes a bug or adds a feature +* **test**: Adding missing tests +* **chore**: Changes to the build process or auxiliary tools and libraries such + as documentation generation + +### Scope + +The scope could be anything specifying place of the commit change. For example +`security`, `api`, etc... + +### Subject + +The subject contains succinct description of the change: + +* use the imperative, present tense: "change" not "changed" nor "changes" +* don't capitalize first letter +* no dot (.) at the end + + +## Release + +Generate the changelog (by using +[conventional changelog](https://github.com/conventional-changelog]) CLI): + +```bash +$ standard-changelog --first-release +``` + +Tag the version according to the [semantic versioning rules](https://semver.org/) +and deploy the release: + +```bash +$ git tag -a 1.0.0-beta.2 +$ # Use the changelog header as tag comment. +$ git push --tags +``` + +--- +