Skip to content

[v1.0] Evaluate and add Click 8.5 compatibility #279

Description

@codeforester

Goal

Evaluate Click 8.5 promptly and widen the supported dependency window when the complete lifecycle contract passes.

Background

Click 8.5.0 was released on 2026-08-24. The current package metadata requires click>=8.1,<8.5:

base-cli/pyproject.toml

Lines 49 to 51 in 8a93d22

dependencies = [
"click>=8.1,<8.5",
]
, so base-cli cannot currently coexist with consumers that have adopted the latest Click feature line.

Click 8.5 changes PowerShell completion, Windows ANSI behavior, argument help rendering, prompts, and other surfaces that base-cli wraps or tests. The dependency policy correctly requires a matrix lane and compatibility review before widening; this issue tracks that evidence rather than bypassing the upper bound.

Scope

  • Add Click 8.5 to the dependency compatibility matrix on Python 3.10 and 3.14 and relevant OS lanes.
  • Exercise native App, attached nested/lazy Click trees, testing.invoke, help/completion, lifecycle parameter sources, JSON detection, Rich/output, interrupts, and Windows terminal behavior.
  • Review public typing changes under strict mypy.
  • Widen the package window only after the contract passes.
  • Document or upstream any blocker.

Acceptance Criteria

  • A dedicated Click 8.5 lane runs on supported Python/OS boundaries.
  • Native and attached command trees preserve option parsing, help, stdout/stderr, exit, signal, and lifecycle semantics.
  • PowerShell completion and Windows ANSI behavior are tested where supported.
  • Strict library and typed-consumer mypy checks pass.
  • Installed-wheel and reference-consumer tests pass with Click 8.5.
  • If compatible, metadata changes to the reviewed next upper bound and dependency docs/dashboard agree.
  • If incompatible, the issue records the precise failing contract, upstream status, and user-facing resolver guidance.
  • Existing Click 8.1-8.4 support remains green.

Validation

Run the complete dependency matrix, OS tests, package smoke, examples, and reference consumers from a clean environment.

Non-Goals

  • Do not remove the upper bound without evidence.
  • Do not drop older supported Click lines as part of this work.

Project Fields

  • Status: Backlog
  • Priority: P1
  • Area: Python
  • Initiative: v1.0 Readiness
  • Size: M

Ownership

Preliminary Review Evidence

On 2026-08-30, the complete local source test suite passed in a disposable environment with click==8.5.0 and typer==0.27.2. This is encouraging but does not satisfy the issue: the declared dependency window still rejects Click 8.5, and the OS matrix, installed-wheel, strict typing, completion, and reference-consumer gates still need reviewed hosted evidence.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

Status
Backlog

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions