Skip to content
  • Date Created: 2026-06-06
  • Last Modified: 2026-06-06

Progress Log: Dependency Groups Migration & Docs Build Update

Task Description

This project is not a published PyPI package, so all dependencies were migrated from [project.optional-dependencies] to [dependency-groups] (PEP 735). The docs build environment (Read the Docs, Taskfile) was updated accordingly.

Outcome

Dependency migration (pyproject.toml)

Removed [project.optional-dependencies] entirely. All groups now live under [dependency-groups]:

[dependency-groups]
dev = [
    "clang-format>=22.1.5",
    "commitizen>=4.16.3",
    "esptool>=5.3.0",
    "hvplot>=0.12.2",
    "ipykernel>=7.2.0",
    "pandas>=3.0.2",
    "pre-commit>=4.6.0",
    "pyserial>=3.5",
    "scipy>=1.17.1",
]
docs = [
    "mkdocs>=1.6.1",
    "mkdocs-material>=9.7.6",
    "zensical>=0.0.44",
]

Taskfile updates (Taskfile.yml)

Task Before After
deps:setup uv sync --all-extras uv sync --all-groups
deps:update uv sync --upgrade --all-extras uv sync --upgrade --all-groups
deps:check uv pip list --outdated uv tree --outdated
info task version:show (non-existent) task version

Read the Docs update (.readthedocs.yaml)

Switched from pip + extra_requirements to native uv + groups:

python:
  install:
    - method: uv
      command: sync
      groups:
        - docs

uv.lock is now respected in the RTD build, giving reproducible documentation builds.

Documentation nav restructure (mkdocs.yml)

  • Added Maintainers Guide as a new top-level section
  • Moved Progress Logs under Maintainers Guide
  • Moved Pre-commit Hooks and Clang Format from Developer Guide to Maintainers Guide > Code Quality
  • Moved Feature Flags and Debug Configuration from User Guides to Developer Guide > Build & Configuration
  • Moved wifi-ap-interface.md from docs/ root to docs/hardware/
  • Added measurement-flow.md to nav under User Guides > Hardware Guide
  • Fixed broken link in docs/index.md (getting-started.mdgetting-started/index.md)

Learnings

  • uv add --optional and uv add --group write to different sections. Even with the same group name (docs), uv sync --group docs does not include the optional side.
  • Read the Docs natively supports method: uv + groups (documented in the build-customization guide).
  • MkDocs nav section-title-only nodes require correct child indentation or the build fails with Expected nav to be a list, got None.

Next Steps

  • Verify task env:setup works correctly with uv sync --all-groups
  • Confirm Read the Docs build passes after push