Hard-link local sources instead of symlinking them.
Metadata
Current evaluation
Merged in canonical/snapcraft#622 (a07fa0faa), replacing local-source symlinks with hard links and falling back to copies, fixing LP #1590108.
Resolution: closed resolved
Reason: PR #622 was merged as commit a07fa0faa, implementing hard links for local sources with copy fallback when hard-linking is unavailable.
Evaluated by: mr-cal-bot
No scores available.
Issue body
This PR fixes LP: [#1590108](https://bugs.launchpad.net/snapcraft/+bug/1590108) by hard-linking local sources instead of symlinking them. If hard links aren't possible, it copies them instead.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged in canonical/snapcraft#622 (a07fa0faa), replacing local-source symlinks with hard links and falling back to copies, fixing LP #1590108. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged canonical/snapcraft#622, fixing LP #1590108 by hard-linking local sources instead of symlinking, with copying as the fallback when hard links are unavailable. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #622 as a07fa0faa, fixing LP #1590108 by hard-linking local sources, with a copy fallback when hard links are unavailable. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #622 into master, fixing LP #1590108 by hard-linking local sources and falling back to copies when hard links are unavailable. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #622 as commit a07fa0faa, replacing local-source symlinks with hard links and falling back to copying when hard links are unavailable. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged. Fixes LP #1590108 by hard-linking local sources instead of symlinking, with a fallback to copying if hard links are unsupported. Review comments were addressed and CI coverage fluctuations resolved prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Replaces symlinks with hard links for local sources, falling back to copying if hard links fail. Resolves Launchpad bug #1590108 after maintainer review and CI verification. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2256 local source: don't include .snapcraft directory | snapcraft | merged | Merged #2256 (commit abbc92427), fixing LP #1791773 by excluding .snapcraft from local-source copies and stale-part checks. | |
| #1572664 Migrated files don't follow symlinks if they're hard linked | snapcraft (launchpad) | closed | Broken symlinks from hard-linking migrated files fixed by ubuntu-core/snapcraft PR #478, merged as commit 313023188 which resolves sources with os.path.realpath() before os.link(); LP bug closed. | |
| #426 Copy plugin: Follow symlinks if outside of snap. | snapcraft | merged | Merged in canonical/snapcraft#426 (b332715a8), following absolute or out-of-part symlinks to prevent broken links and fix LP #1532515. | |
| #478 Follow symlinks while hard-linking migrated files. | snapcraft | merged | Merged PR #478 as commit 313023188, resolving symlinks with os.path.realpath() before hard-linking migrated files and preventing broken links in generated snaps. | |
| #1558446 Pulling local sources is rather broken | snapcraft (launchpad) | closed | Local source pull bug fixed by ubuntu-core/snapcraft PR #377 (commit eb6ad38ab "Correct local source pulling", merged as 8b4a18d9b), which inverts the isdir/rmdir checks so symlinked local sources are removed rather than raising. |