diff options
| author | Eli Zaretskii | 2021-03-25 17:24:43 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2021-03-25 17:24:43 +0200 |
| commit | 291a421c2e7420c36a0767f2c1e1d7317022f719 (patch) | |
| tree | 1c9d4973e2621a8e914a021ce4a32e47617f0409 | |
| parent | 0e4795fc989478d394bbc3870ee28baf6bd23116 (diff) | |
| download | emacs-291a421c2e7420c36a0767f2c1e1d7317022f719.tar.gz emacs-291a421c2e7420c36a0767f2c1e1d7317022f719.zip | |
* admin/make-tarball.txt: Improve and expand the instructions.
| -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 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 | ||
| 104 | 4. autoreconf -i -I m4 --force | 110 | 4. 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): | |||
| 119 | 5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. | 125 | 5. 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 | ||
| 128 | 6. ./make-dist --snapshot --no-compress | 139 | 6. ./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 | ||
| 141 | 7. tar -xf emacs-NEW.tar; cd emacs-NEW | 160 | 7. 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 | ||
| 150 | 8. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG | 170 | 8. 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 | ||
| 153 | 9. Decide what compression schemes to offer. | 188 | 9. Decide what compression schemes to offer. |
| 154 | For a release, at least gz and xz: | 189 | For a release, at least gz and xz: |