Skip to content

Release Instructions

David E. Wheeler edited this page Jul 17, 2017 · 3 revisions
  1. Run git clean -dfx to remove all generated files. This is to prevent dzil msg-scan from scanning more than it needs to scan.
  2. Run dzil msg-scan and dzil msg-merge. This will update the translation libraries. Run prove -l to make sure everything is fine, then add, commit, and push the changes.
  3. Proof-read and edit Changes file.
  4. Run prove -lr xt to make sure things look ready for release. These tests catch things like Pod errors and missing documentation. Fix any issues they find.
  5. Run dzil test to make sure the build and distributed tests will work properly.
  6. Review changes and update dist/sqitch.spec with any new prereqs. Remove any dropped prereqs, too.
  7. Timestamp Changes and dist/sqitch.spec. For Changes, add the ISO-8601 timestamp in UTC to the version line. For dist/sqitch.spec, add an item to the %changelog section. Add and commit (but don't push) the changes.
  8. Run dzil release to release Sqitch.
  9. Wait for CPAN to successfully index the release.
  10. Run tag v0.9997 -am 'Tag v0.9997. to tag the release. Be sure to use the proper version here!
  11. Run git push and git push --tags to push the release commit and tag.
  12. Increment all files, including Changes, README.md, and dist/sqitch.spec, to the next version. I use a simple script for this, though it doesn't update Changes. You'll need to add the new version header there with no timestamp. Add the changes, commit, and push.
  13. Update all the Homebrew Forumlas in the homebrew-sqitch project. You'll need to generate the SHA-256 hex hash for the just-released tarball, as well as for the META.json file as returned by the MetaCPAN API. IOW, download it from https://fastapi.metacpan.org/v1/source/{author}/App-Sqitch-{version}/META.json, where {author} is your CPAN name and {version} is the version just released. See this commit for a previous Homebrew forumla update. Commit and push the change.