← Back to issue list

fix(extensions): align 12-factor V2 contract

View original Github issue

Metadata

Project
charmcraft
Number
#2884
Type
pull request
State
merged
Author
alithethird
Labels
—
Created
Updated
Closed

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.
77%