← Back to issue list

Enforce that the build and run base are the same* base

View original Github issue

Metadata

Project
craft-application
Number
#915
Type
issue
State
open
Author
lengau
Labels
—
Created
Updated
Closed
—

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.
72%
#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.
71%