New contributions to the library are welcome, but we ask that you please follow these guidelines:
eslint
code standards. pnpm test
will run both the linter and tests for you.test/
and docs/
directories respectively).function
outside of a class or by prefixing it with _
and adding @private
JSDoc if inside a class. Public APIs take considerable time to review and become locked once implemented as we have limited ability to change them without breaking backward compatibility. Private APIs allow the flexibility to address unforeseen cases.Active committers and contributors are invited to introduce themselves and request commit access to this project. We have a very active Discord community that you can join here (opens new window). If you think you can help, we'd love to have you!
# Building and TestingFirstly, we need to ensure development dependencies are installed. With node and pnpm installed, after cloning the Chart.js repo to a local directory, and navigating to that directory in the command line, we can run the following:
This will install the local development dependencies for Chart.js.
The following commands are now available from the repository root:
pnpm run dev
and pnpm test
can be appended with a string that is used to match the spec filenames. For example: pnpm run dev plugins
will start karma in watch mode for test/specs/**/*plugin*.js
.
We use Vuepress (opens new window) to manage the docs which are contained as Markdown files in the docs directory. You can run the doc server locally using these commands:
# Image-Based TestsSome display-related functionality is difficult to test via typical Jasmine units. For this reason, we introduced image-based tests (#3988 (opens new window) and #5777 (opens new window)) to assert that a chart is drawn pixel-for-pixel matching an expected image.
Generated charts in image-based tests should be as minimal as possible and focus only on the tested feature to prevent failure if another feature breaks (e.g. disable the title and legend when testing scales).
You can create a new image-based test by following the steps below:
test/fixtures/{spec.name}/{feature-name}.json
.test/specs/{spec.name}.tests.js
if it doesn't exist yet.pnpm run dev
.test/fixtures/{spec.name}/{feature-name}.png
making sure not to activate the tooltip or any hover functionalityCTRL+R
): test should now passTests should pass in both browsers. In general, we've hidden all text in image tests since it's quite difficult to get them to pass between different browsers. As a result, it is recommended to hide all scales in image-based tests. It is also recommended to disable animations. If tests still do not pass, adjust tolerance
and/or threshold
(opens new window) at the beginning of the JSON file keeping them as low as possible.
When a test fails, the expected and actual images are shown. If you'd like to see the images even when the tests pass, set "debug": true
in the JSON file.
Please report these on the GitHub page - at github.com/chartjs/Chart.js. Please do not use issues for support requests. For help using Chart.js, please take a look at the chart.js
(opens new window) tag on Stack Overflow.
Well-structured, detailed bug reports are hugely valuable for the project.
Guidelines for reporting bugs:
master
, you may reference the latest code via https://www.chartjs.org/dist/master/chart.umd.min.js (opens new window) (changing the filename to point at the file you need as appropriate). Do not rely on these files for production purposes as they may be removed at any time.Please provide any additional details associated with the bug, if it's browser or screen density specific, or only happens with a certain configuration or data.
Last Updated: 7/12/2025, 4:29:51 PM
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4