Skip to content

Start testing Python 3.15 Alpha#3628

Merged
jonathan343 merged 3 commits intodevelopfrom
support-3.15
Feb 13, 2026
Merged

Start testing Python 3.15 Alpha#3628
jonathan343 merged 3 commits intodevelopfrom
support-3.15

Conversation

@jonathan343
Copy link
Copy Markdown
Contributor

@jonathan343 jonathan343 commented Feb 6, 2026

Note

This PR is modeled after psf/requests#7195

Overview

This PR adds Python 3.15 canary coverage in CI and fixes deterministic gzip fixture failures in tests/unit/test_compress.py on 3.15 pre-release runtimes.

Background

  1. We want early signal for Python 3.15 regressions.
  2. CPython gh-91349 changed default gzip compression level from 9 to 6, which changed our byte-for-byte gzip fixture output.
  3. In 3.15-dev jobs, some dependencies may be built from source (instead of wheels) and use Rust/PyO3. PyO3 can reject unknown/new CPython minors by default during pre-release windows.

Summary

  1. Add 3.15-dev to CI matrices in:
    • .github/workflows/run-tests.yml
    • .github/workflows/run-crt-test.yml
  2. Set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 only for 3.15-dev jobs.
  3. Keep gzip fixtures byte-stable by pinning mtime=1 and compresslevel=9 in tests/unit/test_compress.py.
  4. Updates the locked typing_extensions version to address AttributeError: module 'typing' has no attribute 'no_type_check_decorator' errors.

Testing

# Sent PyO3 forward compatibility env var
export  PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1

# Create Python 3.15 virtual environment
uv venv -p 3.15
source .venv/bin/activate

# Install package and dev requirements
uv pip install -e .
uv pip install -r requirements-dev-lock.txt

# Run unit and functional tests
python -m pytest tests/unit tests/functional

# Run integration tests
python -m pytest tests/integration

Add Python 3.15-dev to the GitHub Actions matrices for run-tests and run-crt-test to catch compatibility issues early without claiming official support.

Set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 only for the 3.15-dev matrix jobs to avoid prerelease install failures from PyO3-based dependencies.

Update tests/unit/test_compress.py test helpers to pin compresslevel=9 (with mtime fixed) so gzip byte-for-byte fixtures stay stable across Python versions, including 3.15.
@jonathan343 jonathan343 changed the title Support 3.15 Start testing Python 3.15 Alpha Feb 6, 2026
Comment thread .github/workflows/run-crt-test.yml
@jonathan343 jonathan343 merged commit 2c238cf into develop Feb 13, 2026
90 checks passed
@jonathan343 jonathan343 deleted the support-3.15 branch February 13, 2026 00:56
aws-sdk-python-automation added a commit that referenced this pull request Feb 13, 2026
* release-1.42.49:
  Bumping version to 1.42.49
  Update to latest models
  Update CRT to 0.31.2 (#3633)
  Start testing Python 3.15 Alpha (#3628)
hswong3i pushed a commit to alvistack/boto-botocore that referenced this pull request Feb 14, 2026
Add Python 3.15-dev to the GitHub Actions matrices for run-tests and run-crt-test to catch compatibility issues early without claiming official support.

Set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 only for the 3.15-dev matrix jobs to avoid prerelease install failures from PyO3-based dependencies.

Update tests/unit/test_compress.py test helpers to pin compresslevel=9 (with mtime fixed) so gzip byte-for-byte fixtures stay stable across Python versions, including 3.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