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