From a7642f773b8bf28be3f08df159636a9ec1274e78 Mon Sep 17 00:00:00 2001 From: igerber Date: Tue, 14 Apr 2026 17:50:22 -0400 Subject: [PATCH] Bump version to 3.1.0 dCDH Phase 3 complete: covariates, group-specific linear trends, HonestDiD sensitivity analysis, non-binary treatment support, and placebo bootstrap SE. The de Chaisemartin-D'Haultfoeuille estimator now ships the full feature set for reversible-treatment DiD. Co-Authored-By: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 12 ++++++++++++ CITATION.cff | 4 ++-- diff_diff/__init__.py | 2 +- docs/llms-full.txt | 2 +- pyproject.toml | 2 +- rust/Cargo.toml | 2 +- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 906fafe3..c999c776 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.1.0] - 2026-04-14 + +### Added +- **dCDH Phase 3: Complete feature set for `ChaisemartinDHaultfoeuille`** - three sub-releases completing the estimator: + - **Phase 3a** (PR #300): Placebo SE via multiplier bootstrap (resolves Phase 1 deferral), non-binary treatment support with crossing-cell detection and automatic cell dropping, R parity SE assertions tightened + - **Phase 3b** (PR #302): Covariate adjustment via `controls` parameter (OLS residualization, Design 2 per-period path for non-binary treatment), group-specific linear trends via `trends_linear=True` (absorbs group-specific slopes before DiD), R `DIDmultiplegtDYN` parity tests for covariates and trends + - **Phase 3c** (PR #303): HonestDiD sensitivity analysis integration - `honest_did()` method on results with automatic event-study-to-sensitivity bridge, support trimming for non-consecutive horizons, `l_vec` target specification, Delta-RM and Delta-SD smoothness bounds + +### Changed +- ROADMAP.md updated: dCDH Phase 3 items marked shipped + ## [3.0.2] - 2026-04-12 ### Added @@ -1278,6 +1289,7 @@ for the full feature history leading to this release. [2.1.2]: https://github.com/igerber/diff-diff/compare/v2.1.1...v2.1.2 [2.1.1]: https://github.com/igerber/diff-diff/compare/v2.1.0...v2.1.1 [2.1.0]: https://github.com/igerber/diff-diff/compare/v2.0.3...v2.1.0 +[3.1.0]: https://github.com/igerber/diff-diff/compare/v3.0.2...v3.1.0 [3.0.2]: https://github.com/igerber/diff-diff/compare/v3.0.1...v3.0.2 [2.0.3]: https://github.com/igerber/diff-diff/compare/v2.0.2...v2.0.3 [2.0.2]: https://github.com/igerber/diff-diff/compare/v2.0.1...v2.0.2 diff --git a/CITATION.cff b/CITATION.cff index 5860579b..8726aef8 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -7,8 +7,8 @@ authors: family-names: Gerber orcid: "https://orcid.org/0009-0009-3275-5591" license: MIT -version: "3.0.2" -date-released: "2026-04-12" +version: "3.1.0" +date-released: "2026-04-14" url: "https://github.com/igerber/diff-diff" repository-code: "https://github.com/igerber/diff-diff" keywords: diff --git a/diff_diff/__init__.py b/diff_diff/__init__.py index 98a520da..e64e70a3 100644 --- a/diff_diff/__init__.py +++ b/diff_diff/__init__.py @@ -228,7 +228,7 @@ ETWFE = WooldridgeDiD DCDH = ChaisemartinDHaultfoeuille -__version__ = "3.0.2" +__version__ = "3.1.0" __all__ = [ # Estimators "DifferenceInDifferences", diff --git a/docs/llms-full.txt b/docs/llms-full.txt index 543c0068..f7c02faa 100644 --- a/docs/llms-full.txt +++ b/docs/llms-full.txt @@ -2,7 +2,7 @@ > A Python library for Difference-in-Differences causal inference analysis. Provides sklearn-like estimators with statsmodels-style output for econometric analysis. -- Version: 3.0.2 +- Version: 3.1.0 - Repository: https://github.com/igerber/diff-diff - License: MIT - Dependencies: numpy, pandas, scipy (no statsmodels dependency) diff --git a/pyproject.toml b/pyproject.toml index 629e0011..aec30e7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "diff-diff" -version = "3.0.2" +version = "3.1.0" description = "Difference-in-Differences causal inference with sklearn-like API. Callaway-Sant'Anna, Synthetic DiD, Honest DiD, event studies, parallel trends." readme = "README.md" license = "MIT" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 81aba362..ffb0bc55 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "diff_diff_rust" -version = "3.0.2" +version = "3.1.0" edition = "2021" rust-version = "1.84" description = "Rust backend for diff-diff DiD library"