Remove support for Python 3.8/3.9 and Ubuntu 20.04#3365
Conversation
* 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
There was a problem hiding this comment.
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",
| python-version: [ "3.8", "3.12", "3.13", "3.14" ] | ||
| python-version: [ "3.10", "3.12", "3.13", "3.14" ] | ||
| steps: | ||
| - uses: actions/checkout@v4 |
| @@ -17,7 +17,7 @@ jobs: | |||
| - name: Set up Python | |||
| uses: actions/setup-python@v5 | |||
| At the moment, _netlab_ does not work with Ansible release 12.x. Install the latest Ansible 11.x release. | ||
| ``` | ||
| * Install Python 3.10 or later (use the latest Python version supported by your Linux distribution) | ||
| * Install Ansible 2.9.1 or later and any Ansible networking dependencies (example: paramiko). We recommend using the latest Ansible 11.x release. |
There was a problem hiding this comment.
We should recommend using netlab to install ansible, which would install the recommended version. The order should be:
- Python
- Netlab
- All other dependencies through Netlab
There was a problem hiding this comment.
Did you notice that this is the "non-Ubuntu Linux install" document? I will mention that "netlab install ansible" might work; all other scripts are Debian/Ubuntu specific.
jbemmel
left a comment
There was a problem hiding this comment.
Suggest to update our GitHub workflow actions as well, and generally recommend using Netlab to install or update recommended versions of dependencies
That's not exactly relevant to the topic of this PR, but OK
That is definitely recommended for Ubuntu installs. |
(that will make netlab uninstallable on most Ubuntu 20.04 hosts)
Other cleanup: