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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions