Skip to content

Prepare and validate release 1.1.0 #307

Description

@Mattsface

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions