diff --git a/CHANGELOG.md b/CHANGELOG.md index 865ae8ab..e4991162 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [3.11.0] - 2026-08-29 + ### Added - **`DMLDiD` survey-design and cluster support (both lanes)**: `fit()` gains `survey_design=` (pweight-only full-design TSL — weights/strata/PSU/FPC) @@ -5467,6 +5469,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.11.0]: https://github.com/igerber/diff-diff/compare/v3.10.0...v3.11.0 [3.10.0]: https://github.com/igerber/diff-diff/compare/v3.9.1...v3.10.0 [3.9.1]: https://github.com/igerber/diff-diff/compare/v3.9.0...v3.9.1 [3.9.0]: https://github.com/igerber/diff-diff/compare/v3.8.0...v3.9.0 diff --git a/CITATION.cff b/CITATION.cff index 053b51f7..63d21143 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.10.0" -date-released: "2026-08-22" +version: "3.11.0" +date-released: "2026-08-29" doi: "10.5281/zenodo.19646175" url: "https://github.com/igerber/diff-diff" repository-code: "https://github.com/igerber/diff-diff" diff --git a/diff_diff/__init__.py b/diff_diff/__init__.py index 99c0d11b..e607af7d 100644 --- a/diff_diff/__init__.py +++ b/diff_diff/__init__.py @@ -371,7 +371,7 @@ def __getattr__(name: str) -> _Any: raise AttributeError(f"module 'diff_diff' has no attribute {name!r}") -__version__ = "3.10.0" +__version__ = "3.11.0" __all__ = [ # Estimators "DifferenceInDifferences", diff --git a/diff_diff/guides/llms-full.txt b/diff_diff/guides/llms-full.txt index 88a14d78..83d401d7 100644 --- a/diff_diff/guides/llms-full.txt +++ b/diff_diff/guides/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.10.0 +- Version: 3.11.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 d1cc7c7c..328c2f6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "diff-diff" -version = "3.10.0" +version = "3.11.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 5ab7cbae..64a80e20 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "diff_diff_rust" -version = "3.10.0" +version = "3.11.0" edition = "2021" rust-version = "1.85" description = "Rust backend for diff-diff DiD library" diff --git a/tests/test_naming_guard.py b/tests/test_naming_guard.py index 881a3779..5e9ed0d2 100644 --- a/tests/test_naming_guard.py +++ b/tests/test_naming_guard.py @@ -107,7 +107,7 @@ # silently disarm 4.0-window checks). Keyed off diff_diff.__version__ so the # Duty C lifecycle gate re-arms mechanically at each version bump; a missing # key fails loudly. -_NEXT_RELEASE = {(3, 8): "3.9", (3, 9): "4.0", (3, 10): "4.0", (4, 0): "4.1"} +_NEXT_RELEASE = {(3, 8): "3.9", (3, 9): "4.0", (3, 10): "4.0", (3, 11): "4.0", (4, 0): "4.1"} # Section-8 vocabulary predicate (Duty A). Every param/field rename token in # the ledger - current and lifecycle-gated - must be matched here