summaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
Diffstat (limited to 'release')
-rw-r--r--release/process.mdwn194
1 files changed, 112 insertions, 82 deletions
diff --git a/release/process.mdwn b/release/process.mdwn
index 9243a7c..1dbba81 100644
--- a/release/process.mdwn
+++ b/release/process.mdwn
@@ -17,6 +17,9 @@ buildsystem is first and has an extra step
Then libraries using the core buildsystem
+- libnspsl
+- libnslog
+- libnsutils
- libwapcaplet
- libparserutils
- libcss
@@ -29,8 +32,6 @@ Then libraries using the core buildsystem
- libsvgtiny
- nsgenbind
- libutf8proc
-- libnsutils
-- libnspsl
- libpencil
- librufl
@@ -51,7 +52,7 @@ Release for projects using buildsystem
--------------------------------------
We perform all releases from git simply by pushing a
-release/<version number> tag
+release/&gt;version number&lt; tag
Before creating the tag you should do some basic checks
@@ -62,12 +63,12 @@ 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`
+ .gitignore export-ignore
+ .gitattributes export-ignore
in your clone do
-`git branch -vv`
+ 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
@@ -77,23 +78,22 @@ 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>
+ git tag -s -m 'Official Release' release/&gt;version number&lt;
Ensure the version number in the tag matches the component version.
Now run
-`make dist`
+ make dist
if you get
-Makefile:45: \*\*\* Component Version "1.0" and GIT tag version "1.1" do
-not match. Stop.
+ 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>
+ git tag -d release/&lt;bad version&gt;
and try again
@@ -106,18 +106,21 @@ start over with fresh commits.
Next do a dry run push
-`git push -n --tags`
+ 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`
+ [gitano] Welcome to the NetSurf Gitano instance.
+ Counting objects: 1, done.
+ Writing objects: 100% (1/1), 800 bytes | 0 bytes/s, done.
+ Total 1 (delta 0), reused 0 (delta 0)
+ To ssh://nsgit@git.netsurf-browser.org/libutf8proc.git
+ * [new tag] release/1.3.1-3 -> release/1.3.1-3
If that verifies as correct
-`git push --tags`
-`git push`
+ git push --tags
+ git push
and the release tag is pushed, too late now so be careful and check!
@@ -126,142 +129,169 @@ Releasing NetSurf
ensure you are at the commit from which you want to create the release
-`git branch -vv`
+ 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
+- credits file copyright years (at a minimum)
+ - !NetSurf/Resources/en/credits.html,faf
+ - !NetSurf/Resources/it/credits.html,faf
+ - !NetSurf/Resources/nl/credits.html,faf
+- licence file copyright years (at a minimum)
+ - !NetSurf/Resources/en/licence.html,faf
+ - !NetSurf/Resources/it/licence.html,faf
+ - !NetSurf/Resources/nl/licence.html,faf
+- frontends/amiga/pkg/netsurf.readme
+- frontends/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`
+ git branch release/3.8
+ git checkout release/3.8
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;`
+ #include "testament.h"
+
+ const char * const netsurf_version = "3.8 (25th April 2016)";
+ const int netsurf_version_major = 3;
+ const int netsurf_version_minor = 8;
+
+update frontends/amiga/version.c along the same lines
+
+commit to the branch
-update amiga/version.c along the same lines
+ git commit -m 'Update version files for release'
-once you are sure everything is correct, committed push it to the repo
+once you are sure everything is correct and committed push it to the repo
-`git push origin release/3.1`
+ git push origin release/3.8
finally tag the branch for release
-`git tag -s -m 'Official Release' release/`<version number>
+ git tag -s -m 'Official Release' release/&lt;version number&gt;
Next do a dry run push
-`git push -n --tags`
+ 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`
+ [gitano] Welcome to the NetSurf Gitano instance.
+ To ssh://nsgit@git.netsurf-browser.org/netsurf.git
+ * [new tag] release/3.7 -> release/3.7
If that verifies as correct
-`git push --tags`
+ 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`
+ git checkout master
+ git merge -s ours heads/release/3.7
-Then edit desktop/version.c ready for the next release cycle
+Then edit desktop/version.c and frontends/amiga/version.c ready for the next release cycle
-`git add desktop/version.c`
-`git commit -m 'update version info for next development cycle'`
+ git add desktop/version.c frontends/amiga/version.c
+ git commit -m 'Update version for next development cycle'
finally push master
-`git push origin master`
+ git push origin master
-Please do ensure you \*thoroughly\* check your work at each step as
-mistakes are hard to fix once pushed.
+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)
+ git clone ssh://nsgit@git.netsurf-browser.org/netsurf-all.git
ensure ther submodules are initialised
-`git submodule init`
+ 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'`
+ 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`
+ git submodule update
-for each submodule listed above the correct revision must be set. A
-utility target is provided in the makefile
+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
-`make release-checkout`
+ git submodule add git://git.netsurf-browser.org/libnslog.git
+ vi .gitmodules
+ git commit -a -m 'Add libnslog submodule'
-This obtains the most recent release tag for each submodule and checks
-it out, equivalent to:
+if adding a submodule the Makefile may require editing to build the library or utility
-`cd buildsystem`
-`git checkout origin/HEAD`
-`git checkout $(git describe --abbrev=0 --match="release/*" )`
-`cd ..`
+for each submodule listed above the correct revision must be set. A utility target is provided in the makefile
-once each submodule has been updated in the top level netsurf-all
-directory. The modified submodules should then be added ready for commit
+ make checkout-release
-`git add buildsystem libcss libdom libhubbub libnsbmp libnsfb libnsgif libparserutils librosprite libsvgtiny libwapcaplet netsurf nsgenbind`
-`git commit -m 'Update for 3.1 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/`<version number>
+ git tag -s -m 'Official Release' release/<version number>
+
+make the distribution tarball and check its contents
+
+ make dist
Next do a dry run push
-`git push -n --tags`
+ 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`
+ [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 --tags`
+ git push && git push --tags
and the release tag is pushed, too late now so be careful and check!