Skip to content

Bump version to 3.11.0 - #799

Merged
igerber merged 2 commits into
mainfrom
release/3.11.0
Aug 29, 2026
Merged

Bump version to 3.11.0#799
igerber merged 2 commits into
mainfrom
release/3.11.0

Conversation

@igerber

@igerber igerber commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

Methodology references (required if estimator / math changes)

  • Method name(s): N/A - no methodology changes (version metadata only)
  • Paper / source link(s): N/A
  • Any intentional deviations from the source (and why): None

Validation

  • Tests added/updated: tests/test_naming_guard.py ladder entry; test_naming_guard + test_v4_matrix + test_guides pass locally (354 passed). Note: test_allowlists_are_reachable fails under a local py3.9 venv on clean main too (pre-existing PEP 649 attribution difference; the CI leg that runs it uses 3.14 and passes) — unrelated to this bump.
  • Backtest / simulation / notebook evidence (if applicable): N/A

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

Roll the Unreleased CHANGELOG section to 3.11.0 (2026-08-29) and sync the
version across pyproject.toml, diff_diff/__init__.py, rust/Cargo.toml,
llms-full.txt, and CITATION.cff (version + date-released).

Extend the test_naming_guard _NEXT_RELEASE ladder with (3, 11): "4.0" —
interim minors keep the 4.0 enforcement horizon — so the version-keyed
Duty C lifecycle gate re-arms at the new version.

Headline material since 3.10.0: the DMLDiD estimator family (Chang 2020) —
DML infrastructure (#789), staggered panel ATT(g,t) (#793), repeated cross
sections (#794), survey-design/cluster support (#796) — plus the DML
follow-up fix sweep (#795).

Release-build-check run 33247407917 passed on main before this bump.
@github-actions

Copy link
Copy Markdown

Overall assessment: ✅ Looks good

Executive summary

  • No estimator, weighting, variance, identification, or default behavior changed.
  • Version metadata is consistent across Python, Rust, packaging, citation, and guide surfaces.
  • The naming lifecycle guard correctly preserves the 4.0 enforcement horizon.
  • One P2 changelog-maintenance issue remains.
  • Automated tests could not run because pytest is unavailable; syntax and TOML validation passed.

Methodology

No findings. No methodology-bearing code changed, so paper/Registry reconciliation is not applicable.

Code Quality

No findings.

Performance

No findings.

Maintainability

No findings.

Tech Debt

No findings.

Security

No findings or exposed secrets detected.

Documentation/Tests

P2 — Release cut leaves changelog references stale

  • Location: CHANGELOG.md:L8, CHANGELOG.md:L2597, CHANGELOG.md:L3957, CHANGELOG.md:L3995, CHANGELOG.md:L4039, CHANGELOG.md:L4047, CHANGELOG.md:L4093
  • Impact: Renaming the only [Unreleased] heading makes several references point to a nonexistent or incorrect section and leaves contributors without the changelog target described in CONTRIBUTING.md.
  • Concrete fix: Add a fresh empty ## [Unreleased] section and comparison link, then replace references inside the 3.11.0 notes with “this 3.11.0 release section” or similarly accurate wording.

…oll (PR #799 review P2)

CONTRIBUTING.md directs release-note bullets to the next unreleased
version's section, so the header must exist between releases. The other
cited references are in historical release sections ([3.7.0]..[3.3.0])
that every prior cut intentionally left verbatim as records of what was
written at the time; they are unchanged.
@github-actions

Copy link
Copy Markdown

🔁 AI review rerun (requested by @igerber)

Head SHA: c58bcd0e341964a7a992d195ac3bf94f14ab7d24


Overall assessment: ✅ Looks good

Executive summary

  • The prior changelog P2 is resolved: [Unreleased] remains available above the new 3.11.0 section.
  • No estimator, inference, weighting, assumptions, or defaults changed.
  • Version metadata is consistent across Python, Rust, packaging, citation, and guides.
  • The naming guard correctly maps 3.11 to the 4.0 enforcement horizon.
  • Static syntax/TOML/CFF validation passed; tests could not run because pytest is unavailable.

Methodology

No findings. The diff contains no methodology-bearing changes requiring paper reconciliation.

Code Quality

No findings.

Performance

No findings.

Maintainability

No findings.

Tech Debt

No findings.

Security

No findings or exposed secrets detected.

Documentation/Tests

No findings. The previous changelog issue is addressed at CHANGELOG.md:L8-L10. The 3.11 comparison link is present at CHANGELOG.md:L5472.

@igerber igerber added the ready-for-ci Triggers CI test workflows label Aug 29, 2026
@igerber
igerber merged commit d623a10 into main Aug 29, 2026
49 of 50 checks passed
@igerber
igerber deleted the release/3.11.0 branch August 29, 2026 12:02
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