Skip to content

Release v3.0.2#301

Merged
igerber merged 2 commits intomainfrom
release/v3.0.2
Apr 13, 2026
Merged

Release v3.0.2#301
igerber merged 2 commits intomainfrom
release/v3.0.2

Conversation

@igerber
Copy link
Copy Markdown
Owner

@igerber igerber commented Apr 12, 2026

Summary

  • Bump version to 3.0.2 across all locations (pyproject.toml, init.py, Cargo.toml, llms-full.txt, CITATION.cff)
  • Finalize CHANGELOG entry for v3.0.2 (promoted from [Unreleased])

What's in v3.0.2

New estimator:

  • ChaisemartinDHaultfoeuille (alias DCDH) - reversible-treatment DiD, Phases 1+2 (DID_M, multi-horizon event study, dynamic placebos, sup-t bands)

New features:

  • Survey-aware power analysis (SurveyPowerConfig, expected_deff, simulation path with survey_design)
  • aggregate_survey() pweight default (second_stage_weights parameter)
  • conditional_pt parameter on survey DGP
  • Tutorial 18 (geo-experiments with SyntheticDiD)
  • Practitioner decision tree and getting started guide (B1b-d)

Infrastructure:

  • Standalone CI Gate workflow (doc-only PRs no longer block)
  • JOSS paper (paper.md, paper.bib)
  • CONTRIBUTORS.md, CITATION.cff with author credit

Methodology references (required if estimator / math changes)

Validation

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

Generated with Claude Code

Update version across all locations (pyproject.toml, __init__.py,
Cargo.toml, llms-full.txt, CITATION.cff) and finalize CHANGELOG
entry for v3.0.2.

Highlights: dCDH estimator (Phases 1+2), survey-aware power analysis,
aggregate_survey() pweight default, Tutorial 18 (geo-experiments),
practitioner docs (B1b-d), CI gate fix for doc-only PRs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Overall Assessment

✅ Looks good

Executive Summary

  • The diff is metadata/documentation-only. I did not find any code-level changes to estimators, weighting, variance/SE logic, identification checks, or runtime defaults.
  • Cross-checking the methodology-relevant release-note items against the Methodology Registry found no new undocumented methodology deviations in this PR.
  • Version metadata is internally consistent across the touched package/runtime files: pyproject.toml:L7, diff_diff/init.py:L231, rust/Cargo.toml:L3, CITATION.cff:L10-L11, and docs/llms-full.txt:L5.
  • The only actionable issues are documentation accuracy problems in the promoted 3.0.2 changelog: one misstates the survey-power API/support, and one overstates aggregate_survey() compatibility.
  • docs/llms-full.txt still sits outside doc-snippet CI coverage, but that gap is already tracked in TODO.md:L86-L94.

Methodology

Code Quality

  • No findings.

Performance

  • No findings.

Maintainability

  • No findings.

Tech Debt

  • Severity P3 | Impact: This PR updates docs/llms-full.txt:L5, but .txt AI guides are still outside snippet-smoke validation, so future API/doc drift in that surface can slip through CI. | Concrete fix: No action required for this PR; this is already tracked in TODO.md:L93-L94.

Security

  • No findings. The diff is release metadata/docs only, and I did not see any secrets or sensitive material.

Documentation/Tests

  • Severity P2 | Impact: CHANGELOG.md:L18 documents a non-existent survey-power API: it says SurveyPowerConfig has expected_deff, that simulation power accepts survey_design, and that this works “with any estimator.” The actual public API uses deff for the analytical helpers, survey_config for simulate_power/simulate_mde/simulate_sample_size, and the survey-DGP path only supports a subset of estimators. Users following the release note will hit wrong signatures or unsupported-estimator errors. | Concrete fix: Rewrite the bullet to match diff_diff/power.py:L57-L125, diff_diff/power.py:L1767-L1785, diff_diff/power.py:L1834-L1840, diff_diff/power.py:L3026-L3167, and REGISTRY.md:L2287-L2288: use deff for the analytical helpers, survey_config for the simulation helpers, and SurveyPowerConfig(survey_design=...) for custom design override.
  • Severity P2 | Impact: CHANGELOG.md:L19 says aggregate_survey() pweight output is compatible with “all 16 estimators.” The project’s own support matrix says the default pweight output is compatible with all survey-capable estimators, not all estimators; ChaisemartinDHaultfoeuille has no survey support and BaconDecomposition is diagnostic only. This also contradicts the nearby “docs no longer overclaim universal estimator compatibility” note at CHANGELOG.md:L36. | Concrete fix: Change the wording to “all survey-capable estimators” and reserve aweight for the estimators marked Full in diff_diff/prep.py:L1468-L1482, REGISTRY.md:L2494-L2512, docs/choosing_estimator.rst:L691-L696, and docs/choosing_estimator.rst:L723-L800.
  • Severity P3 | Impact: CHANGELOG.md:L31 says CITATION.cff was updated with the author name, but this diff only changes version/date; the author entry was already present in CITATION.cff:L5-L11. | Concrete fix: Narrow that changelog bullet to the actual metadata change, e.g. version/date only.

- Fix survey-power API names: deff (not expected_deff) for analytical
  helpers, survey_config (not survey_design) for simulation helpers
- Fix aggregate_survey() compatibility claim: "all survey-capable
  estimators" not "all 16 estimators" (dCDH has no survey support,
  BaconDecomposition is diagnostic only)
- Fix CITATION.cff bullet: this PR updates version/date only, author
  name was added in PR #293

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@igerber
Copy link
Copy Markdown
Owner Author

igerber commented Apr 12, 2026

/ai-review

@github-actions
Copy link
Copy Markdown

🔁 AI review rerun (requested by @igerber)

Head SHA: a6b1a8376d0956195ec6ae9f32f2d4ba8419ef88


Overall Assessment

✅ Looks good

Executive Summary

Methodology

  • No findings. The methodology-adjacent changelog bullets now match the registry and in-code documentation for dCDH scope, survey-power deff / survey_config, aggregate_survey() weighting semantics, and conditional_pt. No runtime methodology change is introduced in this diff.

Code Quality

  • No findings.

Performance

  • No findings.

Maintainability

  • No findings.

Tech Debt

  • Severity P3 | Impact: docs/llms-full.txt:L5 is touched in this PR, but .txt AI-guide docs are still outside the doc-snippet smoke tests tracked in TODO.md:L93. Future drift on that surface can still bypass CI. | Concrete fix: No action required for this PR; this is already properly tracked in TODO.md.

Security

  • No findings.

Documentation/Tests

@igerber igerber added the ready-for-ci Triggers CI test workflows label Apr 12, 2026
@igerber igerber merged commit 993e43a into main Apr 13, 2026
23 of 24 checks passed
@igerber igerber deleted the release/v3.0.2 branch April 13, 2026 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-ci Triggers CI test workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant