Skip to content

Promote Python 3.15 to a blocking CI target - #642

Merged
derek73 merged 3 commits into
masterfrom
feat/issue-259-python-3-15
Oct 11, 2026
Merged

derek73 merged 3 commits into
masterfrom
feat/issue-259-python-3-15

Conversation

@derek73

@derek73 derek73 commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Closes #259 (step 2).

Python 3.15.0 final is out. actions/python-versions marks it stable: true, and master's CI has been testing the final release since it went live: the allow-prereleases spec resolves to ~3.15.0-0, which matched 3.15.0 once it shipped (run 38125388105 installed python-3.15.0-linux-24.04-x64).

Commit 1: promote 3.15 to blocking

  • python-package.yml: drop continue-on-error for 3.15, so a 3.15 failure now fails the build. Drop allow-prereleases: true too, so a future "3.16" entry can't silently pick up alphas.
  • pyproject.toml: add the Programming Language :: Python :: 3.15 classifier.
  • CONTRIBUTING.md: the stated CI range was stale (it said 3.10–3.14). It now points at the workflow matrix instead of restating it.
  • docs/release_log.rst: add an Additions bullet.

Commit 2: run ja-extra on 3.15
The ja extra's compiled dependencies had no cp315 wheels at the versions uv.lock pinned, so building them from sdist failed. This commit bumps the four that need it:

package was now
numpy 2.5.1 2.5.4
scipy 1.18.0 1.18.1
pandas 3.0.5 3.0.6
regex 2026.7.19 2026.9.29

lightgbm ships a py3-none wheel, so it didn't need one. The older numpy and scipy (2.4.6 and 1.17.1, which the lock keeps for Python 3.11) are unchanged.

Commit 3: ja-extra runs on 3.11 and 3.15 (review fix)
The lock splits numpy and scipy at 3.12, and ja-extra had only ever run the newer branch. It is now a matrix over the floor and the newest Python, so both branches are installed and tested. Its comment states the rule (a new top row can need a lock bump first) instead of a snapshot. Locally on 3.11, tests/v2/ passes with numpy 2.4.6 and scipy 1.17.1.

Tested locally on 3.15.0 (macOS arm64), with source builds forbidden for those packages: the extra installs from wheels, and tests/v2/ passes (14201 passed). That includes the 771 ja, segmenter and namedivider tests, none of them skipped. The Linux run in this PR's CI is the check that matters.

🤖 Generated with Claude Code

3.15.0 final is out and setup-python's manifest marks it stable, so the
matrix entry drops continue-on-error and allow-prereleases, and the
3.15 classifier joins pyproject. ja-extra stays on 3.14: the numpy and
scipy versions uv.lock pins have no 3.15 wheels; the comment now says
which versions do. CONTRIBUTING.md's range was stale (3.10-3.14).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 self-assigned this Oct 11, 2026
@codecov

codecov Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.02%. Comparing base (3b2b6f0) to head (789f0dd).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #642   +/-   ##
=======================================
  Coverage   99.02%   99.02%           
=======================================
  Files          46       46           
  Lines        4511     4512    +1     
=======================================
+ Hits         4467     4468    +1     
  Misses         44       44           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

derek73 and others added 2 commits October 11, 2026 03:00
The extra's compiled dependencies had no cp315 wheels at the versions
uv.lock pinned, so its sdist builds failed on 3.15. numpy 2.5.4, scipy
1.18.1, pandas 3.0.6 and regex 2026.9.29 ship them; lightgbm is py3-none.
Measured locally on 3.15.0 with source builds forbidden for those
packages: the extra installs from wheels and tests/v2 passes (14201
passed, the 771 ja/segmenter tests among them, none skipped).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
uv.lock splits numpy and scipy at 3.12, so a ja-extra on 3.15 alone left
the <3.12 branch (numpy 2.4.6, scipy 1.17.1) installed by no job; the
job is now a [3.11, 3.15] matrix (3.11 measured locally: tests/v2 passes).
Its comment states the rule rather than "the matrix's newest", and claims
only the measured part (no cp315 wheels at the old pins; numpy and scipy
sdist builds failing). CONTRIBUTING.md points at the matrix instead of
restating its range.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 added this to the 2.4 milestone Oct 11, 2026
@derek73
derek73 merged commit 48f97d0 into master Oct 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Python 3.15 to the test workflow

1 participant