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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
-*- outline -*-
Here are most of the steps we (maintainers) follow when making a release.
We assume that the following environment variables are set:
GPG_KEY_ID - your gpg key ID
CURRENT_VERSION - the next release version
PREVIOUS_VERSION - the previous release version
* Making a snapshot release
** Update 'gnulib' git submodule:
git submodule foreach git pull origin master
git add gnulib
git commit -m 'Update gnulib'
** Run these commands, in this order:
./autogen.sh
./configure
make
make dist
# To prevent auto-updating '.version' file by GNUmakefile due to
# regenerated PO files, specify Makefile manually.
make -f Makefile distcheck
Then you will get a distribution tarball:
gettext-$CURRENT_VERSION-*.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
* Making an official release
** Create a branch for release
git checkout -b release-$CURRENT_VERSION
** 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/. Copy resulting matrix.texi
into gettext-runtime/doc/, and gettext-runtime/ABOUT-NLS will be
automatically regenerated in the next build process.
- 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} agree
with it, except for copyright header changes.
- gettext-runtime/po/Makefile.in.in
Update Origin version.
- gettext-runtime/m4/*.m4
Update version at the first line.
- gettext-runtime/intl/libgnuintl.in.h
Update LIBINTL_VERSION.
- gettext-tools/libgettextpo/gettext-po.in.h
Update LIBGETTEXTPO_VERSION.
- 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
Update po-mode-version-string, if there is any change.
- NEWS
- gettext-runtime/libasprintf/NEWS
- gettext-runtime/NEWS
Add news entries if any.
- djgpp/*
Update to the latest upstream.
** Update autopoint related files:
- gettext-tools/configure.ac
Update ARCHIVE_VERSION.
- gettext-tools/misc/autopoint.in
Update the 'case' statement around line 371 to include the latest release.
** 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.
** Create a release:
git clean -xdff
git checkout .
git commit --allow-empty -m "Release $CURRENT_VERSION"
git tag -u $GPG_KEY_ID $CURRENT_VERSION
./autogen.sh
./configure
make distcheck-hook
make
make dist
(cd gettext-tools/misc
./add-to-archive ../../gettext-$CURRENT_VERSION.tar.gz)
# To prevent auto-updating '.version' file by GNUmakefile due to
# regenerated PO files, specify Makefile manually.
make -f Makefile distcheck
** Upload tarballs:
gnulib/build-aux/gnupload --to ftp.gnu.org:gettext \
gettext-$CURRENT_VERSION.tar.{gz,xz,lz}
** Merge release-$CURRENT_VERSION branch to master and push the changes to the
remote repository:
git checkout master
git merge release-$CURRENT_VERSION
git push origin master
git push origin release-$CURRENT_VERSION
** Upload autopoint archive to alpha.gnu.org:
This is needed to compile git master after the release (as
autogen.sh fetches the archive).
xz gettext-tools/misc/archive.dir.tar
cp gettext-tools/misc/archive.dir.tar.xz archive.dir-$CURRENT_VERSION.tar.xz
gnulib/build-aux/gnupload \
--to alpha.gnu.org:gettext \
--symlink-regex archive.dir-$CURRENT_VERSION.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
cp build-aux/texinfo.tex 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
cp build-aux/texinfo.tex gettext-runtime/libasprintf
(cd gettext-runtime/libasprintf
LC_ALL=C ./gendocs.sh --email bug-gnu-gettext autosprintf "GNU autosprintf")
FIXME: Add a script to automate this process.
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.
** Announce on info-gnu
The announcement template can be generated with:
gnulib/build-aux/announce-gen \
--release-type stable \
--package-name gettext \
--previous-version $PREVIOUS_VERSION \
--current-version $CURRENT_VERSION \
--gpg-key-id $GPG_KEY_ID \
--url-directory ftp://ftp.gnu.org/gnu/gettext \
--bootstrap-tools=autoconf,automake,libtool,bison,gnulib \
--gnulib-version=$(cd gnulib && git describe)
* Submit a News entry on https://savannah.gnu.org/projects/gettext/
|