← Back to issue list

Use hardlinks in the build directory

View original Github issue

Metadata

Project
charmcraft
Number
#29
Type
issue
State
closed
Author
facundobatista
Labels
—
Created
Updated
Closed

Current evaluation

Hardlink-based build copies were added, with Python 3.5 support and relative symlink handling, in commit 90f844cf.

Resolution: closed resolved

Reason: Commit 90f844cf implemented hardlinked build copies and relative symlink handling, closing the requested behavior.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Actually, we should emulate `cp -al`: - use hard links - preserve permissions bits, mode, attributes, flags, etc - preserve original symlinks (so "hooks" will look as they should, for example) - do not dereference (never follow symbolic links in what we're linking to) - copy directories recursively As a side effect of this, we're able to allow symlinks in the zip file (not "copying contents" for everything!). This will result in a build directory as close as possible to what would be found later when the package charm is unzipped.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Hardlink-based build copies were added, with Python 3.5 support and relative symlink handling, in commit 90f844cf.
stealth/space-bunny-alpha — closed resolved Hardlink-based build copies were added to Charmcraft in commit 90f844cf, including support for Python 3.5 and relative symlinks.
stealth/space-bunny-alpha — closed superseded Hardlinked builds and preserved symlinks were implemented through canonical/charmcraft#27; directory permission and attribute preservation remained incomplete.
qwen/qwen3.6-35b-a3b — — Merged into PR #27 to implement hardlinks and symlink preservation, enabling direct charm deployment. Directory permission preservation remains incomplete.
qwen/qwen3.6-35b-a3b — — Superseded by PR #27, which merged hardlink-based build directory creation to preserve symlinks and resolve deployment errors. Full permission preservation for directories remains incomplete.
qwen/qwen3.6-35b-a3b — — Superseded by PR #27, which implemented hardlink-based copying and symlink preservation to match charm package structure. Directory permission and attribute preservation was noted as incomplete.
qwen3.6-35b-a3b-mtp-q6 — — The proposal to use hardlinks emulating cp -al was implemented in PR #27 and merged. This enables symlink support and fixes deployment errors, though preserving directory permissions and attributes remains incomplete.

Update history

No update history recorded yet.

Related issues

No related issues found above the similarity threshold.