packages: add snap package support
Metadata
Current evaluation
Merged after implementing snap download and installation for stage and build snaps. Approved by two reviewers, passed CI, and added 1,072 lines across five files. Follows snapcraft conventions with future refactoring planned.
Suggested action: —
No scores available.
Issue body
Snap packages can be listed in the parts specification as stage snaps
or build snaps. This change implements the mechanism to handle snap
download and installation.
Packages/repo is planned to be moved into a separate project, where
it will be further refactored. Current code follows the snapcraft
implementation.
Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after implementing snap download and installation for stage and build snaps. Approved by two reviewers, passed CI, and added 1,072 lines across five files. Follows snapcraft conventions with future refactoring planned. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation adding snap package support for stage and build snaps in parts specifications. Handles snap download and installation following snapcraft conventions. The packages/repo module is planned for future migration to a separate project. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4 snap: introduce initial snap packaging (CRAFT-578) | rockcraft | merged | Merged initial snap packaging implementation (CRAFT-578). Approved by one reviewer, passed CI checks, and added 86 lines across three files. | |
| #47 packages: add snap-related exceptions | craft-parts | merged | Added exception classes for snap handling errors to craft_parts.packages.snaps. Approved by two reviewers, passed CI checks, and merged with 163 additions and 18 deletions across two files. | |
| #41 package it as a snap | charmcraft | merged | Packaging the project as a snap was merged following approval from two reviewers. The update added 69 lines across two files, successfully implementing the snap build configuration. | |
| #73 tests: add stage snaps integration test (CRAFT-68) | craft-parts | merged | Merged an integration test verifying stage-snaps are correctly unpacked into the part install directory. Approved by two reviewers, passed CI, and added 133 lines across two files. | |
| #2496 many: support the use of build-aux/snap | snapcraft | merged | Merged implementation adding build-aux/snap as an alternate directory for snapcraft assets. Approved by reviewer, passed CI, and modified 7 files (+207/-64 lines) to align with GNOME project conventions. | |
| #1158 packaging: snapcraft as a snap | snapcraft | merged | Merged integration changes to build snapcraft as a snap. Modified 8 files with 147 additions and 10 deletions to package the tool itself as a snap. Review feedback was addressed prior to merge. | |
| #43 packages: add support to apt cache operations | craft-parts | merged | Merged PR adding apt cache operations for package retrieval. Approved by two reviewers and passed CI. Follows snapcraft standards and is planned for future migration to a separate project. | |
| #3683 commands: add snap command | snapcraft | merged | Merged into snapcraft/7.0. Implements legacy snap command support for package creation and fixes output parameter passing to managed instances. Approved by reviewer with passing CI checks. | |
| #8 feat: support build-packages | snapcraft-rocks | merged | Merged a feature adding a wrapper script to run apt update before Snapcraft, resolving an empty Apt cache issue in the base Ubuntu image. Approved by reviewers and rebased to pass tests before merge. | |
| #86 meta: use snapcraft's versioning scheme | starbase | merged | Merged after two approvals and passing CI. Updates the versioning scheme to match snapcraft's using setuptools-scm, adding 78 lines across two files with zero coverage impact. |