Add archiver patches back to fix following symlinks on export#3060
Add archiver patches back to fix following symlinks on export#3060
Conversation
📊 Performance Test ResultsComparing 1428970 vs trunk app-size
site-editor
site-startup
Results are median values from multiple test runs. Legend: 🟢 Improvement (faster) | 🔴 Regression (slower) | ⚪ No change (<50ms diff) |
The @types/archiver patches added followSymlinks to CoreOptions, but this is unnecessary — ARCHIVER_OPTIONS in constants.ts uses plain object inference so followSymlinks is never checked against CoreOptions. The CLI patch also broke CI because install:bundle uses --omit=dev, meaning @types/archiver is absent when patch-package runs.
epeicher
left a comment
There was a problem hiding this comment.
Thanks @wojtekn for adding those! I have tested running npm install and running npm start and I don't see any errors. I have tested exporting a site with symlinks and I see the symlinked plugin folder in the new site. I have added a commit that removes the types @types+archiver+7.0.0.patch because that patch was not necessary and it was also breaking the CI. Once the CI passes this could be merged. LGTM!
| Symlink site | Imported previously exported site |
|---|---|
![]() |
![]() |
The @types/archiver patches added followSymlinks to CoreOptions, but @types/archiver@7 dropped followSymlinks from CoreOptions (it's still supported at runtime). The CLI patch also broke CI because install:bundle uses --omit=dev, meaning @types/archiver is absent when patch-package runs. Restore the `as archiver.ArchiverOptions` casts at call sites.
…dio into add-archiver-patches-back
|
Let's remove the |
|
Ah, I see now that we'd also need to patch The latter option is probably easier and clearer, actually. |
@fredrikekelund adding I'm curious, why do you think it can hide errors in the future?
That seems a good approach. |
Because it effectively disables type checking. Typescript won't complain about misnamed, missing, or unrecognized props. I think the |
|
@epeicher @fredrikekelund I remove those casts and added explicit |
That makes sense, thanks for the explanation @fredrikekelund. That's a strong reason to always try to avoid type casting 👍 |


Related issues
How AI was used in this PR
I used AI to regenerate patches and revert unnecessary changes from the previous PR.
Proposed Changes
I propose adding patches that add follow-symlinks option to archiver.
Testing Instructions
Pre-merge Checklist