TEST-INFRA: [ci-execution-time] Implement dependency caching for Nox sessions #2297

Open
opened 2026-04-03 13:20:43 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: chore/ci-uv-dependency-caching
  • Commit Message: chore(ci): implement uv dependency caching for nox sessions
  • Milestone: v3.8.0
  • Parent Epic: #1678

Description

The project uses uv for fast dependency management. However, without caching, the CI pipeline fetches and installs all dependencies from scratch for every job in every run. This leads to unnecessary network I/O and processing time, slowing down the entire CI pipeline.

Subtasks

  • Identify the cache directory used by uv (typically ~/.cache/uv or the path reported by uv cache dir)
  • Configure the CI workflow (.forgejo/workflows/ci.yml) to cache this directory between runs using the actions/cache step
  • Set the cache key to include a hash of pyproject.toml and uv.lock so the cache is invalidated when dependencies change
  • Add a restore-keys fallback for partial cache hits
  • Verify that subsequent CI runs are faster due to the dependency cache
  • Update features/ci_workflow_validation.feature to assert the caching step is present
  • Run nox (all default sessions), fix any errors
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

  • The uv dependency cache is successfully cached between CI runs using actions/cache
  • The cache key is derived from a hash of pyproject.toml and/or uv.lock
  • The time taken for nox session setup is measurably reduced in subsequent CI runs
  • The caching mechanism correctly handles dependency updates (cache invalidation on lockfile change)
  • features/ci_workflow_validation.feature is updated to cover the new caching step
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: Test Infrastructure | Agent: ca-new-issue-creator

## Metadata - **Branch**: `chore/ci-uv-dependency-caching` - **Commit Message**: `chore(ci): implement uv dependency caching for nox sessions` - **Milestone**: v3.8.0 - **Parent Epic**: #1678 ## Description The project uses `uv` for fast dependency management. However, without caching, the CI pipeline fetches and installs all dependencies from scratch for every job in every run. This leads to unnecessary network I/O and processing time, slowing down the entire CI pipeline. ## Subtasks - [ ] Identify the cache directory used by `uv` (typically `~/.cache/uv` or the path reported by `uv cache dir`) - [ ] Configure the CI workflow (`.forgejo/workflows/ci.yml`) to cache this directory between runs using the `actions/cache` step - [ ] Set the cache key to include a hash of `pyproject.toml` and `uv.lock` so the cache is invalidated when dependencies change - [ ] Add a restore-keys fallback for partial cache hits - [ ] Verify that subsequent CI runs are faster due to the dependency cache - [ ] Update `features/ci_workflow_validation.feature` to assert the caching step is present - [ ] Run `nox` (all default sessions), fix any errors - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done - [ ] The `uv` dependency cache is successfully cached between CI runs using `actions/cache` - [ ] The cache key is derived from a hash of `pyproject.toml` and/or `uv.lock` - [ ] The time taken for `nox` session setup is measurably reduced in subsequent CI runs - [ ] The caching mechanism correctly handles dependency updates (cache invalidation on lockfile change) - [ ] `features/ci_workflow_validation.feature` is updated to cover the new caching step - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.8.0 milestone 2026-04-03 13:20:52 +00:00
Author
Owner

Duplicate of #2018.

This issue describes the same optimization as #2018 ("Implement dependency caching in CI", v3.8.0). Both request caching the uv dependency cache between CI runs using actions/cache with a key based on pyproject.toml/uv.lock. #2018 was triaged in cycle 2 with MoSCoW: Could Have.

Also overlaps with #2203 ("Implement Dependency Caching in Nox Sessions") which covers the nox-level caching aspect.

Closing as a duplicate.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

**Duplicate of #2018.** This issue describes the same optimization as #2018 ("Implement dependency caching in CI", v3.8.0). Both request caching the `uv` dependency cache between CI runs using `actions/cache` with a key based on `pyproject.toml`/`uv.lock`. #2018 was triaged in cycle 2 with MoSCoW: Could Have. Also overlaps with #2203 ("Implement Dependency Caching in Nox Sessions") which covers the nox-level caching aspect. Closing as a duplicate. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo reopened this issue 2026-04-03 13:22:19 +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#2297
No description provided.