Repository navigation
build: preserve unchanged sidebar extension declaration - #13245
Conversation
|
Warning Review limit reachedNext included review available in 22 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
|
692f2c0 fix: use complete settings paths in checkout and installed skill (manaflow-ai#13250) bb318b5 perf: fetch native cmux-tui client slices for local reloads (manaflow-ai#13249) fc77a71 feat(localization): add one-command contributor workflow (manaflow-ai#13220) 024562c build: preserve unchanged sidebar extension declaration (manaflow-ai#13245) 39e98d7 perf(reload): clone the tagged app staging copy on APFS (manaflow-ai#13241) cc28407 ci: retry Warp checkout and capture DNS failures (manaflow-ai#13204) 6a09735 ci: find admitted compiles beyond the first jobs page (manaflow-ai#13240) a979439 ci: make merge-group fail-fast watcher reliable (manaflow-ai#13235) # Conflicts: # .github/workflows/ci.yml # .github/workflows/cmux-skill-contract.yml # .github/workflows/ios-appstore-upload.yml # .github/workflows/merge-group-fail-fast.yml
The sidebar extension-point build phase currently deletes and recreates its declaration on every build, even when the selected point and XML are unchanged. Preserve the existing regular file when its contents match, while still running the phase to clean stale tags and recreate missing or corrupt output.
Changed output is written through a temporary file and renamed into place. Destination symlinks are replaced without modifying their targets. The unchanged path preserves the declaration's inode and mtime, and does not change the Extensions directory's mtime.
Validation: seven behavioral tests invoke the real script and inspect generated plist artifacts, covering unchanged output, tag changes, stale declarations, missing/corrupt output, and file/directory symlinks. The original script fails two tests; the fix passes all seven. The regression and fix are separate commits. The tests run in the existing Linux
workflow-guard-testsjob.bash -nandgit diff --checkpass.This removes one unnecessary bundle mutation. It does not claim a measured whole-build speedup or that Xcode will skip signing; other build phases can still modify the bundle.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Stops the sidebar extension-point build phase from replacing an unchanged declaration every build, so the app bundle no longer unnecessarily changes.
workflow-guard-testsjob.Written for commit 26c4489. Summary will update on new commits.