Skip to content

Latest commit

 

History

History
38 lines (36 loc) · 2.25 KB

Release-Guide.md

File metadata and controls

38 lines (36 loc) · 2.25 KB

Release guide for kRPC

This document details the steps necessary to make a release of kRPC.

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