← Back to issue list

feat: make requirements.txt for extensions optional

View original Github issue

Metadata

Project
rockcraft
Number
#744
Type
pull request
State
open
Author
toabctl
Labels
—
Created
Updated
Closed
—

Current evaluation

Open since ~Nov 2024, unmerged and unanswered for 413 days. Maintainer tigarmo said 12-factor extensions are opinionated by design and will keep requirements.txt. Its goal already landed: HEAD docs accept requirements.txt OR pyproject.toml.

Suggested action: close superseded

Reason: Maintainer tigarmo explicitly declined the design change ("The 12-factor extensions are fairly opinionated by design... the decision at this moment is to keep the extensions as they are"), and the author has not replied since 2024-12-03 (last activity 413 days ago, 0 reviewers, no CI runs). More decisively, the request was later implemented upstream in a different form: 4087b095 "feat: extensions compatibility with upstream tutorials (#1090)" and 90b35cb7 "feat: uv support for Flask, Django and FastAPI extensions (#1308)" — HEAD docs now state "There must be a requirements.txt or pyproject.toml file in the root of the project with Flask declared as a dependency" and "If only pyproject.toml is present, the extension falls back to the Python plugin", with a uv path where "a requirements.txt file is not required". The +19/-99 diff is now a net regression against that work.

Evaluated by: mr-cal-bot

Impact: 12 Quick Win: 1 Complexity: 28 Confidence: 88 Actionability: 10

Issue body

There are multiple ways within python to declare dependencies (eg. via pyproject.toml, setup.py or setup.cfg). Requiring a requirements.txt file in a specific path doesn't work for a lot of projects out there so make the requirements.txt file optional.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 12
Quick Win: 1
Complexity: 28
Confidence: 88
Actionability: 10
close superseded Open since ~Nov 2024, unmerged and unanswered for 413 days. Maintainer tigarmo said 12-factor extensions are opinionated by design and will keep requirements.txt. Its goal already landed: HEAD docs accept requirements.txt OR pyproject.toml.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 0
Complexity: 25
Confidence: 80
Actionability: 0
close not mergeable Makes requirements.txt optional for extensions to support pyproject.toml and other dependency declaration methods. Maintainers explicitly rejected the change based on design philosophy.
qwen/qwen3.8-27b
Impact: 40
Quick Win: 28
Staleness: 85
Complexity: 30
Confidence: 82
close stale Makes requirements.txt optional for 12-factor extensions by supporting pyproject.toml as an alternative. Maintainer declined the specific approach (Dec 2024), but pyproject.toml support was later added via #1090, making this PR superseded. No CI, no activity in over a year.
qwen/qwen3.6-35b-a3b
Staleness: 75
Complexity: 15
Confidence: 85
close stale Makes the requirements.txt file optional for extensions to support modern dependency declarations. Maintainers declined the change citing design philosophy, and the PR has been inactive for nearly a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 15
Confidence: 90
close not mergeable PR makes requirements.txt optional for Python extensions to support modern dependency managers. Maintainers declined the change, citing design philosophy and preference for pinned dependencies. PR is inactive.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 15
Confidence: 95
close not mergeable PR proposes making requirements.txt optional for extensions to support modern Python dependency tools. Maintainers declined, citing design philosophy and preference for pinned dependencies in applications. Inactive since Dec 2024.

Update history

No update history recorded yet.

Related work

  • Superseded By: canonical/rockcraft#1090 (confidence 85%)

    Commit 4087b095 "feat: extensions compatibility with upstream tutorials" added pyproject.toml-based dependency support to the Flask/Django/FastAPI extensions, making requirements.txt optional.

  • Superseded By: canonical/rockcraft#1308 (confidence 80%)

    Commit 90b35cb7 added uv (uv.lock + pyproject.toml) support to the extensions, further broadening dependency handling beyond this PR's proposal; docs state requirements.txt is then not required.

Related issues

No related issues found above the similarity threshold.