feat: uv support for Flask, Django and FastAPI extensions
Metadata
Current evaluation
Merged. Implements uv build support for Flask, Django, and FastAPI extensions, routing to the uv plugin when uv.lock is detected. CI spread test failures were investigated and confirmed unrelated to the changes.
Suggested action: —
No scores available.
Issue body
## Summary
Adds `uv` build support to the Flask, Django and FastAPI framework extensions. When a project ships both `uv.lock` and `pyproject.toml`, the extension builds the dependencies part with the `uv` plugin (`uv sync`) instead of the `python` plugin, and injects the server dependency (`gunicorn~=23.0` / `uvicorn`) via a post-build `override-build` step since the lockfile is the source of truth.
## Behavior
- `uv.lock` + `pyproject.toml` → build with `uv` plugin.
- `pyproject.toml` only → fall back to the `python` (pip) plugin (unchanged).
- `uv.lock` without `pyproject.toml` → pack fails: *"the plugin requires both uv.lock and pyproject.toml to be present"*.
- Django/FastAPI no longer require `requirements.txt` for uv projects.
## Testing
- Unit tests for detection, part generation and validation across all three extensions.
- `make lint` passes; extension unit tests pass.
- Manual e2e on a Canonical k8s cluster: built a Flask uv rock, pushed to an in-cluster registry, ran it as a pod, and confirmed HTTP 200 served by `gunicorn 23.0.0`.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Implements uv build support for Flask, Django, and FastAPI extensions, routing to the uv plugin when uv.lock is detected. CI spread test failures were investigated and confirmed unrelated to the changes. | |
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
70
Quick Win:
24.5
Staleness:
15
Complexity:
65
Confidence:
85
|
keep open | Adds uv build support to Flask, Django, and FastAPI extensions. Approved by 2 reviewers with 0 unresolved comments. Failing source-spread-tests confirmed unrelated by maintainers. | |
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
70
Quick Win:
17.5
Staleness:
15
Complexity:
75
Confidence:
80
|
keep open | Adds uv build support to Flask, Django, and FastAPI extensions. Has 2 approvals but spread tests are failing; author is actively working on fixes for uv plugin edge cases on Ubuntu 26.04. | |
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
65
Quick Win:
18.2
Staleness:
15
Complexity:
72
Confidence:
78
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions. Approved by 2 reviewers with 0 unresolved comments, but CI failing on build and source-spread-tests. Team actively discussing failures. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
25
Complexity:
45
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently approved by two reviewers with one unresolved comment, awaiting final maintainer review. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
15
Complexity:
45
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions. Detects uv.lock to use uv plugin instead of pip. Approved by two reviewers with one unresolved comment, awaiting final maintainer review. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
25
Complexity:
50
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently awaiting reviewer feedback with one unresolved comment and a changes_requested status. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
15
Complexity:
50
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by switching to the uv plugin when uv.lock is present. Currently under review with 3 unresolved comments requesting changes. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
10
Complexity:
45
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently under review with 3 unresolved comments and a changes_requested status. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
20
Complexity:
50
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by detecting uv.lock and switching to the uv plugin. Currently awaiting author changes to address one requested review comment. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
15
Complexity:
45
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by switching to the uv plugin when uv.lock is present. Currently in changes_requested state with 3 unresolved review comments. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
20
Complexity:
40
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by switching to the uv plugin when uv.lock is present. Currently awaiting reviewer feedback with 8 unresolved comments and a changes_requested status. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
45
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently under review with 8 unresolved comments and changes requested. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
45
Confidence:
85
|
keep open | Adds uv build support to Flask, Django, and FastAPI extensions, switching to the uv plugin when uv.lock is present. Currently under review with 5 requested changes and recent activity. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
10
Complexity:
45
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by routing to the uv plugin when uv.lock is present. Currently pending maintainer review with passing local tests. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
35
Complexity:
55
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently awaiting maintainer review with minor lint failure and pending CI checks. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
15
Complexity:
45
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by switching to the uv plugin when uv.lock is present. Currently pending maintainer review with CI checks still running. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
35
Complexity:
45
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, routing to uv sync when uv.lock is present. Currently awaiting maintainer review with zero comments and two failing CI checks. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
35
Complexity:
50
Confidence:
95
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by routing to the uv plugin when uv.lock is present. Currently awaiting maintainer review with CI mostly passing and one minor lint failure. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
45
Complexity:
45
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by switching to the uv plugin when uv.lock is present. Currently awaiting maintainer review with CI mostly passing. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
60
Complexity:
45
Confidence:
50
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently pending maintainer review with zero comments, though some CI checks are failing. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
45
Complexity:
55
Confidence:
85
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present. Currently pending review with 2 unresolved comments and minor CI failures. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
5
Complexity:
40
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions by routing to the uv plugin when uv.lock is present. Currently awaiting maintainer review with minor lint failure and pending CI checks. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
5
Complexity:
45
Confidence:
90
|
needs review | Adds uv build support to Flask, Django, and FastAPI extensions, switching to uv sync when uv.lock is present and falling back to pip otherwise. Includes unit tests and manual e2e validation. Currently awaiting maintainer review. |
Update history
| Date | Change |
|---|---|
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| created |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1031 Support uv plugin in fastapi extension | rockcraft | open | Feature request to integrate the uv plugin with the fastapi-framework extension, which currently requires requirements.txt. Maintainer confirmed the change is planned for 26.04; reporter has a workaround and offered to test. |