fix(extensions): align 12-factor V2 contract
Metadata
Current evaluation
Merged PR #2884 (commit 0712d308): aligns 12-factor V2 contract — paas-charm V2 metadata for app/peers/uv on Ubuntu 26.04, single app-secret-key secret option, paas-config key validation, paas-charm>=2.0.dev0,<3 pin; V1 output unchanged.
Resolution: closed resolved
Reason: PR #2884 was approved by two reviewers with no unresolved comments and merged to main as commit 0712d308, squashing the +469/-127 change set across 24 files (extensions, init templates, tests, docs).
Evaluated by: mr-cal-bot
No scores available.
Issue body
## Summary
- generate the paas-charm V2 metadata contract on Ubuntu 26.04 for all six 12-factor extensions: `app`/`app-image`, `peers`/`peers`, and uv
- generate one `app-secret-key` option of type `secret` for every V2 framework, removing the separate V2 `app-secret-key-id` option
- validate canonical `paas-config.yaml` keys (`port`, `metrics-port`, and `metrics-path`) during extension expansion and pack
- constrain all six V2 init templates to the published prerelease range `paas-charm>=2.0.dev0,<3`
- restore Express to the init command overview and document V1/V2 selection, generated differences, config staging, and manual migration
## Compatibility
V1 output is unchanged. Ubuntu 22.04/24.04 extensions still generate the `secret-storage` peer relation and their existing string/secret-ID option pairs. Ubuntu 26.04 remains experimental and still requires `CHARMCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS=1`.
The V2 dependency intentionally admits the currently published `2.0.dev0` prerelease and future compatible 2.x releases, while excluding incompatible stable 1.x and unreviewed future major versions.
## Validation
- `uv run pytest -q tests/extensions/test_app.py -k '26_04_uses_v2_snippet or v1_secret_option_names_unchanged or test_apply_extensions_correct'` — 13 passed
- `uv run pytest -q tests/integration/commands/test_init.py -k framework_profile_charm_user` — 6 passed
- `uv run pytest -q tests/extensions tests/integration/commands/test_expand_extensions.py tests/integration/commands/test_extensions.py` — 84 passed
- Ruff check and format check on all touched Python files — passed
- `make setup-docs && make docs` — passed with zero Sphinx warnings
- `make lint-docs` — passed, including spelling, terminology, Sphinx lint, and link checking
- targeted Vale check for changed documentation — passed
- pre-commit hooks — passed
Please review the V2 contract alignment and migration guidance. This PR is intentionally left as a draft.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2884 (commit 0712d308): aligns 12-factor V2 contract — paas-charm V2 metadata for app/peers/uv on Ubuntu 26.04, single app-secret-key secret option, paas-config key validation, paas-charm>=2.0.dev0,<3 pin; V1 output unchanged. | |
| qwen/qwen3.8-27b | — | closed resolved | Merged PR aligning the 12-factor V2 extension contract: generates paas-charm V2 metadata on Ubuntu 26.04 for app/peers/uv, unifies app-secret-key as a single secret option, validates paas-config keys, pins paas-charm>=2.0.dev0,<3, and documents V1/V2 migration. V1 output unchanged. | |
| stealth/space-bunny-alpha |
Impact:
45
Quick Win:
7
Complexity:
45
Confidence:
60
Actionability:
30
|
keep open | Draft PR aligning all six 12-factor extensions (app/app-image, peers, uv) with the paas-charm V2 contract on Ubuntu 26.04: single secret option, paas-config.yaml key validation, prerelease dep pin, plus V1/V2 docs. V1 output unchanged; OSV-scanner failing, tests pending. | |
| stealth/space-bunny-alpha |
Impact:
45
Quick Win:
9
Complexity:
50
Confidence:
62
Actionability:
38
|
keep open | Draft PR aligning 12-factor extensions with the paas-charm V2 contract on Ubuntu 26.04: one secret option per framework, paas-config.yaml key validation, prerelease dep pin, and V1/V2 docs. V1 output unchanged; review pending, OSV-scanner failing. | |
| qwen/qwen3.6-35b-a3b |
Impact:
55
Quick Win:
7
Complexity:
55
Confidence:
65
Actionability:
30
|
keep open | Draft PR aligning 12-factor V2 contract for paas-charm extensions across Ubuntu 26.04, including secret option renaming, config validation, and documentation updates. |
Update history
| Date | Change |
|---|---|
| merged | |
| 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 |
|---|---|---|---|---|
| #2906 feat: align 12-factor Ubuntu 26.04 contracts | charmcraft | merged | Merged PR aligning Ubuntu 26.04 12-factor contracts: V2 profiles now generate only paas-charm>=2.0.dev1,<3; legacy OAuth/OpenFGA/tracing/Redis deps removed; Spring Boot marked experimental on 24.04; docs and tests updated. |