Contributing to the Jupyter Notebook¶
If you’re reading this section, you’re probably interested in contributing to Jupyter. Welcome and thanks for your interest in contributing!
Please take a look at the Contributor documentation, familiarize yourself with using the Jupyter Notebook, and introduce yourself on the mailing list and share what area of the project you are interested in working on.
For general documentation about contributing to Jupyter projects, see the Project Jupyter Contributor Documentation.
Setting Up a Development Environment¶
Installing Node.js and npm¶
Building the Notebook from its GitHub source code requires some tools to
Namely, that’s Node.js and Node’s package manager,
If you use
conda, you can get them with:
If you use Homebrew on Mac OS X:
brew install node
For Debian/Ubuntu systems, you should use the
nodejs-legacy package instead
sudo apt-get update sudo apt-get install nodejs-legacy npm
You can also use the installer from the Node.js website.
Installing the Jupyter Notebook¶
Once you have installed the dependencies mentioned above, use the following steps:
pip install setuptools pip --upgrade --user git clone https://github.com/jupyter/notebook cd notebook pip install -e . --user
If you want the development environment to be available for all users of your
system (assuming you have the necessary rights) or if you are installing in a
virtual environment, just drop the
Once you have done this, you can launch the master branch of Jupyter notebook from any directory in your system with:
npm run build
IMPORTANT: Don’t forget to run
npm run build after switching branches.
When switching between branches of different versions (e.g.
pip install -e .. If you have tried the above and still
find that the notebook is not reflecting the current source code, try cleaning
the repo with
git clean -xfd and reinstalling with
pip install -e ..
npm run build:watch
git-hooks/README.md for more details.
pip install -e .[test] --user
To run the Python tests, use:
If you want coverage statistics as well, you can run:
nosetests --with-coverage --cover-package=notebook notebook
npm install -g casperjs email@example.com
python -m notebook.jstest [group]
[group] is an optional argument that is a path relative to
For example, to run all tests in
python -m notebook.jstest notebook
or to run just
python -m notebook.jstest notebook/deletecell.js
Building the Documentation¶
To install (and activate) a conda environment named
containing all the necessary packages (except pandoc), use:
conda env create -f docs/environment.yml source activate notebook_docs # Linux and OS X activate notebook_docs # Windows
If you want to install the necessary packages with
pip instead, use
(omitting –user if working in a virtual environment):
pip install -r docs/doc-requirements.txt --user
Once you have installed the required packages, you can build the docs with:
cd docs make html
After that, the generated HTML files will be available at
build/html/index.html. You may view the docs in your browser.
You can automatically check if all hyperlinks are still valid:
Windows users can find
make.bat in the
You should also have a look at the Project Jupyter Documentation Guide.