Skip to content

ExcelAlchemy 2.2.2

Choose a tag to compare

@ruicore ruicore released this 03 Apr 12:53
· 18 commits to main since this release
33e2aa3

ExcelAlchemy 2.2.2

ExcelAlchemy 2.2.2 continues the stable 2.x line with stronger developer ergonomics, clearer public API guidance, and better release-time smoke coverage.

This release keeps the public import/export workflow API stable while making the repository easier to adopt, easier to navigate, and safer to publish.

Highlights

  • added real integration examples instead of relying only on README snippets
  • documented stable public modules, compatibility modules, and internal modules explicitly
  • strengthened package publishing with installed-package smoke tests
  • updated README and migration guidance to point users toward the recommended config and storage paths

What changed

Examples

  • added examples/annotated_schema.py
  • added examples/custom_storage.py
  • added examples/fastapi_upload.py

These examples cover:

  • Annotated[..., Field(...), ExcelMeta(...)] declarations
  • custom ExcelStorage integrations
  • a realistic FastAPI upload flow

Public API guidance

  • added docs/public-api.md
  • documented:
    • stable public modules
    • compatibility modules
    • internal modules
    • recommended import style

Release hardening

  • added scripts/smoke_package.py
  • updated the release workflow to run package-level smoke tests after wheel and source-distribution installation
  • smoke verification now covers:
    • template generation
    • import execution
    • export artifact generation

Documentation updates

  • updated README.md
  • updated README_cn.md
  • updated MIGRATIONS.md

Compatibility notes

  • no public import or export workflow API was removed in this release
  • the new examples and docs clarify recommended public paths without changing existing 2.x compatibility behavior

Verification

uv run ruff check .
uv run pyright
uv run pytest tests
./.venv/bin/python scripts/smoke_package.py
uv build
uvx twine check dist/*