4 |
|
|
5 |
For each step, check for possible errors. |
For each step, check for possible errors. |
6 |
|
|
7 |
1. cvs -q update -Pd |
1. cvs -q update -Pd |
8 |
|
|
9 |
2. Bootstrap to make 100% sure all elc files are up-to-date, and to |
2. Bootstrap to make 100% sure all elc files are up-to-date, and to |
10 |
make sure that the later tagged version will bootstrap, should it be |
make sure that the later tagged version will bootstrap, should it be |
19 |
M-x set-version RET). For a release, add released change log |
M-x set-version RET). For a release, add released change log |
20 |
entries (M-x add-release-logs RET). |
entries (M-x add-release-logs RET). |
21 |
|
|
22 |
5. rm configure; make bootstrap |
5. rm configure; make bootstrap |
23 |
|
|
24 |
6. Commit configure, README, AUTHORS, lisp/loaddefs.el, |
6. Commit configure, README, AUTHORS, lisp/loaddefs.el, |
25 |
lisp/cus-load.el, lisp/finder-inf.el, lisp/version.el, |
lisp/cus-load.el, lisp/finder-inf.el, lisp/version.el, |
26 |
man/emacs.texi. For a release, also commit the ChangeLog files in |
man/emacs.texi. For a release, also commit the ChangeLog files in |
27 |
all directories. |
all directories. |
28 |
|
|
29 |
7. make-dist --snapshot. Check the contents of the new tar with |
7. make-dist --snapshot. Check the contents of the new tar with |
30 |
admin/diff-tar-files against an older tar file. Some old pretest |
admin/diff-tar-files against an older tar file. Some old pretest |
31 |
tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/, while |
tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/, while |
32 |
old emacs tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>. |
old emacs tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>. |
33 |
|
|
34 |
8. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta |
8. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta |
35 |
|
|
36 |
9. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW |
9. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW |
37 |
configure && make && make -n install |
configure && make && make -n install |
38 |
Use `script' or M-x compile to save the compilation log in |
Use `script' or M-x compile to save the compilation log in |
39 |
compile-NEW.log and compare it against an old one. The easiest way |
compile-NEW.log and compare it against an old one. The easiest way |
40 |
to do that is to visit the old log in Emacs, change the version |
to do that is to visit the old log in Emacs, change the version |
41 |
number of the old Emacs to __, do the same with the new log and do |
number of the old Emacs to __, do the same with the new log and do |
42 |
M-x ediff. Especially check that Info files aren't built. |
M-x ediff. Especially check that Info files aren't built. |
43 |
|
|
44 |
10. cd EMACS_ROOT_DIR; cvs tag TAG |
10. cd EMACS_ROOT_DIR; cvs tag TAG |
45 |
TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a |
TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a |
46 |
release. |
release. |
47 |
|
|
48 |
11. admin/make-announcement OLD NEW |
11. admin/make-announcement OLD NEW |
49 |
This creates an announcement for pretests. OLD is the version used |
This creates an announcement for pretests. OLD is the version used |
50 |
to make deltas with respect to NEW. Anouncements for pretests need |
to make deltas with respect to NEW. Announcements for releases need |
51 |
to be crafted by hand. Use an older announcement to start with. |
to be crafted by hand. Use an older announcement to start with: |
52 |
|
look in ssh://fencepost.gnu.org/~pot/emacs-tarballs/. |
53 |
|
|
54 |
|
12. Now you should upload the files to the GNU ftp server. In order to |
55 |
|
do that, you must be registered as an Emacs maintainer and have your |
56 |
|
GPG key acknowledged by the ftp people. Mail <ftp-upload@gnu.org> |
57 |
|
for instructions. Once you are there, for each file FILE to be |
58 |
|
released, create a detached GPG binary signature and a clearsigned |
59 |
|
directive file like this: |
60 |
|
gpg -b FILE |
61 |
|
echo directory: emacs/pretest > FILE.directive (for a pretest) |
62 |
|
echo directory: emacs > FILE.directive (for a release) |
63 |
|
gpg --clearsign FILE.directive |
64 |
|
Upload by anonymous ftp to ftp://ftp-upload.gnu.org/incoming/ftp/ |
65 |
|
the files FILE, FILE.sig, FILE.directive.asc |
66 |
|
|
67 |
12. For the moment, put the tarballs on a public site and send a GPG |
13. After five minutes, verify that the files are visible at |
|
signed email to <maintainers@gnu.org> with the URLs of the tarballs |
|
|
and their md5sum signatures. As of 2003-10, the GNU maintainers are |
|
|
working on a better procedure. For reference, here are the previous |
|
|
instructions, which are no more valid after the break-in of 2003-08: |
|
|
==== |
|
|
For a pretest, do: |
|
|
rsync -aP emacs-NEW.tar.gz emacs-OLD-NEW.xdelta compile-NEW.log \ |
|
|
emacs-NEW.announce alpha.gnu.org:/home/alpha/gnu/emacs/pretest/. |
|
|
For a release, do: |
|
|
rsync -aP emacs-NEW.tar.gz emacs-OLD-NEW.xdelta \ |
|
|
alpha.gnu.org:/home/ftp/gnu/emacs/. |
|
|
|
|
|
13. Verify that the files are visible at |
|
68 |
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at |
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at |
69 |
ftp://ftp.gnu.org/gnu/emacs/ for a release. |
ftp://ftp.gnu.org/gnu/emacs/ for a release. |
70 |
|
|