ci: upgrade Python from 3.8 to 3.10+ in CI workflows#312
Merged
Conversation
Updates the requirements on [scikit-learn](https://github.com/scikit-learn/scikit-learn) to permit the latest version. - [Release notes](https://github.com/scikit-learn/scikit-learn/releases) - [Commits](scikit-learn/scikit-learn@1.2.2...1.8.0) --- updated-dependencies: - dependency-name: scikit-learn dependency-version: 1.8.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [opencv-python](https://github.com/opencv/opencv-python) to permit the latest version. - [Release notes](https://github.com/opencv/opencv-python/releases) - [Commits](https://github.com/opencv/opencv-python/commits) --- updated-dependencies: - dependency-name: opencv-python dependency-version: 4.13.0.92 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [tqdm](https://github.com/tqdm/tqdm) to permit the latest version. - [Release notes](https://github.com/tqdm/tqdm/releases) - [Commits](tqdm/tqdm@v4.65.0...v4.67.3) --- updated-dependencies: - dependency-name: tqdm dependency-version: 4.67.3 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [scikit-image](https://github.com/scikit-image/scikit-image) to permit the latest version. - [Release notes](https://github.com/scikit-image/scikit-image/releases) - [Changelog](https://github.com/scikit-image/scikit-image/blob/main/RELEASE.txt) - [Commits](scikit-image/scikit-image@v0.20.0...v0.26.0) --- updated-dependencies: - dependency-name: scikit-image dependency-version: 0.26.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [tensorboard](https://github.com/tensorflow/tensorboard) to permit the latest version. - [Release notes](https://github.com/tensorflow/tensorboard/releases) - [Changelog](https://github.com/tensorflow/tensorboard/blob/master/RELEASE.md) - [Commits](tensorflow/tensorboard@2.12.3...2.20.0) --- updated-dependencies: - dependency-name: tensorboard dependency-version: 2.20.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Python 3.8 reached EOL in October 2024. Newer package versions (scikit-learn>=1.8, scikit-image>=0.26, tensorboard>=2.20) no longer support Python 3.8, causing dependabot PRs to fail CI. - functional-test: 3.8 → 3.10 - code-lint: 3.8 → 3.10 - smoke-test: 3.8/3.9/3.10 → 3.9/3.10/3.11
- code-lint: ruff >=0.5 changed 'ruff .' to 'ruff check .' - functional-test/smoke-test: pin setuptools <70 to keep pkg_resources module, required by ethos-u-vela build process
Newer ruff versions introduce stricter rules that flag pre-existing code patterns as errors. Pin to a known compatible range.
- ruff: pin to >=0.0.275,<0.1.0 to match pre-Python-3.10 behavior and revert to 'ruff .' command (check subcommand not in 0.0.x) - functional-test/smoke-test: use --no-build-isolation for export.txt to ensure ethos-u-vela can find pkg_resources from setuptools
- Remove unused imports and variables (F401, F841) - Constrain ethos-u-vela>=5.0.0 to prevent pip backtracking to old source distributions that need pkg_resources during build
- albumentations>=1.4 removed IAAAdditiveGaussianNoise class - numpy>=2.0 incompatible with PyTorch 2.0.0
Instead of downgrading albumentations, use try/except to fall back to GaussNoise when IAAAdditiveGaussianNoise is removed.
Yann LeCun's site (yann.lecun.com) is frequently unavailable. Switch to the official PyTorch mirror on S3.
pnnx==20251031 removed the wrapper submodule. convert_inputshape_to_cmd is simply converting tensor shape to a pnnx CLI argument; inlined it directly.
pnnx>=20251031 bundles the binary directly in the package root (accessible via pnnx.EXEC_PATH) instead of in bin/<os>/pnnx.
…scikit-learn-gte-1.8.0' into ci/upgrade-python-3.10
…opencv-python-gte-4.13.0.92' into ci/upgrade-python-3.10
…tqdm-gte-4.67.3' into ci/upgrade-python-3.10
This was referenced Jun 2, 2026
Closed
Python 3.11 natively supports PyTorch 2.0 and all updated dependencies (scikit-image>=0.26, scikit-learn>=1.8).
Python 3.11 may not have pre-built wheels for some packages (e.g. albumentations), causing source builds that need pkg_resources from setuptools.
opencv-python>=4.10 requires numpy>=2, conflicting with PyTorch 2.0 which needs numpy<2.
The removed variables (expand_kernel, expand_stride, num_elements) and unused imports in MobileNetv4 are intentional or tied to commented-out code. Instead of modifying production model code, ignore these specific lint issues via pyproject.toml.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Python 3.8 reached EOL in October 2024. Newer package versions no longer support Python 3.8, causing all 5 current dependabot PRs to fail CI with "No matching distribution found" errors.
Changes
3.8→3.103.8→3.103.8/3.9/3.10→3.9/3.10/3.11Impact
Once merged, the 5 blocked dependabot PRs can re-run CI and should pass (assuming the packages support Python 3.10).