Important: these GitHub issues are for bug reports and feature requests only. Please use StackOverflow or the d3-js Google group for general help.
If you’re looking for ways to contribute, please peruse open issues. The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed.
Before submitting a pull request, consider implementing a live example first, say using bl.ocks.org. Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the d3-js Google group.
If your proposed feature does not involve changing core functionality, consider submitting it instead as a D3 plugin. New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core.
To contribute new documentation or add examples to the gallery, just edit the Wiki!
-
Click the “Fork” button to create your personal fork of the D3 repository.
-
After cloning your fork of the D3 repository in the terminal, run
npm install
to install D3’s dependencies. -
Create a new branch for your new feature. For example:
git checkout -b my-awesome-feature
. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. -
The
d3.js
andd3.min.js
files are built from source files in thesrc
directory. Do not editd3.js
directly. Instead, edit the source files, and then runmake
to build the generated files. -
Use
make test
to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. -
Sign D3’s Individual Contributor License Agreement. Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute.
-
Submit your pull request, and good luck!