Skip to content

chore: raise minimum Python to 3.8 and update legacy CI to 3.8/3.9#135

Merged
KenyaOtsuka merged 2 commits into
KamitaniLab:devfrom
KenyaOtsuka:chore/python-floor-3.8
Jun 17, 2026
Merged

chore: raise minimum Python to 3.8 and update legacy CI to 3.8/3.9#135
KenyaOtsuka merged 2 commits into
KamitaniLab:devfrom
KenyaOtsuka:chore/python-floor-3.8

Conversation

@KenyaOtsuka

@KenyaOtsuka KenyaOtsuka commented Jun 16, 2026

Copy link
Copy Markdown

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" slice
of #120 — the standard upper bound is intentionally not advanced to 3.14 here.

Changes

  • requires-python: ">= 3.6, < 3.12"">= 3.8, < 3.12".
  • Dependency markers: drop the now-dead python_version < '3.7' / < '3.8'
    entries and flatten the trivially-true >= '3.7' / >= '3.8' markers
    (numpy, h5py, typing-extensions, nipy, mkdocs*).
  • CI (ci.yml): split the test matrix into standard/blocking 3.10/3.11
    and legacy/non-blocking 3.8/3.9 jobs. The legacy job uses
    continue-on-error: true.
  • Legacy CI (test_old.yml): remove the separate legacy workflow, since
    its 3.8/3.9 testing is now folded into ci.yml.
  • README: remove the obsolete ## Installation (Python 3.6~3.8) section
    (3.6-specific Cython==0.29.36 instructions), which contradicts the new floor.

Note

  • ci.yml now tests standard 3.10/3.11 as blocking jobs and legacy
    3.8/3.9
    as non-blocking jobs.
  • The PR-coverage upload steps ("Save PR number" / "Upload coverage artifact")
    remain only in the standard 3.11 job, so a single coverage-report artifact
    is produced.

Related: #120

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

Copilot AI left a comment

Copy link
Copy Markdown

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 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-python to >= 3.8, < 3.12 and 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.

@KenyaOtsuka KenyaOtsuka requested a review from ganow June 16, 2026 05:45
@KenyaOtsuka KenyaOtsuka marked this pull request as ready for review June 16, 2026 05:45

@ganow ganow left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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:
      ...

@KenyaOtsuka KenyaOtsuka force-pushed the chore/python-floor-3.8 branch from 8036fbf to 813b49a Compare June 16, 2026 06:47
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.
@KenyaOtsuka KenyaOtsuka force-pushed the chore/python-floor-3.8 branch from 813b49a to c7b70ae Compare June 16, 2026 06:48
@KenyaOtsuka

Copy link
Copy Markdown
Author

@ganow
Thank you very much for the review. I had missed that point from #120.

I updated the PR to fold the legacy 3.8/3.9 testing into ci.yml as a non-blocking test-legacy job, and removed the separate test_old.yml workflow.
Could you please take another look when you have a chance?

@ganow

ganow commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

@KenyaOtsuka Nice! Thank you very much!

@KenyaOtsuka KenyaOtsuka merged commit c60a137 into KamitaniLab:dev Jun 17, 2026
4 of 6 checks passed
@KenyaOtsuka KenyaOtsuka deleted the chore/python-floor-3.8 branch June 17, 2026 02:10
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.

3 participants