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
explicitExcelColumn(...)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 anExcelStorage
implementation - 2.x compatibility imports, legacy config fields, and facade aliases are no
longer current API
Before Tagging
- Confirm the package version in
src/excelalchemy/__init__.pyis3.0.0. - Confirm
pyproject.tomlno longer marks the package as alpha. - Review the
3.0.0section inCHANGELOG.md. - Confirm README entry points describe ExcelAlchemy 3.0 as stable:
README.mdREADME-pypi.mdREADME_cn.md
- Confirm the release smoke scripts:
scripts/smoke_package.pyscripts/smoke_examples.pyscripts/smoke_docs_assets.pyscripts/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
- Push the release commit.
- Create and publish the tag
v3.0.0. - Publish a GitHub Release for
v3.0.0using this document and the
CHANGELOG.mdentry as release-note sources. - Confirm the
Upload Python Packageworkflow succeeds. - 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__.