From 101d8b69a682a6a2bcd58d437b3541b4168b6dc5 Mon Sep 17 00:00:00 2001 From: igerber Date: Mon, 19 Jan 2026 08:37:48 -0500 Subject: [PATCH 1/2] Bump version to 2.1.1 Updates version in all locations: - diff_diff/__init__.py - pyproject.toml - rust/Cargo.toml - CHANGELOG.md (new entry + comparison link) Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ diff_diff/__init__.py | 2 +- pyproject.toml | 2 +- rust/Cargo.toml | 2 +- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d5bb0a8f..f69b7f29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.1.1] - 2026-01-19 + +### Added +- **Rust backend acceleration for TROP estimator** delivering 5-20x overall speedup + - `compute_unit_distance_matrix` - Parallel pairwise RMSE computation for donor matching + - `loocv_grid_search` - Parallel leave-one-out cross-validation across 180 parameter combinations + - `bootstrap_trop_variance` - Parallel bootstrap variance estimation + - Automatic fallback to Python when Rust backend unavailable + - Logging for Rust fallback events to aid debugging +- **`/bump-version` skill** for release management + - Updates version in `__init__.py`, `pyproject.toml`, and `rust/Cargo.toml` + - Generates CHANGELOG entries from git commits + - Adds comparison links automatically +- **`/review-pr` skill** for code review workflow + +### Changed +- **TROP estimator performance optimizations** (Python backend) + - Vectorized distance matrix computation using NumPy broadcasting + - Extracted tuning constants to module-level for clarity + - Added `TROPTuningParams` TypedDict for parameter documentation + +### Fixed +- Tutorial notebook validation errors in `10_trop.ipynb` +- Pre-existing RuntimeWarnings in CallawaySantAnna bootstrap (documented) +- TROP `pre_periods` parameter handling for edge cases + ## [2.1.0] - 2026-01-17 ### Added @@ -410,6 +436,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `to_dict()` and `to_dataframe()` export methods - `is_significant` and `significance_stars` properties +[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 [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/diff_diff/__init__.py b/diff_diff/__init__.py index 8cb90651..aebf32a5 100644 --- a/diff_diff/__init__.py +++ b/diff_diff/__init__.py @@ -131,7 +131,7 @@ load_mpdta, ) -__version__ = "2.1.0" +__version__ = "2.1.1" __all__ = [ # Estimators "DifferenceInDifferences", diff --git a/pyproject.toml b/pyproject.toml index 00a2caf8..05b8586f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "diff-diff" -version = "2.1.0" +version = "2.1.1" description = "A library for Difference-in-Differences causal inference analysis" readme = "README.md" license = "MIT" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 6a2c1c2f..4cdf9e0a 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "diff_diff_rust" -version = "2.0.4" +version = "2.1.1" edition = "2021" description = "Rust backend for diff-diff DiD library" license = "MIT" From f83dd65f92ac9ba16f13ee1d832fd31304333278 Mon Sep 17 00:00:00 2001 From: igerber Date: Mon, 19 Jan 2026 08:38:46 -0500 Subject: [PATCH 2/2] Add .mcp.json, .claude/reviews/, scripts/ to .gitignore - .mcp.json may contain tokens - .claude/reviews/ contains generated PR review files - scripts/ contains local utility scripts Co-Authored-By: Claude Opus 4.5 --- .gitignore | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b430d9b4..d0212dad 100644 --- a/.gitignore +++ b/.gitignore @@ -67,5 +67,12 @@ Cargo.lock # Maturin build artifacts target/ -# Claude Code - local settings (user-specific permissions) +# Claude Code - local settings and generated files .claude/settings.local.json +.claude/reviews/ + +# MCP configuration (may contain tokens) +.mcp.json + +# Local scripts (not part of package) +scripts/