Isolated charm_builder.py as a generic plugin script (CRAFT-1032).
Metadata
Current evaluation
Merged following approval and CI checks. Isolated charm_builder.py as a standalone plugin script, routing all output to stdout and replacing CraftError with RuntimeError to fully decouple from the Craft CLI. Resolves #750.
Suggested action: —
No scores available.
Issue body
This will stop its execution from showing some weirdness in the logs and improve the general structure of the code (stop mixing code run from the plugin with the rest of Charmcraft).
After a long talk with Claudio yesterday we decided to convert all outputs to plain prints to stdout, again, as a regular plugin script.
Also converted the CraftError exceptions to Runtime ones (fully isolation from Craft CLI) and improved the message.
Fixes #750 .
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged following approval and CI checks. Isolated charm_builder.py as a standalone plugin script, routing all output to stdout and replacing CraftError with RuntimeError to fully decouple from the Craft CLI. Resolves #750. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged isolation of charm_builder.py as a standalone plugin script. Replaced CraftError with RuntimeError and converted outputs to stdout prints for full CLI isolation. Resolves #750. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Isolated charm_builder.py as a generic plugin script. Outputs converted to stdout prints and CraftError replaced with RuntimeError for full CLI isolation. Merged and resolves #750. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #453 build: spin off charm builder as a separate tool (CRAFT-373) | charmcraft | merged | Merged. Extracts charm building routines into a standalone CharmBuilder tool. Replaces PR #452 by deferring venv and pip features. Tests updated for new invocation with no behavioral changes. Approved and passed CI. | |
| #750 Convert charm_builder.py to a regular external script | charmcraft | closed | Closed without implementation. The proposal to replace Craft CLI's Emitter with standard Python logging in charm_builder.py, add a --trace flag, and adjust log levels per Charmcraft mode was abandoned. No follow-up PR or resolution occurred. |