UAT: nox not declared in any dependency group in pyproject.toml — required tool for all development workflows is undeclared #4048

Open
opened 2026-04-06 09:24:47 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/declare-nox-dev-dependency
  • Commit Message: fix(build): add nox to dev optional-dependencies in pyproject.toml
  • Milestone: (none — backlog)
  • Parent Epic: #2810

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

Bug Report

What Was Tested

Code-level analysis of pyproject.toml optional dependency groups vs the tools required to run the project's development workflow.

Expected Behavior

nox should be declared in the [project.optional-dependencies] dev group in pyproject.toml. The CONTRIBUTING.md and project conventions mandate that all commands must be routed through nox. It is the primary task runner for linting, type checking, testing, coverage, security scanning, and documentation building. Any developer who installs .[dev] should automatically get nox.

Actual Behavior

nox is not listed in any optional dependency group in pyproject.toml. The dev group contains:

  • ruff, pyright, types-pyyaml, types-aiofiles
  • behave, pytest, pytest-asyncio, pytest-cov
  • pre-commit, bandit, semgrep, vulture, radon

But nox is absent. A developer who runs pip install ".[dev]" will not have nox installed and will be unable to run any of the project's quality gates.

File Reference

pyproject.toml, [project.optional-dependencies] section — dev group does not contain nox.

noxfile.py is the project's primary task runner and defines sessions:

  • lint, format, typecheck
  • unit_tests, integration_tests, e2e_tests
  • coverage_report, security_scan, dead_code
  • docs, build, benchmark

Risk

New contributors who follow the standard pip install ".[dev]" workflow will not have nox available and will be unable to run any CI-equivalent quality checks locally. This creates a poor developer experience and may lead to CI failures from developers who cannot reproduce CI locally.

Steps to Reproduce

  1. Read pyproject.toml — search for nox in [project.optional-dependencies]
  2. Observe it is absent from all groups
  3. Read CONTRIBUTING.md — observe that all commands must be routed through nox
  4. Observe the contradiction

Fix

Add nox to the dev optional-dependencies group in pyproject.toml:

[project.optional-dependencies]
dev = [
    # Task runner
    "nox>=2024.4.15",
    # Code formatting and linting
    "ruff>=0.15.0,<0.16.0",
    ...
]

Subtasks

  • Add nox>=2024.4.15 (or appropriate minimum version) to [project.optional-dependencies] dev group in pyproject.toml
  • Run nox -e lint to verify no regressions

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • nox appears in the dev optional-dependencies group in pyproject.toml
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `fix/declare-nox-dev-dependency` - **Commit Message**: `fix(build): add nox to dev optional-dependencies in pyproject.toml` - **Milestone**: *(none — backlog)* - **Parent Epic**: #2810 > **Backlog note:** This issue was discovered during autonomous UAT testing > of the Dependency Management and Package System feature area. > It does not block milestone completion and has been placed in the backlog > for human review and future milestone assignment. ## Bug Report ### What Was Tested Code-level analysis of `pyproject.toml` optional dependency groups vs the tools required to run the project's development workflow. ### Expected Behavior `nox` should be declared in the `[project.optional-dependencies]` `dev` group in `pyproject.toml`. The `CONTRIBUTING.md` and project conventions mandate that **all commands must be routed through `nox`**. It is the primary task runner for linting, type checking, testing, coverage, security scanning, and documentation building. Any developer who installs `.[dev]` should automatically get `nox`. ### Actual Behavior `nox` is **not listed** in any optional dependency group in `pyproject.toml`. The `dev` group contains: - `ruff`, `pyright`, `types-pyyaml`, `types-aiofiles` - `behave`, `pytest`, `pytest-asyncio`, `pytest-cov` - `pre-commit`, `bandit`, `semgrep`, `vulture`, `radon` But `nox` is absent. A developer who runs `pip install ".[dev]"` will not have `nox` installed and will be unable to run any of the project's quality gates. ### File Reference `pyproject.toml`, `[project.optional-dependencies]` section — `dev` group does not contain `nox`. `noxfile.py` is the project's primary task runner and defines sessions: - `lint`, `format`, `typecheck` - `unit_tests`, `integration_tests`, `e2e_tests` - `coverage_report`, `security_scan`, `dead_code` - `docs`, `build`, `benchmark` ### Risk New contributors who follow the standard `pip install ".[dev]"` workflow will not have `nox` available and will be unable to run any CI-equivalent quality checks locally. This creates a poor developer experience and may lead to CI failures from developers who cannot reproduce CI locally. ### Steps to Reproduce 1. Read `pyproject.toml` — search for `nox` in `[project.optional-dependencies]` 2. Observe it is absent from all groups 3. Read `CONTRIBUTING.md` — observe that all commands must be routed through `nox` 4. Observe the contradiction ### Fix Add `nox` to the `dev` optional-dependencies group in `pyproject.toml`: ```toml [project.optional-dependencies] dev = [ # Task runner "nox>=2024.4.15", # Code formatting and linting "ruff>=0.15.0,<0.16.0", ... ] ``` ## Subtasks - [ ] Add `nox>=2024.4.15` (or appropriate minimum version) to `[project.optional-dependencies]` `dev` group in `pyproject.toml` - [ ] Run `nox -e lint` to verify no regressions ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - `nox` appears in the `dev` optional-dependencies group in `pyproject.toml` - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
HAL9000 added this to the v3.5.0 milestone 2026-04-09 03:11:33 +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.

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