summaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2020-05-23 10:41:52 +0100
committerVincent Sanders <vince@kyllikki.org>2020-05-23 10:41:52 +0100
commitad2d55e5dcdc45785c6584bb52adab52aa0355eb (patch)
tree694c55df0ce595a2a70fbe570a7ddcd9fba502f8 /release
parente7dee4b65c4814fac5d6a0a0ccf7358360e1991b (diff)
downloadnetsurf-wiki-ad2d55e5dcdc45785c6584bb52adab52aa0355eb.tar.gz
netsurf-wiki-ad2d55e5dcdc45785c6584bb52adab52aa0355eb.tar.bz2
update release process notes
Diffstat (limited to 'release')
-rw-r--r--release/corebuildsystem.mdwn78
-rw-r--r--release/netsurfbuildsystem.mdwn103
-rw-r--r--release/process.mdwn216
3 files changed, 203 insertions, 194 deletions
diff --git a/release/corebuildsystem.mdwn b/release/corebuildsystem.mdwn
new file mode 100644
index 0000000..5d54ed0
--- /dev/null
+++ b/release/corebuildsystem.mdwn
@@ -0,0 +1,78 @@
+[[!meta title="Releasing Core Buildsystem Components"]]
+[[!meta author="VincentSanders"]]
+[[!meta date="2020-05-23T10:15:07Z"]]
+
+# Release process 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.
+ 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
+
+and the release tag is pushed, too late now so be careful and check!
diff --git a/release/netsurfbuildsystem.mdwn b/release/netsurfbuildsystem.mdwn
new file mode 100644
index 0000000..8eb9299
--- /dev/null
+++ b/release/netsurfbuildsystem.mdwn
@@ -0,0 +1,103 @@
+[[!meta title="Releasing NetSurf"]]
+[[!meta author="VincentSanders"]]
+[[!meta date="2020-05-23T10:40:07Z"]]
+
+# 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.8
+ git checkout releasing/3.8
+
+update desktop/version.c to something like
+
+ #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
+
+ #define NETSURF_VERSION_MAJOR "3"
+ #define NETSURF_VERSION_MINOR_EXTERNAL "8"
+
+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.7 -> release/3.7
+
+Next the branch must be merged back to master.
+
+ git checkout master
+ git merge -s ours heads/releasing/3.7
+
+Then edit desktop/version.c and frontends/amiga/version.c ready for the next release cycle
+
+ git add desktop/version.c frontends/amiga/version.c
+ git commit -m 'Update version for next development cycle'
+
+Remove releasing branch
+
+ git branch -d releasing/3.8
+ Deleted branch releasing/3.8 (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.
diff --git a/release/process.mdwn b/release/process.mdwn
index 86b982b..13661fe 100644
--- a/release/process.mdwn
+++ b/release/process.mdwn
@@ -5,120 +5,46 @@
[[!toc]]
-Releasing a new version of NetSurf and libraries
-================================================
+# Releasing a new version of NetSurf and libraries
-firstly the libraries and tool sources must be created (only if they
+First the libraries and tool sources must be created (only if they
need an update) and then the browser itself.
-Process for projects using buildsystem
---------------------------------------
-
-We perform all releases from git simply by pushing a
-release/&gt;version number&lt; 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/&gt;version number&lt;
-
-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/&lt;bad version&gt;
-
-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.
- 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
-
-and the release tag is pushed, too late now so be careful and check!
-
-Release the buildsystem
------------------------
+# Release the buildsystem
The buildsystem must be released first.
-The buildsystem follows exactly the same process as releasing any
-other component except there is an additional step
+The buildsystem follows exactly the [[same process|release/corebuildsystem]]
+as releasing any other component 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 libnspsl
-----------------
+# Release libnspsl
The public suffix list library should be updated for each release
-after the buildsystem..
+after the buildsystem.
-Delete the public_suffix_list.dat file and run make, this will cause a
+Delete the 'public_suffix_list.dat' file and run make, this will cause a
fresh copy to be downloaded and converted. You will need the correct
perl modules installed for this step.
-Release libutf8proc
--------------------
+The [[release process|release/corebuildsystem]] is then the same as
+any other module using the core buildsystem.
+
+# Release libutf8proc
May have to update to upstream unless upstream have added a pkg-config file
-Other core buildsystem based libraries
---------------------------------------
+The [[release process|release/corebuildsystem]] is largely similar otherwise.
-libraries using the core buildsystem in order
+# Other core buildsystem based libraries
+
+libraries using the core buildsystem all useing the same [[release process|release/corebuildsystem]].
+
+The libraries to release in order:
- libwapcaplet
- libnslog
@@ -137,109 +63,12 @@ libraries using the core buildsystem in order
- librufl
-Releasing 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:
+# Releasing NetSurf
-- 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.8
- git checkout releasing/3.8
-
-update desktop/version.c to something like
-
- #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
-
- #define NETSURF_VERSION_MAJOR "3"
- #define NETSURF_VERSION_MINOR_EXTERNAL "8"
-
-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.7 -> release/3.7
-
-Next the branch must be merged back to master.
-
- git checkout master
- git merge -s ours heads/releasing/3.7
-
-Then edit desktop/version.c and frontends/amiga/version.c ready for the next release cycle
-
- git add desktop/version.c frontends/amiga/version.c
- git commit -m 'Update version for next development cycle'
-
-Remove releasing branch
-
- git branch -d releasing/3.8
- Deleted branch releasing/3.8 (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!
+NetSurf itself does not use the core buildsystem and has its own [[release process|release/netsurfbuildsystem]]
-Please do ensure you *thoroughly* check your work at each step as mistakes are hard to fix once pushed.
-Releasing the all source
-------------------------
+# Releasing the all source
clone the all repo
@@ -330,8 +159,7 @@ If that verifies as correct
and the release tag is pushed, too late now so be careful and check!
-Bugtracker
-----------
+# Bugtracker
The netsurf release version must be marked as released in mantis and the
next development version added if its not already present