summaryrefslogtreecommitdiff
path: root/release/allsource.mdwn
blob: 0abd940ea7bd0fb053c1df8af6703bfbff94ce78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[[!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'

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.

Update the `ChangeLog.md` as appropriate with rease version numbers etc.

finally tag the branch for release

    git tag -s -m 'Official Release' release/<version number>

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!