Enforce that the build and run base are the same* base
Metadata
Current evaluation
Maintainer request to reject mismatched build-base/base pairs, with exceptions for bare, development, legacy overrides, and base snaps; still open.
Suggested action: keep open
Reason: The current Project model requires build-base for bare bases and validates development-base mappings, but it contains no general equality check between build-base and base, so the requested enforcement remains unimplemented. @steinbro also notes that type: base snaps disallow the base key, which must be accounted for before enforcing the rule.
Evaluated by: mr-cal-bot
Impact:
55
Quick Win:
17
Complexity:
58
Confidence:
91
Actionability:
72
Issue body
### What needs to get done
With certain exceptions, `build-base` and `base` should not be able to differ from each other. `build-base` is thus optional but must match `base`.
Currently known exceptions:
- `base: bare` allows any build base, but it requires `build-base` to be defined.
- Any in-development base must be matched with its appropriate build-base. (Craft Application provides those mappings, but the app can apply supplemental mappings. An in-development base is defined as one that exists in either of those mappings.)
- An app may implement a method that provides specific overrides, but the use of this method is discouraged and only there for legacy purposes
### Why it needs to get done
Currently apps are enforcing this (or not enforcing it) ad-hoc. We should move to this being strictly enforced with the app being able to loosen those requirements if needed.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
55
Quick Win:
17
Complexity:
58
Confidence:
91
Actionability:
72
|
keep open | Maintainer request to reject mismatched build-base/base pairs, with exceptions for bare, development, legacy overrides, and base snaps; still open. | |
| qwen/qwen3.6-35b-a3b |
Impact:
70
Quick Win:
39
Complexity:
30
Confidence:
70
Actionability:
80
|
needs triage | Feature request to enforce build-base and base must match in craft-application, with exceptions for bare base and devel bases. Currently unlabelled and unassessed. | |
| qwen/qwen3.8-27b |
Impact:
45
Quick Win:
18
Staleness:
68
Complexity:
60
Confidence:
72
Support Request:
0
|
needs triage | Feature request to enforce build-base must match base in the Project model, with defined exceptions (bare, devel, legacy overrides). Filed by maintainer, 1 comment, no labels, no assignee, inactive ~11 months. Code still lacks this enforcement. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
85
Complexity:
75
Confidence:
70
Support Request:
20
|
needs triage | Issue proposes strict enforcement that build-base and base must match, with specific exceptions. Currently inactive for over a year, no maintainer response, lacks labels, and requires architectural decision. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
70
Complexity:
65
Confidence:
85
Support Request:
0
|
needs triage | Feature request to strictly enforce matching build-base and base fields with defined exceptions. Currently unlabelled and inactive for nearly 10 months, awaiting prioritization. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1733 Don't allow `build-base` on stable bases | charmcraft | open | Maintainer task: reject `build-base` on `platforms` charms when `base` is a known stable base, and document proper build-base usage. Still open, tracked as CRAFT-3920. | |
| #4879 Restrict base/build-base combinations | snapcraft | closed | Closed as outdated on 2026-01-27 after substantial changes to base validation made the original ST119 rework obsolete; no ST119-specific implementation was recorded. |