lxd: snapcraft refresh in containers
Metadata
Current evaluation
Merged after awaiting prerequisite PR #1627. Implements snapcraft refresh for LXD containers, updating apt cache and packages once to persist changes across builds. Resolves container update persistence issues following successful testing.
Suggested action: —
No scores available.
Issue body
- Only update apt cache and install snapcraft once
- Allow snapcraft update to upgrade packages and snaps
See the [forum proposal](https://forum.snapcraft.io/t/update-persistent-lxd-containers/1648/3).
**Note**: The other part is implemented in #1546.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after awaiting prerequisite PR #1627. Implements snapcraft refresh for LXD containers, updating apt cache and packages once to persist changes across builds. Resolves container update persistence issues following successful testing. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged after pausing for PR #1627. Implements snapcraft refresh for LXD containers to update apt cache and packages once. Post-merge testing verified successful package upgrades and proper container lifecycle handling. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged after delay due to LXD container errors and PR #1627 dependency. Implements snapcraft refresh to update apt caches and packages once in LXD containers. Reopened, tested, and integrated following the prerequisite merge. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1739 lxd: refresh remote container | snapcraft | merged | Fixes snapcraft refresh to correctly target the remote LXD container specified in SNAPCRAFT_CONTAINER_BUILDS instead of defaulting to local. Merged after approval and successful testing. | |
| #2098 lxd: wait for on-going refreshes to finish | snapcraft | merged | Merged fix adding a snap watch call before injecting snaps into LXD containers to wait for ongoing refreshes. Resolves race conditions causing build failures in issues #2037 and LP: #1722049. Approved by reviewer and passed CI. | |
| #1263 lxd: pass through commands into the container | snapcraft | merged | Merged a pull request enabling snapcraft to pass build commands into LXD containers. The change allows remote builds to execute within the container environment, addressing path mounting issues during remote snap creation. Approved by one reviewer, though coverage decreased slightly. | |
| #1364 lxd: Inject snapcraft and core snaps into the container | snapcraft | merged | Merged. Injects the host's snapcraft and core snaps into LXD containers to ensure build version consistency. Approved by one reviewer, modifying nine files with 360 additions and 46 deletions. | |
| #1577 lxd: don't inject local snaps on a different arch | snapcraft | merged | Merged a fix preventing Snapcraft from injecting local snaps into LXD containers with mismatched architectures. Cross-arch remotes now install snaps from the store. Approved by reviewers and merged after CI checks. | |
| #1865 lxd: always (re-)injects snaps | snapcraft | merged | Merged to fix LP: #1741752 by ensuring LXD containers always re-inject snaps. Changes refactor injection logic, reorganize files, and properly handle side-loaded snap assertions. Approved by reviewer and passed CI. | |
| #1434 lxd: clean with no parts should only delete | snapcraft | merged | Merged. Updates snapcraft LXD handling so running clean without arguments only deletes container resources instead of executing commands inside them. Approved by one reviewer and merged. | |
| #2509 build providers: initial support for LXD | snapcraft | merged | Merged initial LXD build provider support for snapcraft, enabling the --use-lxd flag for lifecycle steps and cleaning. Passes CI. Reviewers noted minor dependency and container setup edge cases, which were clarified or deferred. | |
| #1639641 Don't assume lxd from dpkg | snapcraft (launchpad) | closed | Resolved via merged pull request #904, updating snapcraft cleanbuild to detect LXD installed via snap rather than only checking dpkg. | |
| #1546 cli: update parts cache in the container | snapcraft | merged | Merged. Passes snapcraft update to the container to refresh the parts cache. Approved by two reviewers with passing CI. Implements the update portion of a container cache sync, with refresh handled in PR #1412. |