diff options
author | Vincent Sanders <vince@kyllikki.org> | 2017-02-14 10:06:59 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2017-02-14 10:06:59 +0000 |
commit | b5e04eb14eb7d6f4c1eb01d0ce98660034f1fa8b (patch) | |
tree | d72a8f5fb066ae1a35da3bd99b5c34c017b44c8f /release_process.mdwn | |
parent | 90a93ee16d3374309dd36842f75a034706ce40e8 (diff) | |
download | netsurf-wiki-b5e04eb14eb7d6f4c1eb01d0ce98660034f1fa8b.tar.gz netsurf-wiki-b5e04eb14eb7d6f4c1eb01d0ce98660034f1fa8b.tar.bz2 |
move release files into a separate directory
Diffstat (limited to 'release_process.mdwn')
-rw-r--r-- | release_process.mdwn | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/release_process.mdwn b/release_process.mdwn deleted file mode 100644 index 9243a7c..0000000 --- a/release_process.mdwn +++ /dev/null @@ -1,273 +0,0 @@ -[[!meta title="Release Process"]] -[[!meta author="DanielSilverstone"]] -[[!meta date="2016-11-19T12:05:07Z"]] - - -[[!toc]] - -Releasing a new version of NetSurf and libraries ------------------------------------------------- - -firstly the libraries and tool sources should be created (only if they -need an update) - -Order to release components in (if they require releasing) - -buildsystem is first and has an extra step - -Then libraries using the core buildsystem - -- libwapcaplet -- libparserutils -- libcss -- libhubbub -- libdom -- libnsbmp -- libnsgif -- librosprite -- libnsfb -- libsvgtiny -- nsgenbind -- libutf8proc -- libnsutils -- libnspsl -- libpencil -- librufl - -NetSurf itself is last - -Release of the buildsystem --------------------------- - -The buildsystem follows exactly the same process as below except there -is an additional step - -Because this is the buildsystem and provides the makefiles for all the -other source builds you must go to the CI server and ensure the -source-buildsystem job has successfully run and produced output in -<http://ci.netsurf-browser.org/builds/sources/> - -Release for projects using buildsystem --------------------------------------- - -We perform all releases from git simply by pushing a -release/<version number> tag - -Before creating the tag you should do some basic checks - -check the COMPONENT\_VERSION in the root Makefile matches the version -number you are releasing, if not change it and commit it so it does. - -Any files that should not be put in the distribution archive must be -placed in the .gitattributes file, as a minimum it should contain -attributes for the .gitignore and gitattributes files e.g. - -`.gitignore export-ignore` -`.gitattributes export-ignore` - -in your clone do - -`git branch -vv` - -ensure the top commit looks right and is what you want to tag, for extra -paranoia check the .git/config to ensure the origin is the correct -server. You do **not** have to tag from master, for example if this is a -maintenance release of an old edition and you are tagging from a branch -etc. just **ensure** you are where you want the release to be. - -Create the tag with - -`git tag -s -m 'Official Release' release/`<version number> - -Ensure the version number in the tag matches the component version. - -Now run - -`make dist` - -if you get - -Makefile:45: \*\*\* Component Version "1.0" and GIT tag version "1.1" do -not match. Stop. - -you did not get the tag and version numbers lined up, go back, remove -your local tag with - -`git tag -d release/`<bad version> - -and try again - -when you get a buildsystem-1.0.tar.gz (with appropriate version number) -well done - -Check the contents of the tar are what you intended to release and -adjust if not (obviously you will need to remove your local tag and -start over with fresh commits. - -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/buildsystem.git`](ssh://nsgit@git.netsurf-browser.org/buildsystem.git) -` * [new tag] release/1.0 -> release/1.0` - -If that verifies as correct - -`git push --tags` -`git push` - -and the release tag is pushed, too late now so be careful and check! - -Releasing NetSurf ------------------ - -ensure you are at the commit from which you want to create the release - -`git branch -vv` - -Remember that if you are releasing X.Y then amiga calls that X.Y+1 so -don't be confused and do update amiga stuff. - -check the resources for the frontends you are releasing are up to date - -- copyright years -- amiga/pkg/netsurf.readme and amiga/pkg/netsurf\_os3.readme -- windows/res/installer.nsi - -create a branch release/<version number> and switch to it - -`git branch release/3.1` -`git checkout release/3.1` - -update desktop/version.c to something like - -`#include "testament.h"` - -`const char * const netsurf_version = "3.6 (25th April 2016)";` -`const int netsurf_version_major = 3;` -`const int netsurf_version_minor = 6;` - -update amiga/version.c along the same lines - -once you are sure everything is correct, committed push it to the repo - -`git push origin release/3.1` - -finally 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/buildsystem.git`](ssh://nsgit@git.netsurf-browser.org/buildsystem.git) -` * [new tag] release/3.1 -> release/3.1` - -If that verifies as correct - -`git push --tags` - -and the release tag is pushed, too late now so be careful and check! - -Next the branch must be merged back to master. - -`git checkout master` -`git merge -s ours heads/release/3.1` - -Then edit desktop/version.c ready for the next release cycle - -`git add desktop/version.c` -`git commit -m 'update version info for next development cycle'` - -finally push master - -`git push origin master` - -Please do ensure you \*thoroughly\* check your work at each step as -mistakes are hard to fix once pushed. - -Releasing the all source ------------------------- - -clone the all repo - -`git clone `[`ssh://nsgit@git.netsurf-browser.org/netsurf-all.git`](ssh://nsgit@git.netsurf-browser.org/netsurf-all.git) - -ensure ther submodules are initialised - -`git submodule init` - -output will be something like - -`Submodule 'buildsystem' () registered for path 'buildsystem'` -`Submodule 'libcss' () registered for path 'libcss'` -`Submodule 'libdom' () registered for path 'libdom'` -`Submodule 'libhubbub' () registered for path 'libhubbub'` -`Submodule 'libnsbmp' () registered for path 'libnsbmp'` -`Submodule 'libnsfb' () registered for path 'libnsfb'` -`Submodule 'libnsgif' () registered for path 'libnsgif'` -`Submodule 'libparserutils' () registered for path 'libparserutils'` -`Submodule 'libpencil' () registered for path 'libpencil'` -`Submodule 'librosprite' () registered for path 'librosprite'` -`Submodule 'librufl' () registered for path 'librufl'` -`Submodule 'libsvgtiny' () registered for path 'libsvgtiny'` -`Submodule 'libwapcaplet' () registered for path 'libwapcaplet'` -`Submodule 'netsurf' () registered for path 'netsurf'` -`Submodule 'nsgenbind' () registered for path 'nsgenbind'` - -ensure the submodules are updated - -`git submodule update` - -for each submodule listed above the correct revision must be set. A -utility target is provided in the makefile - -`make release-checkout` - -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 for 3.1 release'` - -finally 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/buildsystem.git`](ssh://nsgit@git.netsurf-browser.org/buildsystem.git) -` * [new tag] release/3.1 -> release/3.1` - -If that verifies as correct - -`git push --tags` - -and the release tag is pushed, too late now so be careful and check! - -Bugtracker ----------- - -The netsurf release version must be marked as released in mantis and the -next development version added if its not already present - |