Skip to content

chore: bump python floor to 3.14, modernize CI/build, ruff FURB sweep#118

Open
FIrgolitsch wants to merge 2 commits intopr-o-galvo-fixfrom
pr-p-py314-modernization
Open

chore: bump python floor to 3.14, modernize CI/build, ruff FURB sweep#118
FIrgolitsch wants to merge 2 commits intopr-o-galvo-fixfrom
pr-p-py314-modernization

Conversation

@FIrgolitsch
Copy link
Copy Markdown
Contributor

@FIrgolitsch FIrgolitsch commented May 1, 2026

Stacked PR 18/18 — review order: #115#97#98#99#100#101#108#106#107#87#116#110#111#40#112#113#117#118

Base: pr-o-galvo-fix (#117). Retargets to main as upstream PRs merge. Final PR in the chain — after this merges, main matches dev.


PR — Python 3.14 migration + build/CI modernization + ruff FURB sweep

Bumps the project to Python 3.14 as the new floor and modernizes the build, CI, and codebase to take advantage of it.

Runtime

  • pyproject.toml: requires-python = ">=3.14".
  • Drop from __future__ import annotations across the codebase (no-op on 3.14, removes ~70 stale imports).
  • linumpy.config.threads: adopt os.process_cpu_count() over os.cpu_count() (respects cgroup/affinity limits).

CI / build

  • .github/workflows/python-app.yml, publish.yaml: matrices bumped to 3.14.
  • .readthedocs.yaml: Python 3.14.
  • Dockerfile: base image bumped to python:3.14; drop unused .python-version from COPY.
  • Remove .pep8speaks.yml (deprecated service).
  • New .github/workflows/docker-publish.yml: builds and pushes the image to GHCR on tag.
  • Misc workflow cleanup: drop redundant per-step python-version pins, fix nextflow-ci checkout.

Code modernization

  • ruff: enable FURB rule set + apply the modernization sweep across linumpy/ and scripts/ (pathlib, dict.fromkeys, list comprehensions, str.removeprefix/suffix, etc.).
  • README + docs/NEXTFLOW_WORKFLOWS.md: update Python version references.

No behavioural changes — pure tooling/version bump + automated style refactors verified by ruff and ty.

- pyproject.toml: requires-python >=3.14
- Drop `from __future__ import annotations` across the codebase (no-op on 3.14)
- linumpy.config.threads: adopt os.process_cpu_count() over os.cpu_count()
- Update CI matrices (.github/workflows/python-app.yml, publish.yaml) to py3.14
- Bump .readthedocs.yaml + Dockerfile base image to py3.14; drop unused .python-version copy
- Remove .pep8speaks.yml (deprecated service); add docker-publish.yml for GHCR
- Misc workflow cleanup: drop redundant python-version pins, fix nextflow-ci checkout
- ruff: enable FURB rule set + apply modernization sweep (pathlib, dict.fromkeys, list comprehensions, etc.)
- README + docs/NEXTFLOW_WORKFLOWS: update python version refs
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.

1 participant