Skip to content

python added 3.15 support - #1761

Open
OmkarSarkar204 wants to merge 1 commit into
ArduPilot:masterfrom
OmkarSarkar204:version-bump
Open

OmkarSarkar204 wants to merge 1 commit into
ArduPilot:masterfrom
OmkarSarkar204:version-bump

Conversation

@OmkarSarkar204

@OmkarSarkar204 OmkarSarkar204 commented Jun 22, 2026 •

Copy link
Copy Markdown
Contributor

Description

Closes : #1753

Checklist

  • Run pre-commit checks locally
  • Verified by a human programmer
  • All commits are signed off (use git commit --signoff)
  • Code follows our coding standards
  • Documentation updated if needed
  • No breaking changes or properly documented

Testing

Describe how you tested these changes:

  • Unit tests pass
  • Integration tests pass
  • Manual testing performed
  • Tested on flight controller hardware

Copilot AI review requested due to automatic review settings June 22, 2026 02:27

Copilot AI 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.

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.

Comment thread SetupDeveloperPC.bat Resolved
Comment thread .github/workflows/pylint.yml Resolved
amilcarlucas
amilcarlucas previously approved these changes Jun 22, 2026
@amilcarlucas

Copy link
Copy Markdown
Collaborator

I corrected some stuff, let's see if the tests pass. And if they do, let's see if the windows executables run correctly.

@amilcarlucas

Copy link
Copy Markdown
Collaborator

At least lxml 6.1.1 causes issues. So we need to wait until that is fixed upstream until we can progress with this.

@OmkarSarkar204

Copy link
Copy Markdown
Contributor Author

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 :)

@amilcarlucas

Copy link
Copy Markdown
Collaborator

The pyproject.toml bump is a lie if python 3.15 does not pass ci :)

@amilcarlucas

Copy link
Copy Markdown
Collaborator

My guess is that once it is officially released, most issues will go away.

@amilcarlucas
amilcarlucas force-pushed the version-bump branch 2 times, most recently from b08a023 to 08a655c Compare July 10, 2026 02:11
@coveralls

coveralls commented Jul 22, 2026 •

Copy link
Copy Markdown

Coverage Report for CI Build 41122218737

Warning

Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes.
Quick fix: rebase this PR. Learn more →

Coverage decreased (-0.03%) to 93.571%

Details

  • Coverage decreased (-0.03%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 45 coverage regressions across 1 file.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

45 previously-covered lines in 1 file lost coverage.

File Lines Losing Coverage Coverage
main.py 45 88.34%

Coverage Stats

Coverage Status
Relevant Lines: 29866
Covered Lines: 27946
Line Coverage: 93.57%
Relevant Branches: 9004
Covered Branches: 7869
Branch Coverage: 87.39%
Branches in Coverage %: No
Coverage Strength: 2.79 hits per line

💛 - Coveralls

@amilcarlucas amilcarlucas added the AIReview Request an automated AI review; picked up by the reviewprs sweep label Oct 5, 2026
@AP-Review

AP-Review commented Oct 5, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-05)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: REQUEST CHANGES

Reviewed at head d782351945.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/1.html#prMethodicConfigurator-1761

Thanks for working on Python 3.15 support. Two things need fixing before this can go in.

  1. The macOS and Linux release builds now use 3.15 (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R210, https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R314), but they install .[mac_dist]/.[linux_dist] with pip, and those pin pyinstaller==6.20.0, which declares Requires-Python <3.15. pip refuses to install it on 3.15, and the release job needs all three builds. Please move to an exact PyInstaller release that supports 3.15, or keep the build jobs on 3.14 for now.
  2. pytest (windows-latest, 3.15) (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-2500680f4bc6c1b75c3d4b36372bf4d64c5f603b90bfd7a5186f66a20329d16aR31) segfaults (exit 139) on CPython 3.15.0rc3 before any results are written, while Windows 3.14 passes on master. We have not pinned down which component crashes. As the maintainer said, the 3.15 classifier (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R39) needs a passing 3.15 CI.

