Skip to content

ci: drop Python 3.10 (EOL), test 3.13 and 3.14, and align metadata - #63

Merged
wenh06 merged 2 commits into
masterfrom
ci-drop-310
Nov 1, 2026
Merged

wenh06 merged 2 commits into
masterfrom
ci-drop-310

Conversation

@wenh06

@wenh06 wenh06 commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • run-pytest and check-formatting matrices move from [3.10, 3.11] to [3.11, 3.13, 3.14]; the per-algorithm workflows and the docs build move from 3.10 to 3.13.
  • requires-python raised to >=3.11 (3.10 reached end of life in October 2026); classifiers updated to 3.11 / 3.12 / 3.13 / 3.14.
  • The install page and the quickstart now state Python 3.11+ (zh_CN catalogs re-aligned).
  • test_custom invokes the CLI through sys.executable -m fl_sim.cli instead of the bare fl-sim console script, so the test no longer depends on the script directory being on PATH (relevant for uv-managed interpreters whose bin directory is not on PATH).
  • docs/requirements.txt pins sphinxcontrib-tikz>=0.4.20: Sphinx 9 removed sphinx.util.ENOENT, which broke the gettext build with the 2018-era 0.4.6 dev snapshot; 0.4.20 is compatible.

Verified locally on CPython 3.13.13 (torch 2.11.0+cu128, numpy 2.5.4, pandas 3.1.0, Sphinx 9.2.0):

  • every fl_sim module imports cleanly with DeprecationWarning promoted to error;
  • tutorial smoke tests 7/7, hook-contract/messages/executors green, viz 5/5 (pandas 3.1 + seaborn), custom suite green with the new CLI invocation;
  • English and zh_CN docs builds succeed (zh_CN shows two new i18n.inconsistent_references warnings from Sphinx 9's stricter checker on pre-existing theory-page translations — non-blocking, unrelated to this change).

- run-pytest and check-formatting matrices move to 3.11 / 3.13 / 3.14;
  the per-algorithm workflows and the docs build move to 3.13
- requires-python raised to >=3.11; classifiers updated accordingly
  (3.11, 3.12, 3.13, 3.14)
- install page and quickstart now state Python 3.11+
- test_custom invokes the CLI through sys.executable -m fl_sim.cli
  instead of the fl-sim console script, so the test no longer depends
  on the script directory being on PATH
- docs requirements pin sphinxcontrib-tikz>=0.4.20: Sphinx 9 removed
  sphinx.util.ENOENT, which breaks the 2018-era 0.4.6 snapshot during
  the gettext build
…image

Python 3.10 reached end of life, and the new requires-python floor
(>=3.11) makes the 3.10-based slim image uninstallable. The slim image
moves to python:3.13-slim, matching the CI baseline.

The pytorch1.13.1-cu116 image is removed: torch 1.13 supports at most
Python 3.10, so no base image can satisfy the new floor. Already
published tags on Docker Hub remain available to existing users.
@wenh06
wenh06 merged commit dd61300 into master Nov 1, 2026
28 checks passed
@wenh06
wenh06 deleted the ci-drop-310 branch November 1, 2026 09:08
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