Parent: #297
Depends on: #302 , #304 , #305 , #306
Goal
Prepare version 1.1.0 for release after the async architecture, supported endpoint set, parity tests, and documentation are complete.
Release preparation
Set package version to 1.1.0
Add docs/releases/1.1.0.md
Confirm README accurately describes final async support
Confirm public API documentation includes the final async surface
Confirm optional async dependency metadata is correct
Review complete release diff against main
Contract gate from #298
Version 1.1.0 must not be released merely because AsyncMlb exists. The tested implementation must satisfy the completed #298 contract.
Before release, verify:
Public API and compatibility
Existing synchronous Mlb and MlbDataAdapter require zero caller code changes from 1.0.x
AsyncMlb and AsyncMlbDataAdapter are importable as documented public APIs
Public constructor defaults/lifecycle match Define the v1.1 async API and transport contract #298
Initial supported async endpoints are documented accurately
Unsupported async endpoints are not presented as supported
Transport contract
Deterministic tests from #302 must verify:
2xx and successful empty-body behavior
endpoint-specific 404 behavior
strict non-404 4xx behavior
explicit strict_http=False compatibility warning + empty-result behavior
final 429/5xx/other non-2xx behavior
MlbHttpError, MlbTimeoutError, MlbTransportError, and MlbDecodeError mappings
cancellation propagation
retry and Retry-After behavior
library/caller client ownership
idempotent cleanup
User-Agent behavior
same-event-loop concurrent requests
cancellation independence across unrelated concurrent requests
non-blocking retry/backoff
Sync/async parity
Parity tests from #304 must pass for the initial endpoint set and every endpoint added before release.
Equivalent fixtures must produce equivalent public models, values, empty-result behavior, HTTP semantics, and public exception behavior.
Documentation
Validation
Run the full synchronous and asynchronous deterministic suites across the supported Python matrix.
Validate both installation modes:
pip install python-mlb-statsapi
pip install " python-mlb-statsapi[async]"
Build and validate both artifacts:
poetry check
poetry build
python3 scripts/validate_release.py
poetry run twine check dist/*
git diff --check
Release validation should include:
Sync-only clean install
Async-extra clean install
Wheel install
Source-distribution install
Root imports for supported public sync/async API
Sync construction and context-manager smoke tests
Async construction and async-context-manager smoke tests
Strict HTTP default verification
Compatibility-mode verification
User-Agent verification
Basic same-client concurrent async smoke coverage in deterministic tests
Relevant live MLB API sync/async smoke tests
Compatibility requirement
Upgrading from 1.0.x to 1.1.0 must require zero code changes for existing synchronous users.
Acceptance criteria
Refs #297
Contract: #298
Compatibility lifecycle: #309
Parent: #297
Depends on: #302, #304, #305, #306
Goal
Prepare version 1.1.0 for release after the async architecture, supported endpoint set, parity tests, and documentation are complete.
Release preparation
1.1.0docs/releases/1.1.0.mdmainContract gate from #298
Version 1.1.0 must not be released merely because
AsyncMlbexists. The tested implementation must satisfy the completed #298 contract.Before release, verify:
Public API and compatibility
MlbandMlbDataAdapterrequire zero caller code changes from 1.0.xAsyncMlbandAsyncMlbDataAdapterare importable as documented public APIsTransport contract
Deterministic tests from #302 must verify:
strict_http=Falsecompatibility warning + empty-result behaviorMlbHttpError,MlbTimeoutError,MlbTransportError, andMlbDecodeErrormappingsRetry-AfterbehaviorSync/async parity
Parity tests from #304 must pass for the initial endpoint set and every endpoint added before release.
Equivalent fixtures must produce equivalent public models, values, empty-result behavior, HTTP semantics, and public exception behavior.
Documentation
strict_http=Falselifecycle wording is consistent with Document a removal timeline for strict_http=False compatibility mode #309Validation
Run the full synchronous and asynchronous deterministic suites across the supported Python matrix.
Validate both installation modes:
pip install python-mlb-statsapi pip install "python-mlb-statsapi[async]"Build and validate both artifacts:
poetry check poetry build python3 scripts/validate_release.py poetry run twine check dist/* git diff --checkRelease validation should include:
Compatibility requirement
Upgrading from 1.0.x to 1.1.0 must require zero code changes for existing synchronous users.
Acceptance criteria
[async]installs both passRefs #297
Contract: #298
Compatibility lifecycle: #309