Smaller points: please keep an exact Windows interpreter version rather than '3.15' (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R28); the 3.14.6 pin was added in f59554c for reproducible, working builds. Also update the Coveralls carryforward list at .github/workflows/pytest.yml:282 to the new py3.15 flag names. We did not run the release workflow or the frozen executables, so their behaviour on 3.15 is unverified.

@AP-Review

AP-Review commented Oct 5, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-05)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: REQUEST CHANGES

Reviewed at head 3ccbbded6c.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/2.html#prMethodicConfigurator-1761

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.

  1. pyinstaller==6.22.3 (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R110, R117, R124) requires pyinstaller-hooks-contrib>=2026.7, but the dist extras still pin ==2026.6. All three extras are unsatisfiable, which is why every pytest leg (including ubuntu 3.10), pylint 3.15 and Docker fail at dependency install at this head. Bumping the hooks pin to an exact 2026.7 resolves on linux/windows/macOS for 3.14 and 3.15.
  2. The macOS and Linux build jobs (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R210, https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R314) use actions/setup-python without allow-prereleases. The current manifest only has 3.15 release candidates, so those jobs likely cannot find a 3.15 until GA is published. Keep them on 3.14 until then, or set allow-prereleases. We did not run the build workflow to confirm this.
  3. As the maintainer noted, the 3.15 classifier (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R39) needs passing 3.15 CI. No 3.15 test leg has run yet, so we can't tell whether the earlier Windows segfault is gone.

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.

@AP-Review

AP-Review commented Oct 8, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-08)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: REQUEST CHANGES

Reviewed at head 24ce07be8f.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/3.html#prMethodicConfigurator-1761

The new head 24ce07b is a straight rebase of the previously reviewed 3ccbbde, so the earlier points all still apply.

  1. pyinstaller==6.22.3 (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R110, R117, R124) requires pyinstaller-hooks-contrib>=2026.7, but the dist extras still pin ==2026.6. All three extras are unsatisfiable on every Python version. That is why pytest (including ubuntu 3.10), pylint 3.10 and Docker fail at dependency install before any test runs. Bumping the hooks pin to 2026.7 alongside PyInstaller resolves on Linux, Windows and macOS.
  2. The macOS and Linux build jobs (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R210, https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R314) use actions/setup-python with '3.15' and no allow-prereleases. The manifest currently has only 3.15 release candidates, so those builds will likely fail until 3.15.0 is published. Keep them on 3.14 for now, or set allow-prereleases. This was not run to confirm.
  3. As the maintainer said, the 3.15 classifier (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R39) needs passing 3.15 CI. Once item 1 is fixed the 3.15 tests will actually run, and that will also show whether the earlier Windows crash is gone.

Smaller points:

The release workflow, frozen executables and the 3.15 source builds were not exercised.

@amilcarlucas
amilcarlucas force-pushed the version-bump branch 2 times, most recently from 3fbd9ec to f2fa0e4 Compare October 11, 2026 10:21
@amilcarlucas

Copy link
Copy Markdown
Collaborator

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

@AP-Review

AP-Review commented Oct 11, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-11)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: REQUEST CHANGES

Reviewed at head f2fa0e4535.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/5.html#prMethodicConfigurator-1761

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.

  1. pylint (3.15.0) is the only failing check, and it comes from the new matplotlib==3.11.2 pin (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R53). In matplotlib 3.11 Axes.pie() returns a PieContainer rather than a tuple, so ty check reports the # ty: ignore[index-out-of-bounds] at scripts/generate_codebase_pie_chart.py:145 as unused and exits 1 before pylint runs. On the maintainer's comment that this needs a newer ty: it doesn't have to wait. Replacing scripts/generate_codebase_pie_chart.py:143-145 with wedges, texts, *rest = pie_result and autotexts = rest[0] if rest else [] passes ty 0.0.75 against matplotlib 3.10.3, 3.10.9 and 3.11.2 with no ignore comment. The same rewrite fixes a real crash: PieContainer has no len(), so line 144 raises TypeError when the script runs on 3.15 with the pinned matplotlib. The chart workflow still runs on 3.14, so it is not affected today.

