← Back to issue list

Allow custom charm parts with the go_framework extension

View original Github issue

Metadata

Project
charmcraft
Number
#2875
Type
issue
State
open
Author
trollLemon
Labels
Created
Updated
Closed

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.