Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ All notable changes to this project will be documented in this file.

The format is inspired by Keep a Changelog and versioned according to PEP 440.

## [2.1.0] - Unreleased
## [2.1.0] - 2026-04-02

This release continues the 2.x line with internal architecture cleanup, naming
improvements, and stronger separation between long-lived facade state and
single-run import workflow state.
This release continues the stable 2.x line with internal architecture cleanup,
clearer naming, and a stronger separation between the long-lived facade and the
single-run import workflow runtime.

### Added

Expand Down Expand Up @@ -55,6 +55,14 @@ single-run import workflow state.
standard deprecation warning that points to `excelalchemy.util.converter`
- No public import/export workflow API was removed in this release

### Release Summary

- `ExcelAlchemy` is now a lighter facade, with single-run import state handled
by `ImportSession`
- internal configuration now has clearer schema, behavior, and storage layers
- metadata internals are more structured without forcing users to rewrite
existing `FieldMeta(...)` or `ExcelMeta(...)` declarations

## [2.0.0.post1] - 2026-03-28

This post-release updates the package presentation and release metadata for the
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This repository is also a design artifact.
It documents a series of deliberate engineering choices: `src/` layout, Pydantic v2 migration, pandas removal,
pluggable storage, `uv`-based workflows, and locale-aware workbook output.

The current stable release line is `2.1.0`, which continues the stable ExcelAlchemy 2.x line with internal architecture cleanup and naming improvements.
The current stable release is `2.1.0`, which continues the ExcelAlchemy 2.x line with a lighter import facade, clearer internal layering, and naming cleanup.

## At a Glance

Expand Down
2 changes: 1 addition & 1 deletion README_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
ExcelAlchemy 是一个面向 Excel 导入导出的 schema-first Python 库。
它的核心思路不是“读写表格文件”,而是“把 Excel 当成一种带约束的业务契约”。

当前稳定发布版本是 `2.1.0`,它在稳定的 ExcelAlchemy 2.x 线上继续推进了内部架构整理和命名收口
当前稳定发布版本是 `2.1.0`,它在稳定的 ExcelAlchemy 2.x 线上继续推进了导入 facade 轻量化、内部结构分层和命名收口

你用 Pydantic 模型定义结构,用 `FieldMeta` 定义 Excel 元数据,用显式的导入/导出流程去完成模板生成、数据校验、错误回写和后端集成。

Expand Down
40 changes: 33 additions & 7 deletions docs/releases/2.1.0.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,33 @@
# 2.1.0 Release Checklist

This checklist is intended for the first feature release on top of the stable
2.0 line.
This checklist is intended for the first 2.1 stable release on top of the
stable 2.x line.

## Purpose

- publish the first 2.1 release of ExcelAlchemy
- publish the first stable 2.1 release of ExcelAlchemy
- ship the sessionized import workflow architecture
- ship internal config normalization and metadata layering without breaking the
public 2.x API
- confirm that naming cleanup and compatibility shims are documented clearly

## Release Positioning

`2.1.0` should be presented as an architectural refinement release:

- the public 2.x workflow stays stable
- the internal import workflow becomes more explicit through `ImportSession`
- config and metadata become easier to reason about internally
- compatibility paths remain available for 2.x users

## Before Tagging

1. Confirm the intended version in `src/excelalchemy/__init__.py`.
2. Review the `2.1.0` section in `CHANGELOG.md`.
3. Confirm `README.md`, `README-pypi.md`, and `MIGRATIONS.md` still describe the
recommended public paths correctly.
4. Confirm the compatibility notes for:
4. Confirm `README_cn.md` is still aligned with the current release position.
5. Confirm the compatibility notes for:
- `excelalchemy.util.convertor`
- `df/header_df` compatibility aliases
- legacy Minio config path
Expand Down Expand Up @@ -63,13 +73,22 @@ uv pip install --python .pkg-smoke-minio/bin/python "dist/*.whl[minio]"
When reviewing the final release notes, make sure they communicate these three
themes clearly:

- `ExcelAlchemy` is now a lighter facade because import runtime state moved into
`ImportSession`
- config is still easy to construct publicly, but internally it is now split
- `ExcelAlchemy` is now a lighter facade because import runtime state moved
into `ImportSession`
- config remains easy to construct publicly, but internally it is now split
into schema, behavior, and storage layers
- metadata now has clearer internal layering without forcing users to rewrite
their `FieldMeta(...)` or `ExcelMeta(...)` declarations

## Recommended Release Messaging

Prefer wording that emphasizes refinement rather than disruption:

- "continues the stable 2.x line"
- "keeps the public import/export workflow API stable"
- "improves internal architecture and maintainability"
- "preserves 2.x compatibility paths while moving the implementation forward"

## PyPI Verification

After the workflow completes:
Expand All @@ -91,3 +110,10 @@ pip install -U "ExcelAlchemy[minio]"

6. Run one template-generation example.
7. Run one import flow and one export flow.

## Done When

- the tag `v2.1.0` is published
- the GitHub Release notes clearly communicate the three release themes
- PyPI renders the project description correctly
- CI, typing, tests, and package publishing all pass for the tagged release