Allow custom charm parts with the go_framework extension
Metadata
Current evaluation
Feature request to allow go_framework extension with custom charm parts. Currently blocked by intentional design check in charmcraft/extensions/app.py. Awaiting design team review per @lengau's comment.
Suggested action: needs triage
Reason: The issue has no labels, no assignee, and no formal triage decision. While @lengau acknowledged it and redirected to the design team (@alithethird, @javierdelapuente), the issue lacks categorization. The code in charmcraft/extensions/app.py:199-202 shows this is an intentional design decision (not a bug), and the test test_v2_check_input_rejects_customized_charm_part confirms it. This requires architectural review before any action.
Impact:
65
Quick Win:
29.25
Staleness:
5
Complexity:
55
Confidence:
75
Support Request:
25
Issue body
### Check existing issues
- [x] I've verified that this request isn't described by any existing issues.
### Request
Currently, any modifications to charmcraft.yaml that touch the `parts` section will cause the build to fail with the error:
```
the 'go-framework' extension is incompatible with customized charm part
```
This poses some an issue for with projects wanting to organize charms into mono repos with a separate shared module to hold common functionality, which required modifying that section of the charmcraft.yaml. They would either need to drop the go_framework extension (and potentially move away from the paas_charm library ), or deal with duplicated code in several charms in a mono repo.
Additionally, this conflicts with the upcoming charmcraft 4.5 documentation on how to pack a charm in a mono repo: https://canonical.com/juju/docs/charmcraft/latest/howto/pack-a-charm-in-a-monorepo/#prerequisites. The documentation here shows a charmcraft.yaml with a custom `parts` section.
Ideally, a developer should be able to use the `go_framework` extension without being locked into a specific charm part setup, so they may do any custom part logic they need when packing the charm (such as the example documentation above).
### The problem it solves
Allowing the `go_framework` extension to work with customized charm parts would allow teams to use the extension and maintain monorepo projects with common code extracted into its own module for several charms to use.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b |
Impact:
65
Quick Win:
29.25
Staleness:
5
Complexity:
55
Confidence:
75
Support Request:
25
|
needs triage | Feature request to allow go_framework extension with custom charm parts. Currently blocked by intentional design check in charmcraft/extensions/app.py. Awaiting design team review per @lengau's comment. | |
| qwen/qwen3.6-35b-a3b |
Impact:
65
Quick Win:
22.75
Staleness:
0
Complexity:
65
Confidence:
75
Support Request:
20
|
needs triage | Feature request to allow go_framework extension with customized charm parts for monorepo support. Currently blocked by explicit validation in charmcraft/extensions/app.py. Unlabelled, no maintainer response. |
Update history
| Date | Change |
|---|---|
| updated | |
| created |
Related issues
No related issues found above the similarity threshold.