- Stop assuming PATH env is defined when extra_paths is set, and then initialize to os.defpath #144 (@consideRatio, @minrk)
- ci: test jupyterhub 5, python 3.12, ubuntu 24.04 #143 (@consideRatio)
- Bump codecov/codecov-action from 3 to 4 #140 (@consideRatio)
- Bump actions/setup-python from 4 to 5 #139 (@consideRatio)
- Bump actions/setup-node from 3 to 4 #137 (@consideRatio)
- Bump actions/checkout from 3 to 4 #136 (@consideRatio)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
(GitHub contributors page for this release)
@consideRatio (activity) | @Frank-Steiner (activity) | @manics (activity) | @minrk (activity) | @yuvipanda (activity)
- ensure executable paths are absolute #129 (@minrk, @consideRatio, @behrmann, @manics)
- Use warnings.warn instead of self.log.warning to help avoid duplications #133 (@consideRatio, @minrk)
- Cache check of systemd version #132 (@consideRatio, @minrk)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
@behrmann (activity) | @consideRatio (activity) | @manics (activity) | @minrk (activity)
- Systemd v243+ is now required, and v245+ is recommended. Systemd v245 is available in for example Ubuntu 20.04+, Debian 11+, and Rocky/CentOS 9+.
- Python 3.8+, JupyterHub 2.3.0+, and Tornado 5.1+ is now required.
SystemdSpawner.disable_user_sudo
(influences systemd'sNoNewPrivileges
) now defaults toTrue
, making the installation more secure by default.
- Replace deprecated MemoryLimit with MemoryMax, remove fixme notes #127 (@consideRatio, @yuvipanda, @behrmann)
- Rely on systemd-run's --working-directory, and refactor for readability #124 (@consideRatio, @behrmann, @minrk)
- Add MANIFEST.in to bundle LICENSE in source distribution #122 (@consideRatio, @yuvipanda)
- Add basic start/stop test against a jupyterhub #120 (@consideRatio, @minrk, @yuvipanda)
- refactor: remove no longer needed pytest.mark.asyncio #119 (@consideRatio, @yuvipanda)
- Require systemd v243+, recommend systemd v245+, test against systemd v245 #117 (@consideRatio, @yuvipanda, @minrk)
- Add test and release automation #115 (@consideRatio, @yuvipanda)
- maint, breaking: require python 3.8+, jupyterhub 2.3.0+, tornado 5.1+ #114 (@consideRatio, @yuvipanda)
- Add pre-commit for automated formatting #108 (@consideRatio, @yuvipanda)
- Disable user sudo by default #91 (@yuvipanda, @consideRatio)
- docs: add some explanatory notes in files, and small details #118 (@consideRatio, @yuvipanda)
- readme: add badges for releases/tests/coverage/issues/discourse #112 (@consideRatio, @yuvipanda)
- readme: remove resources section and link to discourse forum instead of mailing list #111 (@consideRatio, @yuvipanda)
- ci: add dependabot to bump future github actions #113 (@consideRatio, @yuvipanda)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
(GitHub contributors page for this release)
@astro-arphid (activity) | @behrmann (activity) | @clhedrick (activity) | @consideRatio (activity) | @manics (activity) | @minrk (activity) | @yuvipanda (activity)
- User variables (like
{USERNAME}
) are expanded inunit_extra_parameters
, thanks to @tullis - PR #83 - Some cleanup of packaging metadata, thanks to @minrk - PR #75
Fixes vulnerability GHSA-cg54-gpgr-4rm6 affecting all previous releases.
- Use EnvironmentFile to pass environment variables to units.
- define entrypoints for JupyterHub spawner configuration
- Fixes for CentOS 7
- Fix
slice
support by making it a configurable option
- Allow setting which Systemd Slice users' services should belong to. This lets admins set policy for all JupyterHub users in one go. [Thanks to @mariusvniekerk]
- Handle failed units that need reset. [thanks to @RohitK89]
- Fix bug in cleaning up services from a previously running JupyterHub. [thanks to @minrk]
- Username templates let you map jupyterhub usernames to different system usernames. Extremely useful for prefixing usernames to prevent collisions.
- Users' home directories now properly read from pwd database, rather than assumed to be under
/home
. Thanks to @cpainterwakefield for reporting & suggested PR!
use_sudo
option is no longer supported. It offered questionable security, and complicated the code unnecessarily. If 'securely run as normal user with sudo' is a required feature, we can re-implement it securely later.- If a path in
readonly_paths
does not exist, spawning user will now fail.
- Dynamic users support, creating users as required with their own persistent homes with systemd's dynamic users feature. Useful for using with tmpnb.
- Add additional properties to the user's systemd unit with
unit_extra_properties
. Thanks to @kfix for most of the work!
- If a user's notebook server service is already running, kill it before attempting to start a new one. GitHub Issue
- Python 3.5 is the minimum supported Python version.
- JupyterHub 0.9 is the minimum supported JupyterHub version.
- Tornado 5.0 is the minimum supported Tornado version.