diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0c1e070d644f..9b8a3250fb4e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,27 +1,32 @@ -We love pull requests. We strive to promptly review them, provide feedback, and merge. This document describes how to get yours merged quickly. +We love pull requests. We strive to promptly review them, provide feedback, and merge. Interest in Cesium is at an all time high so the core team is busy. Following the tips in this guide will help your pull request get merged quickly. -## License +> If you plan to make a major change, please start a new thread on the [Cesium forum](http://cesiumjs.org/forum.html) first. Pull requests for small features and bug fixes can generally just be opened without discussion on the forum. -We use the [Apache 2.0 License](LICENSE.md). Before we can merge a pull request, we require a signed Contributor License Agreement. This can be emailed to cla@agi.com, and only needs to be completed once. The CLA ensures you retain copyright to your contributions, and we have the right to use them and incorporate them into Cesium. There is a CLA for: +## Contributor License Agreement (CLA) + +Before we can merge a pull request, we require a signed Contributor License Agreement. There is a CLA for: * [individuals](http://www.agi.com/licenses/individual-cla-agi-v1.0.txt) and * [corporations](http://www.agi.com/licenses/corporate-cla-agi-v1.0.txt). +This only needs to be completed once. The CLA ensures you retain copyright to your contributions, and we have the right to use them and incorporate them into Cesium using the [Apache 2.0 License](LICENSE.md). + Please email a completed CLA with all fields filled in to [cla@agi.com](mailto:cla@agi.com). Related questions are also welcome. -## Development Best Practices +## Pull Request Guidelines -To keep our code quality high, please make sure: -* Your code follows the [coding conventions](https://github.com/AnalyticalGraphicsInc/cesium/wiki/JavaScript-Coding-Conventions). -* Your code passes [JSHint](http://www.jshint.com/). We use the JSHint Eclipse plugin so it runs automatically when we save. You can also run the `jsHint` Ant task from the command line. -* To include tests with excellent code coverage for new features. We use [Jasmine](http://pivotal.github.com/jasmine/) for writing tests. Run them by browsing to [http://localhost:8080/Specs/SpecRunner.html](http://localhost:8080/Specs/SpecRunner.html). Verify all new and existing tests pass. For bonus points, test Chrome, Firefox, and other browsers supporting WebGL. -* To update [LICENSE.md](LICENSE.md) if third-party libraries were added/updated/removed, including new version of existing libraries. Mention it in [CHANGES.md](CHANGES.md). +Our code is our lifeblood so maintaining Cesium's high code quality is important to us. -If new public classes, functions, or properties were added, also: +* If this is your first contribution to Cesium, add your name to [CONTRIBUTORS.md](https://github.com/AnalyticalGraphicsInc/cesium/blob/master/CONTRIBUTORS.md). +* Follow the [coding conventions](https://github.com/AnalyticalGraphicsInc/cesium/wiki/JavaScript-Coding-Conventions). +* Verify your code passes [JSHint](http://www.jshint.com/). We use the JSHint Eclipse plugin so it runs automatically when we save. You can also run the `jsHint` Ant task from the command line (`./Tools/apache-ant-1.8.2/bin/ant jsHint`). +* Include tests with excellent code coverage for new features. We use [Jasmine](http://pivotal.github.com/jasmine/) for writing tests. Run them by browsing to [http://localhost:8080/Specs/SpecRunner.html](http://localhost:8080/Specs/SpecRunner.html). Verify all new and existing tests pass. For bonus points, test Chrome, Firefox, and other browsers supporting WebGL. +* Update [LICENSE.md](LICENSE.md) if third-party libraries were added/updated/removed, including new version of existing libraries. Mention it in [CHANGES.md](CHANGES.md). If you plan to add a third-party library, start a new thread on the [Cesium forum](http://cesiumjs.org/forum.html) first. +* If new public classes, functions, or properties were added, also: * Include reference documentation with code examples. Check out the [best practices](https://github.com/AnalyticalGraphicsInc/cesium/wiki/Documentation-Best-Practices). * Update [CHANGES.md](CHANGES.md). * If the change is significant, add a new [Sandcastle](http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html) example or extend and existing one. ## Resources -See the [Contributor's Guide](https://github.com/AnalyticalGraphicsInc/cesium/wiki/Contributor%27s-Guide) for how to get the code and setup a development environment, and see [CONTRIBUTORS.md](CONTRIBUTORS.md) for the current list of contributors. +See the [Contributor's Guide](https://github.com/AnalyticalGraphicsInc/cesium/wiki/Contributor%27s-Guide) for how to get the code and setup a development environment.