aboutsummaryrefslogtreecommitdiffstats
path: root/admin/release-process
diff options
context:
space:
mode:
authorXue Fuqiao2015-11-15 09:52:05 +0800
committerXue Fuqiao2015-11-15 09:52:05 +0800
commit9459456b50dc8dec071dd0106ecbf4c42291057e (patch)
tree4f84065dd08bc91029864e72fc0dbe56dbdfdac7 /admin/release-process
parentdcd5877a76557f4ce08bebee0d8919ad951a9f13 (diff)
parent9a4aa0f5945a03611ae29c516025dbd353bd26ab (diff)
downloademacs-9459456b50dc8dec071dd0106ecbf4c42291057e.tar.gz
emacs-9459456b50dc8dec071dd0106ecbf4c42291057e.zip
Merge branch 'release-process-lowercase'
; Rename admin/FOR-RELEASE to admin/release-process and document the ; release process
Diffstat (limited to 'admin/release-process')
-rw-r--r--admin/release-process333
1 files changed, 333 insertions, 0 deletions
diff --git a/admin/release-process b/admin/release-process
new file mode 100644
index 00000000000..4a0890f3e4b
--- /dev/null
+++ b/admin/release-process
@@ -0,0 +1,333 @@
1This document describes the release process used by GNU Emacs.
2
3* RELEASE CYCLE
4
5Each release cycle will be split into two periods.
6
7** Phase one: development
8
9The first phase of the release schedule is the "heads-down" working
10period for new features, on the `master' branch and several feature
11branches.
12
13** Phase two: bugfixes
14
15Shortly before this phase, Emacs developers will be devoted to
16figuring out what features to include in the next release and what
17features to defer to a later release.
18
19At the beginning of this phase, a release branch called "emacs-NN"
20("NN" represents the major version number of the new Emacs release)
21will be cut from `master'.
22
23This phase is spent fixing bugs and eliminating undocumented new
24features on the "emacs-NN" branch.
25
26In parallel to this phase, `master' can receive new features, to be
27released in the next release cycle. From time to time, the master
28branches merges bugfix commits from the "emacs-NN" branch.
29
30* RELEASE-CRITICAL BUGS
31
32Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to
33be addressed in the next release.
34
35Currently, bug#19759 is the tracking bug for release of 25.1. Say
36bug#123 needs to be fixed for Emacs 25.1. Send a message to
37control@debbugs.gnu.org that says:
38
39 block 19759 by 123
40
41Change "block" to "unblock" to unblock the bug.
42
43* TO BE DONE SHORTLY BEFORE RELEASE
44
45** Make sure the Copyright date reflects the current year in the source
46files. See `admin/notes/years' for information about maintaining
47copyright years for GNU Emacs.
48
49** Make sure the necessary sources and scripts for any generated files
50are included in the source tarfile. (They don't need to be installed,
51so eg admin/ is fine.)
52
53** Manuals
54Check for node names using problematic characters:
55 find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
56Sadly makeinfo does not warn about such characters.
57
58Check for major new features added since the last release (e.g. new
59lisp files), and add the relevant authors to the Acknowledgments in
60doc/emacs/ack.texi and emacs.texi.
61
62Check cross-references between the manuals (eg from emacs to elisp)
63are correct. You can use something like the following in the info
64directory in the Emacs build tree:
65
66emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
67 -f info-xref-check-all
68
69Setting Info-directory-list avoids having system info pages confuse
70things. References to external manuals will be flagged as
71uncheckable. You should still check these, and also that each
72external manual has an appropriate redirect in the file manual/.htaccess
73in the web pages repository. E.g.:
74Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
75Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
76
77Another tool you can use to check links is gnu.org's linc.py:
78http://www.gnu.org/server/source/
79
80You run this something like:
81
82cd /path/to/cvs/emacs-www
83linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ .
84
85Be warned that it is really, really slow (as in, can take ~ a full day
86to check the manual/ directory). It is probably best to run it on a
87single directory at a time from eg manual/html_node. It is very
88inefficient, but may reveal a few things that info-xref does not.
89
90
91make emacs.dvi, elisp.dvi, and deal with any errors (undefined
92references etc) in the output. Break any overfull lines.
93Underfull hboxes are not serious, but it can be nice to get rid of
94them if a simple rephrasing or rearrangement will work.
95
96Update the master menu and detailed menu (eg the antinews version).
97The command texinfo-multiple-files-update can do this, but you
98probably want to apply the results selectively (eg the current master
99menu has better line-breaks than the automatic version). It includes
100the menu-entry name (if there is one) as well as the node name - using
101only the latter looks better. Also, it doesn't seem to handle nested
102includes, so will miss edebug.texi etc.
103
104Check for widow and orphan lines in the printed manual; make sure all
105the pages really look ok in the manual as formatted. Orphans/widows
106are cases where the first/last line of a paragraph is on its own at
107the end/start of a page, or where the last word in a paragraph is on
108its own at the start of a line. It looks better if you reword/respace
109things to avoid these. (AFAIK, there is no way to find these except
110paging through the whole manual.) This should be the very last thing
111you do, since any change can alter the layout.
112(Actually, there is probably little point in trying to do this.
113It's only really relevant if printed versions of the manuals are going
114to be published. End-users are not likely to print out all 1000+
115pages of the manuals, and even if they do, the resulting page breaks
116depend on what paper and font size they use. This also means that if
117you _are_ going to do this, it should be done with the paper and font
118size that the GNU Press are going to use when they print the manuals.
119I think this is different to what you get if you just use eg 'make
120emacs.pdf' (e.g., enable "smallbook").
121
122** Check the keybindings in the refcards are correct, and add any new ones.
123What paper size are the English versions supposed to be on?
124On Debian testing, the packages texlive-lang-czechslovak and
125texlive-lang-polish will let you generate the cs-* and sk-* pdfs.
126(You may need texlive-lang-cyrillic, texlive-lang-german for others.)
127The Makefile rules did not work for me, I had to use something like:
128csplain -output-format=pdf cs-refcard
129
130** Ask maintainers of refcard translations to update them.
131
132Emacs 22 translators:
133
134LANG Translator Status
135cs Pavel Janík
136de Sven Joachim
137fr Eric Jacoboni
138pl Włodek Bzyl
139pt-br Rodrigo Real
140ru Alex Ott
141sk Miroslav Vaško
142
143** For a major release, add a "New in Emacs XX" section to faq.texi.
144
145** Remove temporary +++/--- lines in NEWS.
146
147** Try to reorder NEWS: most important things first, related items together.
148
149** Consider bumping customize-changed-options-previous-release.
150
151** cusver-check from admin.el can help find new defcustoms missing
152:version tags.
153
154** Add a line to etc/HISTORY for the release version number and date.
155
156* BUGS
157
158** Check for modes which bind M-s that conflicts with a new global binding M-s
159and change key bindings where necessary. The current list of modes:
160
1611. Gnus binds 'M-s' to 'gnus-summary-search-article-forward'.
162
1632. Minibuffer binds 'M-s' to 'next-matching-history-element'
164 (not useful any more since C-s can now search in the history).
165
1663. 'center-line' in Text mode was already moved to the text formatting
167 keymap as 'M-o M-s' (thus this binding is not necessary any more
168 in 'nroff-mode-map' too and can be removed now from the nroff mode
169 because it can now use the global key binding 'M-o M-s' 'center-line').
170
1714. PCL-CVS binds 'M-s' to 'cvs-status', and log-edit-mode binds it to
172 'log-edit-comment-search-forward'. Perhaps search commands
173 on the global key binding 'M-s' are useless in these modes.
174
1755. Rmail binds '\es' to 'rmail-search'/'rmail-summary-search'.
176
177
178* DOCUMENTATION
179
180** Check the Emacs Tutorial.
181
182The first line of every tutorial must begin with text ending in a
183period (".", ASCII 0x2E) saying "Emacs Tutorial" in the respective
184language. This should be followed by "See end for copying conditions",
185likewise in the respective language.
186
187After each file name, on the same line or the following line, come the
188names of the people who have checked it.
189
190SECTION READERS
191----------------------------------
192TUTORIAL cyd
193TUTORIAL.bg ogi
194TUTORIAL.cn xfq
195TUTORIAL.cs
196TUTORIAL.de wl
197TUTORIAL.eo
198TUTORIAL.es
199TUTORIAL.fr
200TUTORIAL.he eliz
201TUTORIAL.it
202TUTORIAL.ja
203TUTORIAL.ko
204TUTORIAL.nl Pieter Schoenmakers
205TUTORIAL.pl
206TUTORIAL.pt_BR
207TUTORIAL.ro
208TUTORIAL.ru Alex Ott
209TUTORIAL.sk
210TUTORIAL.sl Primoz PETERLIN
211TUTORIAL.sv Mats Lidell
212TUTORIAL.th
213TUTORIAL.zh
214
215** Check the manual.
216
217abbrevs.texi
218ack.texi
219anti.texi
220arevert-xtra.texi
221basic.texi
222buffers.texi
223building.texi
224calendar.texi
225cal-xtra.texi
226cmdargs.texi
227commands.texi
228custom.texi
229dired.texi
230dired-xtra.texi
231display.texi
232emacs.texi
233emacs-xtra.texi
234emerge-xtra.texi
235entering.texi
236files.texi
237fixit.texi
238fortran-xtra.texi
239frames.texi
240glossary.texi
241help.texi
242indent.texi
243killing.texi
244kmacro.texi
245macos.texi
246maintaining.texi
247mark.texi
248mini.texi
249misc.texi
250modes.texi
251msdos.texi
252msdos-xtra.texi
253mule.texi
254m-x.texi
255package.texi
256picture-xtra.texi
257programs.texi
258regs.texi
259rmail.texi
260screen.texi
261search.texi
262sending.texi
263text.texi
264trouble.texi
265vc-xtra.texi
266vc1-xtra.texi
267windows.texi
268xresources.texi
269
270** Check the Lisp manual.
271
272abbrevs.texi
273anti.texi
274back.texi
275backups.texi
276buffers.texi
277commands.texi
278compile.texi
279control.texi
280customize.texi
281debugging.texi
282display.texi
283edebug.texi
284elisp.texi
285errors.texi
286eval.texi
287files.texi
288frames.texi
289functions.texi
290hash.texi
291help.texi
292hooks.texi
293index.texi
294internals.texi
295intro.texi
296keymaps.texi
297lists.texi
298loading.texi
299macros.texi
300maps.texi
301markers.texi
302minibuf.texi
303modes.texi
304nonascii.texi
305numbers.texi Paul Eggert (24.4)
306objects.texi
307os.texi
308package.texi
309positions.texi
310processes.texi
311searching.texi
312sequences.texi
313streams.texi
314strings.texi
315symbols.texi
316syntax.texi
317text.texi
318tips.texi
319variables.texi
320windows.texi
321
322* OTHER INFORMATION
323
324For Emacs's versioning scheme, see `admin/notes/versioning'.
325
326For instructions to create pretest or release tarballs, announcements,
327etc., see `admin/make-tarball.txt'.
328
329
330Local variables:
331mode: outline
332coding: utf-8
333end: