JupyterHub 4.0 release

JupyterHub 4.0 is out!

4.0 is a major release, but a small one. There are three major changes that should be invisible to most users:

  1. Groups can now have ‘properties’, editable via the admin page, which can be used by Spawners for their operations.
    This requires a db schema upgrade, so remember to backup and upgrade your database!
  2. Often-problematic header-based checks for cross-site requests have been replaces with more standard use of XSRF tokens.
    Most folks shouldn’t notice this change, but if “Blocking Cross Origin API request” has been giving you headaches, this should be much improved.
  3. Improved support for Jupyter Server 2.0 by reimplementing jupyterhub-singleuser as a standard server extension.
    This mode is used by default with Jupyter Server >=2.0.
    Again, this should be an implementation detail to most, but it’s a big change under the hood.
    If you have issues, please let us know and you can opt-out by setting JUPYTERHUB_SINGLEUSER_EXTENSION=0 in your single-user environment.

In addition to these, thanks to contributions from this year’s Outreachy interns, we have reorganized the documentation according to diataxis, improved accessibility of JupyterHub pages, and improved testing.

JupyterHub 4.0 updates the database schema, so you will need to run --upgrade-db to upgrade the schema during upgrades (this is done automatically in zero-to-jupyterhub with the default sqlite db backend). It is a tiny change, so it should not be disruptive. It should otherwise be a minimally disruptive upgrade.

More details in the changelog.