chore: raise minimum Python to 3.8 and update legacy CI to 3.8/3.9#135
Merged
Merged
Conversation
Part of KamitaniLab#120: lift the floor from Python 3.6 to 3.8 while keeping the upper bound at <3.12. - requires-python: ">= 3.6, < 3.12" -> ">= 3.8, < 3.12" - drop now-dead python_version dependency markers (<3.7/<3.8) and flatten the trivially-true ones (numpy, h5py, typing-extensions, nipy, mkdocs*) - repurpose the legacy CI workflow (test_old.yml) from 3.6/3.7 to 3.8/3.9, dropping the 3.6 container hack, Cython pin, and torch/task ignores, and excluding pytest-github-actions-annotate-failures v0.3.0 (INTERNALERROR on 3.8/3.9, matching ci.yml) - remove the obsolete "Installation (Python 3.6~3.8)" README section
There was a problem hiding this comment.
Pull request overview
This PR updates BdPy’s supported Python baseline by raising the minimum required Python version to 3.8 (while keeping <3.12), and aligns legacy-branch CI and documentation accordingly.
Changes:
- Bump
requires-pythonto>= 3.8, < 3.12and simplify dependency environment markers that are now redundant. - Update the legacy CI workflow to test Python 3.8/3.9 and remove now-obsolete 3.6/3.7-specific workarounds.
- Remove the obsolete README installation guidance for Python 3.6-era setups.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| README.md | Removes outdated Python 3.6 installation section to match the new support floor. |
| pyproject.toml | Raises requires-python to 3.8+ and flattens dependency markers made redundant by the new floor. |
| .github/workflows/test_old.yml | Repurposes legacy CI to run on Python 3.8/3.9 and drops 3.6/3.7-specific hacks/pins. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ganow
approved these changes
Jun 16, 2026
ganow
left a comment
Contributor
There was a problem hiding this comment.
Thank you very much! Mostly LGTM. As I mentioned in the issue, how about unifying the legacy test into the one workflow as a non-blocking test?
jobs:
test: # standard support: blocks merges on failure
strategy:
matrix:
python-version: ["3.10", "3.11"]
steps:
...
test-legacy: # legacy support: failures are visible but do not block merges
continue-on-error: true
strategy:
matrix:
python-version: ["3.8", "3.9"]
steps:
...8036fbf to
813b49a
Compare
Address review feedback: instead of a separate test_old.yml workflow, split ci.yml into two jobs: - `test` (3.10/3.11): standard support, failures block merges - `test-legacy` (3.8/3.9): continue-on-error, so failures are visible but do not block merges Remove the now-redundant test_old.yml. Legacy coverage upload is omitted from test-legacy so only the standard job feeds coverage-comment.yml.
813b49a to
c7b70ae
Compare
Author
Contributor
|
@KenyaOtsuka Nice! Thank you very much! |
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
Part of #120: lift the supported-Python floor from 3.6 to 3.8 while keeping
the upper bound at
< 3.12. This implements only the "raise the floor" sliceof #120 — the standard upper bound is intentionally not advanced to 3.14 here.
Changes
requires-python:">= 3.6, < 3.12"→">= 3.8, < 3.12".python_version < '3.7'/< '3.8'entries and flatten the trivially-true
>= '3.7'/>= '3.8'markers(numpy, h5py, typing-extensions, nipy, mkdocs*).
ci.yml): split the test matrix into standard/blocking 3.10/3.11and legacy/non-blocking 3.8/3.9 jobs. The legacy job uses
continue-on-error: true.test_old.yml): remove the separate legacy workflow, sinceits 3.8/3.9 testing is now folded into
ci.yml.## Installation (Python 3.6~3.8)section(3.6-specific
Cython==0.29.36instructions), which contradicts the new floor.Note
ci.ymlnow tests standard 3.10/3.11 as blocking jobs and legacy3.8/3.9 as non-blocking jobs.
remain only in the standard 3.11 job, so a single
coverage-reportartifactis produced.
Related: #120