Repository navigation
Lock policyengine-core 3.34.2 - #10589
Conversation
uv.lock held policyengine-core 3.33.2, and CI installs from the lock, so this repository's YAML shards did not get core 3.34.1's cheaper parameter clones or 3.34.2's faster reform builds. Only policyengine-core moves; pyproject's >=3.33.1 floor is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Ready for hub review Head: Steps
CI: not run, because the PR is a draft. No microsimulation was run. Judgment calls
Proposed follow-up
Generated by Claude Code |
|
Ready for hub review The lock change is correct and safe: it moves No FindingsP1. The changelog fragment and the PR body say CI gets core 3.34.x only through this lock. CI's test jobs already run 3.34.2.
What the workflows do. Every test job runs
Only four jobs run Witness. I read the job logs for a PR run whose So the speed and memory savings the fragment credits to this lock already reach every YAML and Python test shard on main. This PR moves the lint, shard-planning and publish environments, and every local Replacement fragment ( Replacement first paragraph of the body: P3. Body: the test list leaves out the one PE-US test file that drives 3.34.1's changed codeThe body's 3.34.1 line is accurate: no PE-US parameter file sets P3 (follow-up, identical on main). Stale docstring in
|
| File | Core | Result | Wall (incl. setup) | Peak RSS |
|---|---|---|---|---|
tests/core/test_ssi_state_supplement_medicaid_dependency.py |
3.34.2 | 23 passed | 231 s | 3.2 GB |
tests/test_pinned_tbs_sharing.py |
3.34.2 | 33 passed | 708 s | 3.3 GB |
tests/test_pinned_tbs_sharing.py |
3.33.2 | 33 passed | 800 s | 3.6 GB |
tests/policy/contrib/ctc/integration.yaml |
3.34.2 | 10 passed (109 s in pytest) | 367 s | 9.4 GB |
tests/policy/contrib/ctc/integration.yaml |
3.33.2 | 10 passed (214 s in pytest) | 493 s | 10.7 GB |
The ctc runs are one sample each. They support the claim that 3.34.x makes reform-heavy YAML cheaper, but CI already gets that saving (P1).
CI at the head. Run 41413241170 ("Pull request"): 34 of 34 jobs passed, none cancelled or skipped. In its Baseline (irs) log, core installs as 3.34.2 with no "Updated" line, because the lock already says 3.34.2. The PR is not a draft, so the hand-off's "CI: not run, because the PR is a draft" is out of date.
Mutants. The hand-off lists none. I ran two on scratch copies of core 3.34.2, put first on PYTHONPATH. Both survive the PE-US tests I aimed at them. The site-packages copy and the git tree were left untouched, and git status is clean.
clone.metadata = self.metadata: the clone shares the dict outright, inparameter.py,parameter_node.pyandparameter_scale.py.- The mutant is live. The baseline
gov.irs.payroll.social_security.capgets the label "Current-law OASDI cap preserved for owners' draw" and losesuprating, throughsystem.py:152-155. - It survives
tests/core/test_per_capita_uprating.py -k trustees(3 passed). - No PE-US test that I found checks that cap's metadata. Core's own clone tests guard this, so I don't ask this PR for a test. A PE-US follow-up could assert that
system.parameters.gov.irs.payroll.social_security.cap.metadatakeeps itsupratingaftersystem.pybuilds the owners'-draw clone.
- The mutant is live. The baseline
- Revert
interpolate_parametersto writingmetadata["interpolation"]["completed"] = True.- The mutant is live: a core-cloned tree then stops interpolating (copy at 2024 = 0.01, against 0.105 with real 3.34.2).
- It survives
test_pinned_tbs_sharing.py -k "interpolates_for_itself or reads_past_a_view or metadata_reads_as_a_deep_copy"(3 passed), because that file copies trees with PE-US's ownspm.copy_parameter_nodes, which deep-copies metadata dicts. - For PE-US's real parameters this mutant is equivalent, since none sets
interpolation. That supports the body's claim that 3.34.1's interpolation change doesn't reach PE-US.
A published release. The wheel packages only policyengine_us ([tool.hatch.build.targets.wheel] packages = ["policyengine_us"]) and requires policyengine-core>=3.33.1. A PyPI install resolves the newest core whatever this lock says. Publish (push.yaml:573-577) installs from the lock, but its make → python -m build and release_build.py don't import core, so the built wheel doesn't depend on the locked core. Landing this before the next release can't change a computed output in a PyPI install. It can change outputs only in local uv sync environments, where I found no parameter difference. Model results in CI are already computed with 3.34.2.
Body lines. impact: pending (hub) and axiom: n/a: engine dependency update with no policy change. are present. I checked the changelog summaries for 3.34.2, 3.34.1, 3.34.0, 3.33.14, 3.33.12, 3.33.11/3.33.7 and 3.33.8/3.33.10 against core's CHANGELOG.md in the 3.34.2 sdist, and they are accurate. Baseline outputs: I found no parameter difference, and CI's test shards already compute with 3.34.2. The population check that remains is the hub's baseline microsim pair for 3.33.2 against 3.34.2, mainly for 3.33.7's dataset-loading change, which reorders how flat-file memberships and group values load.
Overlap. Open-PR searches for uv.lock, policyengine-core and lock-core found Preserve supplied marital units and infer missing explicit couples #10000 and Require spm-calculator 1.1 for the 2022–2036 SPM forecast #10620 touching uv.lock (see P3 above). No other open PR changes the core lock.
Law. This PR changes no policy, so I fetched no legal source.
What I couldn't check
- Core's GitHub repository is outside this session's scope. I read core's changelog and source diffs from the 3.33.2 and 3.34.2 sdists on PyPI instead.
- Population data. I ran no microsimulation. Whether 3.33.7 and 3.33.11's dataset-loading changes move any population output needs the hub's impact pair.
- Timings. The ctc timing and memory comparison is one local sample per core version, not Linux CI.
Generated by Claude Code
….34.2 The test jobs run `uv lock --upgrade-package policyengine-core` before `uv sync --locked`, so they already run 3.34.2. The lock moves local environments and the jobs that install it as committed: lint, Rest shard planning and the publish job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
US + core hub merge audit, us#10589 at
|
Bring in main past 4cf0a98, including #10589's newer policyengine-core lock, so CI runs this PR against current main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LwQq6GuAZNBedib7D5hnAB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This moves
uv.lock's policyengine-core from 3.33.2 to 3.34.2, and nothing else. CI's test jobs already runuv lock --upgrade-package policyengine-corebeforeuv sync --locked, so they have run 3.34.2 since its release on 2026-10-31. This brings the environments that install the committed lock (localuv sync, PR and push lint, Rest shard planning, the PR's rc1 and final candidate wheel builds, and the publish job) to the same version.Core releases spanned (3.33.3 to 3.34.2)
Changes that could touch a PE-US result or test:
interpolate_parametersnow reaches every parameter a node propagatesinterpolationto, but no PE-US parameter file setsinterpolation.policyengine_us/tests/test_pinned_tbs_sharing.pyexercises interpolation and metadata copying, and passes under 3.34.2 (33 passed in an independent review).Reform.from_api,Reform.api_idandpolicyengine_core.charts.api. A grep of the whole repository (code, tests, scripts, docs) finds no use of them.from_parent, for pytest 9.2.set_inputfor one of a variable's own periods drops the sums and twelfths already calculated over overlapping periods. Core also compiles each variable source file once per process.Overlaps
Draft #10000 locks policyengine-core 3.34.0 and will conflict on
uv.lockonce this lands; its author relocks then. #10620 also touchesuv.lockand merges cleanly with this PR.Tests run
Against the locked core (
policyengine_coreimported at 3.34.2), one process each:policyengine_us/tests/core/test_ssi_state_supplement_medicaid_dependency.py: 23 passed.policyengine_us/tests/policy/contrib/ctc/integration.yaml(two reform objects, ten cases with different parameter settings): 10 passed.impact: none for released or CI-computed outputs. A wheel doesn't carry
uv.lockand requirespolicyengine-core>=3.33.1, so a fresh PyPI install already resolves 3.34.2, and CI's test jobs already run it. Localuv syncenvironments move to 3.34.2. No baseline microsim pair compared 3.33.2 with 3.34.2, and an independent review found no PE-US parameter value or metadata that differs between them.axiom: n/a: engine dependency update with no policy change.
🤖 Generated with Claude Code