Skip to content

Commit

Permalink
Adds more detail to CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Tim Emiola committed May 21, 2015
1 parent 7c46d63 commit dacdde3
Showing 1 changed file with 81 additions and 54 deletions.
135 changes: 81 additions & 54 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,84 @@
# Contributing
# How to become a contributor and submit your own code

Before making any contributions, please sign one of the contributor
license agreements below.

Fork the repo, develop and test your code changes.

Install all dependencies including development requirements by running:

``` sh
$ npm install -d
```

Tests are run using mocha. To run all tests just run:

``` sh
$ npm test
```

which looks for tests in the `test/` directory.
## Contributor License Agreements

In addition, you must run the [google-api-nodejs-client][client-repo] tests, which depend upon this
library. Clone a copy of the [google-api-nodejs-client][client-repo] repo, update the dependency
to point to your local copy of the google-auth-library-nodejs repo, and ensure that the client
tests still pass.
We'd love to accept your sample apps and patches! Before we can take them, we
have to jump a couple of legal hurdles.

Your code should honor the [Google JavaScript Style Guide][js-guide].
You can use [Closure Linter][c-linter] to detect style issues.
Please fill out either the individual or corporate Contributor License Agreement
(CLA).

Submit a pull request. The repo owner will review your request. If it is
approved, the change will be merged. If it needs additional work, the repo
owner will respond with useful comments.
* If you are an individual writing original source code and you're sure you own
the intellectual property, then you'll need to sign an [individual CLA][7]

## Generating Documentation
* If you work for a company that wants to allow you to contribute your work,
then you'll need to sign a [corporate CLA][8].

You can generate the documentation for the APIs by running:
Follow either of the two links above to access the appropriate CLA and
insructions for how to sign and return it. Once we receive it, we'll be able to
accept your pull requests.

## Issue reporting

* Check that the issue has not [already been reported][1].
* Check that the issue has not already been fixed in the latest code
(a.k.a. `master`).
* Be clear, concise and precise in your description of the problem.
* Open an issue with a descriptive title and a summary in grammatically correct,
complete sentences.
* Include any relevant code to the issue summary.


## Pull requests

* Read [how to properly contribute to open source projects on Github][2].
* Fork the project.
* Install all dependencies including development requirements by running:
``` sh
$ npm install -d
```
* Use a topic/feature branch to easily amend a pull request later, if necessary.
* Write [good commit messages][3].
* Use the same coding conventions as the rest of the project.
* Commit and push until you are happy with your contribution.
* Make sure to add tests for it. This is important so I don't break it
in a future version unintentionally.
* Add an entry to the [Changelog](CHANGELOG.md) accordingly. See
[changelog entry format](#changelog-entry-format).
* Please try not to mess with the package.json or version. If you want to
have your own version, or is otherwise necessary, that is fine, but please
isolate to its own commit so I can cherry-pick around it.
* Make sure the test suite is passing
* Tests are run using mocha. To run all tests just run:
```sh
$ npm test
```
which looks for tests in the `test/` directory.
* In addition, you must run the [google-api-nodejs-client][9] tests,
which depend upon this library. Clone a copy of the
[google-api-nodejs-client][9] repo, update the dependency to point to
your local copy of the google-auth-library-nodejs repo, and ensure that the
client tests still pass.
* Make sure the no new style offenses are added. Your code should honor the
[Google JavaScript Style Guide][6].
* At least make sure no jslint errors occur. This run using npm as follows:
```sh
$ npm run lint
```
* [Squash related commits together][5].
* Open a [pull request][4] that relates to *only* one subject with a clear title
and description in grammatically correct, complete sentences.


### Changelog entry format

Here are a few examples:

``` sh
npm run generate-docs
```
* Obtains the instance email and key from gtoken ([@stephenplusplus][])
* [#36](google/google-auth-library#36) Adds an implementation of IAM authorization ([@tbetbetbe][])
```
Documentation will be generated in `docs/`.
## Preparing for release
Expand All @@ -51,24 +90,12 @@ can automate all this with a patch version bump (version += 0.0.1) by running:
npm run prepare
```
## Contributor License Agreements

Before creating a pull request, please fill out either the individual or
corporate Contributor License Agreement.

* If you are an individual writing original source code and you're sure you
own the intellectual property, then you'll need to sign an
[individual CLA][indv-cla].
* If you work for a company that wants to allow you to contribute your work
to this client library, then you'll need to sign a
[corporate CLA][corp-cla].

Follow either of the two links above to access the appropriate CLA and
instructions for how to sign and return it. Once we receive it, we'll add you
to the official list of contributors and be able to accept your patches.

[js-guide]: https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
[c-linter]: https://code.google.com/p/closure-linter/
[indv-cla]: https://developers.google.com/open-source/cla/individual
[corp-cla]: https://developers.google.com/open-source/cla/corporate
[client-repo]: https://github.com/google/google-api-nodejs-client
[1]: https://github.com/google/google-auth-nodejs-library/issues
[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request
[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[4]: https://help.github.com/articles/using-pull-requests
[5]: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
[6]: https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
[7]: https://developers.google.com/open-source/cla/individual
[8]: https://developers.google.com/open-source/cla/corporate
[9]: https://github.com/google/google-api-nodejs-client

0 comments on commit dacdde3

Please sign in to comment.