notebook/CONTRIBUTING.md
2021-01-29 17:15:02 +01:00

2.2 KiB

Contributing to JupyterLab Classic

Thanks for contributing to JupyterLab Classic!

Make sure to follow Project Jupyter's Code of Conduct for a friendly and welcoming collaborative environment.

Setting up a development environment

Note: You will need NodeJS to build the extension package.

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 below.

Note: we recomment using mamba to speed the creating of the environment.

# create a new environment
mamba create -n jupyterlab-classic -c conda-forge python nodejs -y

# activate the environment
conda activate jupyterlab-classic

# Install package in development mode
pip install -e .

jupyterlab-classic follows a monorepo structure. To build all the packages at once:

jlpm run build

To make sure the jupyterlab_classic server extension is installed:

$ jupyter server extension list
Config dir: /home/username/.jupyter

Config dir: /home/username/miniforge3/envs/jupyterlab-classic/etc/jupyter
    jupyterlab enabled
    - Validating jupyterlab...
      jupyterlab 3.0.0 OK
    jupyterlab_classic enabled
    - Validating jupyterlab_classic...
      jupyterlab_classic 0.1.0rc2 OK
    nbclassic enabled
    - Validating nbclassic...
      nbclassic  OK

Config dir: /usr/local/etc/jupyter

Then start JupyterLab Classic with:

jupyter classic

Running Tests

To run the tests:

jlpm run build:test
jlpm run test

There are also end to end tests to cover higher level user interactions, located in the app/test folder. To run these tests:

# start a new Jupyter server in a terminal
npm start

# run the end to end tests
jlpm run test:e2e

# to run in headful mode
PWDEBUG=1 jlpm run test:e2e

# to run with firefox as the browser
BROWSER=firefox jlpm run test:e2e

Running the end to end tests in headful mode will trigger something like the following:

end-to-end-smoke