UAT: nox (primary task runner) is missing from pyproject.toml dev/tests optional dependencies #4126

Open
opened 2026-04-06 10:30:33 +00:00 by freemo · 1 comment
Owner

Metadata

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

Summary

The project's primary task runner nox is not listed in any optional dependency group in pyproject.toml. The CONTRIBUTING.md and project spec explicitly state that all commands must be routed through nox (e.g., nox -e lint, nox -e typecheck, nox -e unit_tests). However, nox is absent from both [project.optional-dependencies.dev] and [project.optional-dependencies.tests]. This means a fresh uv sync --extra dev or uv sync --extra tests will NOT install nox, breaking the development workflow for new contributors.

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 [project.optional-dependencies] section (lines 53–96)
  • Searched uv.lock for name = "nox" — not found
  • Confirmed noxfile.py exists at project root and is the primary task runner
  • Confirmed CONTRIBUTING.md states all commands must go through nox

Expected Behavior

nox should be listed in [project.optional-dependencies.dev] so that uv sync --extra dev installs it automatically. New contributors should be able to run nox -e lint, nox -e typecheck, nox -e unit_tests immediately after uv sync --extra dev.

Actual Behavior

# pyproject.toml [project.optional-dependencies.dev] — nox is ABSENT
dev = [
    "ruff>=0.15.0,<0.16.0",
    "pyright>=1.1.350",
    "types-pyyaml>=6.0.0",
    "types-aiofiles>=23.0.0",
    "behave==1.3.3",
    "pytest>=8.0.0",
    "pytest-asyncio>=0.23.0",
    "pytest-cov>=4.1.0",
    "pre-commit>=3.6.0",
    "bandit[toml]>=1.7.5",
    "semgrep>=1.60.0",
    "vulture>=2.10",
    "radon>=6.0.1",
    # nox is NOT listed here
]

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

Steps to Reproduce

  1. grep -n "nox" pyproject.toml — only shows .nox directory exclusions, not a dependency
  2. grep 'name = "nox"' uv.lock — no output (nox not in lockfile)
  3. uv sync --extra dev && nox --list — would fail with command not found: nox

Code Location

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

Fix

Add nox>=2024.0.0 (or appropriate version) to [project.optional-dependencies.dev]:

dev = [
    ...
    # Task runner
    "nox>=2024.0.0",
    ...
]

Subtasks

  • Add nox>=2024.0.0 to [project.optional-dependencies.dev]
  • Run uv lock to update the lockfile
  • Verify uv sync --extra dev && nox --list works
  • Verify nox -e lint, nox -e typecheck, nox -e unit_tests all work

Definition of Done

  • nox is listed in [project.optional-dependencies.dev]
  • uv sync --extra dev installs nox
  • All nox sessions run successfully
  • Associated PR has been merged

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

## Metadata - **Branch**: `fix/build/add-nox-to-dev-deps` - **Commit Message**: `fix(build): add nox to dev optional dependencies in pyproject.toml` - **Milestone**: None (backlog) - **Parent Epic**: #362 ## Summary The project's primary task runner `nox` is not listed in any optional dependency group in `pyproject.toml`. The CONTRIBUTING.md and project spec explicitly state that **all commands must be routed through `nox`** (e.g., `nox -e lint`, `nox -e typecheck`, `nox -e unit_tests`). However, `nox` is absent from both `[project.optional-dependencies.dev]` and `[project.optional-dependencies.tests]`. This means a fresh `uv sync --extra dev` or `uv sync --extra tests` will NOT install `nox`, breaking the development workflow for new contributors. > **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` `[project.optional-dependencies]` section (lines 53–96) - Searched `uv.lock` for `name = "nox"` — not found - Confirmed `noxfile.py` exists at project root and is the primary task runner - Confirmed CONTRIBUTING.md states all commands must go through `nox` ## Expected Behavior `nox` should be listed in `[project.optional-dependencies.dev]` so that `uv sync --extra dev` installs it automatically. New contributors should be able to run `nox -e lint`, `nox -e typecheck`, `nox -e unit_tests` immediately after `uv sync --extra dev`. ## Actual Behavior ```toml # pyproject.toml [project.optional-dependencies.dev] — nox is ABSENT dev = [ "ruff>=0.15.0,<0.16.0", "pyright>=1.1.350", "types-pyyaml>=6.0.0", "types-aiofiles>=23.0.0", "behave==1.3.3", "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "pytest-cov>=4.1.0", "pre-commit>=3.6.0", "bandit[toml]>=1.7.5", "semgrep>=1.60.0", "vulture>=2.10", "radon>=6.0.1", # nox is NOT listed here ] ``` `uv.lock` does not contain `nox` as a resolved package. ## Steps to Reproduce 1. `grep -n "nox" pyproject.toml` — only shows `.nox` directory exclusions, not a dependency 2. `grep 'name = "nox"' uv.lock` — no output (nox not in lockfile) 3. `uv sync --extra dev && nox --list` — would fail with `command not found: nox` ## Code Location - `pyproject.toml`, lines 57–78 (`[project.optional-dependencies.dev]`) ## Fix Add `nox>=2024.0.0` (or appropriate version) to `[project.optional-dependencies.dev]`: ```toml dev = [ ... # Task runner "nox>=2024.0.0", ... ] ``` ## Subtasks - [ ] Add `nox>=2024.0.0` to `[project.optional-dependencies.dev]` - [ ] Run `uv lock` to update the lockfile - [ ] Verify `uv sync --extra dev && nox --list` works - [ ] Verify `nox -e lint`, `nox -e typecheck`, `nox -e unit_tests` all work ## Definition of Done - [ ] `nox` is listed in `[project.optional-dependencies.dev]` - [ ] `uv sync --extra dev` installs `nox` - [ ] All nox sessions run successfully - [ ] Associated PR has been merged --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
Author
Owner

Milestone Triage Decision: Moved to Backlog

This CLI enhancement issue has been moved out of v3.3.0 during aggressive milestone triage. While useful for user experience, it does not relate to the core focus of Corrections + Subplans + Checkpoints.

Reasoning:

  • v3.3.0 focus: Essential corrections, subplan management, and checkpoint functionality
  • This issue: CLI validation enhancement - user experience improvement
  • Impact: UX enhancement, not core corrections/subplans/checkpoints functionality

Will be addressed in a future milestone focused on CLI polish and user experience enhancements.

**Milestone Triage Decision: Moved to Backlog** This CLI enhancement issue has been moved out of v3.3.0 during aggressive milestone triage. While useful for user experience, it does not relate to the core focus of Corrections + Subplans + Checkpoints. **Reasoning:** - v3.3.0 focus: Essential corrections, subplan management, and checkpoint functionality - This issue: CLI validation enhancement - user experience improvement - Impact: UX enhancement, not core corrections/subplans/checkpoints functionality Will be addressed in a future milestone focused on CLI polish and user experience enhancements.
HAL9000 added this to the v3.5.0 milestone 2026-04-09 03:10:48 +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#4126
No description provided.