summaryrefslogtreecommitdiffstats
path: root/Admin/release-steps
blob: 19474345b922fe77998ec05aabab16ff4c59bbbf (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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
Release procedure
============================================================================
* Create a branch for release

    git checkout -b release-0.XX

* Update 'gnulib' git submodule:

    git submodule foreach git pull origin master
    git commit -m 'Update gnulib'

* Update files:

  - gettext-runtime/ABOUT-NLS
  - gettext-runtime/doc/matrix.texi

    Update with information from the Translation Project, by running
    run.sh in gettext-runtime/doc/Admin/.

  - gettext-runtime/intl/locale.alias

    Update with glibc's intl/locale.alias.

  - gettext-runtime/intl/localcharset.h
  - gettext-runtime/intl/localcharset.c
  - gettext-runtime/intl/config.charset

    Update with libcharset inside libiconv.  Check that
    gnulib/lib/{localcharset.h,localcharset.c,config.charset} agrees
    with it, except for copyright header changes.

  - gettext-runtime/po/Makefile.in.in

    Update Origin version, if this file has changed since the last
    release.

  - gettext-runtime/m4/po.m4
  - gettext-runtime/po/Makefile.in.in
  - gettext-runtime/intl/libgnuintl.in.h
  - gettext-tools/libgettextpo/gettext-po.in.h

    Update the version numbers.

  - gettext-runtime/intl/Makefile.in
  - gettext-tools/libgettextpo/Makefile.am

    Update -version-info arguments, according to libtool versioning
    (info "(libtool) Updating version info").

      * increment LTV_REVISION,
      * if any functions/classes have been added, removed or changed, increment
        LTV_CURRENT and set LTV_REVISION to 0,
      * if any functions/classes have been added, increment LTV_AGE,
      * if backwards compatibility has been broken, set LTV_AGE to 0.

  - gettext-tools/misc/po-mode.el

    Bump po-mode-version-string.

  - NEWS
  - gettext-runtime/libasprintf/NEWS
  - gettext-runtime/NEWS

  - djgpp/*

* Run these commands, in this order:

    ./autogen.sh
    ./configure
    make distcheck-hook
    make
    (cd gettext-tools/examples/po && make update-po)
    make distcheck

  Then you will get a distribution tarball:

    gettext-0.XX-*.tar.xz

  Rename it e.g. gettext-ss.tar.xz

* Test the snapshot tarball.  If it seems good, then upload to
  alpha.gnu.org:

    gnulib/build-aux/gnupload --to alpha.gnu.org:gettext \
                              gettext-ss.tar.xz

  Notify translators and testers, by sending an email to:

    coordinator@translationproject.org
    platform-testers@gnu.org

* Once you get enough translation updates, update translations:

    rsync -Lrtvz translationproject.org::tp/latest/gettext-runtime/ \
          gettext-runtime/po
    rsync -Lrtvz translationproject.org::tp/latest/gettext-tools/ \
          gettext-tools/po
    rsync -Lrtvz translationproject.org::tp/latest/gettext-examples/ \
          gettext-tools/examples/po

  Adjust LINGUAS files if any of the languages has been added or
  removed since the last release.  Commit the changes.

* Regenerate POT and PO files with the built tools

    PATH="$PWD/gettext-tools/src:$PWD/gettext-tools/misc:$PATH" \
    gettext_datadir="$PWD/gettext-tools/misc" \
    make maintainer-update-po

  Note: Do not commit the generated PO files after "make dist".

* Update autopoint related files:

  - gettext-tools/misc/autopoint.in

    Update the case statement to include the latest release.

  - gettext-tools/tests/autopoint-[23]

    Update required_gettext_version.

  and commit the changes.

* Update all ChangeLogs:

    ./Admin/update-changelog

  and commit the changes.

* Create a release:

    git clean -xdff
    git checkout .
    git tag -u <gpg-key-id> v0.XX
    ./autogen.sh
    ./configure
    make distcheck-hook
    make
    make distcheck
    (cd gettext-tools/misc
     ./add-to-archive ../../gettext-0.XX.tar.gz)
    make
    make distcheck

* Upload tarballs:

    gnulib/build-aux/gnupload --to ftp.gnu.org:gettext gettext-0.XX.tar.{gz,xz}

* Merge release-0.XX branch to master and push the changes to the
  remote repository:

    git checkout master
    git merge release-0.XX
    git push
    git push --tags

* Upload autopoint archive to alpha.gnu.org:

    xz gettext-tools/misc/archive.dir.tar
    cp gettext-tools/misc/archive.dir.tar.xz archive.dir-0.XX.tar.xz
    gnulib/build-aux/gnupload --to alpha.gnu.org:gettext \
                              --symlink-regex archive.dir-0.XX.tar.xz

* Update the homepage on www.gnu.org:

  - Bump the version number in gettext.html.
  - Update FAQ.html from gettext-tools/doc/FAQ.html.

* Regenerate the documentation for www.gnu.org:

    cp gnulib/build-aux/gendocs.sh gettext-tools/doc
    cp gnulib/doc/gendocs_template gettext-tools/doc
    cp -p gettext-runtime/doc/*.texi gettext-tools/doc
    (cd gettext-tools/doc
     LC_ALL=C ./gendocs.sh --email bug-gnu-gettext gettext "GNU gettext")

    cp gnulib/build-aux/gendocs.sh gettext-runtime/libasprintf
    cp gnulib/doc/gendocs_template gettext-runtime/libasprintf
    (cd gettext-runtime/libasprintf
     LC_ALL=C ./gendocs.sh --email bug-gnu-gettext autosprintf "GNU autosprintf")

  Copy the resulting manual/ directories.  Commit the resulting
  manual/ directories in CVS, and for every removed HTML file (that
  corresponds to a deleted node) add a line to the .symlinks file in
  the same directory.

* Submit a News entry on https://savannah.gnu.org/projects/gettext/

* Announce on info-gnu