providers: translate rockcraft base to provider base
Metadata
Current evaluation
Merged PR #85 centralized base translation in craft-providers, adding configurable support for Ubuntu 18.04, 20.04, and 22.04.
Resolution: closed resolved
Reason: PR #85 was merged, moving Rockcraft-specific base translation out of the LXD and Multipass modules into craft-providers.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
### Overview
*craft applications have a concept of a "base". This base is translated a `craft-providers` base and is passed to `craft-providers` so it can choose which base image (OS and release) to use for the instance.
### Problem
Currently, each application translates its own base inside `_lxd.py` and `_multipass.py`. This application-specific code needs to be removed from these files.
### Solution
To support this, I created a list of what bases `craft-providers` can accept. Right now, `18.04`, `20.04`, and `22.04` are supported. Other OSs and releases can be added in the future without breaking backwards compatibility.
The image below shows how an application can translates its base to a `craft-providers` base. It also shows `craft-providers` translating it to the specific name needed for LXD and Multipass to download the base image.

---
CRAFT-1382
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #85 centralized base translation in craft-providers, adding configurable support for Ubuntu 18.04, 20.04, and 22.04. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #85, centralizing base translation from Rockcraft’s LXD and Multipass modules into craft-providers with a configurable supported-bases list. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #85 centralized Rockcraft base translation in craft-providers, removing application-specific mapping from LXD and Multipass and supporting configurable 18.04, 20.04, and 22.04 bases. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged. Centralized base translation from LXD and Multipass modules into craft-providers. Added a configurable supported bases list to decouple application definitions from provider image mapping. Approved by mr-cal. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged refactoring that centralizes base translation logic from application-specific LXD and Multipass files into craft-providers. Added explicit support for Ubuntu 18.04, 20.04, and 22.04 bases, enabling future extensibility without breaking compatibility. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #120 providers: use new craft-providers interface | rockcraft | merged | Merged as 3f887b70: replaced Rockcraft's local provider classes with craft-providers and moved providers.py. | |
| #127 feat(rock): support Rockcraft legacy base names | craft-platforms | merged | Merged PR #127 (commit 5115c05) adding legacy Rockcraft base names "ubuntu:20.04"/"ubuntu:22.04" via _LEGACY_BASES_MAP in rock/_build.py; shipped in craft-platforms 0.8.0. |