Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 2.72 KB

HOWTO-RELEASE.md

File metadata and controls

67 lines (42 loc) · 2.72 KB

Notes on Preparing a Kart Release

This process only supports a single release branch (master). It'll need to be expanded over time.

Prerequisites

  1. Make sure you're on master.

  2. Check tests are all passing.

  3. Decide on your version number. We use Semantic Versioning with PEP-440 version numbering:

    • Version numbers are eg: 1.2.3 or 1.2.3b3 or 1.2.3rc1
    • The Git tag version format is v{Ver}, eg: v1.2.3 or v1.2.3b3 or v1.2.3rc1

Release

  1. Update kart/VERSION to the new version number.

  2. Update the project() statement in CMakeLists.txt to the new version number (<major>.<minor>.<patch> only). If it's an alpha/beta/rc release, then it should be set to the release version.

  3. Update the release in docs/conf.py to the new version.

  4. Update any version numbers in README.md to point to the new version.

  5. Update CHANGELOG.md to refer to the new version (ie, make sure it doesn't say "UNRELEASED" next to all the latest changes.)

  6. Commit with a message like "Release v1.2.3", and push the commit.

    $ git commit -m "Release v1.2.3"
    $ git push
  7. Tag the release with the Git tag version format and push the tag.

    $ git tag v1.2.3
    $ git push origin v1.2.3
  8. CI will build and sign the installers and packages, and create a new draft release in github. Check CI passes and the RPM/DEB/MSI/PKG archives are all attached.

  9. Write the release notes. Use CHANGELOG.md as a starting point. Topic/section suggestions:

    • Overview
    • New features
    • Compatibility / Upgrading
    • Bugs fixed
    • External Contributors
  10. Release the new release by clicking "Publish release".

  11. If it's not an alpha/beta/candidate release, update the Homebrew Tap:

    1. Get the SHA256 hash of the macOS PKG installer: sha256 Kart-1.2.3.pkg
    2. Pull homebrew-kart
    3. Edit both Casks/kart.rb and Casks/sno.rb, updating the version and sha256 fields
    4. Commit with a message like "Update to release v1.2.3"
    5. Push

Cleanup

  1. Update kart/VERSION to the next development Python version eg: 1.2.4.dev0. If it's an alpha/beta/rc release, then it should be set to the next release version with .dev0 appended.

  2. Update the project() statement in CMakeLists.txt to the next patch release eg: 1.2.4. If it's an alpha/beta/rc release, then it should be set to the next release version.

  3. Commit with a message like "Set development version as v1.2.4.dev0" and push