6a6d775b31249cd0cbdfdaf6fe1e44f093c29a2b.svn-base 1.81 KB
[Grunt homepage](https://github.com/gruntjs/grunt) | [Documentation table of contents](toc.md)

# Contributing to grunt

If you want to make contributions to grunt, by all means, please do so. "Patches welcome."

## Discussing grunt

Join the [freenode](http://freenode.net/) #grunt IRC channel. We've got a bot and everything.

## Filing issues

If something isn't working like you think it should, read the [API documentation](api.md). If it still isn't working like you think it should, [file an issue](https://github.com/gruntjs/grunt/issues). If you'd like to chat directly, pop into IRC.

## Cloning grunt

first, ensure that you have the latest [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) installed.

Fork grunt in GitHub, and clone it locally:

```bash
git clone git://github.com/YOURUSERNAME/grunt.git && cd grunt
```

To download grunt dependencies and add the development `grunt` bin script to your path:

```bash
npm install && npm link
```

## Reverting back to the "live" grunt

If, for some reason, you need to revert back to the current npm grunt release, just reinstall grunt globally via:

```bash
npm install -g grunt
```

## Actually contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Fork, tweak, and make pull requests.. but `grunt` grunt first:

```bash
grunt
```

_(you shouldn't see any red or yellow when you do this)_

## One final note about contributing

I'll be completely up-front: while you know that your idea is well-reasoned and executed, I might need to be convinced of the value of incorporating it into grunt, because it might not be immediately apparent to me. Don't lose hope! All I ask is that you include, along with your pull request, an explanation of how your code is going to improve grunt. Thanks!