This document details the steps necessary to make a release of kRPC.
- The repository should be clean from changes. Also run a
bazel clean --expunge
. - Bump the kRPC version number in
config.bzl
and commit the file. - Make an annotated tag for the new version (using `git tag -a vx.x.x) and move the latest-version tag to this commit.
- Run
tools/build-against-all-versions.sh
to check that the mod at least builds against all supported versions of KSP. - Build kRPC and run all of the tests locally to check that they pass using
bazel build //... && bazel test //:test
- Push the vx.x.x commit and tag to the main branch on GitHub using
git push && git push --tags
- Wait for the CI workflow to pass.
- Run
tools/dist/genfiles.sh
to build the genfiles archive to include in the release. - Do the release on Github:
- Use
tools/dist/changes.py github
to get changelog to include with the release - Upload the release archive, krpctools, genfiles and all clients (9 files in total)
- Upload TestServer release archive
- Get the C++ client Windows builds (both win32 and win64) from the Travis build outputs and upload to the github release.
- Use
- Update the documentation website by merging the vx.x.x commit into the docs branch. Push it to GitHub. The docs GitHub workflow should automatically build and deploy the new website.
- Do a release on Curse
- Do a release on SpaceDock
- Bump the version number on KSP AVC online
- Release all the clients and tools to their various platforms:
- Upload the Python client to pypi using twine
- Upload krpctools to pypi using twine
- Release C# client on nuget.org
- Run
tools/update-arduino-library.sh push
to update Arduino library repository and then runtools/update-arduino-library.sh release
to push a new version of Arduino library. - Upload Lua client to
s3://krpc/lua/...
and release the rockspec file on luarocks.org - Build and push docker image for TestServer using the makefile in
tools/TestServer/docker
- Post release details to various forums etc:
- Update release and dev thread on forums, and post an update notice to the release thread.
- Post on Discord
- Post on Reddit