diff --git a/docs/contributing/packages.rst b/docs/contributing/packages.rst new file mode 100644 index 0000000..484b0d1 --- /dev/null +++ b/docs/contributing/packages.rst @@ -0,0 +1,48 @@ +.. _contributing/packages: + +======================= +Environments & Packages +======================= + +TLJH installs packages from different sources during installation. +This document describes the various sources and how to upgrade +versions of packages installed. + +Python Environments +=================== + +TLJH sets up two python environments during installation. + +1. **Hub Environment**. JupyterHub, authenticators, spawners, TLJH plugins + and the TLJH configuration management code is installed into this + environment. A `venv `_ is used, + primarily since conda does not support ARM CPUs and we'd like to support the + RaspberryPI someday. Admins generally do not install custom packages + in this environment. + +2. **User Environment**. Jupyter Notebook, JupyterLab, nteract, kernels, + and packages the users wanna use (such as numpy, scipy, etc) are installed + here. A `conda `_ environment is used here, since + a lot of scientific packages are available from Conda. ``pip`` is still + used to install Jupyter specific packages, primarily because most notebook + extensions are still available only on `PyPI `_. + Admins can install packages here for use by all users. + +Python package versions +======================= + +In ``installer.py``, most Python packages have a version specified. This +can be upgraded freely whenever needed. Some of them have version checks +in ``integration-tests/test_extensions.py``, so those might need +updating too. + +Apt packages +============ + +Base operating system packages, including Python itself, are installed +via ``apt`` from the base Ubuntu repositories. The one exception to this +is nodejs, which is installed from the `nodesource `_ +apt repository. The Ubuntu provided version of nodejs is usually too old. + +We generally do not pin versions of packages provided by apt, instead +just using the latest versions provided by Ubuntu. \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index 14fc108..ea10e01 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -143,4 +143,5 @@ to people contributing in various ways. contributing/code-review contributing/dev-setup contributing/tests - contributing/plugins \ No newline at end of file + contributing/plugins + contributing/packages \ No newline at end of file diff --git a/integration-tests/test_extensions.py b/integration-tests/test_extensions.py index f0adb08..e8a61fa 100644 --- a/integration-tests/test_extensions.py +++ b/integration-tests/test_extensions.py @@ -13,9 +13,9 @@ def test_serverextensions(): ], stderr=subprocess.PIPE) extensions = [ - 'jupyterlab 0.34.1', + 'jupyterlab 0.35.3', 'nbgitpuller 0.6.1', - 'nteract_on_jupyter 1.8.1', + 'nteract_on_jupyter 1.9.12', 'nbresuse ' ] diff --git a/tljh/installer.py b/tljh/installer.py index e1a66d9..6f6ce4b 100644 --- a/tljh/installer.py +++ b/tljh/installer.py @@ -185,7 +185,7 @@ def ensure_jupyterhub_package(prefix): and conda packages! """ conda.ensure_pip_packages(prefix, [ - 'jupyterhub==0.9.2', + 'jupyterhub==0.9.4', 'jupyterhub-dummyauthenticator==0.3.1', 'jupyterhub-systemdspawner==0.11', 'jupyterhub-firstuseauthenticator==0.11', @@ -237,11 +237,11 @@ def ensure_user_environment(user_requirements_txt_file): conda.ensure_pip_packages(USER_ENV_PREFIX, [ # JupyterHub + notebook package are base requirements for user environment - 'jupyterhub==0.9.2', - 'notebook==5.6.0', + 'jupyterhub==0.9.4', + 'notebook==5.7.0', # Install additional notebook frontends! - 'jupyterlab==0.34.1', - 'nteract-on-jupyter==1.8.1', + 'jupyterlab==0.35.3', + 'nteract-on-jupyter==1.9.12', # nbgitpuller for easily pulling in Git repositories 'nbgitpuller==0.6.1', # nbresuse to show people how much RAM they are using