Skip to content

Release 2.2.2: calculate 2036 on the 2.2 line with spm-calculator 1.1 - #10765

Merged
DTrim99 merged 2 commits into
release/2.2.xfrom
release-2.2.2
Nov 9, 2026
Merged

DTrim99 merged 2 commits into
release/2.2.xfrom
release-2.2.2

Conversation

@DTrim99

@DTrim99 DTrim99 commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

A 2.2.2 patch on the 2.2 line, so the policyengine.py bundle can calculate 2036 without moving to PolicyEngine US 2.94 and recertifying the US data. It is 2.2.1 plus three changes:

  • spm-calculator 1.1. Require spm-calculator>=1.1.0,<1.2, whose canonical forecast covers 2022–2036, as Require spm-calculator 1.1 for the 2022–2036 SPM forecast #10620 did on main. The lock moves only spm-calculator, from 1.0.0 to 1.1.0, with the same sdist and wheel hashes as main's lock.
  • CBO's 2036 CPI-U points. Add CBO's February 2026 calendar-2036 CPI-U (416.5) and chained CPI-U (223.5) points, and project both through 2036 so their authored 2035 points are no longer overwritten. This is the CPI-U part of Load CBO's February 2026 projections through 2036 into the upraters #10227 only. Single-year datasets now extend through 2036 by default, and IRS uprating projects through tax year 2036. The rest of the CBO refresh stays on the 2.94 line.
  • Release workflows on release/2.2.x. Pull requests into release/2.2.x run the PR suite, and pushes to it version and publish. Publish uses PyPI trusted publishing in the pypi environment, as main does, because the stored token the 2.2.1 workflow read is gone.

Version 2.2.1 stays in pyproject.toml. The two .changed fragments make the release job bump it to 2.2.2.

Before merging

  • A repository admin must add release/2.2.x to the pypi environment's deployment branches (Settings → Environments → pypi). Today the environment allows only main, and the publish job will fail without the change. PyPI's trusted publisher is keyed to push.yaml and the pypi environment, not to a branch, so PyPI itself needs no change.
  • On merge, the release job commits Update PolicyEngine US to release/2.2.x, runs the full suite and publishes 2.2.2. Main is untouched.

Why it fits the current certification

The US data release populace-us-2024-spm-20260915 claims policyengine-us >=2.0.0,<2.3, so 2.2.2 stays inside it. The bundle's core 3.33.3 may still need a qualification run for the exact pair (policyengine.py #618).

Tests

These ran on Modal (Linux, Python 3.14, uv sync --locked --extra dev, uv 0.12.13):

Group Result
SPM threshold, dataset extension, parameters/uprating and core tests 550 passed
make test-other-python 683 passed, 1 skipped
make test-yaml-no-structural-other-irs all batches passed
make test-yaml-no-structural-other-household all batches passed
Contrib YAML files with periods in 2035 or later 28 passed
2035/2036 household check (CA, LA County) passed; IRS 2036 standard deduction (single) $19,750

release_lock.py --committed passes with uv 0.12.13, and the 33 release-guard tests pass. The SPM threshold test now covers 2022–2036 and checks that 2037 is refused.

Part of PolicyEngine/policyengine-api#3926.

🤖 Generated with Claude Code

DTrim99 and others added 2 commits November 6, 2026 13:21
Require spm-calculator 1.1, whose canonical forecast covers 2022-2036, and
add CBO's February 2026 calendar-2036 CPI-U and chained CPI-U points,
projecting both through 2036 so their authored 2035 points are no longer
overwritten. Single-year datasets now extend through 2036 by default and
IRS uprating projects through tax year 2036. This is the minimal CPI-U
subset of #10227 plus the #10620 pin, for a 2.2.2 patch inside the current
US data release's certified range.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Let pull requests into release/2.2.x run the PR suite, and let pushes to it
version and publish. Publish now uses PyPI trusted publishing in the pypi
environment, as main does, because the stored PyPI token this workflow read
is gone. The pypi environment's deployment branches must include
release/2.2.x before the release push.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@DTrim99
DTrim99 merged commit bb7bbc4 into release/2.2.x Nov 9, 2026
35 checks passed
@DTrim99
DTrim99 deleted the release-2.2.2 branch November 9, 2026 20:02
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.

2 participants