Merge from origin/emacs-30

e9c9ed1f46 Minor refactoring in admin/admin.el
a8b1726487 ; * admin/make-tarball.txt: Copy edits.
This commit is contained in:
Eli Zaretskii 2025-03-01 09:59:08 -05:00
commit b9c9bc2039
2 changed files with 39 additions and 30 deletions

View file

@ -28,12 +28,19 @@
(defvar add-log-time-format) ; in add-log
(defun admin--read-root-directory ()
(read-directory-name "Emacs root directory: "
source-directory nil t))
(defun admin--read-version ()
(read-string "Version number: " emacs-version))
(defun add-release-logs (root version &optional date)
"Add \"Version VERSION released.\" change log entries in ROOT.
Also update the etc/HISTORY file.
Root must be the root of an Emacs source tree.
Optional argument DATE is the release date, default today."
(interactive (list (read-directory-name "Emacs root directory: ")
(interactive (list (admin--read-root-directory)
(read-string "Version number: "
(format "%s.%s" emacs-major-version
emacs-minor-version))
@ -94,9 +101,8 @@ Optional argument DATE is the release date, default today."
(defun set-version (root version)
"Set Emacs version to VERSION in relevant files under ROOT.
Root must be the root of an Emacs source tree."
(interactive (list
(read-directory-name "Emacs root directory: " source-directory)
(read-string "Version number: " emacs-version)))
(interactive (list (admin--read-root-directory)
(admin--read-version)))
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
(user-error "%s doesn't seem to be the root of an Emacs source tree" root))
(unless admin-git-command
@ -213,9 +219,9 @@ Documentation changes might not have been completed!"))))
(dolist (s '("Installation Changes" "Startup Changes" "Changes"
"Editing Changes"
"Changes in Specialized Modes and Packages"
"New Modes and Packages"
"Incompatible Lisp Changes"
"Lisp Changes"))
"New Modes and Packages"
"Incompatible Lisp Changes"
"Lisp Changes"))
(insert (format "\n \n* %s in Emacs %s\n" s newshort)))
(insert (format "\n \n* Changes in Emacs %s on \
Non-Free Operating Systems\n" newshort)))
@ -230,7 +236,7 @@ Non-Free Operating Systems\n" newshort)))
"Set Emacs short copyright to COPYRIGHT in relevant files under ROOT.
Root must be the root of an Emacs source tree."
(interactive (list
(read-directory-name "Emacs root directory: " nil nil t)
(admin--read-root-directory)
(read-string
"Short copyright string: "
(format "Copyright (C) %s Free Software Foundation, Inc."
@ -289,8 +295,7 @@ Optional argument TYPE is type of output (nil means all)."
(if noninteractive
(or (pop command-line-args-left)
default-directory)
(read-directory-name "Emacs root directory: "
source-directory nil t))))
(admin--read-root-directory))))
(list root
(if current-prefix-arg
(completing-read
@ -772,8 +777,7 @@ Optional argument TYPE is type of output (nil means all)."
(if noninteractive
(or (pop command-line-args-left)
default-directory)
(read-directory-name "Emacs root directory: "
source-directory nil t))))
(admin--read-root-directory))))
(list root
(if current-prefix-arg
(completing-read
@ -861,8 +865,7 @@ $Date: %s $
(if noninteractive
(or (pop command-line-args-left)
default-directory)
(read-directory-name "Emacs root directory: "
source-directory nil t))))
(admin--read-root-directory))))
(list root
(read-string "Major version number: "
(number-to-string emacs-major-version)))))

View file

@ -1,8 +1,16 @@
Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
-- originally written by Gerd Moellmann, amended by Francesco Potortì
-- originally written by Gerd Möllmann, amended by Francesco Potortì
with the initial help of Eli Zaretskii
Preparations:
0. In order to upload to the GNU FTP server, you must be registered as
an Emacs maintainer and have your GPG key acknowledged by the FTP
people. Do this as soon as possible to avoid lead time. For
instructions, see:
<https://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html>.
Steps to take before starting on the first pretest in any release sequence:
0. The release branch (e.g. emacs-28) should already have been made
@ -18,7 +26,7 @@ Steps to take before starting on the first pretest in any release sequence:
the release branch, see admin/release-branch.txt, but it can't
hurt to double check its value.) Commit cus-edit.el if changed.
3. Remove any old pretests from https://alpha.gnu.org/gnu/emacs/pretest.
3. Remove any old pretests from <https://alpha.gnu.org/gnu/emacs/pretest>.
You can use 'gnupload --delete' (see below for more gnupload details).
(We currently don't bother with this.)
@ -224,12 +232,12 @@ General steps (for each step, check for possible errors):
against the previous release (if this is the first pretest) or the
previous pretest. If you did not make the previous pretest
yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>.
Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>.
Releases are at <https://ftp.gnu.org/pub/gnu/emacs/>.
./admin/diff-tar-files emacs-OLD.tar emacs-NEW.tar
Alternatively, if you want to use the compressed tarballs (which
diff-tar-files doesn't understand):
Alternatively, if you want to do this manually using the compressed
tarballs:
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
@ -289,14 +297,12 @@ General steps (for each step, check for possible errors):
xz -c emacs-NEW.tar > emacs-NEW.tar.xz
For pretests, just xz is probably fine (saves bandwidth).
Now you should upload the files to the GNU ftp server. In order to
do that, you must be registered as an Emacs maintainer and have your
GPG key acknowledged by the ftp people. For instructions, see
https://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html
The simplest method to upload is to use the gnulib
Now you should upload the files to the GNU FTP server; your
GPG key must already be accepted as described above.
The simplest method of uploading is with the gnulib
<https://www.gnu.org/s/gnulib/> script "build-aux/gnupload":
For a pretest:
For a pretest or release candidate:
gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
FILE.gz FILE.xz ...
@ -325,11 +331,11 @@ General steps (for each step, check for possible errors):
FILE.sig, FILE.directive.asc.
For a release, place the files in the /incoming/ftp directory.
For a pretest, place the files in /incoming/alpha instead, so that
they appear on https://alpha.gnu.org/.
they appear on <https://alpha.gnu.org/>.
11. After five minutes, verify that the files are visible at
https://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
https://ftp.gnu.org/gnu/emacs/ for a release.
<https://alpha.gnu.org/gnu/emacs/pretest/> for a pretest, or
<https://ftp.gnu.org/gnu/emacs/> for a release.
Download them and check the signatures and SHA1/SHA256 checksums.
Check they build (./configure --with-native-compilation).
@ -353,7 +359,7 @@ General steps (for each step, check for possible errors):
sha1sum emacs-NEW.tar.xz
sha256sum emacs-NEW.tar.xz
You can optionally sign the announcement email, preferably using
You can optionally sign the announcement email using
the same PGP key that you used for signing the tarball.
(Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign
an email.)
@ -371,7 +377,7 @@ General steps (for each step, check for possible errors):
UPDATING THE EMACS WEB PAGES AFTER A RELEASE
As soon as possible after a release, the Emacs web pages at
https://www.gnu.org/software/emacs/ should be updated.
<https://www.gnu.org/software/emacs/> should be updated.
(See admin/notes/www for general information.)
The pages to update are: