unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
blob 672cab4b9561d1c26d754503810d363c53dcd8c2 9386 bytes (raw)
name: admin/RELEASE-PROCESS 	 # note: path name is non-authoritative(*)

  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
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
 
This document describes the release process used by GNU Emacs.

* RELEASE CYCLE

Each release cycle will be split into three periods.

** Phase one: development

The first phase of the release schedule is the "heads-down" working
period for new features.

** Phase two: feature freeze

Shortly before the feature freeze, 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.

During the feature freeze, no new features will be accepted in
`master'.  It ensures that sufficient share of the release cycle is
dedicated to QA.

When the feature freeze is over, a release branch called "emacs-NN"
("NN" represents the major version number of the new Emacs release)
will be cut from `master'.

** Phase three: bugfixes

The last phase of a release cycle is spent fixing bugs and eliminating
undocumented new features on the "emacs-NN" branch.

In parallel to this phase, `master' can receive new features, to be
released in the next release cycle.  From time to time, the master
branches merges bugfix commits from the "emacs-NN" branch.

* TO BE DONE SHORTLY BEFORE RELEASE

** Make sure the Copyright date reflects the current year in the source
files.  See `admin/notes/years' for information about maintaining
copyright years for GNU Emacs.

** Make sure the necessary sources and scripts for any generated files
are included in the source tarfile.  (They don't need to be installed,
so eg admin/ is fine.)

** Manuals
Check for node names using problematic characters:
  find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
Sadly makeinfo does not warn about such characters.

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.

Check cross-references between the manuals (eg from emacs to elisp)
are correct.  You can use something like the following in the info
directory in the Emacs build tree:

emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
  -f info-xref-check-all

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/

Another tool you can use to check links is gnu.org's linc.py:
http://www.gnu.org/server/source/

You run this something like:

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
single directory at a time from eg manual/html_node.  It is very
inefficient, but may reveal a few things that info-xref does not.


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.

Update the master menu and detailed menu (eg the antinews version).
The command texinfo-multiple-files-update can do this, but you
probably want to apply the results selectively (eg the current master
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.

Check for widow and orphan lines in the printed manual; make sure all
the pages really look ok in the manual as formatted.  Orphans/widows
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.
(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.
I think this is different to what you get if you just use eg 'make
emacs.pdf' (e.g., enable "smallbook").

** Check the keybindings in the refcards are correct, and add any new ones.
What paper size are the English versions supposed to be on?
On Debian testing, the packages texlive-lang-czechslovak and
texlive-lang-polish will let you generate the cs-* and sk-* pdfs.
(You may need texlive-lang-cyrillic, texlive-lang-german for others.)
The Makefile rules did not work for me, I had to use something like:
csplain -output-format=pdf cs-refcard

** Ask maintainers of refcard translations to update them.

Emacs 22 translators:

LANG	Translator            Status
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

** For a major release, add a "New in Emacs XX" section to faq.texi.

** Remove temporary +++/--- lines in NEWS.

** Try to reorder NEWS: most important things first, related items together.

** Consider bumping customize-changed-options-previous-release.

** cusver-check from admin.el can help find new defcustoms missing
:version tags.

** Add a line to etc/HISTORY for the release version number and date.

* BUGS

** 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:

1. Gnus binds 'M-s' to 'gnus-summary-search-article-forward'.

2. Minibuffer binds 'M-s' to 'next-matching-history-element'
   (not useful any more since C-s can now search in the history).

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').

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.

5. Rmail binds '\es' to 'rmail-search'/'rmail-summary-search'.


* DOCUMENTATION

** Check the Emacs Tutorial.

The first line of every tutorial must begin with text ending in a
period (".", ASCII 0x2E) saying "Emacs Tutorial" in the respective
language. This should be followed by "See end for copying conditions",
likewise in the respective language.

After each file name, on the same line or the following line, come the
names of the people who have checked it.

SECTION                  READERS
----------------------------------
TUTORIAL             cyd
TUTORIAL.bg          ogi
TUTORIAL.cn          xfq
TUTORIAL.cs
TUTORIAL.de          wl
TUTORIAL.eo
TUTORIAL.es
TUTORIAL.fr
TUTORIAL.he          eliz
TUTORIAL.it
TUTORIAL.ja
TUTORIAL.ko
TUTORIAL.nl	     Pieter Schoenmakers
TUTORIAL.pl
TUTORIAL.pt_BR
TUTORIAL.ro
TUTORIAL.ru          Alex Ott
TUTORIAL.sk
TUTORIAL.sl          Primoz PETERLIN
TUTORIAL.sv          Mats Lidell
TUTORIAL.th
TUTORIAL.zh

** Check the manual.

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

** Check the Lisp manual.

abbrevs.texi
anti.texi
back.texi
backups.texi
buffers.texi
commands.texi
compile.texi
control.texi
customize.texi
debugging.texi
display.texi
edebug.texi
elisp.texi
errors.texi
eval.texi
files.texi
frames.texi
functions.texi
hash.texi
help.texi
hooks.texi
index.texi
internals.texi
intro.texi
keymaps.texi
lists.texi
loading.texi
macros.texi
maps.texi
markers.texi
minibuf.texi
modes.texi
nonascii.texi
numbers.texi      Paul Eggert (24.4)
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

* OTHER INFORMATION

For Emacs's versioning scheme, see `admin/notes/versioning'.

For instructions to create pretest or release tarballs, announcements,
etc., see `admin/make-tarball.txt'.

\f
Local variables:
mode: outline
coding: utf-8
end:

debug log:

solving 672cab4 ...
found 672cab4 in https://yhetil.org/emacs-devel/CAAF+z6Fjp76wHo-XY+dum6A1dXKC3+VZeTAhQrEGWuLpQqSVBA@mail.gmail.com/
found 286b90e in https://git.savannah.gnu.org/cgit/emacs.git
preparing index
index prepared:
100644 286b90ea5282cfb239a3ddd49f55b36f8ff4ccf9	admin/RELEASE-PROCESS

applying [1/1] https://yhetil.org/emacs-devel/CAAF+z6Fjp76wHo-XY+dum6A1dXKC3+VZeTAhQrEGWuLpQqSVBA@mail.gmail.com/
diff --git a/admin/RELEASE-PROCESS b/admin/RELEASE-PROCESS
index 286b90e..672cab4 100644

Checking patch admin/RELEASE-PROCESS...
Applied patch admin/RELEASE-PROCESS cleanly.

index at:
100644 672cab4b9561d1c26d754503810d363c53dcd8c2	admin/RELEASE-PROCESS

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).