Building a release

So you are a comitter and you want to release a new version of Seccubus.

Calculate a new version number

As of April 2016 the “odd” version numbers are development releases the “even” version are releases.

So if 2.20 is the current release then 2.21 is the release currently under development. It will become 2.22 as soon as you will release it.

Update SeccubusV2.pm

In SeccubusV2.pm there is a line like this:

$VERSION = '2.21';

Update it to reflect the new version number.

Make sure README.md and ChangeLog.md are up to date

Make sure that README.md reflects all changes since the last released version, Make sure that you copy this to the head of ChangeLog.md as well. It has all the changes since version 2.0.alpha1

Make sure that all unit tests pass

Check CircleCI build status

This ensures that the packes build on all supported platforms too.

Make sure hub.docker.com is building the container

Check:

Tag the repo

$ git tag -a 2.22 -m "This will be release 2.22"
$ git push --follow-tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 179 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To git@github.com:schubergphilis/Seccubus
 * [new tag]         2.22 -> 2.22

CAUTION:

  • Use qualified tags!
  • Don’t prepend a v to the version or OpenSUSE build services will fail!

Make sure that all unit tests pass (AGAIN!)

Check CircleCI build status

Create a pull request from master to releases

This will make sure the release also gets uploaded to the releases repository.

Create a release on GitHub

See GitHub release page.

Use the tag you have just created. If you committed after you created the tag you need to delete the tag first.

Download the binary packages

Get the following from CircleCI:

  • RPMS: master / fedora_package_building -> fedora_ok -> artifacts
  • .deb file: master / debian_package_building -> debian_ok -> artifacts

Attach them to the build

See the release you just created at the GitHub release page.

Write a blog post on seccubus.com

Code is in the gp-pages branch Of the main GitHub repo

Send a notification to the slack channel

You know how slack works.

Update online version check

Code is in the gp-pages branch Of the main GitHub repo

Tweet, LinkedIn, Facebook, etc…

Make some noise, you are done!