Skip to content

Commit 04a7eb1

Browse files
authored
Merge pull request #114 from harumiWeb/release/v0.7.1
Release v0.7.1
2 parents b50447c + c3b49f4 commit 04a7eb1

7 files changed

Lines changed: 113 additions & 415 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,24 @@ All notable changes to this project are documented in this file. This changelog
44

55
## [Unreleased]
66

7+
## [0.7.1] - 2026-03-21
8+
9+
### Added
10+
11+
- Added regression coverage for extraction CLI runtime validation and lightweight import boundaries across `exstruct`, `exstruct.engine`, `exstruct.cli.main`, and `exstruct.cli.edit`.
12+
13+
### Changed
14+
15+
- Changed the extraction CLI so `--auto-page-breaks-dir` is always listed in help output and validated only when the flag is requested at runtime.
16+
- Changed CLI and package import behavior so `exstruct --help`, `exstruct ops list`, `import exstruct`, and `import exstruct.engine` defer heavy extraction, edit, and rendering imports until needed.
17+
18+
### Fixed
19+
20+
- Fixed parser and help startup side effects by removing COM availability probing during extraction CLI parser construction.
21+
- Fixed lazy-export follow-ups so public runtime type hints resolve correctly while keeping exported symbol names stable.
22+
- Fixed edit CLI routing so non-edit argv and lightweight edit paths avoid unnecessary imports such as `exstruct.cli.edit` and `pydantic`.
23+
- Fixed the `validate` subcommand error boundary so `RuntimeError` is no longer converted into handled CLI stderr output.
24+
725
## [0.7.0] - 2026-03-19
826

927
### Added

docs/release-notes/v0.7.1.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# v0.7.1 Release Notes
2+
3+
This patch release publishes the CLI and package import startup optimization work
4+
completed under issues `#107`, `#108`, and `#109`.
5+
6+
## Highlights
7+
8+
- The extraction CLI now always shows `--auto-page-breaks-dir` in help output
9+
and validates support only when the option is actually used at runtime.
10+
- Lightweight CLI paths now avoid unnecessary heavy imports:
11+
- `exstruct --help`
12+
- extraction-style argv that do not route to edit commands
13+
- `exstruct ops list`
14+
- Public package imports are lighter:
15+
- `import exstruct`
16+
- `import exstruct.engine`
17+
- exported names from `exstruct` and `exstruct.edit` remain compatible while
18+
loading implementation modules lazily
19+
- Regression coverage now locks the startup boundary and validates that
20+
lightweight import paths do not eagerly load extraction, edit, MCP, render,
21+
or `pydantic` dependencies.
22+
23+
## Startup impact
24+
25+
Compared with `v0.7.0`, local median startup timings on the same Python
26+
environment improved by approximately:
27+
28+
- `python -m exstruct.cli.main --help`: `2195 ms -> 64 ms` (`34.4x` faster)
29+
- `import exstruct`: `1039 ms -> 55 ms` (`19.0x` faster)
30+
- `python -m exstruct.cli.main ops list`: `1143 ms -> 207 ms` (`5.5x` faster)
31+
- `import exstruct.engine`: `1005 ms -> 223 ms` (`4.5x` faster)
32+
33+
These measurements were taken locally against `v0.7.0` and the current
34+
`v0.7.1` code using the same virtual environment and direct source imports, so
35+
exact numbers will vary by machine and startup conditions.
36+
37+
## Notes
38+
39+
- No new CLI commands were added in `v0.7.1`.
40+
- MCP tool names and payload shapes remain compatible in `v0.7.1`.
41+
- Backend selection policy remains `auto` / `com` / `openpyxl`.
42+
- The edit CLI `validate` subcommand once again propagates `RuntimeError`
43+
instead of converting it into handled CLI error output.

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ nav:
2828
- MCP Server: mcp.md
2929
- Concept / Why ExStruct?: concept.md
3030
- Release Notes:
31+
- v0.7.1: release-notes/v0.7.1.md
3132
- v0.7.0: release-notes/v0.7.0.md
3233
- v0.6.1: release-notes/v0.6.1.md
3334
- v0.6.0: release-notes/v0.6.0.md

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "exstruct"
3-
version = "0.7.0"
3+
version = "0.7.1"
44
description = "Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines"
55
readme = "README.md"
66
license = { file = "LICENSE" }

0 commit comments

Comments
 (0)