If you are trying to get a particular effect or you have a problem with your code, please ask your question on stackoverflow.com or the user group. We use the issue tracker for bug reports and feature requests only.
Get help faster with a working example! Fork these to get started:
blank jsFiddle - example jsFiddle - blank bl.ock - example bl.ock
For bug reports and feature requests submit a github issue
- Please include the version of DC you are using
- If you can, please try the latest version of DC on the master branch to see if your issue has already been addressed or is otherwise affected by recent changes.
- Code is written and distributed as ES6 modules.
src/folder is directly exposed for ES6 module users. In addition, arollupgenerated UMD bundle is placed indist/.- Please try to follow the existing code formatting.
- Make changes to the files in
src/notdc.js. - Add tests to
spec/. Feel free to create a new file if needed.spec/index.htmlis a generated file, no need to manually update. - Please add adequate tests. Many good PRs are not merged for the lack of test cases.
- Please use
.transitionDuration(0)for all chart tests. - If you have made significant changes or added a new chart type,
please consider adding a new example in
web-src/examples/. - Source for
dc.cssis maintained instyle/dc.scss. - All files in
web/anddist/are generated. Do not make direct changes to these. - Run
grunt testto run all tests using Karma and Jasmine on headless Firefox, or see Testing for other methods - We use eslint to check coding guidelines and conventions.
Run
grunt lintto confirm that your code meets the dc.js style guidelines. See.eslintrcfor current rules. - The default grunt task will install a git pre-commit hook
.git/hooks/pre-committo help verify the coding conventions. Rungruntwithout any arguments to install the hook. You only need to do it once. - Commit your changes to
src/*,spec/*, andweb-src/*; exclude build artifacts. (Build artifacts includedist/*andweb/*).
grunt testwill run will all tests using Karma and Jasmine on headless Firefox.grunt citests headless Chrome as well. Some IDEs facilitate executing tests from the IDE itself.- Running
grunt serverstarts a server at http://localhost:8888/ which serves the current directory as root. - Tests can also be run on the browser by going to http://localhost:8888/spec when server is running.
- With the server running, go to http://localhost:8888/web to check the stocks example. You can also go to the examples sub folder to test specific examples.
- During development, you can run
grunt test-n-serve. It will start the server and in addition keep a watch for changes to run build/test as needed. - If your changes might affect animated transitions, go to the relevant transition tests in http://localhost:8888/web/transitions and watch them by eye to see if they make sense, or add another one if needed. There are no automated tests for transitions.
- Fork the repository.
- As with all pull requests, put your changes in a branch.
For contributions that change the dc.js API, create your branch off of
develop. If your contribution does not change the API, branch off ofmasterinstead. - Make your changes.
- Submit a pull request.
- Travis CI is linked to PRs, so, all tests will get executed on creation/updation of a PR. The status is visible on the GitHub PR page.
- If you need to merge
developormasterinto your patchset, instead of merging please use git rebase. - The DC maintainer team will review and build the artifacts when merging.
- If you continue making changes to your fork of
dc.js, please create a separate branch for each pull request and keep the changes separate.