[[!meta title="Releasing All source package"]] [[!meta author="VincentSanders"]] [[!meta date="2020-05-23T10:40:07Z"]] # Release process for all source package clone the all repo git clone ssh://nsgit@git.netsurf-browser.org/netsurf-all.git ensure ther submodules are initialised git submodule init output will be something like Submodule 'buildsystem' (git://git.netsurf-browser.org/buildsystem.git) registered for path 'buildsystem' Submodule 'libcss' (git://git.netsurf-browser.org/libcss.git) registered for path 'libcss' Submodule 'libdom' (git://git.netsurf-browser.org/libdom.git) registered for path 'libdom' Submodule 'libhubbub' (git://git.netsurf-browser.org/libhubbub.git) registered for path 'libhubbub' Submodule 'libnsbmp' (git://git.netsurf-browser.org/libnsbmp.git) registered for path 'libnsbmp' Submodule 'libnsfb' (git://git.netsurf-browser.org/libnsfb.git) registered for path 'libnsfb' Submodule 'libnsgif' (git://git.netsurf-browser.org/libnsgif.git) registered for path 'libnsgif' Submodule 'libnspsl' (http://git.netsurf-browser.org/libnspsl.git) registered for path 'libnspsl' Submodule 'libnsutils' (http://git.netsurf-browser.org/libnsutils.git/) registered for path 'libnsutils' Submodule 'libparserutils' (git://git.netsurf-browser.org/libparserutils.git) registered for path 'libparserutils' Submodule 'libpencil' (git://git.netsurf-browser.org/libpencil.git) registered for path 'libpencil' Submodule 'librosprite' (git://git.netsurf-browser.org/librosprite.git) registered for path 'librosprite' Submodule 'librufl' (git://git.netsurf-browser.org/librufl.git) registered for path 'librufl' Submodule 'libsvgtiny' (git://git.netsurf-browser.org/libsvgtiny.git) registered for path 'libsvgtiny' Submodule 'libutf8proc' (http://git.netsurf-browser.org/libutf8proc.git/) registered for path 'libutf8proc' Submodule 'libwapcaplet' (git://git.netsurf-browser.org/libwapcaplet.git) registered for path 'libwapcaplet' Submodule 'netsurf' (git://git.netsurf-browser.org/netsurf.git) registered for path 'netsurf' Submodule 'nsgenbind' (git://git.netsurf-browser.org/nsgenbind.git) registered for path 'nsgenbind' ensure the submodules are updated git submodule update If a new submodule is required (e.g. new library) it must be added and then the .gitmodules file checked for correctnes. Once happy commit the changes. Note use the git uri for the submodules not http git submodule add git://git.netsurf-browser.org/libnslog.git vi .gitmodules git commit -a -m 'Add libnslog submodule' if adding a submodule the Makefile may require editing to build the library or utility for each submodule listed above the correct revision must be set. A utility target is provided in the makefile make checkout-release This obtains the most recent release tag for each submodule and checks it out, equivalent to: cd buildsystem git checkout origin/HEAD git checkout $(git describe --abbrev=0 --match="release/*" ) cd .. once each submodule has been updated in the top level netsurf-all directory. The modified submodules should then be added ready for commit git add buildsystem libcss libdom libhubbub libnsbmp libnsfb libnsgif libparserutils librosprite libsvgtiny libwapcaplet netsurf nsgenbind git commit -m 'Update submodules for 3.7 release' ensure the component version in the Makefile has been updated finally tag the branch for release git tag -s -m 'Official Release' release/ make the distribution tarball and check its contents make dist The git-archive-all module is needed for the dist step from https://github.com/Kentzo/git-archive-all 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-all.git * [new tag] release/3.7 -> release/3.7 If that verifies as correct git push && git push --tags and the release tag is pushed, too late now so be careful and check!