Repository navigation
S7: Release 1.0.2 to PyPI #92
Description
Epic: #85 · Order: Story 7 of 8 · Depends on: S1–S6 · Gate: blocks S8 · Discharges: register C-38
Background
The fix only reaches anyone through PyPI. views-models installs views-baseline>=1.0.0,<2.0.0 from
the index in all 29 baseline models, so until a fixed version is published, nothing changes for the
team no matter what lands on development.
This is also the first release that will actually be installable. 1.0.0 and 1.0.1 were published
while views-pipeline-core>=3.0.0 had no PyPI release, so pip install views-baseline failed at
resolution (register C-38). pipeline-core 3.0.0 shipped 2026-08-03 and is now at 3.2.0, so 1.0.2 is
the first version a clean-room install can resolve.
Work
- Confirm S1–S6 are merged to
developmentand S5 shows a green "Lint and Test". Do not release
without S5 — publishing from an ungated branch reproduces the condition that hid this bug. - Bump
pyproject.toml[project] version→1.0.2. - PR
development→main(branch protection: 1 review +enforce_admins; see the repo's
branch-model notes for the admin-merge toggle if needed). - Cut the release, which triggers
.github/workflows/publish_package.yml(Trusted Publishing, OIDC,
no token):gh release create v1.0.2 --target main \ --title "views-baseline 1.0.2" \ --notes "Fixes the retired \`targets\` config key (#84, #85). All 29 baseline models were unrunnable since 2026-08-02."
- Verify the publish workflow's version guard passed and the release is live.
- Clean-room install-back — the check that has never been possible before:
uv venv /tmp/vb-clean && uv pip install --python /tmp/vb-clean/bin/python views-baseline==1.0.2 /tmp/vb-clean/bin/python -c "import views_baseline; print('resolved OK')"
- Note in the issue whether
views_baseline.evaluation.closenessimports in that clean env — it
will not, becausescipyis undeclared. That is register C-41 and is out of scope for this
epic by maintainer decision; record the observation, file/link the issue, do not fix it here.
Acceptance criteria
-
pyproject.tomlversion is1.0.2 - "Publish Package" workflow green for tag
v1.0.2 -
https://pypi.org/project/views-baseline/1.0.2/exists - A clean-room
pip install views-baseline==1.0.2resolves — first time for any version - Register C-38 moved to Resolved with this as the evidence
- The C-41 scipy observation is recorded and linked, not fixed
Validation
gh run list --workflow "Publish Package" --limit 3
python -c "import json,urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/views-baseline/json'))['info']['version'])"Relevant files
pyproject.toml, .github/workflows/publish_package.yml, docs/guides/publishing-to-pypi.md
Labels: story, implementation
Activity
Polichinel commentedon Sep 9, 2026
Released. views-baseline 1.0.2 is on PyPI.
['1.0.0', '1.0.1', '1.0.2']The clean-room install-back — run for the first time ever
Then, in that empty environment, against
black_ranger's real config values:That is the exact call which raised
KeyError: 'targets'for five weeks.1.0.2 is the first version of this package that has ever installed. 1.0.0 and 1.0.1 were published while
views-pipeline-core>=3.0.0had no PyPI release; neither resolves for anyone, and both should be treated as unusable. C-38 resolved with this as evidence (#97).Not done yet
Publishing reaches nobody who already has an environment:
run.shtests requirement satisfaction, not currency, so an env holding 1.0.1 reports "All packages are up-to-date" while running the broken code. views-models#459 raises the floor to>=1.0.2across all 29 models — that is what makes existing envs self-heal, and it is the last thing between here andlight_striderproducing a forecast.test(register): harden the guards after an independent audit found 13…