Getting Started

The goal of Cranko is to help you implement a clean, reliable workflow for making releases of the software that you develop. Because Cranko is a workflow tool, there isn’t one single way to “start using” it — the best way to use it depends on your current release workflow (or lack thereof) and CI infrastructure.

That being said — once Cranko is integrated into your project, a typical release process should look like the following. You might periodically run the cranko status command to report on the history of commits since your latest release(s):

$ cranko status
cranko: 10 relevant commit(s) since 0.0.3

When you're ready to make a release, you’ll run commands like this:

$ cranko stage
cranko: 12 relevant commits
$ {edit CHANGELOG.md to curate the release notes and set version bump type}
$ cranko confirm
info: cranko: micro bump (expected: 0.0.3 => 0.0.4)
info: staged rc commit to `rc` branch
$ git push origin rc

Your Cranko-powered CI pipeline will build the rc branch, publish a new release upon success, and update a special release branch. You don't need to edit any files on your main branch to “resume development”. Instead, if you resynchronize with the origin you’ll now see:

$ git fetch origin
[...]
   9fa82ad..8be356d  release      -> origin/release
 * [new tag]         cranko@0.0.4 -> cranko@0.0.4
$ cranko status
cranko: 0 relevant commit(s) since 0.0.4

Underpinning Cranko’s operation is the just-in-time versioning workflow. It’s important to understand how it works to understand how you’ll integrate Cranko into your development and deployment workflow.