1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-09-11 17:15:34 +03:00
vimr/DEVELOP.md
2024-05-30 11:04:26 +09:00

2.1 KiB

How to develop

VimR includes a stock Neovim. From Neovim v0.10.0, we provide pre-built universal Neovim, see for instance https://github.com/qvacua/vimr/releases/tag/neovim-v0.10.0-20240527.232810. In most cases, you can use the pre-built Neovim. Run the following

clean=true for_dev=false ./bin/build_nvimserver.sh

to download and place the files in the appropriate places. Now, you can just run VimR target in Xcode.

If you want to build Neovim locally, you can use

clean=true for_dev=true ./bin/build_nvimserver.sh

Afterwards, you can run VimR target in Xcode.

(This is used when generating source since we need some generated header files.)

How to enable the Debug menu in Release build

defaults write com.qvacua.VimR enable-debug-menu 1

How to release

Neovim

  • Update Neovim and generate sources:
    clean=true use_committed_nvim=true ./bin/generate_sources.sh
    
    Use use_committed=false if you want to use modified local Neovim submodule.
  • Commit and push.
  • Tag and push with the following
    version=neovim-vX.Y.Z-$(date "+%Y%m%d.%H%M%S"); git tag -a "${version}" -m "${version}"; git push origin "${version}"
    
  • Github action will build universal binary + runtime and package it.
  • Update the version of Neovim in /bin/neovim/resources/buildInfo.json

VimR

  • Set a new version of VimR via
    is_snapshot=true ./bin/set_new_versions.sh # for snapshot or
    is_snapshot=false marketing_version=0.38.3 ./bin/set_new_versions.sh # for release
    
    and commit. This will create a ${bundle_version}-snapshot/release.sh file to be used with build_release.sh and release-notes.temp.md for release notes.
  • Tag with the name
    • Snapshot: snapshot/yyyymmdd.HHMMSS
    • Release: vX.Y.Z-yyyymmdd.HHMMSS
  • Push
  • Add release notes to release-notes.temp.md.
  • Build, package and upload via
    create_gh_release=true upload=true update_appcast=true \
    release_spec_file=....sh \
    ./bin/build_release.sh
    
  • The appcast{-snapshot}.xml file is modified. Check and push.