Skip to content

Enhance local build system for faster iteration and better DX#1143

Open
rainux wants to merge 1 commit intoqvacua:masterfrom
rainux:build_script
Open

Enhance local build system for faster iteration and better DX#1143
rainux wants to merge 1 commit intoqvacua:masterfrom
rainux:build_script

Conversation

@rainux
Copy link
Contributor

@rainux rainux commented Dec 3, 2025

This commit improves the local development experience by addressing several build system inefficiencies:

  1. Fix Incremental Builds: Corrected a bug in bin/build_vimr.sh where the build directory was always deleted regardless of the clean flag. Incremental builds now work as expected.
  2. Optimize Neovim Resources: bin/build_nvimserver.sh now skips downloading/building Neovim resources if they already exist, saving significant time on subsequent builds.
  3. Support Local Signing: bin/build_vimr.sh now performs ad-hoc signing when notarize=false, enabling locally built Release versions to run on Apple Silicon without manual codesigning.
  4. Simplify Plugin Validation: Added trust_plugins flag to bin/build_vimr.sh to bypass interactive SwiftLint plugin validation prompts.
  5. New Convenience Script: Added bin/build_and_install_local_release.sh to build and install a local Release version to /Applications in one step.
  6. Documentation: Updated README.md with instructions for local builds.

Implemented by Gemini.

Since the original code contains mixed indent spaces, I formatted it with 2 spaces indention (which should be the original convention of VimR), so the diff will looks a bit scary, if viewed by ignoring spaces with https://github.com/qvacua/vimr/pull/1143/files?diff=split&w=1, the diff will be very clear.

This commit improves the local development experience by addressing several build system inefficiencies:

1.  **Fix Incremental Builds**: Corrected a bug in `bin/build_vimr.sh` where the build directory was always deleted regardless of the `clean` flag. Incremental builds now work as expected.
2.  **Optimize Neovim Resources**: `bin/build_nvimserver.sh` now skips downloading/building Neovim resources if they already exist, saving significant time on subsequent builds.
3.  **Support Local Signing**: `bin/build_vimr.sh` now performs ad-hoc signing when `notarize=false`, enabling locally built Release versions to run on Apple Silicon without manual codesigning.
4.  **Simplify Plugin Validation**: Added `trust_plugins` flag to `bin/build_vimr.sh` to bypass interactive SwiftLint plugin validation prompts.
5.  **New Convenience Script**: Added `bin/build_and_install_local_release.sh` to build and install a local Release version to `/Applications` in one step.
6.  **Documentation**: Updated `README.md` with instructions for local builds.

Co-authored-by: Gemini <gemini@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant