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

    resources/FatMessages
    
  • credits file copyright years (at a minimum)

    resources/en/credits.html
    resources/it/credits.html
    resources/nl/credits.html
    
  • licence file copyright years (at a minimum)

    resources/en/licence.html
    resources/it/licence.html
    resources/nl/licence.html
    
  • amiga readme copyright files

    frontends/amiga/pkg/netsurf.readme
    frontends/amiga/pkg/netsurf\_os3.readme
    
  • windows frontend installer

    windows/res/installer.nsi
    

Ensure the ca-bundle is updated

https://curl.haxx.se/docs/caextract.html

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

#define NETSURF_VERSION_MAJOR "3"
#define NETSURF_VERSION_MINOR_EXTERNAL "11"

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://nsgit@git.netsurf-browser.org/netsurf.git
 * [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/jenkins-build.sh ready for the next release cycle

git add desktop/version.c frontends/amiga/version.c utils/jenkins-build.sh
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.