base: add optional list of snaps to install
Metadata
Current evaluation
Merged PR #137, adding optional BuilddBase snap installation through a Pydantic model; merge commit fc53896.
Resolution: closed resolved
Reason: PR #137 was approved and merged as commit fc53896, with implementation in 1fe8f2c. It added configurable snap installation and was manually validated with three Craft tools.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
### Overview
New parameter in `BuilddBase` class that installs snaps in the base.
### Details
I created a pydantic model for each snap to be installed. It gives the application lots of control over how the snap is installed. For example, it is easy to specify a store channel or inject a snap from the host.
### Usage
I manually tested this with 3 craft tools and it appears to be 100% compatible. (lpcraft wasn't tested, because it doesn't install any snaps)
- [usage in charmcraft](https://github.com/mr-cal/charmcraft/pull/1)
- [usage in rockcraft](https://github.com/mr-cal/rockcraft/pull/1)
- [usage in snapcraft](https://github.com/mr-cal/snapcraft/pull/1)
(CRAFT-1222)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #137, adding optional BuilddBase snap installation through a Pydantic model; merge commit fc53896. | |
| qwen/qwen3.6-35b-a3b | — | closed resolved | Merged PR adding an optional snaps parameter to BuilddBase to install snaps in the base image using a new pydantic model. |
Update history
| Date | Change |
|---|---|
| created |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #143 base: add optional list of system packages to install | craft-providers | merged | Merged #143, adding an optional system-packages list to BuilddBase so bases can install additional system packages. | |
| #2689 schema: build-base support for the snapd type | snapcraft | merged | Merged PR #2689 added schema support for using build-base with snapd and base snap types. | |
| #65 fix: add snapd to literal list | craft-platforms | merged | PR #65 merged (merge commit d333fae) adding "snapd" to the acceptable snap types for empty bases; SNAP_TYPES_WITHOUT_BASE is now ("base", "kernel", "snapd") in craft_platforms/snap/_build.py. | |
| #252 snap_installer: move snap pydantic model | craft-providers | merged | Merged PR #252 in commit 0791361, moving the Snap Pydantic model so it can be used across multiple bases. |