mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-11 09:20:51 +00:00
98 lines
4.3 KiB
Plaintext
98 lines
4.3 KiB
Plaintext
Instructions to create pretest or release tarballs.
|
|
-- 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
|
|
|
|
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. Regenerate Emacs' etc/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).
|
|
|
|
5. rm configure; make bootstrap
|
|
|
|
6. Commit configure, README, etc/AUTHORS, lisp/finder-inf.el,
|
|
lisp/version.el, man/emacs.texi, lispref/elisp.texi,
|
|
mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings,
|
|
mac/src/Emacs.r, nt/emacs.rc. 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.
|
|
|
|
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/>.
|
|
|
|
8. 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.
|
|
|
|
10. cd EMACS_ROOT_DIR; cvs tag TAG
|
|
TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY 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/.
|
|
|
|
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/ the files FILE,
|
|
FILE.sig, FILE.directive.asc.
|
|
For a release, place the files in the /incoming/ftp directory.
|
|
For a pretest, place the files in /incoming/alpha instead, so that
|
|
they appear on ftp://alpha.gnu.org/.
|
|
|
|
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.
|
|
|
|
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>.
|
|
|
|
15. Shortly before the release, cut the branch with the following commands:
|
|
|
|
cvs rtag EMACS_`NUMBER'_BASE
|
|
cvs rtag -b EMACS_`NUMBER'_RC -r EMACS_`NUMBER'_BASE
|
|
|
|
where `NUMBER' is the major version number of the release. This makes it
|
|
easier to see what changes have been applied to the branch with:
|
|
|
|
cvs diff -r EMACS_`NUMBER'_BASE -r EMACS_`NUMBER'_RC
|
|
|
|
or merge changes back to the trunk with "cvs update -j", if necessary.
|
|
|
|
After doing this, increase the version number on the trunk as per step 4.
|
|
|
|
16. For a release, Richard should prepare the announcement himself,
|
|
possibly starting from a previous announcment.
|
|
|
|
# arch-tag: c23c771f-ca26-4584-8a04-50ecf0989390
|