Skip to content

ExcelAlchemy 3.0.0

Latest

Choose a tag to compare

@ruicore ruicore released this 23 Jun 09:18

3.0.0 Release Notes and Checklist

This document records the final release positioning and verification checklist
for the stable 3.0.0 release.

Purpose

  • publish the first stable ExcelAlchemy 3.0 package
  • finalize the breaking 3.0 public API around typed Pydantic models and
    explicit ExcelColumn(...) workbook metadata
  • confirm current docs, examples, and smoke assets describe 3.0 instead of the
    retired 2.x compatibility surface
  • trigger the GitHub Release workflow that builds, verifies, and publishes the
    Python package to PyPI

Release Positioning

3.0.0 is a stable breaking release:

  • Python type annotations define the data shape
  • Pydantic Field(...) stays responsible for Pydantic validation
  • ExcelColumn(...) carries workbook-facing metadata
  • codec helpers are explicit objects instead of fake Python scalar/container
    types
  • storage configuration uses storage=... with an ExcelStorage
    implementation
  • 2.x compatibility imports, legacy config fields, and facade aliases are no
    longer current API

Before Tagging

  1. Confirm the package version in src/excelalchemy/__init__.py is 3.0.0.
  2. Confirm pyproject.toml no longer marks the package as alpha.
  3. Review the 3.0.0 section in CHANGELOG.md.
  4. Confirm README entry points describe ExcelAlchemy 3.0 as stable:
    • README.md
    • README-pypi.md
    • README_cn.md
  5. Confirm the release smoke scripts:
    • scripts/smoke_package.py
    • scripts/smoke_examples.py
    • scripts/smoke_docs_assets.py
    • scripts/smoke_api_payload_snapshot.py

Local Verification

Run these commands from the repository root:

uv run ruff format --check .
uv run ruff check .
uv run pyright
uv run pytest --cov=excelalchemy --cov-report=term-missing:skip-covered tests
uv run python scripts/smoke_package.py
uv run python scripts/smoke_examples.py
uv run python scripts/smoke_docs_assets.py
uv run python scripts/smoke_api_payload_snapshot.py
uv build
uvx twine check dist/*

GitHub Release Steps

  1. Push the release commit.
  2. Create and publish the tag v3.0.0.
  3. Publish a GitHub Release for v3.0.0 using this document and the
    CHANGELOG.md entry as release-note sources.
  4. Confirm the Upload Python Package workflow succeeds.
  5. Confirm the published package version is 3.0.0.

The publish workflow verifies that the release tag, after removing the v
prefix, matches excelalchemy.__version__.