Bump version to 3.12.0 - #832
Conversation
Overall assessment✅ Looks good — no unmitigated P0/P1 findings. Executive summary
Methodology
No undocumented methodology, inference, or assumption-check changes were introduced. Code QualityNo findings. PerformanceNo findings; no executable performance paths changed. MaintainabilityNo findings. The Tech DebtNo untracked debt introduced. Limitations mentioned in the compiled notes remain recorded in SecurityNo findings or apparent secrets/PII. Documentation/Tests
The changelog checker and metadata consistency checks pass. The full pytest suite could not be run because pytest is unavailable in the review environment. |
Compile the ten changelog.d fragments accumulated since v3.11.1 into the CHANGELOG 3.12.0 section (dated 2026-09-08) and sync the version across __init__.py, pyproject.toml, rust/Cargo.toml, llms-full.txt and CITATION.cff. Add the (3, 12) -> "4.0" entry to the release ladder in tests/test_naming_guard.py, as the 3.10.0 bump did, so the lifecycle gate keeps 4.0 as the next lifecycle-gated release.
19e123c to
cc85988
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall assessment✅ Looks good — no unmitigated P0/P1 findings. Executive summary
Methodology
Code QualityNo findings. PerformanceNo findings; no performance-sensitive code changed. MaintainabilityNo findings. The Tech DebtNo new or untracked technical debt. SecurityNo findings or apparent secrets/PII. Documentation/TestsThe previous P2 finding is resolved consistently in Version surfaces agree at The changelog compiler passes. Pytest could not run because |
Summary
plannedledger rows).CHANGELOG.md: the tenchangelog.d/fragments since v3.11.1 compiled into## [3.12.0] - 2026-09-08bychangelog_compile.py(fragments deleted;[Unreleased]stays pointer-only). Comparison linkv3.11.1...v3.12.0added.diff_diff/__init__.py,pyproject.toml,rust/Cargo.toml,diff_diff/guides/llms-full.txt,CITATION.cff(version+date-released: 2026-09-08).tests/test_naming_guard.py:(3, 12): "4.0"added to the release ladder (a missing key fails loudly; same shape as the 3.10.0 bump).Release contents (12 PRs): DurationDiD estimator (#827), DMLDiD bad-control lane (#829) with tutorial 33 (#831),
WooldridgeDiD(unsupported_period_action=)(#820), SDiD shape-only pre-fit diagnostic + placebo-anchored warning (#818), HC2/HC2-BM fail-closed at leverage one (#823),summary(alpha=)guard + honest dose-response bands (#811), exact fractional confidence-level labels (#815), three paper reviews (#810, #819, #822), ruff pin bump (#813).Methodology references (required if estimator / math changes)
Validation
tests/test_naming_guard.py(release-ladder entry only). Rantest_naming_guard.py+test_v4_matrix.pyon Python 3.14 (CI's interpreter for that job) against this tree: 290 passed, 24 skipped;test_changelog_fragments.py,test_tracking_files.py,test_docs_ia.pypass;changelog_compile.py checkOK;import diff_diffreports 3.12.0; no stale3.11.1references outside CHANGELOG history.Security / privacy
Changelog