From c3a0e58a48bbbf5bb18a139179783b3d0dc0c87c Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:12:23 -0600 Subject: [PATCH 1/2] fix: pin click>=8.1 to prevent Python 3.14/Homebrew env isolation failures Fixes #1631. When uv installs specify-cli on macOS with Homebrew Python 3.14, the virtual environment can fail to fully isolate from the system site-packages, causing Homebrew's click to be loaded instead of the one uv installed. If that system click is older than 8.1, it lacks the `ctx` keyword argument in `ParamType.get_metavar()`, which typer 0.24.0 requires, resulting in: TypeError: ParamType.get_metavar() got an unexpected keyword argument 'ctx' Adding an explicit `click>=8.1` dependency gives uv a hard constraint so the correct version is always resolved and installed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 6 ++++++ pyproject.toml | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d945780015..5fb50c42c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ All notable changes to the Specify CLI and templates are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.2] - 2026-02-20 + +### Fixed + +- **Python 3.14 / Homebrew compatibility**: Added explicit `click>=8.1` dependency to prevent environment isolation failures on Python 3.14 (Homebrew) where the system click could bleed into the uv virtual environment, causing `TypeError: ParamType.get_metavar() got an unexpected keyword argument 'ctx'` ([#1631](https://github.com/github/spec-kit/issues/1631)) + ## [0.1.1] - 2026-02-13 ### Added diff --git a/pyproject.toml b/pyproject.toml index 7ca679cb08..73b50738bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,11 @@ [project] name = "specify-cli" -version = "0.1.1" +version = "0.1.2" description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)." requires-python = ">=3.11" dependencies = [ "typer", + "click>=8.1", "rich", "httpx[socks]", "platformdirs", From ec56b44ab9a2723c32ba854beec6515759598034 Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:18:13 -0600 Subject: [PATCH 2/2] Update CHANGELOG.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fb50c42c1..ab4198beb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- **Python 3.14 / Homebrew compatibility**: Added explicit `click>=8.1` dependency to prevent environment isolation failures on Python 3.14 (Homebrew) where the system click could bleed into the uv virtual environment, causing `TypeError: ParamType.get_metavar() got an unexpected keyword argument 'ctx'` ([#1631](https://github.com/github/spec-kit/issues/1631)) +- **Python 3.14 / Homebrew compatibility**: Added explicit `click>=8.1` dependency so the resolver always selects a Click version compatible with Python 3.14 and avoids errors such as `TypeError: ParamType.get_metavar() got an unexpected keyword argument 'ctx'` when an older Click would otherwise be used. Note that broader uv/Homebrew environment isolation or `sys.path` bleed issues (see [#1631](https://github.com/github/spec-kit/issues/1631)) may still require environment-level workarounds. ## [0.1.1] - 2026-02-13