summaryrefslogtreecommitdiff
path: root/admin
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2016-05-25 12:47:13 -0400
committerGlenn Morris <rgm@gnu.org>2016-05-25 12:47:13 -0400
commit3f4a9d9d262d63562cdc9dde8d157567cb7c243c (patch)
tree456daa0232ff12983e9227687132b6399741d5e0 /admin
parent897fb6fa49d5ffc85f0a796e7414a43ef05ad096 (diff)
* admin/authors.el (authors): First update the ChangeLog.
* admin/make-tarball.txt: Related updates.
Diffstat (limited to 'admin')
-rw-r--r--admin/authors.el32
-rw-r--r--admin/make-tarball.txt15
2 files changed, 30 insertions, 17 deletions
diff --git a/admin/authors.el b/admin/authors.el
index f1aa2fa442..b93c9b251c 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -1361,24 +1361,36 @@ and changed by AUTHOR."
(cons (list author wrote-list cowrote-list changed-list)
authors-author-list)))))
-(defun authors (root)
+(defun authors (root &optional nologupdate)
"Extract author information from change logs and Lisp source files.
-ROOT is the root directory under which to find the files. If called
-interactively, ROOT is read from the minibuffer.
-Result is a buffer *Authors* containing authorship information, and a
-buffer *Authors Errors* containing references to unknown files."
- (interactive "DEmacs source directory: ")
+ROOT is the root directory under which to find the files.
+Interactively, read ROOT from the minibuffer.
+Accurate author information requires up-to-date change logs, so this
+first updates them, unless optional prefix argument NOLOGUPDATE is non-nil.
+The result is a buffer *Authors* containing authorship information,
+and a buffer *Authors Errors* containing references to unknown files."
+ (interactive "DEmacs source directory: \nP")
(setq root (expand-file-name root))
+ (unless (file-exists-p (expand-file-name "src/emacs.c" root))
+ (unless (y-or-n-p
+ (format "Not the root directory of Emacs: %s, continue? " root))
+ (user-error "Not the root directory")))
+ ;; May contain your personal entries.
+ (or (not (file-exists-p (expand-file-name "ChangeLog" root)))
+ (y-or-n-p "Unversioned ChangeLog present, continue?")
+ (user-error "Unversioned ChangeLog may have irrelevant entries"))
+ (or nologupdate
+ ;; There are likely to be things that need fixing, so we update
+ ;; the versioned ChangeLog.N rather than the unversioned ChangeLog.
+ (zerop (call-process "make" nil nil nil
+ "-C" root "change-history-nocommit"))
+ (error "Problem updating ChangeLog"))
(let ((logs (process-lines find-program root "-name" "ChangeLog*"))
(table (make-hash-table :test 'equal))
(buffer-name "*Authors*")
authors-checked-files-alist
authors-invalid-file-names)
(authors-add-fixed-entries table)
- (unless (file-exists-p (expand-file-name "src/emacs.c" root))
- (unless (y-or-n-p
- (format "Not the root directory of Emacs: %s, continue? " root))
- (error "Not the root directory")))
(dolist (log logs)
(when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
(message "Scanning %s..." log)
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index af18ff6a2e..77486cc639 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -37,14 +37,15 @@ General steps (for each step, check for possible errors):
M-: (require 'authors) RET
M-x authors RET
+ (This first updates the current versioned ChangeLog.N)
+
If there is an "*Authors Errors*" buffer, address the issues.
- If there was a ChangeLog typo, run "make change-history" and then
- fix the newest ChangeLog history file. If a file was deleted or
- renamed, consider adding an appropriate entry to
- authors-ignored-files, authors-valid-file-names, or
+ If there was a ChangeLog typo, fix the relevant entry.
+ If a file was deleted or renamed, consider adding an appropriate
+ entry to authors-ignored-files, authors-valid-file-names, or
authors-renamed-files-alist.
- If necessary, repeat M-x authors after making those changes.
+ If necessary, repeat 'C-u M-x authors' after making those changes.
Save the "*Authors*" buffer as etc/AUTHORS.
Check the diff looks reasonable. Maybe add entries to
authors-ambiguous-files or authors-aliases, and repeat.
@@ -85,8 +86,8 @@ General steps (for each step, check for possible errors):
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
- Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
- by M-x set-version.
+ Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the
+ files changed by M-x set-version.
If someone else made a commit between step 1 and now,
you need to repeat from step 4 onwards. (You can commit the files