declare smobs in alloc.c
[bpt/emacs.git] / admin / FOR-RELEASE
index 20b75a5..b5bf673 100644 (file)
@@ -2,7 +2,19 @@ Tasks needed before the next release.
 
 * TO BE DONE SHORTLY BEFORE RELEASE
 
+** 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:
@@ -10,6 +22,28 @@ 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
@@ -31,12 +65,21 @@ 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.
-Regenerate the pdf versions in etc/refcards/.
 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
 
@@ -53,12 +96,17 @@ 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.
+
 * BUGS
 
 ** Check for modes which bind M-s that conflicts with a new global binding M-s
@@ -97,7 +145,7 @@ SECTION                  READERS
 ----------------------------------
 TUTORIAL             cyd
 TUTORIAL.bg          ogi
-TUTORIAL.cn
+TUTORIAL.cn          xfq
 TUTORIAL.cs          
 TUTORIAL.de          wl
 TUTORIAL.eo
@@ -105,7 +153,7 @@ TUTORIAL.es
 TUTORIAL.fr          
 TUTORIAL.he          eliz
 TUTORIAL.it          
-TUTORIAL.ja             
+TUTORIAL.ja          
 TUTORIAL.ko
 TUTORIAL.nl         Pieter Schoenmakers
 TUTORIAL.pl          
@@ -120,115 +168,109 @@ TUTORIAL.zh
 
 ** Check the manual.
 
-abbrevs.texi      cyd
-ack.texi          rgm
-anti.texi         cyd
-arevert-xtra.texi cyd
-basic.texi        cyd
-buffers.texi      cyd
-building.texi     cyd
-calendar.texi     rgm
-cal-xtra.texi     rgm
-cmdargs.texi      cyd
-commands.texi     cyd
-custom.texi       cyd
-dired.texi        cyd
-dired-xtra.texi   rgm
-display.texi      cyd
-emacs.texi        rgm
-emacs-xtra.texi   rgm
-emerge-xtra.texi  rgm
-entering.texi     cyd
-files.texi        cyd
-fixit.texi        cyd
-fortran-xtra.texi rgm
-frames.texi       cyd
-glossary.texi     rgm
-help.texi         cyd
-indent.texi       cyd
-killing.texi      cyd
-kmacro.texi       cyd
-macos.texi        rgm  (can't actually test any of it though)
-maintaining.texi  cyd
-mark.texi         cyd
-mini.texi         rgm
-misc.texi         cyd
-modes.texi        cyd
-msdog.texi        rgm  (can't actually test any of it though)
-  It was not obvious to me that the following is true (it could well be though):
-
-   Emacs on Windows automatically determines your default printer and
-   sets the variable `printer-name' to that printer's name.
-
-msdog-xtra.texi   rgm  (can't actually test any of it though)
-mule.texi         rgm  (not 100% sure about "Fontsets")
-m-x.texi          cyd
-package.texi      cyd
-picture-xtra.texi rgm
-programs.texi     cyd
-regs.texi         cyd
-rmail.texi        rgm
-screen.texi       cyd
-search.texi       cyd
-sending.texi      cyd
-text.texi         cyd
-trouble.texi      cyd
-vc-xtra.texi      cyd
-vc1-xtra.texi     cyd
-windows.texi      cyd
-xresources.texi   cyd
+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        
+msdog.texi        
+msdog-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      rgm
-advice.texi       cyd
+abbrevs.texi      
 anti.texi         
-back.texi         rgm
-backups.texi      cyd
-buffers.texi      cyd
-commands.texi     cyd
-compile.texi      cyd
-control.texi      cyd
-customize.texi    cyd
-debugging.texi    cyd
-display.texi      cyd
-edebug.texi       rgm
+back.texi         
+backups.texi      
+buffers.texi      
+commands.texi     
+compile.texi      
+control.texi      
+customize.texi    
+debugging.texi    
+display.texi      
+edebug.texi       
 elisp.texi
-errors.texi       rgm
-eval.texi         cyd
-files.texi        cyd
-frames.texi       cyd
-functions.texi    cyd
-hash.texi         cyd
-help.texi         cyd
-hooks.texi        rgm
+errors.texi       
+eval.texi         
+files.texi        
+frames.texi       
+functions.texi    
+hash.texi         
+help.texi         
+hooks.texi        
 index.texi
-internals.texi    rgm  cyd
-intro.texi        cyd
-keymaps.texi      cyd
-lists.texi        cyd
-loading.texi      cyd
-macros.texi       cyd
-maps.texi         rgm
-markers.texi      rgm
+internals.texi    
+intro.texi        
+keymaps.texi      
+lists.texi        
+loading.texi      
+macros.texi       
+maps.texi         
+markers.texi      
 minibuf.texi      
-modes.texi        cyd
-nonascii.texi     cyd
-numbers.texi      cyd
-objects.texi      cyd
-os.texi           cyd
-package.texi      rgm
-positions.texi    cyd
-processes.texi
-searching.texi    rgm
-sequences.texi    cyd
-streams.texi      cyd
-strings.texi      cyd
-symbols.texi      cyd
-syntax.texi       cyd
-text.texi         cyd
-tips.texi         rgm
-variables.texi    cyd
+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      
 
 \f