aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2021-03-25 17:24:43 +0200
committerEli Zaretskii2021-03-25 17:24:43 +0200
commit291a421c2e7420c36a0767f2c1e1d7317022f719 (patch)
tree1c9d4973e2621a8e914a021ce4a32e47617f0409
parent0e4795fc989478d394bbc3870ee28baf6bd23116 (diff)
downloademacs-291a421c2e7420c36a0767f2c1e1d7317022f719.tar.gz
emacs-291a421c2e7420c36a0767f2c1e1d7317022f719.zip
* admin/make-tarball.txt: Improve and expand the instructions.
-rw-r--r--admin/make-tarball.txt51
1 files changed, 43 insertions, 8 deletions
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index bf682ecadf6..65c6e86b1df 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -88,6 +88,12 @@ General steps (for each step, check for possible errors):
88 along with etc/HISTORY. Then you can tag that commit as the 88 along with etc/HISTORY. Then you can tag that commit as the
89 release. 89 release.
90 90
91 Alternatively, you can commit and tag with the RC tag right away,
92 and delay the final tagging until you actually decide to make a
93 release and announce it. The "git tag" command can tag a specific
94 commit if you give it the SHA1 of that commit, even if additional
95 commits have been pushed in the meantime.
96
91 Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the 97 Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
92 following week, you can simply rename the file and use it for the 98 following week, you can simply rename the file and use it for the
93 actual release. If you need another release candidate, remember 99 actual release. If you need another release candidate, remember
@@ -101,11 +107,11 @@ General steps (for each step, check for possible errors):
101 Never replace an existing tarfile! If you need to fix something, 107 Never replace an existing tarfile! If you need to fix something,
102 always upload it with a different name. 108 always upload it with a different name.
103 109
1044. autoreconf -i -I m4 --force 1104. autoreconf -i -I m4 --force
105 make bootstrap 111 make bootstrap
106 112
107 make -C etc/refcards 113 make -C etc/refcards
108 make -C etc/refcards clean 114 make -C etc/refcards clean
109 115
110 If some of the etc/refcards, especially the non-English ones, fail 116 If some of the etc/refcards, especially the non-English ones, fail
111 to build, you probably need to install some TeX/LaTeX packages, in 117 to build, you probably need to install some TeX/LaTeX packages, in
@@ -119,13 +125,18 @@ General steps (for each step, check for possible errors):
1195. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. 1255. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
120 126
121 Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the 127 Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the
122 files changed by M-x set-version. 128 files changed by M-x set-version. The easiest way of doing that
129 is "C-x v d ROOT-DIR RET", then go to the first modified file,
130 press 'M' to mark all modified files, and finally 'v' to commit
131 them. Make sure the commit log message mentions all the changes
132 in all modified files, as by default 'v' doesn't necessarily do
133 so.
123 134
124 If someone else made a commit between step 1 and now, 135 If someone else made a commit between step 1 and now,
125 you need to repeat from step 4 onwards. (You can commit the files 136 you need to repeat from step 4 onwards. (You can commit the files
126 from step 2 and 3 earlier to reduce the chance of this.) 137 from step 2 and 3 earlier to reduce the chance of this.)
127 138
1286. ./make-dist --snapshot --no-compress 1396. ./make-dist --snapshot --no-compress
129 140
130 Check the contents of the new tar with admin/diff-tar-files 141 Check the contents of the new tar with admin/diff-tar-files
131 against the previous release (if this is the first pretest) or the 142 against the previous release (if this is the first pretest) or the
@@ -133,6 +144,14 @@ General steps (for each step, check for possible errors):
133 yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>. 144 yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>.
134 Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>. 145 Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>.
135 146
147 ./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz
148
149 Alternatively:
150
151 tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
152 tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
153 diff -u old_tmp new_tmp
154
136 If this is the first pretest of a major release, just comparing 155 If this is the first pretest of a major release, just comparing
137 with the previous release may overlook many new files. You can try 156 with the previous release may overlook many new files. You can try
138 something like 'find . | sort' in a clean repository, and compare the 157 something like 'find . | sort' in a clean repository, and compare the
@@ -140,6 +159,7 @@ General steps (for each step, check for possible errors):
140 159
1417. tar -xf emacs-NEW.tar; cd emacs-NEW 1607. tar -xf emacs-NEW.tar; cd emacs-NEW
142 ./configure --prefix=/tmp/emacs && make check && make install 161 ./configure --prefix=/tmp/emacs && make check && make install
162
143 Use 'script' or M-x compile to save the compilation log in 163 Use 'script' or M-x compile to save the compilation log in
144 compile-NEW.log and compare it against an old one. The easiest way 164 compile-NEW.log and compare it against an old one. The easiest way
145 to do that is to visit the old log in Emacs, change the version 165 to do that is to visit the old log in Emacs, change the version
@@ -147,8 +167,23 @@ General steps (for each step, check for possible errors):
147 M-x ediff. Especially check that Info files aren't built, and that 167 M-x ediff. Especially check that Info files aren't built, and that
148 no autotools (autoconf etc) run. 168 no autotools (autoconf etc) run.
149 169
1508. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG 1708. You can now tag the release/pretest and push it together with the
151 TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. 171 last commit:
172
173 cd EMACS_ROOT_DIR && git tag -a TAG -m "Emacs TAG"
174 git push
175 git push --tags
176
177 Here TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
178 For a release, if you are producing a release candidate first, use
179 emacs-XX.Y-rcN (N = 1, 2, ...) when you tar the RC, and add the
180 actual release tag later, when the official release tarball is
181 uploaded to ftp.gnu.org. When adding a tag later, it is safer to
182 use the SHA1 of the last commit which went into the release
183 tarball, in case there were some intervening commits since then:
184
185 git tag -a TAG -m "Emacs TAG" SHA1
186 git push --tags
152 187
1539. Decide what compression schemes to offer. 1889. Decide what compression schemes to offer.
154 For a release, at least gz and xz: 189 For a release, at least gz and xz: