← Back to issue list

Unify charm build planner with default build planner

View original Github issue

Metadata

Project
craft-platforms
Number
#79
Type
issue
State
open
Author
mr-cal
Labels
Type: Enhancement
Created
Updated
Closed
—

Current evaluation

Maintainer-authored refactor to consolidate the separate charm planner into the default planner. Implicit build-for parity now exists, but multi-base semantics still differ.

Suggested action: keep open

Reason: The source still has a separate get_platforms_charm_build_plan, while the default planner assumes one DistroBase and directly parses architecture values; the charm path additionally handles base-qualified entries and omits generic build-for: all validation. This is a valid maintainability enhancement, but it needs an API and validation design to preserve multi-base and Charmcraft-specific behavior.

Evaluated by: mr-cal-bot

Impact: 45 Quick Win: 10 Complexity: 67 Confidence: 91 Actionability: 64

Issue body

The charm build planner was written before the default build planner. To reduce duplication, they should be consolidated. Differences: - default build planner allows an implicit `build-for` from the platform name - charm build planner does not require a single element build plan if `build-for: [all]` is specified - charmcraft validates `all` is only used in one place - charm build planner allows for multi-base builds

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 45
Quick Win: 10
Complexity: 67
Confidence: 91
Actionability: 64
keep open Maintainer-authored refactor to consolidate the separate charm planner into the default planner. Implicit build-for parity now exists, but multi-base semantics still differ.
stealth/space-bunny-alpha
Impact: 35
Quick Win: 7
Complexity: 62
Confidence: 76
Actionability: 52
needs triage Enhancement from maintainer mr-cal to consolidate craft_platforms/charm/_build.py with the generic get_platforms_build_plan. No comments or activity in 660 days; some listed differences (implicit build-for) appear reconciled, needs re-assessment.
stealth/space-bunny-alpha
Impact: 30
Quick Win: 10
Complexity: 50
Confidence: 76
Actionability: 65
needs triage Open enhancement to consolidate the charm and default build planners, reconciling implicit build-for, build-for: [all], and multi-base behavior; no recorded follow-up.
stealth/space-bunny-alpha
Impact: 45
Quick Win: 12
Complexity: 64
Confidence: 79
Actionability: 74
keep open Open maintainer enhancement to consolidate charm and default planners, reconciling implicit build-for, all validation, and multi-base behavior. No comments or recent activity are recorded.
qwen3.6-35b-a3b-mtp-q6
Impact: 40
Quick Win: 22
Staleness: 85
Complexity: 45
Confidence: 35
Support Request: 10
close stale Enhancement to consolidate charm build planner with default build planner to reduce duplication. Open 634 days with no maintainer response or activity.
qwen/qwen3.6-35b-a3b
Staleness: 90
Complexity: 60
Confidence: 85
Support Request: 0
close stale Proposal to consolidate the charm build planner with the default build planner to reduce duplication. Lists architectural differences. Unaddressed and inactive for over 1.5 years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 50
Confidence: 70
Support Request: 5
close stale Enhancement to consolidate the charm build planner with the default build planner to reduce duplication. Open for over 1.5 years with zero comments, assignee, or discussion.

Update history

No update history recorded yet.

Related work

  • Related To: craft-platforms#81 (confidence 93%)

    Commit 519b705 added multi-base support to both planner paths, making preservation of those semantics central to consolidation.

Related issues

Issue Project State Summary Similarity
#148 feat(charm): add a build planner for bases charms craft-platforms merged Merged PR #148 added a Charm build planner for legacy charms using the bases key, addressing CHARMCRAFT-630 in commit 16ff218.
75%
#234 refactor: Align build-for: all validation rules in charm build planner craft-platforms open Charm build planning lacks the default planner's build-for: all validation, allowing inconsistent architecture-independent plans; this maintainer-authored refactor remains open.
75%
#215 fix(charm): accept redundant multi-base charms craft-platforms merged Merged PR #215 as commit 4879309, allowing redundant multi-base charms when they produce equivalent valid build plans and addressing canonical/charmcraft#2620.
73%
#75 Document the charm build planner craft-platforms closed Charm build-planner documentation was added in commit 6becdf6, covering base, build-base, platforms, build-on, and build-for.
73%
#73 Add multi-bases support for charm build plans craft-platforms closed Multi-base charm build-plan support was merged in PR #81 (commit 519b705), with validation tightening and error-handling updates; it resolved #73.
73%
#3 Implement a basic API that makes a build plan for charms craft-platforms closed Charm build planning was implemented and merged in PR #148 (commit 16ff218), providing bases-charm build plans for Charmcraft and Launchpad.
70%