This document details the steps necessary to make a release of kRPC.
- The repository should be clean from changes, and run a
bazel clean
. - 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) - Run
tools/build-against-all-versions.sh
to check that the mod at least builds against all supported versions of the KSP API - 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 master branch on GitHub. Wait for Travis CI to complete running of the tests.
- Run
tools/dist/genfiles.sh
to build the genfiles archive to include in the release. - Run
tools/update-docs.sh push
to build and push updates to the documentation website. - 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
- Do a release on Curse
- Do a release on SpaceDock
- Bump the version number on KSP AVC
- 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
- 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