fix: align supported Typer and Click ranges for #360 - #374
codeforester wants to merge 2 commits into
Conversation
| with: | ||
| python-version: ${{ matrix.python-version }} | ||
| - name: Install framework and supported Typer adapter | ||
| run: python -m pip install ".[dev,typer]" |
There was a problem hiding this comment.
Correctness/CI risk: the new typer-click-boundaries job installs .[dev,typer] without the setuptools<77/wheel pre-pin that the sibling typer-matrix job (lines 30-34) applies for the same Python 3.10/3.14 range. If that pin exists because a bare pip install ".[dev]" fails on some Python version in this range on a fresh runner, this new job is exposed to the same failure mode since it spans the same versions but omits the guard.
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: |
There was a problem hiding this comment.
Maintainability: this 8-entry matrix.include is a full cross product of three 2-value axes written out by hand instead of plain matrix arrays. A future edit to add a third value to any axis requires manually appending 4 more entries, and a copy-paste slip could silently produce a duplicate combination + a missing one with no test catching it. Suggest python-version: ["3.10","3.14"], typer-version: ["0.25.1","0.27.2"], click-version: ["8.2.1","8.5.0"] for the identical cross product with no duplication risk.
Part of #360. This PR aligns base-cli metadata, documentation, examples, and the in-repository Beacon consumer with the Typer versions exercised by CI. It does not close #360: the separate base-cli-demo package still advertises Typer >=0.12, and its open PR #37 already edits that repository’s pyproject.toml; that consumer change needs a coordinated follow-up.\n\n### Changes\n- Raise the optional Typer extra minimum from 0.12 to the tested 0.25.1 line.\n- Document the effective Click range for the Typer extra: Typer requires Click >=8.2.1, while Click 8.1 remains core-only.\n- Add an eight-case boundary matrix across Click 8.2.1/8.5.0, Typer 0.25.1/0.27.2, and Python 3.10/3.14.\n- Synchronize adapter guidance, API/dependency docs, examples, Beacon metadata, changelog, and generated compatibility dashboard.\n\n### Validation\n- Full local validation passed: 526 tests, 193 subtests, 87.21% coverage, typing, style, contracts, benchmark, and security gates.\n- Typer adapter tests passed on Python 3.14 for all four valid Click/Typer boundary pairs.\n- Resolver correctly rejects Click 8.1.8 with Typer 0.25.1; Click 8.1 remains tested independently for the core API.