diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee1f986004..43b88af4f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,30 @@ -# Guidelines for contributing +# Contributing to OpenLayers -## Code formatting +Thanks for your interest in contributing to OpenLayers development. Our +preferred means of receiving contributions is through [pull +requests](https://help.github.com/articles/using-pull-requests). + +Before accepting a contribution, we ask that you provide us a Contributor +License Agreement. If you are making your contribution as part of work for +your employer, please follow the guidelines on submitting a [Corporate +Contributor License Agreement](http://www.openlayers.org/ccla.txt). If you are +making your contribution as an individual, you can submit a digital +[Individual Contributor License Agreement](https://docs.google.com/spreadsheet/viewform?formkey=dGNNVUJEMXF2dERTU0FXM3JjNVBQblE6MQ). + +## Coding guidelines + +### Formatting We use the [Closure -Linter](https://developers.google.com/closure/utilities/docs/linter_howto) for -checking JavaScript files for style issues. To execute the linter use: +Linter](https://developers.google.com/closure/utilities/docs/linter_howto) to +check source files for potential syntax and coding style issues. To execute the +linter run the following after making your changes: $ make lint This command assumes that the `gjslint` command in on your PATH. -## Code compilation +### Compilation The OpenLayers 3 is compiled and type-checked using the [Closure Compiler](https://developers.google.com/closure/compiler/). To @@ -18,19 +32,19 @@ compile the code use: $ make build-all -## Generating doc +### Documentation We use [jsdoc3](https://github.com/jsdoc3/jsdoc) to generate the API -doc. Changing the code can break the generation of the API -doc. Use the following to generate the doc: +documentation. To ensure that your changes are properly documented (and don't +break API doc generation), run the following: $ make doc This command assumes that the `jsdoc` command is on your PATH. -## Tests +### Testing -Changes should not break existing tests. We use +Any modifications must not break existing tests. We use [PhantomJS](http://phantomjs.org/) to run tests *headlessly*. Use the following to run the tests: @@ -38,7 +52,7 @@ Use the following to run the tests: This command assumes that the `phantomjs` command is on your PATH. -## The `precommit` target +### The `precommit` target The Makefile includes a `precommit` target for running all of the above (`lint`, `build-all`, `doc`, and `test`). As the name of the @@ -47,7 +61,7 @@ committing: $ make precommit -## Commit messages +### Commit messages We follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html for the formatting of commit messages.