|
| 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. |
0 commit comments