| 1 |
Instructions to create pretest or release tarballs. |
|---|
| 2 |
-- originally written by Gerd Moellmann, amended by Francesco Potortì |
|---|
| 3 |
with the initial help of Eli Zaretskii |
|---|
| 4 |
|
|---|
| 5 |
For each step, check for possible errors. |
|---|
| 6 |
|
|---|
| 7 |
1. cvs -q update -Pd |
|---|
| 8 |
|
|---|
| 9 |
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 |
|---|
| 11 |
necessary to check it out. |
|---|
| 12 |
|
|---|
| 13 |
3. Regenerate Emacs' AUTHORS file (M-x load-file RET |
|---|
| 14 |
lisp/emacs-lisp/authors.el RET, then M-x authors RET, then save |
|---|
| 15 |
the *Authors* buffer). This may require fixing syntactically |
|---|
| 16 |
incorrect ChangeLog entries beforehand. |
|---|
| 17 |
|
|---|
| 18 |
4. Set the version number (M-x load-file RET admin/admin.el RET, then |
|---|
| 19 |
M-x set-version RET). For a release, add released change log |
|---|
| 20 |
entries (M-x add-release-logs RET). |
|---|
| 21 |
|
|---|
| 22 |
5. rm configure; make bootstrap |
|---|
| 23 |
|
|---|
| 24 |
6. Commit configure, README, AUTHORS, lisp/version.el, |
|---|
| 25 |
man/emacs.texi, lispref/elisp.texi, |
|---|
| 26 |
mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings, |
|---|
| 27 |
mac/src/Emacs.r, nt/emacs.rc. Copy lisp/loaddefs.el to |
|---|
| 28 |
lisp/ldefs-boot.el and commit lisp/ldefs-boot.el. For a release, |
|---|
| 29 |
also commit the ChangeLog files in all directories. |
|---|
| 30 |
|
|---|
| 31 |
7. make-dist --snapshot. Check the contents of the new tar with |
|---|
| 32 |
admin/diff-tar-files against an older tar file. Some old pretest |
|---|
| 33 |
tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/, while |
|---|
| 34 |
old emacs tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>. |
|---|
| 35 |
|
|---|
| 36 |
8. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta |
|---|
| 37 |
|
|---|
| 38 |
9. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW |
|---|
| 39 |
./configure && make && make -n install |
|---|
| 40 |
Use `script' or M-x compile to save the compilation log in |
|---|
| 41 |
compile-NEW.log and compare it against an old one. The easiest way |
|---|
| 42 |
to do that is to visit the old log in Emacs, change the version |
|---|
| 43 |
number of the old Emacs to __, do the same with the new log and do |
|---|
| 44 |
M-x ediff. Especially check that Info files aren't built. |
|---|
| 45 |
|
|---|
| 46 |
10. cd EMACS_ROOT_DIR; cvs tag TAG |
|---|
| 47 |
TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a |
|---|
| 48 |
release. |
|---|
| 49 |
|
|---|
| 50 |
11. admin/make-announcement OLD NEW |
|---|
| 51 |
This creates an announcement for pretests. OLD is the version used |
|---|
| 52 |
to make deltas with respect to NEW. Announcements for releases need |
|---|
| 53 |
to be crafted by hand. Use an older announcement to start with: |
|---|
| 54 |
look in ssh://fencepost.gnu.org/~pot/emacs-tarballs/. |
|---|
| 55 |
|
|---|
| 56 |
12. Now you should upload the files to the GNU ftp server. In order to |
|---|
| 57 |
do that, you must be registered as an Emacs maintainer and have your |
|---|
| 58 |
GPG key acknowledged by the ftp people. Mail <ftp-upload@gnu.org> |
|---|
| 59 |
for instructions. Once you are there, for each file FILE to be |
|---|
| 60 |
released, create a detached GPG binary signature and a clearsigned |
|---|
| 61 |
directive file like this: |
|---|
| 62 |
gpg -b FILE |
|---|
| 63 |
echo directory: emacs/pretest > FILE.directive (for a pretest) |
|---|
| 64 |
echo directory: emacs > FILE.directive (for a release) |
|---|
| 65 |
gpg --clearsign FILE.directive |
|---|
| 66 |
Upload by anonymous ftp to ftp://ftp-upload.gnu.org/ the files FILE, |
|---|
| 67 |
FILE.sig, FILE.directive.asc. |
|---|
| 68 |
For a release, place the files in the /incoming/ftp directory. |
|---|
| 69 |
For a pretest, place the files in /incoming/alpha instead, so that |
|---|
| 70 |
they appear on ftp://alpha.gnu.org/. |
|---|
| 71 |
|
|---|
| 72 |
13. After five minutes, verify that the files are visible at |
|---|
| 73 |
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at |
|---|
| 74 |
ftp://ftp.gnu.org/gnu/emacs/ for a release. |
|---|
| 75 |
|
|---|
| 76 |
14. For a pretest, let Richard Stallman <rms@gnu.org> know about the |
|---|
| 77 |
new pretest and tell him to announce it using the announcement you |
|---|
| 78 |
prepared. Remind him to set a Reply-to header to |
|---|
| 79 |
<emacs-pretest-bug@gnu.org>. For a release, Richard should prepare |
|---|
| 80 |
the announcement himself, possibly starting from a previous |
|---|
| 81 |
announcment. |
|---|
| 82 |
|
|---|
| 83 |
# arch-tag: c23c771f-ca26-4584-8a04-50ecf0989390 |
|---|