Skip to content

Commit ee3d398

Browse files
authored
Merge pull request #285 from igerber/release/v3.0.1
Release v3.0.1
2 parents 279f110 + ed87718 commit ee3d398

5 files changed

Lines changed: 21 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [3.0.1] - 2026-04-07
11+
12+
### Added
13+
- **`aggregate_survey()`** — new function in `diff_diff.prep` that bridges individual-level survey microdata to geographic-period panels for DiD estimation. Computes design-based cell means and precision weights using domain estimation (Lumley 2004), with SRS fallback for small cells. Returns a panel DataFrame and pre-configured `SurveyDesign` for second-stage estimation. Supports both TSL and replicate-weight variance.
14+
- **Python 3.14 support** — upgraded PyO3 from 0.22 to 0.28, updated CI and publish workflow matrices, bumped Rust MSRV to 1.84 for faer 0.24 compatibility.
15+
16+
### Changed
17+
- Updated README Python support matrix to include 3.14
18+
19+
### Fixed
20+
- Fix domain estimation zero-padding for correct design-based cell variance
21+
- Fix SRS fallback weight normalization for scale invariance across replicate designs
22+
- Validate numeric dtype for outcomes/covariates before aggregation (nullable dtype support)
23+
- Validate grouping columns for NaN values
24+
1025
## [3.0.0] - 2026-04-07
1126

1227
v3.0 completes the survey support roadmap: all 16 estimators (15 inference-level +
@@ -1197,6 +1212,8 @@ for the full feature history leading to this release.
11971212
- `to_dict()` and `to_dataframe()` export methods
11981213
- `is_significant` and `significance_stars` properties
11991214

1215+
[3.0.1]: https://github.com/igerber/diff-diff/compare/v3.0.0...v3.0.1
1216+
[3.0.0]: https://github.com/igerber/diff-diff/compare/v2.9.1...v3.0.0
12001217
[2.9.1]: https://github.com/igerber/diff-diff/compare/v2.9.0...v2.9.1
12011218
[2.9.0]: https://github.com/igerber/diff-diff/compare/v2.8.4...v2.9.0
12021219
[2.8.4]: https://github.com/igerber/diff-diff/compare/v2.8.3...v2.8.4

diff_diff/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@
215215
EDiD = EfficientDiD
216216
ETWFE = WooldridgeDiD
217217

218-
__version__ = "3.0.0"
218+
__version__ = "3.0.1"
219219
__all__ = [
220220
# Estimators
221221
"DifferenceInDifferences",

docs/llms-full.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> A Python library for Difference-in-Differences causal inference analysis. Provides sklearn-like estimators with statsmodels-style output for econometric analysis.
44

5-
- Version: 3.0.0
5+
- Version: 3.0.1
66
- Repository: https://github.com/igerber/diff-diff
77
- License: MIT
88
- Dependencies: numpy, pandas, scipy (no statsmodels dependency)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "diff-diff"
7-
version = "3.0.0"
7+
version = "3.0.1"
88
description = "Difference-in-Differences causal inference with sklearn-like API. Callaway-Sant'Anna, Synthetic DiD, Honest DiD, event studies, parallel trends."
99
readme = "README.md"
1010
license = "MIT"

rust/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "diff_diff_rust"
3-
version = "3.0.0"
3+
version = "3.0.1"
44
edition = "2021"
55
rust-version = "1.84"
66
description = "Rust backend for diff-diff DiD library"

0 commit comments

Comments
 (0)