Skip to content

Release 3.1.3: dCDH replicate weights, sparse fallback signaling, Zenodo config#322

Merged
igerber merged 2 commits intomainfrom
release/3.1.3
Apr 18, 2026
Merged

Release 3.1.3: dCDH replicate weights, sparse fallback signaling, Zenodo config#322
igerber merged 2 commits intomainfrom
release/3.1.3

Conversation

@igerber
Copy link
Copy Markdown
Owner

@igerber igerber commented Apr 18, 2026

Summary

Methodology references

  • Method name(s): N/A for this release metadata PR. The underlying methodology for each shipped PR (dCDH replicate-weight variance, TROP convergence, etc.) is documented in its own merged PR and in docs/methodology/REGISTRY.md.
  • Paper / source link(s): N/A (no methodology change in this PR itself).
  • Any intentional deviations from the source: None.

Validation

  • Per-PR regression coverage ships in the five merged PRs included in this release.
  • No new tests in this PR — version-string and CHANGELOG edits only.
  • Pre-release smoke: version strings consistent across the six canonical locations (confirmed by grep — all read 3.1.3 / date-released: 2026-04-18).

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

Generated with Claude Code

…odo config

Packages five merged PRs since v3.1.2 as patch release 3.1.3:

- #311 Replicate-weight variance and PSU-level bootstrap for dCDH — new
  variance_method="replicate" (BRR / Fay / JK1 / JKn / SDR) and PSU-level
  multiplier bootstrap, with df-aware inference and group-level PSU map.
- #321 Zenodo DOI auto-minting config — .zenodo.json + top-level LICENSE
  so the next GitHub Release mints a concept + versioned DOI automatically.
- #319 Silent sparse->dense lstsq fallback signaling in ImputationDiD and
  TwoStageDiD — emits ConvergenceWarning instead of switching paths silently.
- #317 Non-convergence signaling in TROP alternating-minimization solvers,
  including LOOCV and bootstrap aggregation. Top-level warning aggregation.
- #320 /bump-version skill now updates CITATION.cff; single RELEASE_DATE
  resolved upfront and threaded through all date-bearing files.

Version strings bumped in diff_diff/__init__.py, pyproject.toml,
rust/Cargo.toml, diff_diff/guides/llms-full.txt, and CITATION.cff
(version: 3.1.3, date-released: 2026-04-18). CHANGELOG populated with
Added / Fixed / Changed sections and comparison-link footer.

Per project SemVer convention, minor bumps are reserved for new estimators
or new module-level API; additive extensions to existing estimators (like
PR #311's new variance_method values) are patch-level.

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

Overall Assessment

✅ Looks good

Executive Summary

  • P2: The new 3.1.3 changelog says ImputationDiD/TwoStageDiD sparse-fallback paths and TROP non-convergence emit ConvergenceWarning, but the current implementation, methodology docs, and tests still use UserWarning.
  • No estimator/math/variance/default-behavior code is changed in this diff.
  • The only methodology-related release note, dCDH replicate-weight variance / PSU bootstrap, is consistent with the Methodology Registry.
  • The version/date bumps are internally consistent across the touched release surfaces, and CITATION.cff parses cleanly.
  • The touched .txt guide remains outside doc-snippet CI, but that limitation is already tracked in TODO.md, so it is informational only.

Methodology

Code Quality

  • No findings.

Performance

  • No findings.

Maintainability

  • No findings.

Tech Debt

  • Severity: P3. Impact: This PR updates diff_diff/guides/llms-full.txt:L5, but .txt AI guides are still outside the current doc-snippet smoke tests, which is already tracked in TODO.md:L95. Concrete fix: None required for approval; keep the existing TODO item or add .txt coverage to tests/test_doc_snippets.py in a follow-up.

Security

  • No findings.

Documentation/Tests

CI review on #322 flagged that the 3.1.3 entries for PR #319 (sparse->dense
lstsq fallback) and PR #317 (TROP non-convergence) claimed ConvergenceWarning,
but the actual implementations emit UserWarning (imputation.py, two_stage.py,
utils.py, trop.py, and the REGISTRY.md contract all use UserWarning). Users
filtering warnings by category would be misled.

Same factual error was in the 3.1.2 entries I wrote in PR #316 for PR #314
and PR #315. Fixing both entries in this PR — CHANGELOG is a living doc and
the warning-category drift is actionable-ly misleading.

No code or test changes; CHANGELOG-only edit.

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

igerber commented Apr 18, 2026

/ai-review

@github-actions
Copy link
Copy Markdown

🔁 AI review rerun (requested by @igerber)

Head SHA: 725c4529e9e9771c593bc5c6dbc6030f7501fe99


Overall Assessment

✅ Looks good

Executive Summary

Methodology

Code Quality

Performance

  • No findings. No runtime code paths or numerical kernels are changed in this diff.

Maintainability

Tech Debt

  • Severity: P3. Impact: diff_diff/guides/llms-full.txt:L5 is modified in this PR, but .txt AI guides still sit outside the current doc-snippet smoke tests, so drift on that surface would not be caught automatically. This is already tracked in TODO.md:L95. Concrete fix: No action required for approval; keep the existing TODO entry or extend tests/test_doc_snippets.py to validate .txt guides.

Security

  • No findings. I did not see secrets, credentials, or risky config changes in the touched files.

Documentation/Tests

@igerber igerber merged commit 35866e8 into main Apr 18, 2026
4 of 5 checks passed
@igerber igerber deleted the release/3.1.3 branch April 18, 2026 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant