feat(snapcraft_legacy): pack command runs the lifecycle
Metadata
Current evaluation
Merged squashed PR that aligns the core20 snapcraft pack command with core22 and core24 by running the lifecycle. Approved by three reviewers with all CI checks passing. Resolves #5425.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `make lint`?
- [x] Have you successfully run `make test`?
---
This PR makes the `snapcraft pack` command for core20 snaps have the same functionality as [core22 and core24 snaps](https://github.com/canonical/snapcraft/blob/a6f87915c8dc7e9d80681fe5178a266c81d26431/snapcraft/commands/lifecycle.py#L67-L74).
Fortunately, the legacy `snapcraft snap` command already had this behavior, so I was able to copy the implementation and tests.
Fixes #5425
(SNAPCRAFT-1046)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged squashed PR that aligns the core20 snapcraft pack command with core22 and core24 by running the lifecycle. Approved by three reviewers with all CI checks passing. Resolves #5425. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged PR aligning core20 snapcraft pack with core22 and core24 lifecycle behavior by adapting legacy snap command logic. Resolves #5425. Unrelated spread failures were noted prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged squashed PR implementing lifecycle execution for the core20 snapcraft pack command, matching core22 and core24 behavior. Adapted from the legacy snapcraft snap command, resolving issue #5425. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #5426 `snapcraft pack` should run the lifecycle for core18|20 in Snapcraft 7 | snapcraft | closed | Closed for Snapcraft 7. Fixed in Snapcraft 8.11 via merged pull request #5425, enabling snapcraft pack to run the lifecycle for core18 and core20 bases. | |
| #3981 commands, lifecycle: provide snapcraft try for core22 | snapcraft | merged | Merged. Adds snapcraft try support for core22 by mounting a host prime directory into the instance for lifecycle priming without packing. Approved by one reviewer, passed CI, and modified 8 files. | |
| #5675 Remove core20 lifecycle | snapcraft | closed | Merged in pull request #6019. Removed core20 lifecycle commands, spread tests, and plugin/extension references. Legacy components were retained for store compatibility. Prepares Snapcraft for version 9. | |
| #5425 `snapcraft pack` should run the lifecycle for core20 in Snapcraft 8 | snapcraft | closed | Abandoned. The enhancement to run the snapcraft pack lifecycle for core20 was triaged and synced to Jira but never implemented or merged. | |
| #55 feat: support 'pack' command | craft-actions | merged | Merged to add version-aware support for the snapcraft pack command, addressing Snapcraft 8 deprecation and Snapcraft 9 breaking changes. Maintainer merged despite unrelated CI infrastructure failures on ppc64el and s390x. | |
| #3173 cli: use snap pack instead of mksquashfs | snapcraft | merged | Merged. Replaced mksquashfs with snap pack, aligning with snapd standards and removing the --check-skeleton flag. Code refactored into snapcraft.cli. Windows support deferred to multipass. Approved and merged after passing CI. | |
| #340 feat: add `needs_project` property | craft-application | merged | Merged. Adds a needs_project property and refactors LifecycleCommands classes to enable snapcraft's custom Pack command with minimal duplication. Approved by two reviewers and passed CI checks. | |
| #2412 feat(snap): migrate the snap to core24 | charmcraft | merged | Merged after two approvals. Migrates snap packaging to core24 across four files. Known test failures were deemed non-blocking. CI passed on most platforms despite Ubuntu 20.04 and 22.04 failures. | |
| #100 feat(snapcraft/pack): node-based rewrite | craft-actions | merged | Merged a node-based rewrite of the snapcraft/pack action. Resolves the Snapcraft 7 default command issue, adds .comp file support, and includes unit tests. Approved by two reviewers with all CI checks passing across multiple platforms. | |
| #4594 fix(lifecycle): install 'core24' snap | snapcraft | merged | Merged a lifecycle fix to install the core24 snap, ensuring proper package cutoff functionality based on the project base. Approved by two reviewers, passed CI, and modified 9 files (+97/-9 lines). |