Repository navigation
python added 3.15 support - #1761
OmkarSarkar204 wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot couldn't run its full agentic review because no GitHub Actions runner was available. Make sure your repository has a runner available to run Copilot's review, or add a copilot-setup-steps.yml file specifying one with the runs-on attribute. See the docs for more details.
Adds Python 3.15 support across packaging metadata and CI/dev tooling so the project can publish/test against the newer interpreter.
Changes:
- Add Python 3.15 Trove classifier in
pyproject.toml. - Expand GitHub Actions matrices (and some pinned workflow versions) to include/use Python 3.15.
- Update Windows developer setup script to treat 3.15 similarly to 3.14 for build-tools warnings.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Adds Python 3.15 classifier to advertised supported versions. |
| SetupDeveloperPC.bat | Extends Python-version detection to match 3.15. |
| .github/workflows/update_vehicle_templates.yml | Adds 3.15 to the workflow Python matrix. |
| .github/workflows/update_configuration_steps_translation.yaml | Switches workflow runtime Python to 3.15. |
| .github/workflows/update_codebase_chart.yml | Adds 3.15 to workflow matrices. |
| .github/workflows/reuse.yml | Switches workflow runtime Python to 3.15. |
| .github/workflows/python-publish.yml | Switches publish workflow runtime Python to 3.15. |
| .github/workflows/pytest.yml | Adds 3.15 to test matrix and carryforward coverage config. |
| .github/workflows/pylint.yml | Adds 3.15 to pylint matrix. |
| .github/workflows/build_windows_macos.yml | Adds 3.15 to build matrices across OS jobs. |
637f92d to
7bbc2a6
Compare
7bbc2a6 to
daa8075
Compare
|
I corrected some stuff, let's see if the tests pass. And if they do, let's see if the windows executables run correctly. |
|
At least lxml 6.1.1 causes issues. So we need to wait until that is fixed upstream until we can progress with this. |
Yes, i also got the lxml error, thats why I had reverted the CI YAMLs and just kept the pyproject.toml bump :) |
|
The pyproject.toml bump is a lie if python 3.15 does not pass ci :) |
daa8075 to
013955e
Compare
|
My guess is that once it is officially released, most issues will go away. |
b08a023 to
08a655c
Compare
Coverage Report for CI Build 41122218737Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Coverage decreased (-0.03%) to 93.571%Details
Uncovered ChangesNo uncovered changes found. Coverage Regressions45 previously-covered lines in 1 file lost coverage.
Coverage Stats💛 - Coveralls |
4206d9d to
4654579
Compare
4654579 to
d782351
Compare
Previous review (2026-10-05)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks for working on Python 3.15 support. Two things need fixing before this can go in.
Smaller points: please keep an exact Windows interpreter version rather than |
d782351 to
3ccbbde
Compare
Previous review (2026-10-05)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks for the update. The PyInstaller bump fixes the earlier Python-version rejection, but it introduces a new blocker. I've re-reviewed at the new head 3ccbbde.
Smaller points: numpy 2.3.4 and matplotlib 3.10.9 have no cp315 wheels, so consider 3.15-specific pins to releases that ship them. Please keep an exact Windows interpreter version rather than '3.15' (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R28). Also update the Coveralls carryforward list at .github/workflows/pytest.yml:282 to the py3.15 Ubuntu/Windows flags that the renamed matrix (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-2500680f4bc6c1b75c3d4b36372bf4d64c5f603b90bfd7a5186f66a20329d16aR31) now uploads. The release workflow and frozen executables were not run. |
3ccbbde to
24ce07b
Compare
Previous review (2026-10-08)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head The new head 24ce07b is a straight rebase of the previously reviewed 3ccbbde, so the earlier points all still apply.
Smaller points:
The release workflow, frozen executables and the 3.15 source builds were not exercised. |
3fbd9ec to
f2fa0e4
Compare
|
The tests pass now. The only issue is a ty finding exclusion that must be removed in 3.15, but must be present on 3.10 So I guess this requires an updated ty version at some point |
Previous review (2026-10-11)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks for the update. This is a review of head f2fa0e4, which adds real changes on top of the previously reviewed 24ce07b. The earlier points are sorted: the hooks-contrib pin, the 3.15 numpy/matplotlib pins, the exact interpreter versions, the Coveralls list and the lxml steps. Pytest now passes on Python 3.15.0 on Linux, Windows and macOS, and the earlier Windows crash is gone. One thing still blocks.
Not blocking:
For the maintainer only: 33fb099 and f2fa0e4 carry no Signed-off-by line. Not exercised here: the Windows, macOS and Linux installer builds and frozen executables, a full local pytest run, and the cancelled |
f2fa0e4 to
3d03b8d
Compare
Previous review (2026-10-12)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks for picking up both suggestions in 3d03b8d. This covers that new head; the previous review was of f2fa0e4. The earlier blocker is fixed and nothing blocks now. The pie chart rewrite (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-56cf572570c09b5c4d8060a8484525b11d8ce01ddd0529485ff35a9df4852c99R143) works: Two things before merging:
For the maintainer only: 184dee5 still has no Signed-off-by line. Not exercised here: CI for this head (all 14 checks were still queued at 2026-10-12 00:02 UTC), the Windows and macOS installer builds, and Python 3.15.0 final (local runs used 3.15.0rc2). The full test suite was only run locally on Linux, where 6450 tests pass and the same 60 fail on both this head and the merge base. |
3d03b8d to
e986a47
Compare
Previous review (2026-10-13)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head Thanks for the rebase. This covers the new head e986a47; the previous review was of 3d03b8d. The five commits are unchanged by the rebase, and it picked up master's 69ddc60, so the pylint R0901 failure from last time is gone: One thing worth doing before merging: the installer build workflow has still not run with the packaging change. It has no pull_request trigger, and there is no run of it for this head upstream or in the fork. The only run on the upstream Everything I could check points to it working. The 3.15.0 Windows build keeps init.tcl and tk.tcl inside tcl90.dll and tcl9tk90.dll, PyInstaller 6.22.3's tkinter hook handles that layout and aborts the build if expected data is missing, and a frozen Linux build of this head passes For the maintainer: 607a4aa (the rebased 184dee5) still has no Signed-off-by line, which CONTRIBUTING.md asks for on each commit. Optional: going by the last master and Not exercised here: CI for this head (all 14 checks were still queued at 2026-10-13 21:54 UTC, so the CI results above are from before the rebase), the Windows and macOS installer builds, and the Linux AppImage on the release interpreter. Locally, on Linux only, tests/test__main__.py passes apart from one test that needs a download the sandbox blocks, which fails the same way on the merge base. The full suite was not re-run for this pass; the earlier run on this head showed the same 60 failures on head and merge base, only one of them traced to its cause. |
e986a47 to
abbf194
Compare
Previous review (2026-10-28)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head This covers head abbf194, a single squashed commit on master 475bc07; the previous review was of e986a47, and nothing newer is covered. Since then master has taken the earlier commits, the commit is now signed off, and pylint and pyright pass on 3.11 and 3.15.0. Nothing blocks. Should fix
Low
Minor (1)
The three Windows pytest failures also fail, with the same values, on master. |
Signed-off-by: Omkar Sarkar <omkarsarkar24@gmail.com> Signed-off-by: Dr.-Ing. Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
abbf194 to
32ce444
Compare
|
Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head This covers head 32ce444, which only changes the 3.15 matrix entries from 3.15.0 to 3.15.2 since abbf194 (rebased on master 7dbb284); nothing blocks, but none of this head's CI has run yet. Since the last review, the exact 3.15.2 pin should stop uv picking the macOS runner's Homebrew 3.15.0, which broke the macOS pytest leg, though no macOS run has confirmed it yet. Low
Minor (2)
The earlier note that the Windows failures matched master is dropped, because Windows pytest has not run at this head. |
Description
Closes : #1753
Checklist
git commit --signoff)Testing
Describe how you tested these changes: