From 3f55ac29128c4d75bd1a4b342dae0fbafda53060 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Fri, 20 Sep 2024 21:43:55 +0200 Subject: [PATCH] Drop support for ubuntu 20.04 and Python 3.8 --- .github/workflows/integration-test.yaml | 3 --- bootstrap/bootstrap.py | 20 ++++++++++---------- integration-tests/test_bootstrap.py | 4 ++-- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/workflows/integration-test.yaml b/.github/workflows/integration-test.yaml index 226a1a0..cd98ad5 100644 --- a/.github/workflows/integration-test.yaml +++ b/.github/workflows/integration-test.yaml @@ -39,9 +39,6 @@ jobs: - name: "Debian 12, Py 3.11" distro_image: "debian:12" extra_flags: "" - - name: "Ubuntu 20.04, Py 3.8" - distro_image: "ubuntu:20.04" - extra_flags: "" - name: "Ubuntu 22.04 Py 3.10" distro_image: "ubuntu:22.04" extra_flags: "" diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index f69aceb..75072f4 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -9,10 +9,10 @@ This script is run as: Constraints: - - The entire script should be compatible with Python 3.8, which is the default on - Ubuntu 20.04. - - The script should parse in Python 3.6 as we print error messages for using - Ubuntu 18.04 which comes with Python 3.6 by default. + - The entire script should be compatible with Python 3.9, which is the default on + Debian 11. + - The script should parse in Python 3.8 as we print error messages for using + Ubuntu 20.04 which comes with Python 3.8 by default. - The script must depend only on stdlib modules, as no previous installation of dependencies can be assumed. @@ -210,22 +210,22 @@ def ensure_host_system_can_install_tljh(): Check if TLJH is installable in current host system and exit with a clear error message otherwise. """ - # Require Ubuntu 20.04+ or Debian 11+ + # Require Ubuntu 22.04+ or Debian 11+ distro = get_os_release_variable("ID") version = get_os_release_variable("VERSION_ID") if distro not in ["ubuntu", "debian"]: print("The Littlest JupyterHub currently supports Ubuntu or Debian Linux only") sys.exit(1) - elif distro == "ubuntu" and _parse_version(version) < (20, 4): - print("The Littlest JupyterHub requires Ubuntu 20.04 or higher") + elif distro == "ubuntu" and _parse_version(version) < (22, 4): + print("The Littlest JupyterHub requires Ubuntu 22.04 or higher") sys.exit(1) elif distro == "debian" and _parse_version(version) < (11,): print("The Littlest JupyterHub requires Debian 11 or higher") sys.exit(1) - # Require Python 3.8+ - if sys.version_info < (3, 8): - print(f"bootstrap.py must be run with at least Python 3.8, found {sys.version}") + # Require Python 3.9+ + if sys.version_info < (3, 9): + print(f"bootstrap.py must be run with at least Python 3.9, found {sys.version}") sys.exit(1) # Require systemd (systemctl is a part of systemd) diff --git a/integration-tests/test_bootstrap.py b/integration-tests/test_bootstrap.py index eac9c92..0846d63 100644 --- a/integration-tests/test_bootstrap.py +++ b/integration-tests/test_bootstrap.py @@ -85,9 +85,9 @@ def test_ubuntu_too_old(): """ Error with a useful message when running in older Ubuntu """ - output = _run_bootstrap_in_container("ubuntu:18.04", False) + output = _run_bootstrap_in_container("ubuntu:20.04", False) _stop_container() - assert output.stdout == "The Littlest JupyterHub requires Ubuntu 20.04 or higher\n" + assert output.stdout == "The Littlest JupyterHub requires Ubuntu 22.04 or higher\n" assert output.returncode == 1