mirror of
https://github.com/qvacua/vimr.git
synced 2024-11-24 11:37:32 +03:00
95 lines
3.0 KiB
Markdown
95 lines
3.0 KiB
Markdown
## How to develop
|
|
|
|
### No change in NvimServer
|
|
|
|
If you did not change NvimServer, i.e. NvimServer, NvimServerTypes, and neovim,
|
|
then, do the following to run VimR:
|
|
|
|
* `./bin/download_nvimserver.sh`
|
|
* Run VimR scheme in Xcode
|
|
|
|
A development version of VimR will be built and run,
|
|
i.e. the bundle identifier will be `com.qvacua.VimR.dev` and the name of the app will be `VimR-dev`.
|
|
If you want to build a development version as a release build, then use the following:
|
|
|
|
```bash
|
|
clean=true ./bin/build_vimr_dev.sh
|
|
```
|
|
|
|
### Changes in NvimServer
|
|
|
|
Since SwiftPM does not support a script phase, we have to copy some files manually,
|
|
e.g. `NvimServer` binary.
|
|
This can be done with the following:
|
|
|
|
```bash
|
|
build_libnvim=true clean=true download_gettext=true ./bin/build_nvimserver_for_local_dev.sh
|
|
```
|
|
|
|
Set `download_gettext` to true when you are building NvimServer locally for the first time.
|
|
See the `build_nvimserver_for_local_dev` script for default values of the env vars.
|
|
You can also use a watch script as follows (it uses `entr`):
|
|
|
|
```bash
|
|
clean_initial_build=true ./bin/watch_nvimserver_and_build
|
|
```
|
|
|
|
When `clean_initial_build` is `true`, the script will download `gettext`, clean, and build,
|
|
then continuously invoke the `build_nvimserver_for_local_dev` script.
|
|
|
|
## How to release
|
|
|
|
### NvimServer
|
|
|
|
#### Dependencies
|
|
|
|
* Tag with the name `nvimserver-deps-yyyy-mm-dd`. GitHub actions will build the `x86_64` version,
|
|
create a release and upload it.
|
|
* Build the `arm64` version locally (on an Apple Silicon machine since I could not find out
|
|
how to cross-compile `libnvim`) and upload it.
|
|
* Update `NvimServer/Resources/nvimserver-deps-for-download.txt` and push.
|
|
|
|
#### Executable
|
|
|
|
* Tag with the name `nvimserver-x.y.z-n`. GitHub actions will build the `x86_64` version,
|
|
create a release and upload it.
|
|
* Build the `arm64` version locally and upload it:
|
|
```bash
|
|
download_gettext=true clean=true build_libnvim=true ./NvimServer/bin/build_nvimserver.sh
|
|
```
|
|
* Update `NvimServer/Resources/nvimserver-for-download.txt`.
|
|
* Build a universal binary by the following and upload the artefact:
|
|
```bash
|
|
./NvimServer/bin/build_release.sh
|
|
```
|
|
|
|
### VimR
|
|
|
|
#### Dependencies
|
|
|
|
* Tag with the name `vimr-deps-yyyy-mm-dd`. GitHub actions will build the universal version,
|
|
create a release and upload it.
|
|
* Update `resources/vimr-deps_version.txt` and push.
|
|
|
|
#### Executable
|
|
|
|
* Set a new version of VimR via
|
|
```bash
|
|
is_snapshot=true ./bin/set_new_versions.sh
|
|
```
|
|
and commit. This will print out some environment variables you can use when invoking the
|
|
`build_release.sh` script later.
|
|
* Tag with the name
|
|
- Snapshot: `snapshot/yyyymmdd.HHMMSS`
|
|
- Release: `vX.Y.Z`
|
|
* Push, create a release and add release notes.
|
|
* Build, package and upload via
|
|
```bash
|
|
is_snapshot=true \
|
|
bundle_version=20211212.213543 tag=snapshot/20211212.213543 marketing_version=SNAPSHOT-20211212.213543 \
|
|
upload=true update_appcast=true \
|
|
./bin/build_release.sh
|
|
```
|
|
* The `appcast{-snapshot}.xml` file is modified. Check and push.
|
|
|