Skip to content

chore: prepare Python SDK 3.0.2 release - #917

Merged
zhongkechen merged 4 commits into
aws:mainfrom
zhongkechen:release/python-sdk-3.1.0
Nov 9, 2026
Merged

zhongkechen merged 4 commits into
aws:mainfrom
zhongkechen:release/python-sdk-3.1.0

Conversation

@zhongkechen

@zhongkechen zhongkechen commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Issue #, if available

None.

Description of changes

Prepare the next coordinated Python release:

Package Previous New
Core SDK 3.0.1 3.0.2
OpenTelemetry 2.0.0 2.1.0
Testing 1.4.0 1.4.1

Update the three conformance packages' Core pins and the OTel conformance pin so they exercise these versions.

Testing 1.4.1 requires Core >=3.0.2 in both its runtime and package-local test dependencies. Its empty-error persistence behavior depends on the Core fix in #870: Core 3.0.1 decodes Error: {} as None. The README explains the minimum, and a two-case metadata regression protects both dependency declarations using the fixed incompatible 3.0.1 and first-compatible 3.0.2 versions.

Remove hard-coded current-version assertions from otel_lifecycle_compatibility_test.py and otel_legacy_registration_rejection_test.py so future version bumps do not require test edits. Those assertions checked which installed package pair the tests exercised; they were setup checks, separate from the handler-behavior assertions. Both Hatch lanes already select wheels using __about__.py and verify their hashes and installed source bytes before running pytest, so they retain that artifact check. Running pytest directly skips the installer.

Keep the fixed legacy OTel 1.0.0 assertion: that version is the deliberately incompatible fixture whose registration must fail before the handler runs. It does not track the latest OTel release. The installed-package location checks and compatibility behavior assertions also remain.

Design

Design note not needed: release metadata, correction of a dependency requirement, and removal of redundant test assertions. No runtime implementation or public API members change. The dependency defect was that Testing advertised support for Core versions that lose empty errors during state deserialization. Reuse existing artifact verification instead of adding another version reader.

Assumptions

No new service assumptions. Installed-wheel comparisons on Python 3.13 confirmed the dependency requirement: Testing 1.4.1 with Core 3.0.1 failed 8 of 85 existing empty-error history tests. The rebuilt Testing wheel with Core 3.0.2 passes all 85.

Decisions not covered by the issue or the design note

  • Use Core 3.0.2 because the Core changes since 3.0.1 are bug fixes and documentation updates.
  • Raise Testing's Core minimum to 3.0.2 to deliver the complete empty-error fix. Keep the OTel and Telemetry Exporter dependency ranges unchanged.
  • Preserve the initial 3.0 release versions in the historical migration guide and OTel's general 3.x compatibility fixtures.
  • Keep Telemetry Exporter at 1.0.0. Actual package publication and the post-release shared documentation review are separate steps.

Validation

  • Built Core 3.0.2, OTel 2.1.0, and Testing 1.4.1 distributions; package lint and formatting checks passed.
  • Installed the final wheels and verified Core/OTel artifact hashes and installed source bytes. pip check passed.
  • 103 focused tests passed: 12 installed-wheel lifecycle tests, 4 legacy-registration tests, 85 empty-error history tests, and 2 dependency-metadata tests.
  • Both dependency regression cases failed with the old >=3.0.0 declarations before the minimums were corrected. These tests use fixed compatibility boundaries, not current-release assertions.
  • A pip dry run using the rebuilt Testing wheel and Core 3.0.1 rejects the pair with ResolutionImpossible because Testing requires Core >=3.0.2.
  • OTel wheel dependency checks, LICENSE/NOTICE checks, git diff --check, and commit-message lint passed.

Checklist

  • No new runtime conditions or branches.
  • The dependency regression was observed failing before the fix; evidence is listed above.
  • Every edited test expectation is listed above with its reason.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@zhongkechen
zhongkechen deployed to ai-pr-review-runtime November 9, 2026 19:51 — with GitHub Actions Active
@zhongkechen zhongkechen changed the title chore: prepare Python SDK 3.1.0 release chore: prepare Python SDK 3.0.2 release Nov 9, 2026
@zhongkechen

Copy link
Copy Markdown
Contributor Author

CI JS Example failed for a known issue #918

@zhongkechen
zhongkechen merged commit 541bc15 into aws:main Nov 9, 2026
36 of 44 checks passed
@zhongkechen
zhongkechen deleted the release/python-sdk-3.1.0 branch November 9, 2026 22:53
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