Release process for NetSurf

ensure you are at the commit from which you want to create the release

git branch -vv

check the resources for the frontends you are releasing are up to date:

  • Fatmessages copyright year

  • credits file copyright years (at a minimum)

  • licence file copyright years (at a minimum)

  • amiga readme copyright files

  • windows frontend installer


Ensure the ca-bundle is updated

create a branch releasing/<version number> and switch to it

git branch releasing/3.11
git checkout releasing/3.11

update desktop/version.c to something like

#include "testament.h"

const char * const netsurf_version = "3.11 (25th April 2016)";
const int netsurf_version_major = 3;
const int netsurf_version_minor = 11;

update frontends/amiga/version.c along the same lines


commit to the branch

git commit -m 'Update version files for release'

once you are sure everything is correct and committed tag the branch for release

git tag -s -m 'Official Release' release/<version number>

Next do a dry run push

git push -n --tags

ensure this shown the correct repo and the release tag something like

[gitano] Welcome to the NetSurf Gitano instance.
To ssh://
 * [new tag]         release/3.11 -> release/3.11

Next the branch must be merged back to master.

git checkout master
git merge -s ours heads/releasing/3.11

Then edit desktop/version.c , frontends/amiga/version.c and utils/ ready for the next release cycle

git add desktop/version.c frontends/amiga/version.c utils/
git commit -m 'Update version for next development cycle'

Remove releasing branch

git branch -d releasing/3.11
Deleted branch releasing/3.11 (was 66fe825c8).

finally push master

git push origin master

If that verifies as correct

git push --tags

and the release tag is pushed, too late now so be careful and check!

Please do ensure you thoroughly check your work at each step as mistakes are hard to fix once pushed.