Not blocking:

  1. The installer build workflow has not run for this head; it has no pull_request trigger and there is no run in the fork. That leaves the Windows build without the TCL_LIBRARY/TK_LIBRARY workaround (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-891d8e6b02972ea991ffbf5ae2b9aa9a4565cfd6931f1bf43e360235afe6555fR9), the new frozen smoke step (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R93) and the macOS/Linux moves to 3.15.0 (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R225, https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R329) untested. Nothing suggests they are broken, and a local Linux build passed the frozen check, but a workflow_dispatch run on this branch before merging would show the Windows executable starts.
  2. A successful --validate-tkinter prints nothing, because the logging_info call (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-07c8aae629798ce99b3a341b36fe9273c6afcf8de3d503dfbc9e720055f5630fR136) runs before logging is configured. Printing that line would let the build log show which Tcl library the frozen app used.

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 pylint (3.10) leg.

@AP-Review

AP-Review commented Oct 12, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-12)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: COMMENT

Reviewed at head 3d03b8d843.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/6.html#prMethodicConfigurator-1761

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: ty check passes on Python 3.15 with matplotlib 3.11.2 and on 3.10 with matplotlib 3.10.3, and the chart function runs on both, where the previous commit still raised TypeError on 3.11.2. --validate-tkinter now prints the Tcl/Tk versions and the Tcl library path (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-07c8aae629798ce99b3a341b36fe9273c6afcf8de3d503dfbc9e720055f5630fR139).

Two things before merging:

  1. Rebase onto current master. At this head pylint fails on both 3.10 and 3.15 with one message, ardupilot_methodic_configurator/plugins/frontend_tkinter_servo_out.py:27: R0901 too-many-ancestors, in a file this PR does not touch. Master fixed that in 69ddc60. The Pylint run queued for this head was created before that fix, so it will most likely go red when it runs. Merging this head into 69ddc60 locally is conflict-free and gives a clean ty and pylint on both interpreters.
  2. The installer build workflow still has not run for this branch: it has no pull_request trigger, and there is no run upstream or in the fork for this head. That leaves the Windows build without the TCL_LIBRARY/TK_LIBRARY workaround (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-891d8e6b02972ea991ffbf5ae2b9aa9a4565cfd6931f1bf43e360235afe6555fR9), the new frozen smoke step (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R101) and the macOS and Linux moves to 3.15.0 (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R225, https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R329) untested on their platforms. Nothing suggests they are broken: a local Linux build of this head with PyInstaller 6.22.3 bundled the Tcl/Tk data on its own, and the frozen app passed --validate-tkinter and --validate-plugins. A workflow_dispatch run of 'Build Windows and macOS Installers' on this branch would show the Windows executable starts, which is what was asked for early in this thread.

For the maintainer only: 184dee5 still has no Signed-off-by line. git rebase --signoff master would cover it along with the rebase in item 1.

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.

@AP-Review

AP-Review commented Oct 13, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-13)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: COMMENT

Reviewed at head e986a47111.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/7.html#prMethodicConfigurator-1761

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: ty check and full-repo pylint exit 0 here on both Python 3.15.0 and 3.10. Nothing blocks.

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 version-bump branch (2026-10-11, at 9448256, the first two commits of this PR) built Linux and macOS on 3.15.0 and failed on Windows in the old spec with "Could not find tcl library data below ...cpython-3.15.0-windows-x86_64-none\tcl". That lookup is what 5e40e17 removed (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-891d8e6b02972ea991ffbf5ae2b9aa9a4565cfd6931f1bf43e360235afe6555fR9), and the workflow has not run since, so the Windows build without it and the new frozen smoke step (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R93) are untested on Windows.

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 --validate-tkinter and exits 1 once the bundled Tk data is removed. A failure would also show as a red smoke step before the installer is built, not as a broken installer. Pushing this head to the upstream version-bump branch again, or dispatching 'Build Windows and macOS Installers' on it, and seeing 'Smoke-test frozen Tcl/Tk initialization' go green would settle it, and would answer the early request in this thread to see the Windows executables run.

For the maintainer: 607a4aa (the rebased 184dee5) still has no Signed-off-by line, which CONTRIBUTING.md asks for on each commit. git rebase --signoff master adds it.

Optional: going by the last master and version-bump build logs, moving the release builds to 3.15.0 also takes the Tcl/Tk in the Windows and macOS installers from 8.6 to 9.0 (https://github.com/ArduPilot/MethodicConfigurator/pull/1761/files#diff-7ad8d8dcc9d03fa22466151743062a81bdf381fa908ef2e52ba0e1ff770308f8R225), and only the Windows job runs --validate-tkinter on the frozen app. Running it in the macOS job too would be cheap extra cover. No problem was seen: the Windows and macOS test legs passed on Tcl/Tk 9.0 at the previous head.

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.

@AP-Review

AP-Review commented Oct 28, 2026 •

Copy link
Copy Markdown

Deprecated — see below for the updated review.

Previous review (2026-10-28)

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: COMMENT

Reviewed at head abbf194864.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/8.html#prMethodicConfigurator-1761

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

  • .github/workflows/pytest.yml:34: the macOS 3.15.0 pytest leg runs no tests. setup-uv now picks the runner's Homebrew python@3.15, but brew install python-tk (line 88) installs python-tk@3.14, so import tkinter fails before pytest starts. At e986a47 uv downloaded its own 3.15.0 with Tk 9.0 and the leg worked. Master's macOS leg is red too, but earlier, in brew install. Setting UV_PYTHON_PREFERENCE: only-managed on the job should bring back uv's standalone build (not tried on a macOS runner).

Low

  • .github/workflows/pytest.yml:273: the Coveralls carryforward says py3.15, but the uploads are flagged run-ubuntu-latest-py3.15.0 and run-windows-latest-py3.15.0. Spell them py3.15.0 so they match.
  • .github/workflows/build_windows_macos.yml:93: installer build (still open). There is still no run of 'Build Windows and macOS Installers' at this head, so the Windows build without the spec's Tcl lookup and this smoke step are untested on 3.15.0. Dispatch it on the branch before merging.
Minor (1)
  • .github/workflows/build_windows_macos.yml:225: macOS frozen Tk check (still open, optional). The macOS build now uses 3.15.0 but runs only --validate-plugins on the frozen app; adding --validate-tkinter would be cheap cover.

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>
@AP-Review

Copy link
Copy Markdown

Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting.
Verdict: COMMENT

Reviewed at head 32ce444fe6.
Full report: https://firmware.ardupilot.org/Tools/APReview/DevCallReviews/PRReviews/ardupilot/methodicconfigurator/1761/9.html#prMethodicConfigurator-1761

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

  • .github/workflows/pytest.yml:273: Coveralls carryforward (still open). It still says py3.15, but the uploads are now flagged run-ubuntu-latest-py3.15.2 and run-windows-latest-py3.15.2 (line 253). Spell those two entries py3.15.2.
  • .github/workflows/build_windows_macos.yml:93: installer build (still open). 'Build Windows and macOS Installers' has never run with the packaging change: there is no run at 32ce444, and the last version-bump run failed on 2026-10-11 in the old spec lookup. Dispatch it on the branch and check that the 'Smoke-test frozen Tcl/Tk initialization' step passes before merging.
Minor (2)
  • .github/workflows/build_windows_macos.yml:225: macOS frozen Tk check (still open, optional). The macOS build runs only --validate-plugins on the frozen app. Adding "$APP" --validate-tkinter next to line 295 would cover its Tk.
  • .github/workflows/pytest.yml:34: macOS pytest interpreter (downgraded from Should fix). The 3.15.0 mismatch should not recur. uv could still pick a Homebrew python@3.15 once the runner image ships 3.15.2, though, and brew install python-tk (line 88) is not tied to that version. Setting UV_PYTHON_PREFERENCE: only-managed would remove the dependence (not tried on a macOS runner).

The earlier note that the Windows failures matched master is dropped, because Windows pytest has not run at this head.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AIReview Request an automated AI review; picked up by the reviewprs sweep

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python 3.15 support

5 participants