Skip to content

Commit

Permalink
add a CONTRIBUTING.md. closes mochajs#882
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher Hiller authored and tandrewnichols committed Dec 15, 2014
1 parent 0275c92 commit 525dd09
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Contributing to Mocha

Hi! We could use your help. Let us help you help us. Or something.

## General

1. If you are looking for a place to begin, **please send PRs for bugfixes instead of new features**, and/or **look for issues labeled `PR PLEASE`.**

2. **Help with documentation and the wiki is always appreciated**.

3. Please **be courteous and constructive** when commenting on issues, commits, and pull requests.

## Bug Reports & Issues

1. When reporting a bug, please **provide steps to reproduce**. If possible, show code.

2. Please **show all code in JavaScript**. We don't all read <insert-language-that-compiles-to-JavaScript-here>. If you do not, you will be asked to.

3. Because Mocha works with many third-party libraries and tools, **ensure the bug you are reporting is actually within Mocha**.

4. If you report a bug, and it is inactive for a significant amount of time, it may be closed. **Please respond promptly to requests for more information**.

## Pull Requests

1. Before sending a large PR, it's recommended to **create an issue to propose the change**. Nobody wants to write a book of code and throw it away.

2. Because Mocha should be kept as maintainable as possible, its codebase must be kept slim. Historically, *most PRs for new features are not merged*. New features inevitably increase the size of the codebase, and thus reduce maintainability. Only features *deemed essential* are likely to be merged--this is at the discretion of the maintainer(s). If your PR for a feature is not merged, this doesn't necessarily mean your PR was a bad idea, wouldn't be used, or otherwise sucks. It just means **only essential PRs for new features are likely to be merged**.

3. Due to the above, before creating a PR for a new feature, **create an issue to propose the feature.**

4. Please **respect existing coding conventions**, whatever those may be.

5. If your PR has been waiting in limbo for some time, it's very helpful to **rebase against master**, which will make it easier to merge.

6. Please **add tests for new code**.

7. **Always run `npm test` before sending a PR. If you break the tests, your PR will not be accepted until they are fixed.

## Source Control

1. Please **squash your commits** when sending a pull request. If you are unfamiliar with this process, see [this guide](https://help.github.com/articles/about-git-rebase/). If you have already pushed your changesets and are squashing thereafter, this may necessitate the use of a "force push". Please [read the docs](http://git-scm.com/docs/git-push) before you attempt this.

2. Please **follow the commit message conventions [outlined here](https://medium.com/code-adventures/git-conventions-a940ee20862d).**

## TL;DR

**Be kind, be diligent, look before you leap into a PR, and follow common community conventions**.

*- The Mocha Team*

0 comments on commit 525dd09

Please sign in to comment.