← Back to issue list

build: spin off charm builder as a separate tool (CRAFT-373)

View original Github issue

Metadata

Project
charmcraft
Number
#453
Type
pull request
State
merged
Author
cmatsuoka
Labels
Created
Updated
Closed

Current evaluation

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.

Suggested action:

No scores available.

Issue body

Move charm building routiness to a stand-alone charm builder tool invoked from the "build" command. This PR includes partial content from PR #452 and will replace it. All extra features such as venv support, pip binary control and installation of python packages have been removed. This will allow us to move forward and discuss venv support and consequences at a later moment. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b 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.
qwen3.6-35b-a3b-mtp-q6 Merged. Extracted charm building routines into a standalone CharmBuilder tool invoked by the build command, superseding PR #452. Removed venv and pip features for later discussion. Tests updated to reflect the new invocation and mock patches.
qwen3.6-35b-a3b-mtp-q6 Merged. Extracted charm building routines into a standalone CharmBuilder tool called by the build command, superseding PR #452. Deferred venv and pip control features. Updated tests for the new structure with no behavioral changes.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#472 build: prime venv if charm-requirements defined (CRAFT-417) charmcraft merged Merged after approval. Updates tests to use the charm-requirements property instead of the deprecated command line switch for setting requirements.
74%
#458 build: integrate craft-parts lifecycle (CRAFT-89, CRAFT-367, CRAFT-357) charmcraft merged Integrated the craft-parts lifecycle to execute the charm builder via a craft-parts charm build plugin. Merged after two approvals and passing CI checks. Author plans to refactor plugin-level transformations in a follow-up.
74%
#865 Isolated charm_builder.py as a generic plugin script (CRAFT-1032). charmcraft merged 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.
73%
#541 charm_builder: build dependencies locally (CRAFT-537) charmcraft merged Merged changes to charm_builder that build binary dependencies locally instead of installing them. A persistent virtual environment caches dependencies to prevent rebuilds. Approved by two reviewers, passed CI, and modified seven files.
72%
#452 build: create charm builder tool (CRAFT-373) charmcraft closed Closed due to requested changes and nine unresolved review comments. Author plans to resubmit a cleaner version later, abandoning this iteration.
71%
#837 create_build_plan: refactor charmcraft merged Merged refactoring of create_build_plan to a shared location, returning named tuples and adding unit tests. Placed in charmcraft/providers/providers.py for splitting into the craft-providers library. Approved and merged.
71%