# Contributing to CSSComb ## Table of Contents - [Pull requests](#pull-requests) - [For maintainers](#for-maintainers) ## Pull requests #### 1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, and configure the remotes: a. Clone your fork of the repo into the current directory ```bash git clone https://github.com//csscomb.js ``` b. Navigate to the newly cloned directory ```bash cd csscomb.js ``` c. Assign the original repo to a remote called `upstream` ```bash git remote add upstream https://github.com/csscomb/csscomb.js ``` #### 2. If you cloned a while ago, get the latest changes from upstream: ```bash git checkout dev git pull upstream dev ``` > **IMPORTANT**: We are using `dev` branch for development, not `master`. #### 3. Create a topic branch for your feature, change, or fix: ```bash git checkout -b ``` #### 4. Patches and features will not be accepted without tests. Run `npm test` to check that all tests pass after you've made changes. #### 5. Update the `README.md` or [docs](https://github.com/csscomb/csscomb.js/tree/master/doc) if there were corresponding changes or new options. #### 6. Locally rebase the upstream development branch into your topic branch: ```bash git pull --rebase upstream dev ``` #### 7. Push your topic branch up to your fork: ```bash git push origin ``` #### 8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) to a `dev` branch with a clear title and description. ## For maintainers ### Submitting changes 1. All non-trivial changes should be put up for review using GitHub Pull Requests. 2. Your change should not be merged into `dev`, without at least one "OK" comment from another maintainer/collaborator on the project. 3. Once a feature branch has been merged into its target branch, please delete the feature branch from the remote repository. ### Releasing a new version 1. Include all new functional changes in the CHANGELOG. 2. Use a dedicated commit to increment the version. The version needs to be added to the `CHANGELOG.md` (inc. date) and the `package.json`. 3. The commit message must be of `v0.0.0` format. 4. Merge `dev` into `master`. 5. Create a tag for the version: `git tag v0.0.0`. 6. Push the changes and tags to GitHub: `git push origin dev master v0.0.0`. 7. Publish the new version to npm: `npm publish`.