Skip to content

Allow explicit SPM calculator post-release consumers - #9466

Closed
MaxGhenis wants to merge 1 commit into
mainfrom
max/spm-calculator-postrelease-compat-20260914
Closed

MaxGhenis wants to merge 1 commit into
mainfrom
max/spm-calculator-postrelease-compat-20260914

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Fixes #9465

An explicitly requested spm-calculator==1.0.0.post1 conflicts with the country's unconditional ==1.0.0 requirement. Admit >=1.0.0,<=1.0.0.post1 so either version can resolve. Keep the default calculator lock at 1.0.0; all 147 nonroot lock records remain unchanged.

This three-file change covers package metadata only. It does not include #9462, change wrapper bundle pins, or certify a data release. Development consumers of unpublished calculator fixes must still use an immutable source revision rather than a version label alone.

Validation:

  • Actual uv 0.12.13 resolver fails before and succeeds after when constrained to 1.0.0.post1. Version checks admit 1.0.0/post1 and reject 0.3.1, post2, 1.0.1, and 2.0.0.
  • 58 existing SPM cases and 25 threshold cases pass with Python 3.14.4, Core 3.30.2, Microdf 1.3.0, pandas 3.0.0, NumPy 2.4.1, and editable calculator source bcf45768003bb79addfafb0e6d9c7d2d5e547d9d from Preserve parent links and foster age limits in SPM unit assembly spm-calculator#45. Ordinary installation and dependency checking pass without an override. Runtime origins and the full package freeze were stable across the valid test runs.
  • make format, Ruff checks, and the committed registry-lock guard pass. Independent review of the committed three-file diff found no actionable issues.

The initial local test run overlapped an environment sync and was discarded; the counts above are from the restored, complete reruns. No native population data was used. This remains a draft; managed-data compatibility and the separate #9462 CI failures are not resolved by this dependency change.

MaxGhenis added a commit that referenced this pull request Sep 15, 2026
The review's F4. `docs/spm.md` said the published wheel requires exactly
`spm-calculator==1.0.0`; `pyproject.toml` requires `>=1.0.0,<=1.0.0.post1`,
the range #9466 opened so a pinned development consumer resolves either
version, with `uv.lock` pinning 1.0.0.

`.github/release-lock.md` said the country lock was intentionally blocked until
`spm-calculator==1.0.0` reached PyPI. It reached PyPI on 2026-09-11 and the
committed lock has resolved it from `https://pypi.org/simple` with sdist and
wheel hashes since; the committed-lock check passes. That passage now says so,
and records that the guard validates sources, URLs and hashes and never a
version string - `.github/release_lock.py` contains no calculator reference, so
nothing there enforces the requirement `pyproject.toml` and review enforce.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Superseded by #9467, which carried this work to main (see its provenance table).

@MaxGhenis MaxGhenis closed this Sep 15, 2026
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.

Allow explicit SPM calculator post-release development consumers

1 participant