Skip to content

⬆️ feat: support Python 3.15 and drop 3.10 - #114

Merged
SigureMo merged 3 commits into
ShigureLab:mainfrom
ShigureNyako:session/sess_dev_neko_upgrade_shigurelab_codespan_reporting_py_python
Sep 28, 2026
Merged

SigureMo merged 3 commits into
ShigureLab:mainfrom
ShigureNyako:session/sess_dev_neko_upgrade_shigurelab_codespan_reporting_py_python

Conversation

@ShigureNyako

@ShigureNyako ShigureNyako commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Changes

  • Drop Python 3.10 and add ordinary CPython 3.15 in package metadata and the existing test matrix.
  • Align minimum-version lint CI and Ruff with Python 3.11.

3 files, +5/-5. No 3.15t support or CI is added. The original just ci-install path, tests, maturin requirement, Rust/PyO3/ABI configuration, release workflow, and README are unchanged.

Validation

On 3bb8eff with Python 3.15.0rc2:

  • Original just ci-install and just ci-test: passed (1 test).
  • Separately built a native cp310-abi3 wheel via PEP 517, installed it in a fresh 3.15 environment, verified the installed native extension, and ran the original test: passed.
  • just ci-lint, just ci-fmt-check, actionlint, and git diff --check: passed.
  • All 14 build/test/lint jobs passed on this head: unit tests, release builds, and lint. Only the two tag-only publish jobs are skipped.
  • Unit logs confirm the restored just ci-install / pip install -e ".[dev]" path passes on all five versions, including ordinary Python 3.15.0rc2. No additional CI jobs or tests are introduced.

abi3-py310 remains the binary compatibility floor; Requires-Python >=3.11 controls the supported Python versions. No ABI change is needed for ordinary 3.15.

@SigureMo SigureMo 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.

一堆屎山

Comment thread .github/workflows/release.yml Outdated
- uses: actions/setup-python@v7
with:
python-version: 3.x
python-version: '3.11'

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.

继续 3.x 会有问题吗?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

继续用 3.x 没问题;abi3 的兼容下限不要求构建解释器固定为 3.11。已在 272423a 恢复原来的 3.x,release.yml 现在与 main 完全一致。

Comment thread .github/workflows/release.yml Outdated
maturin-version: '1.15.0'
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
args: --release --locked --out dist --interpreter python3.11

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.

这些都是必要改动吗?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

不是必要改动,272423a 已全部撤回版本固定、--locked 和指定解释器,保留原来的自动发现。Rust/PyO3/abi3-py310 也恢复原样;停止支持 3.10 由 Requires-Python >=3.11 控制,不需要改 ABI 下限。

Comment thread .github/workflows/release.yml Outdated
path: dist
if-no-files-found: error

wheel-test:

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.

没让你加

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

是我扩张了范围。272423a 已删除新增的 free-threaded 和 wheel-test jobs、平台矩阵及发布依赖,整个 release.yml 无差异。改为在原有 unit-test 矩阵验证 3.15/3.15t,不增加独立测试流程。

Comment thread .github/workflows/unit-test.yml Outdated
unit-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false

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.

让你动了吗?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

这项策略调整不必要,已在 272423a 撤回。保留原来的 job、architecture、just 和 fail-fast 行为;unit-test.yml 仅改 Python 版本列表,以及把 editable 安装改为普通 wheel 安装,让原有测试验证实际构建产物。

@ShigureNyako ShigureNyako changed the title ⬆️ feat: support Python 3.15 and free-threaded wheels, drop 3.10 ⬆️ feat: support Python 3.15/3.15t and drop 3.10 Sep 28, 2026

@SigureMo SigureMo 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.

感觉可以直接把 3.15t 支持及 CI 删掉

- name: Install dependencies
run: |
just create-venv
just ci-install

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.

我看其他 PR 都用 UV_PYTHON 解决的

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.

以及,如果不需要支持 3.15t,是不是这里可以不改

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

可以不改,已在 3bb8eff 恢复原来的 just ci-install,并删除 3.15t 矩阵、GIL 断言和为它提高的 maturin 下限。这里使用 pip/just,不涉及 UV_PYTHON 的解释器选择;原安装命令在普通 3.15 下已验证通过,独立构建并安装的 native wheel 也通过原测试。现在仅剩 3 个文件 +5/-5,新 head CI 正在运行。

@ShigureNyako ShigureNyako changed the title ⬆️ feat: support Python 3.15/3.15t and drop 3.10 ⬆️ feat: support Python 3.15 and drop 3.10 Sep 28, 2026
@SigureMo
SigureMo merged commit 7774f9f into ShigureLab:main Sep 28, 2026
16 checks passed
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.

2 participants