From 37442f85e6b8b7c78a11f8bf74d8cca8097f2e1e Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sat, 20 Aug 2016 18:58:27 +0300 Subject: [PATCH] docs(CONTRIBUTING): add CONTRIBUTING.md --- CONTRIBUTING.md | 162 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..8375ac9506 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,162 @@ +# Contributing + +## Table of contents + +- [Submitting a Pull Request (PR)](#submitting-a-pull-request-pr) + - [After your pull request is merged](#after-your-pull-request-is-merged) +- [Coding Style Guidelines](#coding-style-guidelines) +- [Commit Message Guidelines](#commit-message-guidelines) + - [Commit Message Format](#commit-message-format) + - [Revert](#revert) + - [Type](#type) + - [Scope](#scope) + - [Subject](#subject) + - [Body](#body) + - [Footer](#footer) + +## Submitting a Pull Request (PR) + +Before you submit your Pull Request (PR) consider the following guidelines: + +- Search [GitHub](https://github.com/mosjs/mos/pulls) for an open or closed PR + that relates to your submission. You don't want to duplicate effort. +- Make your changes in a new git branch: + + ```shell + git checkout -b my-fix-branch master + ``` + +- Create your patch, following [code style guidelines](#coding-style-guidelines), and **including appropriate test cases**. +- Run the full test suite and ensure that all tests pass. +- Commit your changes using a descriptive commit message that follows our + [commit message conventions](#commit-message-guidelines). Adherence to these conventions + is necessary because release notes are automatically generated from these messages. + + ```shell + git commit -a + ``` + + Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. + +- Push your branch to GitHub: + + ```shell + git push origin my-fix-branch + ``` + +- In GitHub, send a pull request to `rstacruz:master`. +- If we suggest changes then: + + - Make the required updates. + - Re-run the test suites to ensure tests are still passing. + - Rebase your branch and force push to your GitHub repository (this will update your Pull Request): + + ```shell + git rebase master -i + git push -f + ``` + +That's it! Thank you for your contribution! + +### After your pull request is merged + +After your pull request is merged, you can safely delete your branch and pull the changes +from the main (upstream) repository: + +- Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows: + + ```shell + git push origin --delete my-fix-branch + ``` + +- Check out the master branch: + + ```shell + git checkout master -f + ``` + +- Delete the local branch: + + ```shell + git branch -D my-fix-branch + ``` + +- Update your master with the latest upstream version: + + ```shell + git pull --ff upstream master + ``` + +## Coding Style Guidelines + +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +Use the [Standard Style](https://github.com/feross/standard). + +## Commit Message Guidelines + +[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) + +We have very precise rules over how our git commit messages can be formatted. This leads to **more +readable messages** that are easy to follow when looking through the **project history**. Helper script `npm run commit` +provides command line based wizard to format commit message easily. + +### Commit Message Format + +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope** and a **subject**: + + (): + + + +