Skip to content

Prepare and publish release 1.0.0 #289

Description

@Mattsface

Prepare and publish release 1.0.0

Parent release issue: #282

Depends on:

Why

Version 1.0.0 needs a controlled release process because it changes default HTTP behavior and establishes the stable public API contract for the 1.x series.

Scope

Prepare the final release branch, metadata, documentation, validation, pull request, tag, PyPI publication, public smoke test, and GitHub release.

Release preparation

  • Set package version to 1.0.0
  • Confirm README and release notes describe the breaking change accurately
  • Confirm docs/http-transport.md matches implementation
  • Confirm the supported public API list is final
  • Confirm CI watches release/1.0.0 while the branch is active
  • Review the complete main...release/1.0.0 diff

Required validation

Run:

poetry check
poetry run pytest tests/ --ignore=tests/external_tests -v
poetry build
python3 scripts/validate_release.py
poetry run twine check dist/*
git diff --check

Also run the relevant live MLB API suite and record the result.

Clean-install both artifacts separately:

python_mlb_statsapi-1.0.0-py3-none-any.whl
python_mlb_statsapi-1.0.0.tar.gz

Final pull request

Open:

release/1.0.0 → main

The PR must clearly identify:

  • Strict HTTP behavior becoming the default
  • Preserved endpoint-specific 404 behavior
  • Explicit strict_http=False compatibility mode
  • Stable public API commitments
  • Migration guidance
  • Validation results

Use a merge commit so the release-branch history remains visible.

Publishing sequence

  1. Merge the final release PR into main
  2. Tag the exact merge commit as v1.0.0
  3. Rebuild artifacts from the tagged commit
  4. Rerun the release validator and twine check
  5. Upload wheel and source distribution to PyPI
  6. Install python-mlb-statsapi==1.0.0 from public PyPI with cache disabled
  7. Run public imports and HTTP-mode construction smoke tests
  8. Publish the GitHub release using docs/releases/1.0.0.md
  9. Close completed release issues only after public verification

Public PyPI smoke test

Confirm at minimum:

  • Installed distribution version is 1.0.0
  • Mlb() constructs with strict behavior as the default
  • Mlb(strict_http=False) constructs successfully
  • create_retry_policy() returns a Retry
  • Structured exception classes import from the package root
  • MlbHttpCompatibilityWarning imports and inherits from FutureWarning
  • Library-created User-Agent reports python-mlb-statsapi/1.0.0

Acceptance criteria

  • All dependent issues are complete
  • Final PR CI passes on every supported Python version
  • Wheel and source distribution pass release validation
  • Both artifacts pass twine check
  • Both artifacts clean-install successfully
  • Tag v1.0.0 points to the exact release merge commit
  • PyPI publishes version 1.0.0
  • Public PyPI smoke tests pass
  • GitHub release v1.0.0 is published
  • Parent issue Release 1.0.0: Make strict HTTP behavior the default #282 is closed after verification

Suggested branch

release/1.0.0

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