]> code.delx.au - gnu-emacs/blobdiff - admin/make-tarball.txt
Rename `Emacs and Microsoft Windows' into `Microsoft Windows'.
[gnu-emacs] / admin / make-tarball.txt
index 8c477320bfb4309045db2a0e21e72afef66f6fd6..0fcba5b40c8184b8981dd187e8bf84434a6077e6 100644 (file)
@@ -1,54 +1,78 @@
 Instructions to create pretest or release tarballs.
--- originally written by Eli Zaretskii, amended by Francesco Potortì
+-- originally written by Gerd Moellmann, amended by Francesco Potortì
+   with the initial help of Eli Zaretskii
 
 For each step, check for possible errors.
 
-1.  cvs -q update -Pd
+1.   cvs -q update -Pd
 
 2.  Bootstrap to make 100% sure all elc files are up-to-date, and to
     make sure that the later tagged version will bootstrap, should it be
     necessary to check it out.
 
-3.  Set the version number (M-x load-file RET admin/admin.el RET, then
+3.  Regenerate Emacs' AUTHORS file (M-x load-file RET
+    lisp/emacs-lisp/authors.el RET, then M-x authors RET, then save
+    the *Authors* buffer).  This may require fixing syntactically
+    incorrect ChangeLog entries beforehand.
+
+4.  Set the version number (M-x load-file RET admin/admin.el RET, then
     M-x set-version RET).  For a release, add released change log
     entries (M-x add-release-logs RET).
 
-4.  rm configure; make bootstrap
+5.   rm configure; make bootstrap
+
+6.  Commit configure, README, AUTHORS, lisp/cus-load.el,
+    lisp/finder-inf.el, lisp/version.el, man/emacs.texi,
+    lispref/elisp.texi.  Copy lisp/loaddefs.el to lisp/ldefs-boot.el
+    and commit lisp/ldefs-boot.el.  For a release, also commit the
+    ChangeLog files in all directories.
 
-5.  Commit configure, loaddefs.el, cus-load.el, finder-inf.el, README,
-    emacs.texi.
+7.   make-dist --snapshot.  Check the contents of the new tar with
+     admin/diff-tar-files against an older tar file.  Some old pretest
+    tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/, while
+    old emacs tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
 
-6.  make-dist --snapshot.  Check the contents of the new tar with
-    admin/diff-tar-files against an older tar file.  Some old pretest
-    tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/.
+8.   xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta
 
-7.  Make xdeltas:
-    xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta
+9.   tar -zxf emacs-NEW.tar.gz; cd emacs-NEW
+     ./configure && make && make -n install
+    Use `script' or M-x compile to save the compilation log in
+    compile-NEW.log and compare it against an old one.  The easiest way
+    to do that is to visit the old log in Emacs, change the version
+    number of the old Emacs to __, do the same with the new log and do
+    M-x ediff.  Especially check that Info files aren't built.
 
-8.  tar -zxf emacs-NEW.tar.gz; cd NEW
-    Then, either using `script' or M-x compile, do
-     configure && make && make -n install
-    Save the compilation log in compile-NEW.log and compare it against
-    an old one.  The easiest way to do that is to visit the old log in
-    Emacs, change the version number of the old Emacs to __, do the same
-    with the new log and do M-x ediff. Especially check that Info files
-    aren't built.
+10.  cd EMACS_ROOT_DIR; cvs tag TAG
+    TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a
+    release.
 
-9.  `cvs tag TAG' in the toplevel Emacs dir.  TAG is
-    EMACS_PRETEST_XX_YY_ZZZ for a pretest, don't know for a release.
+11.  admin/make-announcement OLD NEW
+    This creates an announcement for pretests.  OLD is the version used
+    to make deltas with respect to NEW.  Announcements for releases need
+    to be crafted by hand.  Use an older announcement to start with:
+    look in ssh://fencepost.gnu.org/~pot/emacs-tarballs/.
 
-10. For pretests, make an announcement by selecting new data from the
-    change logs and save it into emacs-NEW.announce, don't know for a
-    release.  To get the new data from change logs, you can use:
-    cvs -q diff -b -r EMACS_PRETEST_XX_YY_ZZZ $(find -name ChangeLog|sort) |
-    sed -n -e 's/^=\+/\f/p' -e 's/^> //p' -e 's/^diff.*//p' \
-          -e 's/^RCS file: .cvsroot.emacs.emacs.\(.*\),v/\1/p'
+12. Now you should upload the files to the GNU ftp server.  In order to
+    do that, you must be registered as an Emacs maintainer and have your
+    GPG key acknowledged by the ftp people.  Mail <ftp-upload@gnu.org>
+    for instructions.  Once you are there, for each file FILE to be
+    released, create a detached GPG binary signature and a clearsigned
+    directive file like this:
+     gpg -b FILE
+     echo directory: emacs/pretest > FILE.directive      (for a pretest)
+     echo directory: emacs > FILE.directive              (for a release)
+     gpg --clearsign FILE.directive
+    Upload by anonymous ftp to ftp://ftp-upload.gnu.org/incoming/ftp/
+    the files FILE, FILE.sig, FILE.directive.asc
 
-11. rsync emacs-NEW.tar.gz emacs-OLD-NEW.xdelta compile-NEW.log \
-    emacs-new.announce alpha.gnu.org:/home/alpha/gnu/emacs/pretest/
+13. After five minutes, verify that the files are visible at
+    ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at
+    ftp://ftp.gnu.org/gnu/emacs/ for a release.
 
-12. Verify that after five minutes at most the files appear on
-    ftp://alpha.gnu.org/gnu/emacs/pretest/.
+14. For a pretest, let Richard Stallman <rms@gnu.org> know about the new pretest and
+    tell him to announce it using the announcement you prepared.  Remind
+    him to set a Reply-to header to <emacs-pretest-bug@gnu.org>.
+    For a release, Richard should prepare the announcement himself,
+    possibly starting from a previous announcment.
 
-13. Let Richard Stallman know about the new pretest and tell him to
-    announce it using the announcement you prepared.
+# arch-tag: c23c771f-ca26-4584-8a04-50ecf0989390