Skip to content

SG-42304 Add Python 3.13 support#315

Merged
julien-lang merged 1 commit intomasterfrom
ticket/SG-42304-python-313
Mar 5, 2026
Merged

SG-42304 Add Python 3.13 support#315
julien-lang merged 1 commit intomasterfrom
ticket/SG-42304-python-313

Conversation

@julien-lang
Copy link
Copy Markdown
Member

@julien-lang julien-lang commented Feb 25, 2026

Summary

Adds Python 3.13 support to tk-framework-desktopserver, aligned with VFX
Reference Platform CY2026.

Changes

  • Added Python 3.13 requirements.txt seed file used to drive dependency
    resolution
  • Extended the automated pipeline (pipelines.yml) with new jobs for
    source and binary dependency resolution across macOS, Linux and Windows
    for Python 3.13
  • Updated update_requirements.py to handle Python 3.13
  • Excluded resources/python/src/3.13/explicit_requirements.txt from Snyk
    scans (consistent with other Python versions)
  • Updated README badges to include Python 3.13 and VFX Reference Platform
    CY2026

Notes

The actual resolved dependency lock files (explicit_requirements) are
generated automatically by the CI pipeline and land via PR #317, which
must be merged into this branch before this PR can be merged into master.

Do not mind the 3.13 CI failures. This is a chicken and egg problem and is resolved by #317.

Related

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.82%. Comparing base (89853b3) to head (3fa4131).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #315   +/-   ##
=======================================
  Coverage   65.82%   65.82%           
=======================================
  Files          24       24           
  Lines        1870     1870           
=======================================
  Hits         1231     1231           
  Misses        639      639           
Flag Coverage Δ
Linux 47.54% <ø> (ø)
Python-3.10 65.82% <ø> (ø)
Python-3.11 65.82% <ø> (ø)
Python-3.9 65.79% <ø> (ø)
Windows 63.80% <ø> (ø)
macOS 64.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 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.

@julien-lang julien-lang force-pushed the ticket/SG-42304-python-313 branch from 52a1609 to 3fa4131 Compare March 5, 2026 20:51
@julien-lang julien-lang requested a review from Copilot March 5, 2026 21:33
@julien-lang julien-lang changed the title SG-42304 python 313 SG-42304 Add Python 3.13 support Mar 5, 2026
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

Adds Python 3.13 support to the bundled-dependency update workflow by introducing a 3.13 requirements set and extending the Azure pipeline to generate/install source and binary dependencies for 3.13.

Changes:

  • Add git add of newly generated explicit_requirements.txt files during requirements generation.
  • Introduce resources/python/requirements/3.13/requirements.txt and extend CI pipeline jobs to run 3.13 source/binary dependency updates.
  • Update documentation and Snyk policy to reflect Python 3.13 support.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
resources/python/update_requirements.py Stages newly generated explicit requirements files so they can be committed by CI.
resources/python/requirements/3.13/requirements.txt Adds initial dependency set for Python 3.13.
resources/python/pipelines/pipelines.yml Adds/threads Python 3.13 through source + binary dependency jobs across OSes.
resources/python/README.md Updates documented supported Python versions to include 3.13.
README.md Updates badges for supported VFX platform years and Python versions.
.snyk Adds Python 3.13 explicit requirements path to an ignore rule.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +26 to +30
cffi~=1.17.1
cryptography~=44.0.1 # Only for SAST.
hyperlink~=21.0.0
idna~=3.8
zope.interface~=7.1.0
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

These dependencies are specified with ~= here, whereas other Python version requirement files in this repo use exact == pins for reproducibility. Consider pinning these to exact versions as well to avoid unexpected updates during installs/builds.

Copilot uses AI. Check for mistakes.
# sys.modules (from the system install), that import will fail with:
# ImportError: cannot import name 'Converter' from 'attr'
#
# All other Python versions (3.9, 3.10, 3.11) already bundle 22.2.0.
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

The comment says "All other Python versions (3.9, 3.10, 3.11) already bundle 22.2.0", but Python 3.7 also bundles attrs==22.2.0 in this repo. Please update the comment to include 3.7 (or explain why it’s excluded) to keep the documentation accurate.

Suggested change
# All other Python versions (3.9, 3.10, 3.11) already bundle 22.2.0.
# All other supported Python versions (3.7, 3.9, 3.10, 3.11) already bundle 22.2.0.

Copilot uses AI. Check for mistakes.
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

This list uses full patch versions for other entries (e.g. 3.11.9), but this new entry is just "3.13". Please align the format (either specify the exact patch version for 3.13, or use a consistent “3.13.x” style for all).

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +51
- 3.13
- Windows
- 3.7.9
- 3.9.13
- 3.10.11
- 3.11.9
- 3.13
- Linux:
- 3.7.16
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

This list uses full patch versions for other entries (e.g. 3.11.9), but this new entry is just "3.13". Please align the format (either specify the exact patch version for 3.13, or use a consistent “3.13.x” style for all).

Suggested change
- 3.13
- Windows
- 3.7.9
- 3.9.13
- 3.10.11
- 3.11.9
- 3.13
- Linux:
- 3.7.16
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13
- 3.13.x
- Windows
- 3.7.9
- 3.9.13
- 3.10.11
- 3.11.9
- 3.13.x
- Linux:
- 3.7.16
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13.x

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +51
- 3.13
- Windows
- 3.7.9
- 3.9.13
- 3.10.11
- 3.11.9
- 3.13
- Linux:
- 3.7.16
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

This list uses full patch versions for other entries (e.g. 3.11.9), but this new entry is just "3.13". Please align the format (either specify the exact patch version for 3.13, or use a consistent “3.13.x” style for all).

Suggested change
- 3.13
- Windows
- 3.7.9
- 3.9.13
- 3.10.11
- 3.11.9
- 3.13
- Linux:
- 3.7.16
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13
- 3.13.x
- Windows
- 3.7.9
- 3.9.13
- 3.10.11
- 3.11.9
- 3.13.x
- Linux:
- 3.7.16
- 3.9.16
- 3.10.13
- 3.11.9
- 3.13.x

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +5
Twisted~=24.11.0
autobahn~=24.4.2
certifi~=2025.7.14
pyOpenSSL~=25.0.0
service-identity~=24.2.0
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

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

This requirements file uses compatible-release specifiers (~=) for several packages, but the other pinned requirement sets (e.g. 3.9/3.10/3.11) use exact == pins. Using ~= can introduce dependency drift and make the generated explicit_requirements.txt / bundled binaries non-reproducible; consider switching these entries to exact pins to match the established pattern.

Copilot uses AI. Check for mistakes.
@julien-lang julien-lang marked this pull request as ready for review March 5, 2026 22:04
@julien-lang julien-lang merged commit 8d92fc0 into master Mar 5, 2026
44 of 49 checks passed
@julien-lang julien-lang deleted the ticket/SG-42304-python-313 branch March 5, 2026 22:15
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.

3 participants