Skip to content

Release v3.5.2: version bump + CHANGELOG reconciliation#536

Merged
igerber merged 2 commits into
mainfrom
release/3.5.2
Jun 8, 2026
Merged

Release v3.5.2: version bump + CHANGELOG reconciliation#536
igerber merged 2 commits into
mainfrom
release/3.5.2

Conversation

@igerber
Copy link
Copy Markdown
Owner

@igerber igerber commented Jun 8, 2026

Summary

Methodology references (required if estimator / math changes)

  • Method name(s): N/A — no estimator/math code changes. The only diff_diff/ change is the __version__ string literal; all other changes are release metadata + CHANGELOG prose. The features being re-attributed (CBWSDID, conformal, Firpo-Possebom, ImputationDiD) were validated in their own prior PRs.
  • Paper / source link(s): N/A (no methodology change in this PR)
  • Any intentional deviations from the source (and why): None

Validation

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

🤖 Generated with Claude Code

Bump version 3.5.1 -> 3.5.2 across __init__.py, pyproject.toml,
rust/Cargo.toml, llms-full.txt, and CITATION.cff (date-released
2026-06-08).

Reconcile the CHANGELOG: the Firpo & Possebom (2018) confidence-sets
-by-test-inversion feature (PR #527) was filed under [3.5.1] but
merged AFTER the v3.5.1 tag was cut, so the tagged v3.5.1 did not
actually contain it. Move that entry into the new [3.5.2] section
alongside everything else that landed post-tag (CBWSDID balancing
#534, SyntheticControl conformal inference #530, the
placebo_effects -> variance_effects rename/deprecation #532, and the
ImputationDiD validation + SE fixes #533). The Firpo PR-A paper
review (#524, docs-only) stays in [3.5.1] since it was in that tag.

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

github-actions Bot commented Jun 8, 2026

Overall Assessment

✅ Looks good. No unmitigated P0/P1 findings.

Executive Summary

  • This PR is release metadata and changelog reconciliation only; no estimator, weighting, variance/SE, or default behavior changes are introduced.
  • The moved Firpo-Possebom changelog entry matches the documented SyntheticControl methodology and documented deviations in REGISTRY.md.
  • Version surfaces changed in the diff are consistent at 3.5.2.
  • One minor stale internal comment still says “current is 3.5.1”; informational only.

Methodology

No P0/P1 findings.

The SyntheticControl Firpo-Possebom changelog prose now under 3.5.2 aligns with the registry’s documented contract: opt-in test inversion, strict p^f > gamma, analytical inference fields staying NaN, exact breakpoint inversion as a documented implementation choice, and no R anchor validation. See CHANGELOG.md:L10-L34 and docs/methodology/REGISTRY.md:L2021-L2053.

Code Quality

No findings. Only __version__ changed in package code at diff_diff/__init__.py:L301.

Performance

No findings. No runtime code paths changed.

Maintainability

  • Severity: P3
  • Impact: The version bump leaves a stale internal bump-time comment saying “current is 3.5.1”, which can confuse future release maintenance but does not affect runtime behavior.
  • Concrete fix: Update or remove the comment at diff_diff/results.py:L1217-L1218.

Tech Debt

No blocking findings. The only noted issue is the P3 stale release-maintenance comment above.

Security

No findings. No secrets, credentials, network logic, or input-handling code changed.

Documentation/Tests

No blocking findings.

Version metadata is consistent across the changed release surfaces: CITATION.cff:L10-L11, diff_diff/__init__.py:L301, diff_diff/guides/llms-full.txt:L5, pyproject.toml:L7, and rust/Cargo.toml:L3.

Validation note: static version parsing passed. Import validation could not run because this review environment lacks numpy, so I did not treat that as a PR issue.

Address CI AI-review P3 (consistency note). The placebo_effects ->
variance_effects rename/deprecation (PR #532) ships in THIS release,
which is 3.5.2, not the guessed next-minor 3.6.0. Update the
`.. deprecated::` Sphinx directive accordingly and drop the now-resolved
"assumed next-minor (current is 3.5.1); confirm/resolve at bump-version
time" placeholder comment. The v4.0.0 removal target (stated in the
warning message) is unchanged.

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

github-actions Bot commented Jun 8, 2026

🔁 AI review rerun (requested by @igerber)

Head SHA: 8652bb98f3b389c5ebb2475216d68b61dffccce0


Overall Assessment

✅ Looks good. No unmitigated P0/P1 findings.

Executive Summary

  • Re-review focus: the prior P3 stale release comment in diff_diff/results.py is resolved.
  • No estimator, weighting, variance/SE, inference, or default behavior code paths are changed.
  • The moved Firpo-Possebom changelog entry remains aligned with the documented SyntheticControl registry notes.
  • Version surfaces are consistent at 3.5.2.
  • git diff --check passed; no whitespace/errors detected.

Methodology

No findings.

Affected method prose: SyntheticControl confidence sets by test inversion, changelog-only at CHANGELOG.md:L15. The registry documents the non-analytical confidence-set contract, strict p^f > gamma convention, exact breakpoint/grid construction choice, and no-R-anchor validation at docs/methodology/REGISTRY.md:L2021-L2053. No estimator math or inference implementation changed.

Code Quality

No findings.

Only touched package code is the version literal at diff_diff/__init__.py:L301 and the deprecation directive/comment cleanup at diff_diff/results.py:L1209-L1225.

Performance

No findings. No runtime performance paths changed.

Maintainability

No findings.

Re-review note: the previous stale “current is 3.5.1” comment was removed, and the deprecation directive now matches the release where the alias is introduced: diff_diff/results.py:L1210-L1216.

Tech Debt

No findings. No new deferred work is introduced.

Security

No findings. No secrets, credentials, network logic, or input-handling changes.

Documentation/Tests

No findings.

Version metadata is consistent across changed release surfaces: CITATION.cff:L10-L11, pyproject.toml:L7, rust/Cargo.toml:L3, diff_diff/__init__.py:L301, and diff_diff/guides/llms-full.txt:L5. The new changelog section and comparison link are present at CHANGELOG.md:L10 and CHANGELOG.md:L1588.

@igerber igerber added the ready-for-ci Triggers CI test workflows label Jun 8, 2026
@igerber igerber merged commit 30c2cb9 into main Jun 8, 2026
33 of 34 checks passed
@igerber igerber deleted the release/3.5.2 branch June 8, 2026 15:25
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