UAT: commitizen is configured in pyproject.toml but missing from dev optional dependencies #4130

Open
opened 2026-04-06 10:30:59 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/build/add-commitizen-to-dev-deps
  • Commit Message: fix(build): add commitizen to dev optional dependencies in pyproject.toml
  • Milestone: None (backlog)
  • Parent Epic: #362

Summary

pyproject.toml contains a [tool.commitizen] configuration section (lines 226–232) specifying cz_conventional_commits as the commit style, but commitizen is not listed in any optional dependency group. The CONTRIBUTING.md recommends using git cz (commitizen) for commit messages. A fresh uv sync --extra dev will not install commitizen, making the recommended commit workflow unavailable.

Backlog note: This issue was discovered during autonomous UAT testing.
It does not block milestone completion and has been placed in the backlog
for human review and future milestone assignment.

What Was Tested

  • Read pyproject.toml [tool.commitizen] section (lines 226–232)
  • Read pyproject.toml [project.optional-dependencies.dev] section (lines 57–78)
  • Searched uv.lock for name = "commitizen" — not found

Expected Behavior

commitizen should be listed in [project.optional-dependencies.dev] so that uv sync --extra dev installs it and contributors can use git cz for commit messages as recommended.

Actual Behavior

# pyproject.toml — commitizen IS configured:
[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "$version"
version_scheme = "pep440"
version_provider = "pep621"
update_changelog_on_bump = true
major_version_zero = true

# But commitizen is NOT in dev dependencies:
[project.optional-dependencies]
dev = [
    "ruff>=0.15.0,<0.16.0",
    "pyright>=1.1.350",
    # ... commitizen is absent
]

uv.lock does not contain commitizen as a resolved package.

Steps to Reproduce

  1. grep -n "commitizen" pyproject.toml → shows [tool.commitizen] config but no dependency entry
  2. grep 'name = "commitizen"' uv.lock → no output
  3. uv sync --extra dev && git cz → would fail with command not found: cz

Code Location

  • pyproject.toml, lines 57–78 ([project.optional-dependencies.dev])
  • pyproject.toml, lines 226–232 ([tool.commitizen])

Fix

Add commitizen>=3.0.0 to [project.optional-dependencies.dev]:

dev = [
    ...
    # Commit tooling
    "commitizen>=3.0.0",
    ...
]

Subtasks

  • Add commitizen>=3.0.0 to [project.optional-dependencies.dev]
  • Run uv lock to update the lockfile
  • Verify uv sync --extra dev && cz --version works
  • Verify git cz prompts for conventional commit message

Definition of Done

  • commitizen is listed in [project.optional-dependencies.dev]
  • uv sync --extra dev installs commitizen
  • git cz works for conventional commits
  • Associated PR has been merged

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-uat-tester

## Metadata - **Branch**: `fix/build/add-commitizen-to-dev-deps` - **Commit Message**: `fix(build): add commitizen to dev optional dependencies in pyproject.toml` - **Milestone**: None (backlog) - **Parent Epic**: #362 ## Summary `pyproject.toml` contains a `[tool.commitizen]` configuration section (lines 226–232) specifying `cz_conventional_commits` as the commit style, but `commitizen` is not listed in any optional dependency group. The CONTRIBUTING.md recommends using `git cz` (commitizen) for commit messages. A fresh `uv sync --extra dev` will not install `commitizen`, making the recommended commit workflow unavailable. > **Backlog note:** This issue was discovered during autonomous UAT testing. > It does not block milestone completion and has been placed in the backlog > for human review and future milestone assignment. ## What Was Tested - Read `pyproject.toml` `[tool.commitizen]` section (lines 226–232) - Read `pyproject.toml` `[project.optional-dependencies.dev]` section (lines 57–78) - Searched `uv.lock` for `name = "commitizen"` — not found ## Expected Behavior `commitizen` should be listed in `[project.optional-dependencies.dev]` so that `uv sync --extra dev` installs it and contributors can use `git cz` for commit messages as recommended. ## Actual Behavior ```toml # pyproject.toml — commitizen IS configured: [tool.commitizen] name = "cz_conventional_commits" tag_format = "$version" version_scheme = "pep440" version_provider = "pep621" update_changelog_on_bump = true major_version_zero = true # But commitizen is NOT in dev dependencies: [project.optional-dependencies] dev = [ "ruff>=0.15.0,<0.16.0", "pyright>=1.1.350", # ... commitizen is absent ] ``` `uv.lock` does not contain `commitizen` as a resolved package. ## Steps to Reproduce 1. `grep -n "commitizen" pyproject.toml` → shows `[tool.commitizen]` config but no dependency entry 2. `grep 'name = "commitizen"' uv.lock` → no output 3. `uv sync --extra dev && git cz` → would fail with `command not found: cz` ## Code Location - `pyproject.toml`, lines 57–78 (`[project.optional-dependencies.dev]`) - `pyproject.toml`, lines 226–232 (`[tool.commitizen]`) ## Fix Add `commitizen>=3.0.0` to `[project.optional-dependencies.dev]`: ```toml dev = [ ... # Commit tooling "commitizen>=3.0.0", ... ] ``` ## Subtasks - [ ] Add `commitizen>=3.0.0` to `[project.optional-dependencies.dev]` - [ ] Run `uv lock` to update the lockfile - [ ] Verify `uv sync --extra dev && cz --version` works - [ ] Verify `git cz` prompts for conventional commit message ## Definition of Done - [ ] `commitizen` is listed in `[project.optional-dependencies.dev]` - [ ] `uv sync --extra dev` installs `commitizen` - [ ] `git cz` works for conventional commits - [ ] Associated PR has been merged --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
HAL9000 added this to the v3.5.0 milestone 2026-04-09 03:10:47 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#4130
No description provided.