Release Procedure - 2langnic/GlobaLeaks GitHub Wiki
This is the procedure to release a GlobaLeaks software version.
On your local pc:
$ apt-get install dput
Hopefully, you already have GlobaLeaks' signing key (mail: [email protected]
), and an user at deb.globaleaks.org
in group dput
. You are warmly suggested to configure ssh (i.e., your .ssh/config
) to login with your assigned user, and with your associated identity file.
Configure dput for the upload to deb.globaleaks.org
:
$ cat ~/.dput.cf
[globaleaks]
method = scp
fqdn = deb.globaleaks.org
incoming = /srv/packages/mini-dinstall/incoming
allowed_distributions = (jessie|wheezy|trusty|precise)
On your local PC:
$ git clone https://github.com/globaleaks/GlobaLeaks.git
You must first update the translation strings from transifex and commit them by running the following commands over the client source code directory:
$ cd client
$ grunt updateTranslations
$ git commit -a -m "Update translatons"
$ git push
You must first create new tags in the GlobaLeaks tree. Every time either one of these is updated a new incremental tag version must be created. In this example we will use "0.1".
First edit the client version described in package.json and in bower.json changing the release version:
$ emacs client/package.json
{
...
"version": "0.1",
...
}
$ emacs bower.json
{
...
"version": "0.1",
...
}
Than you have to commit, tag and rebuild it.
First edit the version described in globaleaks/__init__.py changing the release tag version:
$ emacs backend/globaleaks/__init__.py
__version__ = '0.1'
To complete you must commit and tag GlobaLeaks with:
$ git commit -a -m "commit before new tag message"
$ git push origin
$ git tag -s v0.1 -m 'GlobaLeaks version 0.1' -u $signing_user
$ git push origin --tags
GlobaLeaks can be built just like any other debian package. Refer to Debian's New Maintainer Guide for any trouble.
For each distro/version you should checkout on the relevant branch and perform the following packaging steps.
$ git checkout packaging_branch
$ git merge master
to fetch all new code changes, and in particular the tagged commit containing version changes.
available branches are:
- release/debian/jessie
- release/debian/wheezy
- release/ubuntu/precise
- release/ubuntu/trusty
Then you will need to update also debian/changelog
:
$ export DEBFULLNAME="GlobaLeaks software signing key"
$ export DEBEMAIL="[email protected]"
$ dch -i
To complete you must commit the changelog with:
$ git commit -a -m "Apply changelog for $disto_codename release $gl_version"
$ git push origin
At this point, you are ready to build the package:
$ sudo mk-build-deps -i # to install build dependencies
$ debuild # to build the debian package
Note that dpkg
is supposed to run also the unittests via python setup.py test
.
At any moment, you can exclude (or include, resp.) this by uncommenting (or commenting) the line
export PYBUILD_DISABLE=test
in your debian/rules
file.
Simply as
$ dput globaleaks ../globaleaks_${version}_all.changes
After generating a GlobaLeaks
package, you can build the new images.
Don't forget to test it manually too!
$ cd appliance/platform-version/
$ /path/to/packer build -var deb=/path/to/globaleaks_*.deb template.json
- Prepare email message for announcement
- Send an email to mailing lists
- Send a Tweet (and retweet trough other social accounts)
- Send an irc message to relevant chat/channels and social networks groups