Local setup for JupyterLab extension
Pre-requisites
- Local clone of your fork of the
jupyterlab-conda-store-ui
repository - NodeJS
> 18
installed on your local computer to build the extension package. - Python
>= 3.8
(andpip
)
Build and link the extension
The jlpm
command is JupyterLab's pinned version of yarn that is installed with JupyterLab.
You may use yarn
or npm
in lieu of jlpm
in the commands below.
-
Navigate to the
jupyterlab-conda-store
directory:cd jupyterlab-conda-store
-
Create and activate a new conda environment:
conda env create -f environment.yml
conda activate jupyterlab-conda-store -
Install the package in development mode:
python -m pip install -e .
-
Now you'll need to link the development version of the extension to JupyterLab and rebuild the Typescript source:
# Install the extension dependencies
jlpm install
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite -
On the first installation, or after making some changes, to visualize them in your local JupyterLab re-run the following command:
# Rebuild extension Typescript source after making changes
jlpm run build -
Run JupyterLab and check that the installation worked:
# Run JupyterLab
jupyter lab
At times you might need to clean your local repo with the command npm run clean:slate
. This will clean the repository, and re-install and rebuild.
Run the tests
You can test your changes locally before opening a pull request.
Lint and format
To lint files as you work on contributions, you can run:
jlpm run lint:check
Frontend tests
This extension uses Jest for JavaScript code testing.
To execute them, run:
jlpm
jlpm test
Integration tests
This extension uses Playwright for the integration tests (aka user level tests). More precisely, the JupyterLab helper Galata is used to handle testing the extension in JupyterLab.
More information are provided within the ui-tests README.
Uninstall the development version
-
Remove the extension:
pip uninstall jupyterlab-conda-store
-
In development mode, you will also need to remove the symlink created by
jupyter labextension develop
command. To find its location, you can runjupyter labextension list
to figure out where thelabextensions
folder is located. Then you can remove the symlink namedjupyterlab-conda-store
within that folder.