feat: allow interim bases for kernel snaps
Metadata
Current evaluation
Merged after approval and CI checks. Adds interim base support for kernel snaps, updates documentation and tests, and resolves #4868. Changes how kernel snaps define bases and build-bases.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `tox run -m lint`?
- [x] Have you successfully run `tox run -e test-py310`? (supported versions: `py39`, `py310`, `py311`, `py312`)
-----
* Changes how kernel snaps define bases and build-bases.
* To understand the specific changes, see the updated documentation in this PR: [reference](https://canonical-snapcraft--4914.com.readthedocs.build/en/4914/reference/bases.html#kernel-snaps), [explanation](https://canonical-snapcraft--4914.com.readthedocs.build/en/4914/explanation/bases.html), and [how-to](https://canonical-snapcraft--4914.com.readthedocs.build/en/4914/howto/bases.html#how-to-build-a-kernel-snap)
* Reorganises the kernel spread tests per-base
Unfortunately there are no interim bases that can be tested locally. 23.10 is EOL this month and 24.10 is not supported due to #4921. 24.10 should be usable if built via launchpad.
This feature branch enables other teams to test building kernels. It can be installed with `snap install snapcraft --channel edge/kernel-snaps-with-bases`.
Note that this feature branch is a prototype and isn't ready to land on `main` for a few reasons:
- backward incompatible with existing kernel `snapcraft.yaml` files
- quick and dirty type-checking shortcuts that need to be cleaned up
Fixes #4868
(CRAFT-3046)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after approval and CI checks. Adds interim base support for kernel snaps, updates documentation and tests, and resolves #4868. Changes how kernel snaps define bases and build-bases. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to main, resolving #4868 by enabling interim bases for kernel snaps. The update reorganizes base definitions and tests, allowing kernel building via the edge channel. Despite initial prototype status and backward incompatibility, the feature was successfully integrated. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to enable interim bases for kernel snaps, updating documentation and tests. Resolves #4868. Deployed as a prototype with backward-incompatible changes and temporary type-checking, allowing teams to test kernel builds via the edge channel. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #5095 Support interim build bases for kernel snaps | snapcraft | closed | Closed as a duplicate of issue #4878. The request to support interim kernel bases was superseded by the referenced tracking issue, which consolidates the feature requirements and platform dependencies. | |
| #4868 Allow specifying build-base in kernel snap | snapcraft | closed | Implemented as a prototype in a feature branch via pull request #4914, enabling kernel snaps to specify build-bases using the standard cross-craft naming system. | |
| #4878 Support interim ubuntu releases for kernel snaps | snapcraft | open | Enhancement to support interim Ubuntu releases (e.g. ubuntu@24.10) as build-bases for kernel snaps, backward compatibly. Triaged by maintainer; PoC PR #4914 merged but unusable as-is. Blockers #4921 and #5015 are now resolved. Not yet implemented in code. | |
| #6177 feat: allow building stable base snaps | snapcraft | closed | Closed and superseded in favor of pull request #6147 and a separate branch for early core26 enablement. The feature to build stable base snaps was not merged directly but redirected to the referenced PR. | |
| #2700 schema: build-base support for the kernel type | snapcraft | merged | Merged into master. Adds build-base schema support for kernel type snaps, noting they do not require a base until hooks are implemented. Included in the next release, with a reviewer noting a related dependency PR is also needed. | |
| #4983 Install base snap if declared as `build-base` | snapcraft | closed | Closed as superseded. Base and build-base combination restrictions in #4878 render this enhancement moot. The author acknowledged the change and implemented a workaround. Implementation may be revisited for kernel snap interim base support. | |
| #2689 schema: build-base support for the snapd type | snapcraft | merged | Merged into master. Implements build-base keyword support for the snapd snap type, enabling its construction. Approved by reviewer, passed CI, and updated four files. |