Skip to content

Remove support for Python 3.8/3.9 and Ubuntu 20.04#3365

Open
ipspace wants to merge 4 commits into
devfrom
rip-ubuntu-2004
Open

Remove support for Python 3.8/3.9 and Ubuntu 20.04#3365
ipspace wants to merge 4 commits into
devfrom
rip-ubuntu-2004

Conversation

@ipspace
Copy link
Copy Markdown
Owner

@ipspace ipspace commented May 9, 2026

  • Remove Python 3.8/3.9 from package setup and CI/CD pipelines
    (that will make netlab uninstallable on most Ubuntu 20.04 hosts)
  • The lowest Python version that needs to be tested is 3.10
  • Remove all references to Ubuntu 20.04

Other cleanup:

  • Reword 'box building caveats' documentation
  • Use a specific Python version in ruff CI/CD action
  • Use a consistent Python version in all CI/CD actions that specify one

* Remove Python 3.8/3.9 from package setup and CI/CD pipelines
* The lowest Python version that needs to be tested is 3.10
* Remove all references to Ubuntu 20.04

Other cleanup:
* Reword 'box building caveats' documentation
* Use a specific Python version in ruff CI/CD action
* Use a consistent Python version in all CI/CD actions that specify one
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates netlab’s supported platform baseline by dropping Python 3.8/3.9 and removing Ubuntu 20.04 references across packaging metadata, CI workflows, and installation documentation.

Changes:

  • Update CI matrices and tooling workflows to test from Python 3.10+ (and pin ruff/yamllint workflows to a specific Python version).
  • Remove Python 3.8/3.9 from package classifiers and update docs/install guidance accordingly.
  • Remove Ubuntu 20.04 mentions from install scripts/docs and reword libvirt box-building caveats.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
setup.py Removes 3.8/3.9 classifiers (but still needs min-version enforcement updates).
netsim/install/install.yml Updates “tested on” distro text to drop Ubuntu 20.04 references.
docs/netlab/install.md Updates Ubuntu testing footnote text (but footnote id still implies 20.04).
docs/labs/libvirt-box-caveats.md Rewords caveats and removes Ubuntu 20.04 mention.
docs/install.md Updates stated minimum Python version in docs (but breaks footnote reference).
.github/workflows/t-yamllint.yml Pins yamllint workflow to a newer Python version.
.github/workflows/t-push.yml Updates push-test Python matrix to start at 3.10.
.github/workflows/t-pull.yml Updates PR-test Python matrix to start at 3.10.
.github/workflows/ruff.yml Pins ruff workflow to a specific Python version.
Comments suppressed due to low confidence (1)

setup.py:34

  • The PR removes 3.8/3.9 classifiers, but setup.py still declares Python 3.8+ support via the runtime guard (sys.version_info < (3, 8)), the error message, and python_requires='>=3.8'; this makes packaging metadata inconsistent with the new minimum (3.10) and would still allow installs on 3.8/3.9. Update the version guard and python_requires to >=3.10 (and align any related setup files, e.g., legacy/setup.py, if they’re still published).
  classifiers=[
    "Topic :: Utilities",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",

Comment thread docs/install.md Outdated
Comment thread docs/netlab/install.md
@ipspace ipspace force-pushed the rip-ubuntu-2004 branch from 68e576e to b96ebb2 Compare May 9, 2026 15:17
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Comment thread legacy/setup.py
],
url="https://github.com/ipspace/netlab",
python_requires='>=3.8', # Due to e.g. 'capture_output' in subprocess.run
python_requires='>=3.10', # Due to e.g. 'capture_output' in subprocess.run
Comment thread .github/workflows/t-yamllint.yml Outdated
uses: actions/setup-python@v5
with:
python-version: 3.13
python-version: 3.14
Comment thread docs/install.md
Comment on lines +3 to 6
*netlab* is a Python3 package[^NSL] that uses Python 3.10[^P310] or later. We recommend using _netlab_ on Linux (we're doing all our tests on Ubuntu), including Windows Subsystem for Linux or [Multipass on macOS](https://blog.ipspace.net/2024/03/netlab-bgp-apple-silicon/). While you might be able to get _netlab_ to run natively on Windows or macOS with VirtualBox, we no longer support that.

[^P38]: We keep supporting Python 3.8 because it's the default Python distribution on Ubuntu 20.04.
[^P310]: Python 3.10 is the minimum supported version because it's the default Python distribution on Ubuntu 22.04.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants