Skip to content

Build with python 3.13 in parallel#18611

Merged
seanbudd merged 16 commits intomasterfrom
try-python3.13
Aug 8, 2025
Merged

Build with python 3.13 in parallel#18611
seanbudd merged 16 commits intomasterfrom
try-python3.13

Conversation

@seanbudd
Copy link
Copy Markdown
Member

@seanbudd seanbudd commented Aug 5, 2025

Link to issue number:

Part of #18591

Summary of the issue:

We want to update Python to 3.13.

Description of user facing changes:

None

Description of developer facing changes:

  • Updates to comtypes and py2exe

Description of development approach:

Testing strategy:

CI/CD tests

Known issues with pull request:

brlapi needs to be updated

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@coderabbitai summary

@seanbudd seanbudd added this to the 2026.1 milestone Aug 5, 2025
@seanbudd seanbudd mentioned this pull request Aug 6, 2025
5 tasks
@LeonarddeR
Copy link
Copy Markdown
Collaborator

How does this relate to the 64-bit migration? It feels a bit like two parallel paths are followed here.
As for brlapi, for example, last time it took a lot of effort to get a Python 3.11 X86 build of the bindings. It doesn't make much sense to build X86 bindings compatible with Python 3.13 if a stable version with those will never be released.

@seanbudd
Copy link
Copy Markdown
Member Author

seanbudd commented Aug 6, 2025

@LeonarddeR - we plan to do this at a similar time. There isn't a huge conflict between these, brlapi is really the largest.
We've reached out to Dave and other from the project a couple times and haven't heard back yet, but we are hoping to get a range of builds (32/64, 3.11/3.13) that we can use in the transition. At the very least, we need the 3.13 and 64 bit build.

@seanbudd
Copy link
Copy Markdown
Member Author

seanbudd commented Aug 6, 2025

We may go to alpha, beta, or even stable without brlapi depending on if we get builds from BRLTTY.

seanbudd added a commit that referenced this pull request Aug 6, 2025
Taken from #18611 #18596 and #18207
Summary of the issue:

We want to build 64bit and 32builds of NVDA in parallel for the 64bit migration and python migrations.
As such, we should prepare our build system to take a matrix of python versions and architecture
Description of user facing changes:

None
Description of developer facing changes:

None
Description of development approach:

Refer to #18611 #18596
@seanbudd seanbudd changed the title [wip] Upgrade to Python 3.13 Build with python 3.13 in parallel Aug 7, 2025
@seanbudd seanbudd removed this from the 2026.1 milestone Aug 7, 2025
@seanbudd seanbudd marked this pull request as ready for review August 7, 2025 03:02
Copilot AI review requested due to automatic review settings August 7, 2025 03:02
@seanbudd seanbudd requested a review from a team as a code owner August 7, 2025 03:02
@seanbudd seanbudd requested a review from SaschaCowley August 7, 2025 03:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR updates the NVDA project to support Python 3.13 in parallel with the existing Python 3.11 support. The change creates a parallel build configuration while maintaining backward compatibility.

Key changes:

  • Updates dependencies (comtypes to 1.4.11, py2exe to 0.14.0.0) for Python 3.13 compatibility
  • Implements a workaround for Python 3.13 frame locals clearing behavior changes
  • Modernizes test code to use current unittest assertion methods and type annotations

Reviewed Changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
user_docs/en/changes.md Documents dependency updates in changelog
tests/unit/test_braille/test_brailleDisplayDrivers.py Modernizes type annotations and test assertions, adds Python version-specific test skipping
tests/unit/test_baseObject.py Adds version-specific regex patterns for abstract method error messages
tests/unit/extensionPointTestHelpers.py Refactors to remove deprecated assertDictContainsSubset usage and modernizes documentation
source/logHandler.py Implements Python 3.13 compatible frame locals clearing
pyproject.toml Updates Python version support and dependency versions
.python-versions Adds Python 3.13.5 support
.github/workflows/testAndPublish.yml Adds Python 3.13.5 to CI pipeline

@bramd
Copy link
Copy Markdown
Contributor

bramd commented Aug 7, 2025

@LeonarddeR - we plan to do this at a similar time. There isn't a huge conflict between these, brlapi is really the largest. We've reached out to Dave and other from the project a couple times and haven't heard back yet, but we are hoping to get a range of builds (32/64, 3.11/3.13) that we can use in the transition. At the very least, we need the 3.13 and 64 bit build.

In my experience, Windows has always been a bit of a second class citizen in the BRLTTY project. Also, the official Windows build environment still leans on msys-1 last time I checked, which is quite old, hard to set up and fiddly get right. My impression is that Dave is the only one who cuts releases for the project including Windows. I don't know how he is now, but he has been less active for health reasons last year. So, I wouldn't expect much from the project and if we need it I would recommend we get a reliable build going on some CI service like Github actions ourselves.

@seanbudd seanbudd merged commit 145e5ee into master Aug 8, 2025
82 of 85 checks passed
@seanbudd seanbudd deleted the try-python3.13 branch August 8, 2025 06:19
seanbudd added a commit that referenced this pull request Aug 8, 2025
Follow up to #18611
Part of #18591
Summary of the issue:

Python 3.13.6 was recently released.
We are now building test parallel builds of python 3.13.
@seanbudd seanbudd mentioned this pull request Aug 13, 2025
5 tasks
@SaschaCowley SaschaCowley added this to the 2025.3 milestone Aug 18, 2025
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.

5 participants