Package Updates

We actively seek pull requests which update packages already included in the project Dockerfiles. This is a great way for first-time contributors to participate in developing the Jupyter Docker Stacks.

Please follow the process below to update a package version:

  1. Locate the Dockerfile containing the library you wish to update (e.g., base-notebook/Dockerfile, scipy-notebook/Dockerfile)

  2. Adjust the version number for the package. We prefer to pin the major and minor version number of packages so as to minimize rebuild side-effects when users submit pull requests (PRs). For example, you'll find the Jupyter Notebook package, notebook, installed using conda with notebook=5.4.*.

  3. Please build the image locally before submitting a pull request. Building the image locally shortens the debugging cycle by taking some load off GitHub Actions, which graciously provide free build services for open source projects like this one. If you use make, call:

    make build/somestack-notebook
  4. Submit a pull request (PR) with your changes.

  5. Watch for GitHub to report a build success or failure for your PR on GitHub.

  6. Discuss changes with the maintainers and address any build issues. Version conflicts are the most common problem. You may need to upgrade additional packages to fix build failures.


In order to help identifying packages that can be updated you can use the following helper tool. It will list all the packages installed in the Dockerfile that can be updated -- dependencies are filtered to focus only on requested packages.

$ make check-outdated/base-notebook

# INFO 3/8 (38%) packages could be updated
# Package     Current    Newest
# ----------  ---------  --------
# conda       4.7.12     4.8.2
# jupyterlab  1.2.5      2.0.0
# python      3.7.4      3.8.2