diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2021-03-25 08:26:35 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2021-03-25 08:26:35 -0700 |
commit | c3980a3ea67de9f9f997b13ce47fd1e6aca361e4 (patch) | |
tree | fc9b35832f9a5d66a4da780b65c1f5b324a12f1d /admin/make-tarball.txt | |
parent | 8ab85f560eb78e77f743309ee7e331444dd7c5a2 (diff) | |
parent | 291a421c2e7420c36a0767f2c1e1d7317022f719 (diff) | |
download | emacs-c3980a3ea67de9f9f997b13ce47fd1e6aca361e4.tar.gz |
Merge from origin/emacs-27
291a421c2e * admin/make-tarball.txt: Improve and expand the instructi...
0e4795fc98 Fix preeditarea reporting wrong spot.
Diffstat (limited to 'admin/make-tarball.txt')
-rw-r--r-- | admin/make-tarball.txt | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 9caf22d7188..418cf91ae29 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -91,6 +91,12 @@ General steps (for each step, check for possible errors): versioned ChangeLog.N and commit that along with etc/HISTORY. Then you can tag that commit as the release. + Alternatively, you can commit and tag with the RC tag right away, + and delay the final tagging until you actually decide to make a + release and announce it. The "git tag" command can tag a specific + commit if you give it the SHA1 of that commit, even if additional + commits have been pushed in the meantime. + Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the following week, you can simply rename the file and use it for the actual release. If you need another release candidate, remember @@ -104,11 +110,11 @@ General steps (for each step, check for possible errors): Never replace an existing tarfile! If you need to fix something, always upload it with a different name. -4. autoreconf -i -I m4 --force - make bootstrap +4. autoreconf -i -I m4 --force + make bootstrap - make -C etc/refcards - make -C etc/refcards clean + make -C etc/refcards + make -C etc/refcards clean If some of the etc/refcards, especially the non-English ones, fail to build, you probably need to install some TeX/LaTeX packages, in @@ -122,13 +128,18 @@ General steps (for each step, check for possible errors): 5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the - files changed by M-x set-version. + files changed by M-x set-version. The easiest way of doing that + is "C-x v d ROOT-DIR RET", then go to the first modified file, + press 'M' to mark all modified files, and finally 'v' to commit + them. Make sure the commit log message mentions all the changes + in all modified files, as by default 'v' doesn't necessarily do + so. If someone else made a commit between step 1 and now, you need to repeat from step 4 onwards. (You can commit the files from step 2 and 3 earlier to reduce the chance of this.) -6. ./make-dist --snapshot --no-compress +6. ./make-dist --snapshot --no-compress Check the contents of the new tar with admin/diff-tar-files against the previous release (if this is the first pretest) or the @@ -136,6 +147,14 @@ General steps (for each step, check for possible errors): yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>. Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>. + ./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz + + Alternatively: + + tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp + tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp + diff -u old_tmp new_tmp + If this is the first pretest of a major release, just comparing with the previous release may overlook many new files. You can try something like 'find . | sort' in a clean repository, and compare the @@ -143,6 +162,7 @@ General steps (for each step, check for possible errors): 7. tar -xf emacs-NEW.tar; cd emacs-NEW ./configure --prefix=/tmp/emacs && make check && make 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 @@ -150,8 +170,23 @@ General steps (for each step, check for possible errors): M-x ediff. Especially check that Info files aren't built, and that no autotools (autoconf etc) run. -8. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG - TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. +8. You can now tag the release/pretest and push it together with the + last commit: + + cd EMACS_ROOT_DIR && git tag -a TAG -m "Emacs TAG" + git push + git push --tags + + Here TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. + For a release, if you are producing a release candidate first, use + emacs-XX.Y-rcN (N = 1, 2, ...) when you tar the RC, and add the + actual release tag later, when the official release tarball is + uploaded to ftp.gnu.org. When adding a tag later, it is safer to + use the SHA1 of the last commit which went into the release + tarball, in case there were some intervening commits since then: + + git tag -a TAG -m "Emacs TAG" SHA1 + git push --tags 9. Decide what compression schemes to offer. For a release, at least gz and xz: |