Skip to content

S7: Release 1.0.2 to PyPI #92

Closed
Closed

Description

@Polichinel

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

  1. Confirm S1–S6 are merged to development and S5 shows a green "Lint and Test". Do not release
    without S5
    — publishing from an ungated branch reproduces the condition that hid this bug.
  2. Bump pyproject.toml [project] version → 1.0.2.
  3. PR development → main (branch protection: 1 review + enforce_admins; see the repo's
    branch-model notes for the admin-merge toggle if needed).
  4. 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."
  5. Verify the publish workflow's version guard passed and the release is live.
  6. 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')"
  7. Note in the issue whether views_baseline.evaluation.closeness imports in that clean env — it
    will not, because scipy is 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.toml version is 1.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.2 resolves — 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

  1. Polichinel commented on Sep 9, 2026

    @Polichinel
    ContributorAuthor

    Released. views-baseline 1.0.2 is on PyPI.

    The clean-room install-back — run for the first time ever

    $ uv venv /tmp/vb-clean --python 3.11
    $ uv pip install --refresh views-baseline==1.0.2
     + views-baseline==1.0.2  (+ views-pipeline-core 3.2.0, viewser 6.6.4, xarray, wandb, ...)
    

    Then, in that empty environment, against black_ranger's real config values:

    views-baseline 1.0.2
    built: MixtureBaseline | targets: ['lr_os_best']
    CORE_GENOME: ['steps', 'time_steps', 'prediction_format', 'regression_targets', 'level']
    

    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.0 had 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.sh tests 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.2 across all 29 models — that is what makes existing envs self-heal, and it is the last thing between here and light_strider producing a forecast.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    implementationCode implementation workstoryA single story within an epic

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions