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.
If you plan to make a major change, please start a new thread on the Cesium forum first. Pull requests for small features and bug fixes can generally just be opened without discussion on the forum.
Before we can merge a pull request, we require a signed Contributor License Agreement. There is a CLA for:
- individuals and
- corporations.
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.
Please email a completed CLA with all fields filled in to [email protected]. Related questions are also welcome.
Our code is our lifeblood so maintaining Cesium's high code quality is important to us.
- If this is your first contribution to Cesium, add your name to CONTRIBUTORS.md.
- Pull request tips
- If your pull request fixes an existing issue, include a link to the issue in the description (like this: #1). Likewise, if your pull request fixes an issue reported on the Cesium forum, include a link to the thread.
- If your pull request needs additional work, include a task list.
- Once you are done making new commits to address feedback, add a comment to the pull request such as
"this is ready"
since GitHub doesn't notify us about commits.
- Code and tests
- Follow the coding conventions.
- Verify your code passes JSHint. 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 for writing tests. Run them by browsing to 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 if third-party libraries were added/updated/removed, including new version of existing libraries. Mention it in CHANGES.md. If you plan to add a third-party library, start a new thread on the Cesium forum first.
- If new public classes, functions, or properties were added, also:
- Include reference documentation with code examples. Check out the best practices.
- Update CHANGES.md.
- If the change is significant, add a new Sandcastle example or extend and existing one.
See the Contributor's Guide for how to get the code and setup a development environment.