Skip to content
Quick links:   Flags   Verbs   Functions   Glossary   Release docs

How to create a new release

This is my checklist for making new releases.

In this example I am using version 6.2.0 to 6.3.0; of course that will change for subsequent revisions.

  • Update version found in mlr --version and man mlr:

    • Edit internal/pkg/version/version.go from 6.2.0-dev to 6.3.0.
    • Edit miller.spec: Version, and changelog entry
    • Run make dev in the Miller repo base directory
    • The ordering in this makefile rule is important: the first build creates mlr; the second runs mlr to create manpage.txt; the third includes manpage.txt into one of its outputs.
    • Commit and push.
  • Create the release tarball:

    • make release_tarball
    • This creates miller-6.3.0.tar.gz which we'll upload to GitHub, the URL of which will be in our miller.spec
    • Prepare the source RPM following
  • Create the Github release tag:

    • Don't forget the v in v6.3.0
    • Write the release notes
    • Get binaries from latest successful build from, or, build them on buildboxes. Note that thanks to PR 822 which introduces goreleaser there are versions for many platforms auto-built and auto-attached to the GitHub release (below). The only exception is for Windows: goreleaser makes a .tar.gz file but it's nice to attach a .zip from GitHub actions for the benefit of Windows users.
    • Attach the release tarball, Windows .zip, and SRPM. Double-check assets were successfully uploaded.
    • Publish the release in draft mode, until all CI jobs finish successfully. Note that gorelease will create and attach the rest of the binaries.
    • Then mark the release as public.
  • Check the release-specific docs:

    • Look at for new-version docs, after a few minutes' propagation time. Note this won't work until Miller 6 is released.
  • Notify:

    • Submit brew pull request; notify any other distros which don't appear to have autoupdated since the previous release (notes below)
    • Similarly for macports:
    • See also -- distros usually catch up over time but some contacts/pings never hurt to kick-start processes after owners move on from a project they started.
    • Social-media updates.
    • Brew notes:
    • How to submit a version upgrade
    • brew bump-formula-pr --force --strict miller --url --sha256 xxx with xxx from shasum -a 256 miller-6.2.0.tar.gz.
  • Afterwork:

    • Edit internal/pkg/version/version.go to change version from 6.3.0 to 6.3.0-dev.
    • make dev
    • Commit and push.