1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-12-20 20:21:58 +03:00
vimr/DEVELOP.md

83 lines
2.4 KiB
Markdown
Raw Normal View History

2021-12-13 20:47:02 +03:00
## 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
2022-02-13 11:46:54 +03:00
build_libnvim=true clean=true ./bin/build_nvimserver_for_local_dev.sh
2021-12-13 20:47:02 +03:00
```
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
```
2022-02-13 11:46:54 +03:00
When `clean_initial_build` is `true`, the script will clean and build,
2021-12-13 20:47:02 +03:00
then continuously invoke the `build_nvimserver_for_local_dev` script.
## How to release
### NvimServer
* Tag with the name `nvimserver-x.y.z-n`. GitHub actions will build the `x86_64` version,
create a release and upload it.
2022-01-02 17:55:31 +03:00
* Build the `arm64` version locally and upload it:
```bash
2022-04-16 19:30:17 +03:00
clean=true build_libnvim=true ./NvimServer/bin/build_nvimserver.sh
2022-01-02 17:55:31 +03:00
```
2022-01-02 18:09:21 +03:00
* Build a universal binary by the following and upload the artefact:
```bash
2022-02-13 11:46:54 +03:00
tag=nvimserver-x.y.z-n ./NvimServer/bin/build_release.sh
2022-01-02 18:09:21 +03:00
```
2021-12-13 20:47:02 +03:00
### 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
2022-03-24 20:08:11 +03:00
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
2021-12-13 20:47:02 +03:00
```
2022-03-24 20:08:11 +03:00
and commit. This will create a `${bundle_version}-snapshot/release.sh` file to be used
with `build_release.sh`.
2021-12-13 20:47:02 +03:00
* Tag with the name
- Snapshot: `snapshot/yyyymmdd.HHMMSS`
2022-03-12 22:25:52 +03:00
- Release: `vX.Y.Z-yyyymmdd.HHMMSS`
2022-03-24 20:08:11 +03:00
* Push
2021-12-13 20:47:02 +03:00
* Build, package and upload via
```bash
2022-03-24 20:08:11 +03:00
create_gh_release=true upload=true update_appcast=true \
release_spec_file=....sh \
2021-12-13 20:47:02 +03:00
./bin/build_release.sh
```
* The `appcast{-snapshot}.xml` file is modified. Check and push.
2022-03-24 20:08:11 +03:00