Skip to content

Release 2.1.0 - #95

Merged
Polichinel merged 7 commits into
mainfrom
development
Sep 19, 2026
Merged

Polichinel merged 7 commits into
mainfrom
development

Conversation

@Polichinel

Copy link
Copy Markdown
Collaborator

#91. Brings development to main for the 2.1.0 release (MINOR); the v2.1.0 tag and the draft GitHub Release are cut on main after this merge. Contents since v2.0.0: #92 (the frames extra admits views-frames 2.x, measured on both majors) and #94 (the release commit). Release notes: the [2.1.0] — 2026-09-19 section of CHANGELOG.md. §3.2 notification posted before the tag on views-reporting#289.

🤖 Generated with Claude Code

Polichinel and others added 7 commits September 19, 2026 00:11
Back-merge main into development (sync)
…(their #523); S10 done

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
…l-resolved

docs(register): D-01 residual resolved on views-pipeline-core's side; S10 done
…measured on both majors (#91)

Reported by views-pipeline-core's 3.3.0 range review: the `<2` cap outlived
views-frames 2.0.0 (2026-08-18) by a month and travelled through the extra into
every environment that requests it. Widened after measuring: full suite green on
views-frames 1.10.2, 1.11.0 and 2.0.0; a MetricFrame saved under either major
loads under the other identically. Safe because the package's only runtime import
from views-frames is the FrameMetadata dataclass.

Guards (each seen red on an injected defect):
- TestViewsFramesRange (hosted outside the import-skipped module): the declared
  range as a SpecifierSet under either pyproject layout; the CI floor step derives
  the floor from pyproject.toml, carries no version literal, and runs the whole
  suite; the one-name import surface by AST, aliased and dotted imports included.
- TestViewsFramesSurface: FrameMetadata's behaviour on the installed major — six
  keyword fields, to_dict omitting None, from_dict ignoring the keys load() passes
  through, int timestamp preserved — and the installed version inside the range.
- CI: the verify step prints the resolved views-frames and asserts it is not the
  floor major; the floor step runs `pytest tests/` on the floor with no trailing
  reinstall (nothing after it touches Python).

The review of this change found the report's premise false — the consumer named
also declares its own `<2.0.0` — so the CHANGELOG, register and CIC state only
this repo's contract. C-38's trigger now fires when a capped dependency publishes
outside the range; C-41 records the widened admitted set; ADR-022 §7 gains a
checklist line for stale caps. Register header dated.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
build(deps): the frames extra admits views-frames 2.x (>=1.10.2,<3), measured on both majors (#91)
Version 2.0.0 → 2.1.0 (MINOR). CHANGELOG gains the `[2.1.0] — 2026-09-19` section
with the six-item ADR-022 §7 checklist; the register gains the dated block. §3.2
notification to views-reporting posted before the tag (#289, comment 5738670537).

The release review found fifteen defects in #91's guards and prose, fixed here and
each seen red on an injected defect:

- One specifier reader. `_views_frames_specifier` parses PEP 508 with `packaging`
  (poetry 2 writes `views-frames (>=1.10.2,<3)`), reads PEP 621 first, rejects
  environment markers; the CI floor step and the verify step both call it instead of
  carrying a second inline parser or a `!= '1'` literal. `packaging` is declared in
  the dev group rather than borrowed from pytest.
- The floor step installs with `--no-deps`, runs `pip check`, proves the module
  importable on the floor (so importorskip cannot go dark), and runs the whole suite.
  Its guard asserts the helper call, the parser's own continue-on-error/if flag (the
  old check read a key that never existed), the full suppressed-exit list including
  an own-line `exit 0`, `--no-deps`, `pip check` and the import proof; the helper is
  exercised on fixtures for every layout it claims.
- Honest checklist. Working the new stale-cap item found that numpy `<2.0.0` makes
  the wheel uninstallable from wheels on Python 3.13 and 3.14, both declared supported,
  and silently freezes scipy at 1.17.x (its 1.18 needs numpy ≥ 2): C-41's trigger,
  fired 2026-06-19 with a green build. C-41 re-tiered to 2 with the measurement; #93
  filed; the checklist says so instead of "deliberate". The sixth item now names
  every capped entry including python and the dev group, not a fixed list.
- Prose: consumer state in the frozen release notes is no longer asserted as present
  fact; C-36 records the checklist's six items; C-38's stale consumer line and C-41's
  description and location updated; the CIC points at pyproject and the guard rather
  than copying the range, and is dated.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
release: 2.1.0 — the frames extra admits views-frames 2.x (#91)
@Polichinel
Polichinel merged commit e01422d into main Sep 19, 2026
6 checks passed
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.

1 participant