charm_builder: build dependencies locally (CRAFT-537)
Metadata
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. | |
| #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. | |
| #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. | |
| #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). | |
| #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. | |
| #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. | |
| #1493 build(deps): update dependencies | charmcraft | merged | Merged dependency updates in charmcraft#1493 via commit c545a05f, changing two files (+47/-70). |