Contributing to bqplot
April 13, 2026 ยท View on GitHub
Fork and clone
Fork the repository on GitHub, then clone your fork and add the main repository
as upstream:
git clone https://github.com/<your-github-user>/bqplot.git
cd bqplot
git remote add upstream https://github.com/bqplot/bqplot.git
git remote -v
Before starting a change, sync your local master branch with upstream and
create a feature branch:
git switch master
git fetch upstream
git rebase upstream/master
git switch -c <branch-name>
Conforming with linters
This project uses both eslint and prettier and the plugin that creates the integration between both, eslint-plugin-prettier to lint its code.
Currently there has been an active effort on making the project comply with all eslint rules so the eslint rules are currently not enforced.
Prettier rules are enforced, and you can run them in the js folder with:
yarn prettier --write .
The configuration of this project linters were based in the widgets-cookiecutter.
Development installation
For a development installation (requires JupyterLab (version >= 4) and yarn):
pip install -e .
If you're using Jupyter Notebook < 7, you may need to run the following to enable the nbextension:
jupyter nbextension install --py --overwrite --symlink --sys-prefix bqplot
jupyter nbextension enable --py --sys-prefix bqplot
Note for developers: the --symlink argument on Linux or OS X allows one to
modify the JavaScript code in-place. This feature is not available with
Windows.
For the experimental JupyterLab extension, install the Python package, make
sure the Jupyter widgets extension is installed, and install the bqplot
extension:
pip install "ipywidgets>=7.6"
jupyter labextension develop . --overwrite
Whenever you make a change of the JavaScript code, you will need to rebuild:
cd js
jlpm run build
Then refreshing the JupyterLab/Jupyter Notebook is enough to reload the changes.
Running tests
You can install the dependencies necessary to run the tests with:
conda env update -f test-environment.yml
Run the Python tests with:
pytest
Run the JS tests from the js directory with:
cd js
jlpm run test
Every time you make a change to your tests, it is necessary to rebuild the JS side:
jlpm run build
Governance and code of conduct
bqplot is subject to the bqplot governance and the bqplot code of conduct.
Questions
Should you have any questions, please do not hesitate to reach out to us on the ipywidgets gitter chat.