Skip to content

Latest commit

 

History

History
126 lines (83 loc) · 4.1 KB

File metadata and controls

126 lines (83 loc) · 4.1 KB

Developer Install

The core Jupyter Widgets packages are developed in the https://github.com/jupyter-widgets/ipywidgets git repository.

Prerequisites

To install ipywidgets from git, you will need:

Installing With Conda

conda create -c conda-forge -n ipywidgets yarn notebook jupyterlab
conda activate ipywidgets
ipython kernel install --name ipywidgets --display-name "ipywidgets" --sys-prefix
git clone https://github.com/jupyter-widgets/ipywidgets.git
cd ipywidgets
./dev-install.sh

Installing with pip

To do an editable install of the python ipywidgets package into the user site directory with pip, please navigate into the sub-folder python/ipywidgets with

cd python/ipywidgets

and run

pip install --prefix=$(python -m site --user-base) -e .

Using pip install --user -e . will not work due to a bug in pip. See pypa/pip#7953 for more details.

Rebuilding after making changes

To build and test changes, run the following commands in the ipywidgets repository root directory, empty your browser's cache, and refresh the page.

    yarn clean
    yarn build

If your changes are confined to one package (for example, just in the widgetsnbextension package), then it may be sufficient to just run yarn build in that specific directory.

Tips and troubleshooting

  • If you have any problems with the above install procedure, make sure that permissions on npm and pip related install directories are correct.

  • Sometimes, it helps to clear cached files too by running git clean -dfx from the root of the cloned repository.

  • When you make changes to the Javascript and you're not seeing the changes, it could be your browser is caching aggressively. Try clearing the browser's cache. Try also using "incognito" or "private" browsing tabs to avoid caching.

  • If troubleshooting an upgrade and its build, you may need to do the following process:

    • Deep clean of the cloned repository:

      git clean -dfx .
      
    • Remove anything with widgetsnbextension in the name of files within the conda directory

    • Try reinstalling ipywidgets

Code formatting

Formatting is checked in CI and is also available as git hooks, managed by pre-commit. To install the hooks, run this once in your clone after running jlpm:

pip install pre-commit
pre-commit install

git commit will then run prettier and eslint over the files you staged, check that each package's dependencies still match its imports, and flag things like malformed JSON, YAML, or TOML. To check the whole repository, run:

pre-commit run --all-files

To run some of the lint checks without using pre-commit, use jlpm lint (to fix errors) or jlpm lint:check (to flag errors).

Updating widget model specification

To update the widget model specification with changes, do something like this in the repo root:

python ./packages/schema/generate-spec.py -f json-pretty packages/schema/jupyterwidgetmodels.latest.json
python ./packages/schema/generate-spec.py -f markdown packages/schema/jupyterwidgetmodels.latest.md

Releasing new versions

See dev_release.md for a details on how to release new versions of ipywidgets to PyPI and jupyter-widgets-controls on npm.

Testing

See dev_testing.md for a details on how to run Python and Javascript tests.

Building documentation

See dev_docs.md for a details on how to build the docs.