bases: refactor base handling code
Metadata
Current evaluation
Merged PR #274 as commit b72f04c, refactoring base handling, moving instance configuration, adding per-operation executor timeouts, and standardizing shared base-image contents.
Resolution: closed resolved
Reason: PR #274 was approved and merged as commit b72f04c. Repository history and current code confirm the refactor, moved instance_config module, and timeout handling remain implemented.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Adjusted some import locations to prevent circular imports.
Moved `craft_providers/bases/instance_config.py` to `craft_providers/instance_config.py`
Added `timeout` argument (in seconds) into executors.
All external calls now have a pre-defined timeout.
Default timeout constants:
* Simple task 1 min
* Complex task 10 mins
* Unpredictable task 60 mins
* Network check timeout 10 seconds
Added `timeout` argument (in seconds) into lxc and multipass executors.
Removed `_check_deadline(deadline)`. Global total timeout is no longer supported.
All base class now use `self.executor`, no longer accept `(executor=executor, deadline=deadline)`
All supported base images will now use a shared base.
All images will be pre-installed with `build-essential` (or equivalent), `git`, and `python3` (with `devel`, `pip`, `venv`, `setuptools`, `wheel`)
Packages update cache files will be cleared before finish the image. They are unlikely be used again and save space and time when create new instances.
CRAFT-1717
CRAFT-1475
https://github.com/canonical/craft-providers/issues/146
https://github.com/canonical/charmcraft/issues/1047
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #274 as commit b72f04c, refactoring base handling, moving instance configuration, adding per-operation executor timeouts, and standardizing shared base-image contents. | |
| qwen/qwen3.6-35b-a3b | — | closed resolved | Refactored base handling, added timeouts to executors, moved instance_config, and pre-installed build tools to resolve CRAFT-1717 and related issues. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Related To:
canonical/craft-providers#146
(confidence 80%)
Explicitly linked from the PR description as related work.
-
Related To:
canonical/charmcraft#1047
(confidence 80%)
Explicitly linked from the PR description as related work.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #247 bases: refactor buildd to ubuntu | craft-providers | merged | Merged PR #247 as de2d42e, replacing Buildd-specific base handling with Ubuntu-specific modules and preparing base dispatch for additional OS support. | |
| #1795501 Better base detection | snapcraft (launchpad) | closed | Build-environment base detection was fixed by merged PR #2309 (commit 3565ed2e7); PR #2311 also corrected legacy re-exec behavior. | |
| #15 bases: introduce abstract Base and buildd implementation | craft-providers | closed | Split into smaller changes: the abstract Base landed through merged PR #18 (commit a355b7e), while the oversized Base/buildd PR #15 was closed. |