overlay: migrate overlay data to stage and prime (CRAFT-468, CRAFT-82)
Metadata
Current evaluation
Merged after two approvals and CI. Migrates overlay data to stage and prime, translates overlayfs whiteouts and opaque directories to OCI, and cleans shared areas. Collision detection is deferred.
Suggested action: —
No scores available.
Issue body
Migrate overlay tree entries to stage and prime areas, handling
whiteouts and translating overlayfs whiteout files and opaque
directories to OCI. Cleanup of overlay files in shared areas is
done when the last part with overlay parameters is cleaned.
Note: collision detection in overlay staging will be implemented
in a forthcoming PR.
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 two approvals and CI. Migrates overlay data to stage and prime, translates overlayfs whiteouts and opaque directories to OCI, and cleans shared areas. Collision detection is deferred. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation migrating overlay tree entries to stage and prime areas, handling whiteouts, translating to OCI, and managing cleanup. Overlay staging collision detection will be implemented separately. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1617 fix: migrate overlay files before running stage or prime | craft-parts | merged | Merged fix that migrates overlay files before stage or prime steps. Resolves a state tracking bug causing priming failures with symlinks. Approved by reviewers and passed all CI checks. | |
| #1619 fix: migrate overlay files before running stage or prime (#1617) | craft-parts | merged | Merged cherry-pick of canonical/craft-parts#1617. Resolves changelog conflicts and migrates overlay files before stage or prime execution. Approved by two reviewers and merged following CI validation. | |
| #119 overlay: add overlay hash to build and stage states (CRAFT-489) | craft-parts | merged | Merged pull request implementing overlay verification hashes in build and stage states to ensure proper step invalidation. Approved by two reviewers, passed CI checks, and successfully integrated. | |
| #115 overlay: add layer visibility helpers (CRAFT-477) | craft-parts | merged | Merged after two approvals. Introduces helper functions to extract migratable files and directories from overlay layers, correctly processing whiteout entries and opaque directories. The change adds 315 lines across three files. | |
| #127 overlay: add overlay manager mount operations (CRAFT-80) | craft-parts | merged | Merged implementation of mount operations for the overlay manager, enabling overlay stack mounting during build steps. Approved by two reviewers, passed CI, and added 265 lines across three files. Package installation is deferred to a future commit. | |
| #1123 fix: Prime content from overlay when split into partitions | craft-parts | merged | Merged fix for priming overlay content when split into partitions. Replaces direct overlay reliance with stage directory and migration state. Approved by three reviewers, passed all CI checks, and resolves issue #1127. | |
| #1190 fix(overlay): detect conflicts between overlay and install | craft-parts | merged | Merged fix enhancing Stage step collision detection to account for overlay contents, preventing conflicts with install directories. Includes integration tests, passed all CI checks, and received approval from three reviewers. | |
| #111 overlay: add overlayfs helpers (CRAFT-462) | craft-parts | merged | Merged. Added overlayfs mount and unmount helpers, plus utilities to identify special files and directories for filesystem layering. Approved by two reviewers, passed CI, and introduced 420 lines across six files. | |
| #297 overlay: only refresh overlay packages if necessary | craft-parts | merged | Merged an optimization that skips mounting and refreshing the overlay package cache unless a part uses overlay-packages, avoiding unnecessary expensive operations. Approved, passed CI, and changed three files. |