Repository navigation
Release 2.2.2: calculate 2036 on the 2.2 line with spm-calculator 1.1 - #10765
Merged
Merged
Conversation
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>
anth-volk
approved these changes
Nov 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.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.release/2.2.x. Pull requests intorelease/2.2.xrun the PR suite, and pushes to it version and publish. Publish uses PyPI trusted publishing in thepypienvironment, 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.changedfragments make the release job bump it to 2.2.2.Before merging
release/2.2.xto thepypienvironment's deployment branches (Settings → Environments → pypi). Today the environment allows onlymain, and the publish job will fail without the change. PyPI's trusted publisher is keyed topush.yamland thepypienvironment, not to a branch, so PyPI itself needs no change.Update PolicyEngine UStorelease/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-20260915claimspolicyengine-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):make test-other-pythonmake test-yaml-no-structural-other-irsmake test-yaml-no-structural-other-householdrelease_lock.py --committedpasses 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