Skip to content

Commit 859477f

Browse files
authored
Merge pull request #79 from igerber/release/v2.1.1
Release/v2.1.1
2 parents e44724a + f83dd65 commit 859477f

5 files changed

Lines changed: 38 additions & 4 deletions

File tree

.gitignore

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,12 @@ Cargo.lock
6767
# Maturin build artifacts
6868
target/
6969

70-
# Claude Code - local settings (user-specific permissions)
70+
# Claude Code - local settings and generated files
7171
.claude/settings.local.json
72+
.claude/reviews/
73+
74+
# MCP configuration (may contain tokens)
75+
.mcp.json
76+
77+
# Local scripts (not part of package)
78+
scripts/

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.1.1] - 2026-01-19
9+
10+
### Added
11+
- **Rust backend acceleration for TROP estimator** delivering 5-20x overall speedup
12+
- `compute_unit_distance_matrix` - Parallel pairwise RMSE computation for donor matching
13+
- `loocv_grid_search` - Parallel leave-one-out cross-validation across 180 parameter combinations
14+
- `bootstrap_trop_variance` - Parallel bootstrap variance estimation
15+
- Automatic fallback to Python when Rust backend unavailable
16+
- Logging for Rust fallback events to aid debugging
17+
- **`/bump-version` skill** for release management
18+
- Updates version in `__init__.py`, `pyproject.toml`, and `rust/Cargo.toml`
19+
- Generates CHANGELOG entries from git commits
20+
- Adds comparison links automatically
21+
- **`/review-pr` skill** for code review workflow
22+
23+
### Changed
24+
- **TROP estimator performance optimizations** (Python backend)
25+
- Vectorized distance matrix computation using NumPy broadcasting
26+
- Extracted tuning constants to module-level for clarity
27+
- Added `TROPTuningParams` TypedDict for parameter documentation
28+
29+
### Fixed
30+
- Tutorial notebook validation errors in `10_trop.ipynb`
31+
- Pre-existing RuntimeWarnings in CallawaySantAnna bootstrap (documented)
32+
- TROP `pre_periods` parameter handling for edge cases
33+
834
## [2.1.0] - 2026-01-17
935

1036
### Added
@@ -410,6 +436,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
410436
- `to_dict()` and `to_dataframe()` export methods
411437
- `is_significant` and `significance_stars` properties
412438

439+
[2.1.1]: https://github.com/igerber/diff-diff/compare/v2.1.0...v2.1.1
413440
[2.1.0]: https://github.com/igerber/diff-diff/compare/v2.0.3...v2.1.0
414441
[2.0.3]: https://github.com/igerber/diff-diff/compare/v2.0.2...v2.0.3
415442
[2.0.2]: https://github.com/igerber/diff-diff/compare/v2.0.1...v2.0.2

diff_diff/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
load_mpdta,
132132
)
133133

134-
__version__ = "2.1.0"
134+
__version__ = "2.1.1"
135135
__all__ = [
136136
# Estimators
137137
"DifferenceInDifferences",

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 = "2.1.0"
7+
version = "2.1.1"
88
description = "A library for Difference-in-Differences causal inference analysis"
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 = "2.0.4"
3+
version = "2.1.1"
44
edition = "2021"
55
description = "Rust backend for diff-diff DiD library"
66
license = "MIT"

0 commit comments

Comments
 (0)