2015-11-15 01:35:50 +00:00
|
|
|
|
This document describes the release process used by GNU Emacs.
|
|
|
|
|
|
|
|
|
|
* RELEASE CYCLE
|
|
|
|
|
|
|
|
|
|
Each release cycle will be split into two periods.
|
|
|
|
|
|
|
|
|
|
** Phase one: development
|
|
|
|
|
|
|
|
|
|
The first phase of the release schedule is the "heads-down" working
|
2016-02-04 01:13:04 +00:00
|
|
|
|
period for new features, on the 'master' branch and several feature
|
2015-11-15 01:35:50 +00:00
|
|
|
|
branches.
|
|
|
|
|
|
2015-11-18 19:33:12 +00:00
|
|
|
|
** Phase two: fixing and stabilizing the release branch
|
2015-11-15 01:35:50 +00:00
|
|
|
|
|
|
|
|
|
Shortly before this phase, Emacs developers will be devoted to
|
|
|
|
|
figuring out what features to include in the next release and what
|
|
|
|
|
features to defer to a later release.
|
|
|
|
|
|
2015-11-18 19:33:12 +00:00
|
|
|
|
This phase is mostly spent fixing bugs and documenting new features
|
|
|
|
|
and changes on the "emacs-NN" branch. Actually, the default branch
|
2015-11-18 00:56:50 +00:00
|
|
|
|
for pushing any work in this phase should be "emacs-NN", except for
|
|
|
|
|
new features.
|
2015-11-15 01:35:50 +00:00
|
|
|
|
|
2015-11-15 01:35:50 +00:00
|
|
|
|
At the beginning of this phase, a release branch called "emacs-NN"
|
|
|
|
|
("NN" represents the major version number of the new Emacs release)
|
2016-02-04 01:13:04 +00:00
|
|
|
|
will be cut from 'master'. When that happens, the version number on
|
|
|
|
|
'master' should be incremented; use admin/admin.el's 'set-version'
|
2015-11-18 19:33:12 +00:00
|
|
|
|
command to do that, then commit the changes it made and push to
|
2016-02-04 01:13:04 +00:00
|
|
|
|
'master'. For major releases, also update the value of
|
|
|
|
|
'customize-changed-options-previous-release'.
|
2015-11-18 19:33:12 +00:00
|
|
|
|
|
|
|
|
|
The 2 main manuals, the User Manual and the Emacs Lisp Manual, need to
|
|
|
|
|
be proofread, preferably by at least 2 different persons, and any
|
|
|
|
|
uncovered problems fixed. This is a lot of work, so it is advisable
|
|
|
|
|
to divide the job between several people (see the checklist near the
|
|
|
|
|
end of this file).
|
2015-11-15 01:35:50 +00:00
|
|
|
|
|
2016-02-04 01:13:04 +00:00
|
|
|
|
In parallel to this phase, 'master' can receive new features, to be
|
2015-11-15 01:35:50 +00:00
|
|
|
|
released in the next release cycle. From time to time, the master
|
|
|
|
|
branches merges bugfix commits from the "emacs-NN" branch.
|
|
|
|
|
|
|
|
|
|
* RELEASE-CRITICAL BUGS
|
|
|
|
|
|
|
|
|
|
Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to
|
|
|
|
|
be addressed in the next release.
|
|
|
|
|
|
2015-11-20 22:40:43 +00:00
|
|
|
|
Currently, bug#19759 is the tracking bug for release of 25.1 and
|
|
|
|
|
bug#21966 is the tracking bug for release of 25.2. Say bug#123 needs
|
|
|
|
|
to be fixed for Emacs 25.1. Send a message to control@debbugs.gnu.org
|
|
|
|
|
that says:
|
2015-11-15 01:35:50 +00:00
|
|
|
|
|
|
|
|
|
block 19759 by 123
|
|
|
|
|
|
|
|
|
|
Change "block" to "unblock" to unblock the bug.
|
2004-06-20 21:50:53 +00:00
|
|
|
|
|
2005-04-01 01:44:36 +00:00
|
|
|
|
* TO BE DONE SHORTLY BEFORE RELEASE
|
2005-03-29 01:15:30 +00:00
|
|
|
|
|
2015-11-15 01:35:50 +00:00
|
|
|
|
** Make sure the Copyright date reflects the current year in the source
|
2016-02-04 01:13:04 +00:00
|
|
|
|
files. See 'admin/notes/years' for information about maintaining
|
2015-11-15 01:35:50 +00:00
|
|
|
|
copyright years for GNU Emacs.
|
|
|
|
|
|
2014-05-26 02:20:47 +00:00
|
|
|
|
** Make sure the necessary sources and scripts for any generated files
|
2015-11-18 19:33:12 +00:00
|
|
|
|
are included in the source tarball. (They don't need to be installed,
|
|
|
|
|
so e.g. admin/ is fine.)
|
|
|
|
|
|
|
|
|
|
** Regenerate AUTHORS by using admin/authors.el
|
|
|
|
|
(The instructions are at the beginning of that file.)
|
|
|
|
|
|
|
|
|
|
** Remove temporary +++/--- lines in NEWS.
|
|
|
|
|
But first make sure there are no unmarked entries, and update the
|
|
|
|
|
documentation (or decide no updates are necessary) for those that
|
|
|
|
|
aren't.
|
2014-05-26 02:20:47 +00:00
|
|
|
|
|
2009-07-11 03:06:44 +00:00
|
|
|
|
** Manuals
|
2013-08-13 07:04:10 +00:00
|
|
|
|
Check for node names using problematic characters:
|
|
|
|
|
find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
|
|
|
|
|
Sadly makeinfo does not warn about such characters.
|
|
|
|
|
|
2014-06-06 06:49:17 +00:00
|
|
|
|
Check for major new features added since the last release (e.g. new
|
|
|
|
|
lisp files), and add the relevant authors to the Acknowledgments in
|
|
|
|
|
doc/emacs/ack.texi and emacs.texi.
|
|
|
|
|
|
2015-11-18 19:33:12 +00:00
|
|
|
|
For major releases, rewrite the "Antinews" appendix of the User Manual
|
|
|
|
|
(doc/emacs/anti.texi) to describe features lost by downgrading to the
|
|
|
|
|
previous version. The way to do that is read NEWS, pick up the more
|
|
|
|
|
significant changes and new features in the upcoming release, then
|
|
|
|
|
describe the "benefits" from losing those features. Be funny, use
|
|
|
|
|
humor. The text written for the previous major release can serve as
|
|
|
|
|
good example.
|
|
|
|
|
|
|
|
|
|
Check cross-references between the manuals (e.g. from emacs to elisp)
|
2009-07-12 01:17:19 +00:00
|
|
|
|
are correct. You can use something like the following in the info
|
|
|
|
|
directory in the Emacs build tree:
|
|
|
|
|
|
2012-02-17 04:54:56 +00:00
|
|
|
|
emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
|
2009-07-12 01:17:19 +00:00
|
|
|
|
-f info-xref-check-all
|
2009-07-11 03:06:44 +00:00
|
|
|
|
|
2013-06-25 02:15:00 +00:00
|
|
|
|
Setting Info-directory-list avoids having system info pages confuse
|
|
|
|
|
things. References to external manuals will be flagged as
|
|
|
|
|
uncheckable. You should still check these, and also that each
|
|
|
|
|
external manual has an appropriate redirect in the file manual/.htaccess
|
|
|
|
|
in the web pages repository. E.g.:
|
|
|
|
|
Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
|
|
|
|
|
Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
|
|
|
|
|
|
2013-07-04 02:30:36 +00:00
|
|
|
|
Another tool you can use to check links is gnu.org's linc.py:
|
|
|
|
|
http://www.gnu.org/server/source/
|
|
|
|
|
|
2015-11-18 19:33:12 +00:00
|
|
|
|
You run this with something like:
|
2013-07-04 02:30:36 +00:00
|
|
|
|
|
|
|
|
|
cd /path/to/cvs/emacs-www
|
|
|
|
|
linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ .
|
|
|
|
|
|
|
|
|
|
Be warned that it is really, really slow (as in, can take ~ a full day
|
|
|
|
|
to check the manual/ directory). It is probably best to run it on a
|
2015-11-18 19:33:12 +00:00
|
|
|
|
single directory at a time from e.g. manual/html_node. It is very
|
2013-07-04 02:30:36 +00:00
|
|
|
|
inefficient, but may reveal a few things that info-xref does not.
|
|
|
|
|
|
2009-07-11 03:06:44 +00:00
|
|
|
|
make emacs.dvi, elisp.dvi, and deal with any errors (undefined
|
|
|
|
|
references etc) in the output. Break any overfull lines.
|
|
|
|
|
Underfull hboxes are not serious, but it can be nice to get rid of
|
|
|
|
|
them if a simple rephrasing or rearrangement will work.
|
|
|
|
|
|
2015-11-18 19:33:12 +00:00
|
|
|
|
Update the master menu and detailed menu (e.g. the antinews version).
|
2009-07-11 03:06:44 +00:00
|
|
|
|
The command texinfo-multiple-files-update can do this, but you
|
2015-11-18 19:33:12 +00:00
|
|
|
|
probably want to apply the results selectively (e.g. the current master
|
2009-07-11 03:06:44 +00:00
|
|
|
|
menu has better line-breaks than the automatic version). It includes
|
|
|
|
|
the menu-entry name (if there is one) as well as the node name - using
|
|
|
|
|
only the latter looks better. Also, it doesn't seem to handle nested
|
|
|
|
|
includes, so will miss edebug.texi etc.
|
|
|
|
|
|
2009-07-11 19:55:19 +00:00
|
|
|
|
Check for widow and orphan lines in the printed manual; make sure all
|
2015-11-18 19:33:12 +00:00
|
|
|
|
the pages really look OK in the manual as formatted. Orphans/widows
|
2009-07-11 19:55:19 +00:00
|
|
|
|
are cases where the first/last line of a paragraph is on its own at
|
|
|
|
|
the end/start of a page, or where the last word in a paragraph is on
|
|
|
|
|
its own at the start of a line. It looks better if you reword/respace
|
|
|
|
|
things to avoid these. (AFAIK, there is no way to find these except
|
|
|
|
|
paging through the whole manual.) This should be the very last thing
|
|
|
|
|
you do, since any change can alter the layout.
|
2012-05-08 06:44:18 +00:00
|
|
|
|
(Actually, there is probably little point in trying to do this.
|
|
|
|
|
It's only really relevant if printed versions of the manuals are going
|
|
|
|
|
to be published. End-users are not likely to print out all 1000+
|
|
|
|
|
pages of the manuals, and even if they do, the resulting page breaks
|
|
|
|
|
depend on what paper and font size they use. This also means that if
|
|
|
|
|
you _are_ going to do this, it should be done with the paper and font
|
|
|
|
|
size that the GNU Press are going to use when they print the manuals.
|
2015-11-18 19:33:12 +00:00
|
|
|
|
I think this is different to what you get if you just use e.g. 'make
|
2012-05-08 06:44:18 +00:00
|
|
|
|
emacs.pdf' (e.g., enable "smallbook").
|
2005-06-20 03:22:38 +00:00
|
|
|
|
|
2015-11-18 19:33:12 +00:00
|
|
|
|
** Try to reorder NEWS: most important things first, related items together.
|
|
|
|
|
|
|
|
|
|
** For a major release, add a "New in Emacs XX" section to faq.texi.
|
|
|
|
|
|
2009-07-16 03:30:31 +00:00
|
|
|
|
** Check the keybindings in the refcards are correct, and add any new ones.
|
|
|
|
|
What paper size are the English versions supposed to be on?
|
2009-07-16 03:28:04 +00:00
|
|
|
|
On Debian testing, the packages texlive-lang-czechslovak and
|
|
|
|
|
texlive-lang-polish will let you generate the cs-* and sk-* pdfs.
|
2012-04-30 07:46:03 +00:00
|
|
|
|
(You may need texlive-lang-cyrillic, texlive-lang-german for others.)
|
2009-07-16 03:28:04 +00:00
|
|
|
|
The Makefile rules did not work for me, I had to use something like:
|
|
|
|
|
csplain -output-format=pdf cs-refcard
|
2007-02-27 04:02:27 +00:00
|
|
|
|
|
2005-07-07 22:57:21 +00:00
|
|
|
|
** Ask maintainers of refcard translations to update them.
|
|
|
|
|
|
2007-10-06 01:52:18 +00:00
|
|
|
|
Emacs 22 translators:
|
2006-05-24 16:48:15 +00:00
|
|
|
|
|
|
|
|
|
LANG Translator Status
|
2015-11-15 01:32:12 +00:00
|
|
|
|
cs Pavel Janík
|
|
|
|
|
de Sven Joachim
|
|
|
|
|
fr Eric Jacoboni
|
|
|
|
|
pl Włodek Bzyl
|
|
|
|
|
pt-br Rodrigo Real
|
|
|
|
|
ru Alex Ott
|
|
|
|
|
sk Miroslav Vaško
|
2006-05-24 16:48:15 +00:00
|
|
|
|
|
2012-04-20 21:36:34 +00:00
|
|
|
|
** cusver-check from admin.el can help find new defcustoms missing
|
2012-04-20 04:03:55 +00:00
|
|
|
|
:version tags.
|
|
|
|
|
|
2015-10-15 21:59:43 +00:00
|
|
|
|
** Add a line to etc/HISTORY for the release version number and date.
|
|
|
|
|
|
2006-08-25 21:08:44 +00:00
|
|
|
|
* BUGS
|
|
|
|
|
|
2008-12-22 01:30:31 +00:00
|
|
|
|
** Check for modes which bind M-s that conflicts with a new global binding M-s
|
|
|
|
|
and change key bindings where necessary. The current list of modes:
|
|
|
|
|
|
2015-09-11 18:04:24 +00:00
|
|
|
|
1. Gnus binds 'M-s' to 'gnus-summary-search-article-forward'.
|
2008-12-22 01:30:31 +00:00
|
|
|
|
|
2015-09-11 18:04:24 +00:00
|
|
|
|
2. Minibuffer binds 'M-s' to 'next-matching-history-element'
|
2008-12-22 01:30:31 +00:00
|
|
|
|
(not useful any more since C-s can now search in the history).
|
|
|
|
|
|
2015-09-11 18:04:24 +00:00
|
|
|
|
3. 'center-line' in Text mode was already moved to the text formatting
|
|
|
|
|
keymap as 'M-o M-s' (thus this binding is not necessary any more
|
|
|
|
|
in 'nroff-mode-map' too and can be removed now from the nroff mode
|
|
|
|
|
because it can now use the global key binding 'M-o M-s' 'center-line').
|
2008-12-22 01:30:31 +00:00
|
|
|
|
|
2015-09-11 18:04:24 +00:00
|
|
|
|
4. PCL-CVS binds 'M-s' to 'cvs-status', and log-edit-mode binds it to
|
|
|
|
|
'log-edit-comment-search-forward'. Perhaps search commands
|
|
|
|
|
on the global key binding 'M-s' are useless in these modes.
|
2008-12-22 01:30:31 +00:00
|
|
|
|
|
2015-09-11 18:04:24 +00:00
|
|
|
|
5. Rmail binds '\es' to 'rmail-search'/'rmail-summary-search'.
|
2012-02-19 03:39:04 +00:00
|
|
|
|
|
|
|
|
|
|
2008-09-05 06:53:31 +00:00
|
|
|
|
* DOCUMENTATION
|
2008-02-02 01:16:50 +00:00
|
|
|
|
|
2005-03-31 15:20:45 +00:00
|
|
|
|
** Check the Emacs Tutorial.
|
|
|
|
|
|
2006-09-30 21:20:20 +00:00
|
|
|
|
The first line of every tutorial must begin with text ending in a
|
|
|
|
|
period (".", ASCII 0x2E) saying "Emacs Tutorial" in the respective
|
2007-09-21 04:06:09 +00:00
|
|
|
|
language. This should be followed by "See end for copying conditions",
|
|
|
|
|
likewise in the respective language.
|
2005-04-01 15:42:23 +00:00
|
|
|
|
|
|
|
|
|
After each file name, on the same line or the following line, come the
|
|
|
|
|
names of the people who have checked it.
|
|
|
|
|
|
2005-03-31 15:20:45 +00:00
|
|
|
|
SECTION READERS
|
|
|
|
|
----------------------------------
|
2016-01-02 18:33:17 +00:00
|
|
|
|
TUTORIAL
|
|
|
|
|
TUTORIAL.bg
|
|
|
|
|
TUTORIAL.cn
|
2015-11-15 01:32:12 +00:00
|
|
|
|
TUTORIAL.cs
|
2016-01-02 18:33:17 +00:00
|
|
|
|
TUTORIAL.de
|
2011-07-19 07:15:15 +00:00
|
|
|
|
TUTORIAL.eo
|
2015-11-15 01:32:12 +00:00
|
|
|
|
TUTORIAL.es
|
|
|
|
|
TUTORIAL.fr
|
2016-01-02 18:33:17 +00:00
|
|
|
|
TUTORIAL.he
|
2015-11-15 01:32:12 +00:00
|
|
|
|
TUTORIAL.it
|
|
|
|
|
TUTORIAL.ja
|
2011-07-19 07:15:15 +00:00
|
|
|
|
TUTORIAL.ko
|
2016-01-02 18:33:17 +00:00
|
|
|
|
TUTORIAL.nl
|
2015-11-15 01:32:12 +00:00
|
|
|
|
TUTORIAL.pl
|
|
|
|
|
TUTORIAL.pt_BR
|
2011-07-19 07:15:15 +00:00
|
|
|
|
TUTORIAL.ro
|
2016-01-02 18:33:17 +00:00
|
|
|
|
TUTORIAL.ru
|
2015-11-15 01:32:12 +00:00
|
|
|
|
TUTORIAL.sk
|
2016-01-02 18:33:17 +00:00
|
|
|
|
TUTORIAL.sl
|
|
|
|
|
TUTORIAL.sv
|
2015-11-15 01:32:12 +00:00
|
|
|
|
TUTORIAL.th
|
2011-07-19 07:15:15 +00:00
|
|
|
|
TUTORIAL.zh
|
2005-03-31 15:20:45 +00:00
|
|
|
|
|
2008-06-26 17:50:48 +00:00
|
|
|
|
** Check the manual.
|
|
|
|
|
|
2015-11-15 01:32:12 +00:00
|
|
|
|
abbrevs.texi
|
|
|
|
|
ack.texi
|
|
|
|
|
anti.texi
|
|
|
|
|
arevert-xtra.texi
|
|
|
|
|
basic.texi
|
|
|
|
|
buffers.texi
|
|
|
|
|
building.texi
|
|
|
|
|
calendar.texi
|
|
|
|
|
cal-xtra.texi
|
|
|
|
|
cmdargs.texi
|
|
|
|
|
commands.texi
|
|
|
|
|
custom.texi
|
|
|
|
|
dired.texi
|
|
|
|
|
dired-xtra.texi
|
|
|
|
|
display.texi
|
|
|
|
|
emacs.texi
|
|
|
|
|
emacs-xtra.texi
|
|
|
|
|
emerge-xtra.texi
|
|
|
|
|
entering.texi
|
|
|
|
|
files.texi
|
|
|
|
|
fixit.texi
|
|
|
|
|
fortran-xtra.texi
|
|
|
|
|
frames.texi
|
|
|
|
|
glossary.texi
|
|
|
|
|
help.texi
|
|
|
|
|
indent.texi
|
|
|
|
|
killing.texi
|
|
|
|
|
kmacro.texi
|
|
|
|
|
macos.texi
|
|
|
|
|
maintaining.texi
|
|
|
|
|
mark.texi
|
|
|
|
|
mini.texi
|
|
|
|
|
misc.texi
|
|
|
|
|
modes.texi
|
|
|
|
|
msdos.texi
|
|
|
|
|
msdos-xtra.texi
|
|
|
|
|
mule.texi
|
|
|
|
|
m-x.texi
|
|
|
|
|
package.texi
|
|
|
|
|
picture-xtra.texi
|
|
|
|
|
programs.texi
|
|
|
|
|
regs.texi
|
|
|
|
|
rmail.texi
|
|
|
|
|
screen.texi
|
|
|
|
|
search.texi
|
|
|
|
|
sending.texi
|
|
|
|
|
text.texi
|
|
|
|
|
trouble.texi
|
|
|
|
|
vc-xtra.texi
|
|
|
|
|
vc1-xtra.texi
|
|
|
|
|
windows.texi
|
|
|
|
|
xresources.texi
|
2008-06-26 17:50:48 +00:00
|
|
|
|
|
|
|
|
|
** Check the Lisp manual.
|
|
|
|
|
|
2015-11-15 01:32:12 +00:00
|
|
|
|
abbrevs.texi
|
|
|
|
|
anti.texi
|
|
|
|
|
back.texi
|
|
|
|
|
backups.texi
|
|
|
|
|
buffers.texi
|
|
|
|
|
commands.texi
|
|
|
|
|
compile.texi
|
|
|
|
|
control.texi
|
|
|
|
|
customize.texi
|
|
|
|
|
debugging.texi
|
|
|
|
|
display.texi
|
|
|
|
|
edebug.texi
|
2008-06-26 17:50:48 +00:00
|
|
|
|
elisp.texi
|
2015-11-15 01:32:12 +00:00
|
|
|
|
errors.texi
|
|
|
|
|
eval.texi
|
|
|
|
|
files.texi
|
|
|
|
|
frames.texi
|
|
|
|
|
functions.texi
|
|
|
|
|
hash.texi
|
|
|
|
|
help.texi
|
|
|
|
|
hooks.texi
|
2008-06-26 17:50:48 +00:00
|
|
|
|
index.texi
|
2015-11-15 01:32:12 +00:00
|
|
|
|
internals.texi
|
|
|
|
|
intro.texi
|
|
|
|
|
keymaps.texi
|
|
|
|
|
lists.texi
|
|
|
|
|
loading.texi
|
|
|
|
|
macros.texi
|
|
|
|
|
maps.texi
|
|
|
|
|
markers.texi
|
|
|
|
|
minibuf.texi
|
|
|
|
|
modes.texi
|
|
|
|
|
nonascii.texi
|
2016-01-02 18:33:17 +00:00
|
|
|
|
numbers.texi
|
2015-11-15 01:32:12 +00:00
|
|
|
|
objects.texi
|
|
|
|
|
os.texi
|
|
|
|
|
package.texi
|
|
|
|
|
positions.texi
|
|
|
|
|
processes.texi
|
|
|
|
|
searching.texi
|
|
|
|
|
sequences.texi
|
|
|
|
|
streams.texi
|
|
|
|
|
strings.texi
|
|
|
|
|
symbols.texi
|
|
|
|
|
syntax.texi
|
|
|
|
|
text.texi
|
|
|
|
|
tips.texi
|
|
|
|
|
variables.texi
|
|
|
|
|
windows.texi
|
2008-06-26 17:50:48 +00:00
|
|
|
|
|
2015-11-15 01:35:50 +00:00
|
|
|
|
* OTHER INFORMATION
|
|
|
|
|
|
2016-02-04 01:13:04 +00:00
|
|
|
|
For Emacs's versioning scheme, see 'admin/notes/versioning'.
|
2015-11-15 01:35:50 +00:00
|
|
|
|
|
|
|
|
|
For instructions to create pretest or release tarballs, announcements,
|
2016-02-04 01:13:04 +00:00
|
|
|
|
etc., see 'admin/make-tarball.txt'.
|
2015-11-15 01:35:50 +00:00
|
|
|
|
|
2004-06-28 09:03:00 +00:00
|
|
|
|
|
|
|
|
|
Local variables:
|
|
|
|
|
mode: outline
|
2006-05-24 16:48:15 +00:00
|
|
|
|
coding: utf-8
|
2004-06-28 09:03:00 +00:00
|
|
|
|
end:
|