← Back to issue list

charm_builder: build dependencies locally (CRAFT-537)

View original Github issue

Metadata

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

Current evaluation

Merged in charmcraft#541 via 0d14d8a2: charm_builder now builds dependencies locally in a persistent staging venv, avoiding binary dependencies and repeat rebuilds during repacks.

Resolution: closed resolved

Reason: PR #541 was approved and merged in commit 0d14d8a2, with implementation commit aec4bc57. It installs requirements into a persistent staging virtualenv so charm repacks reuse locally built dependencies.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Comply with the requirement of not installing binary dependencies, building them locally instead. The process may take a long time to complete, so use the venv module to install requirements to a persistent staging virtualenv so that dependencies already installed won't be reinstalled (and rebuilt) when the charm is repacked. Note: This solution installs additional dependencies to venv (setup-tools, pip, and pkg_resources). Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged in charmcraft#541 via 0d14d8a2: charm_builder now builds dependencies locally in a persistent staging venv, avoiding binary dependencies and repeat rebuilds during repacks.
stealth/space-bunny-alpha — closed resolved Merged in canonical/charmcraft#541: charm_builder now builds binary dependencies locally and reuses a persistent virtualenv, avoiding dependency reinstalls and rebuilds when charms are repacked.
qwen/qwen3.6-35b-a3b — — 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.
qwen3.6-35b-a3b-mtp-q6 — — Merged updates to charm_builder that build dependencies locally instead of installing binaries. A persistent staging virtualenv caches requirements to prevent redundant rebuilds during charm repacking, resolving CRAFT-537.

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 #453 in commit 3e5eed05, extracting charm-building routines into a standalone CharmBuilder invoked by build; venv and pip enhancements were deferred.
77%
#452 build: create charm builder tool (CRAFT-373) charmcraft closed Superseded by merged charmcraft#453, which moved charm-building logic to a standalone CharmBuilder; the venv and pip optimizations were deferred.
77%
#411 build: pack charm in provided environment when using bases (CRAFT-313) charmcraft merged Merged PR #411 (CRAFT-313) to pack each viable bases configuration in its provided build environment; merge commit 523c6fb0.
72%
#1546 feat: remote build command charmcraft merged Merged PR #1546 as df5e9c4f, adding Charmcraft 3's remote-build command; bundle builds were addressed separately by merged PR #1550 (c73fd609).
72%
#458 build: integrate craft-parts lifecycle (CRAFT-89, CRAFT-367, CRAFT-357) charmcraft merged Merged PR #458 via 9dc20872 (implementation 437dab55), adding a craft-parts lifecycle and charm build plugin to run the charm builder.
72%
#438 commands/build: output charms to cwd when using provider (CRAFT-359) charmcraft merged Merged in canonical/charmcraft#438 via f73def1c, fixing provider builds to output charms in the current project directory and retrieve builds targeted outside it.
71%
#1493 build(deps): update dependencies charmcraft merged Merged dependency updates in charmcraft#1493 via commit c545a05f, changing two files (+47/-70).
70%