@@ -7,8 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [Unreleased]
99
10+ ## [0.30.2] - 2026-07-01
11+
12+ ### Added
13+
14+ - **config**: a `[workspace.poly]` section in `alef.toml` for repo-specific poly.toml overrides —
15+ extra `exclude` globs and cross-engine `per-file-ignores` that the scaffolder merges into the
16+ generated `poly.toml`, so repo-local lint suppressions survive regeneration.
17+
18+ ### Changed
19+
20+ - **scaffold**: emit a single repo-root `poly.toml` that drives lint, format, git hooks, and
21+ commit-message policy, replacing `.pre-commit-config.yaml` and the per-tool config files
22+ (`[tool.ruff]`, `[tool.mypy]`, `phpstan.neon`, `.php-cs-fixer.dist.php`, `.lintr`, `.typos.toml`,
23+ `.rumdl.toml`). Python type-checking moves from mypy to pyrefly. The emitted config excludes
24+ Jinja templates from poly (reformatting them corrupts `{{ }}` placeholders) and carries
25+ generated-test-code lint allowances so regenerated e2e/test-app suites stay clean.
26+
1027### Fixed
1128
29+ - **pyo3**: strip the Rust raw-identifier prefix in `.pyi` constructor params — PyO3 exposes a
30+ field declared `r#type` to Python as `type`, but the stub emitted `r#type` verbatim (invalid
31+ Python that ruff cannot parse). The `#[new]` signature keeps `r#` to compile.
32+ - **pyo3**: drop the duplicate OptionsField trait-bridge parameter from the `.pyi __init__` stub.
33+ The field was emitted both as a regular param and as the dedicated bridge kwarg, producing a
34+ duplicate parameter; the stub now filters the bridge field out, mirroring `#[new]`.
1235- **pyo3**: drop the redundant closure when wrapping a zero-argument sync core call in
1336 `py.detach`. `py.detach(|| xberg::list_supported_formats())` tripped `clippy::redundant_closure`
1437 and failed `clippy -D warnings`; zero-arg calls now pass the function path directly
0 commit comments