summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2022-03-12 03:28:45 -0500
committerEli Zaretskii <eliz@gnu.org>2022-03-12 03:28:45 -0500
commit6b0fdf73cf0cf70d5756afab798896040c70d9c7 (patch)
tree1143134b1c3d86eae9b6de277a3cc1c9e6cd3758
parentdbe6a3ecf74536cbfb7ca59630b48020ae4e732a (diff)
downloademacs-6b0fdf73cf0cf70d5756afab798896040c70d9c7.tar.gz
; Fix data structures in authors.el
* admin/authors.el (authors-aliases, authors-renamed-files-alist): Update and correct the databases. (authors-renamed-files-alist): Add commentary explaining how to add entries for renamed/moved files. (authors-canonical-file-name): Clarify the semantics of the arguments.
-rw-r--r--admin/authors.el216
1 files changed, 172 insertions, 44 deletions
diff --git a/admin/authors.el b/admin/authors.el
index 8f768a83be7..0f15d0d1b88 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -68,6 +68,7 @@ files.")
(nil "castor@my-dejanews")
(nil "chengang31@gmail.com")
(nil "chuntaro")
+ ("Clément Pit-Claudel" "Clément Pit--Claudel")
("David Abrahams" "Dave Abrahams")
("David J. Biesack" "David Biesack")
("David De La Harpe Golden" "David Golden")
@@ -242,10 +243,14 @@ files.")
("Vinicius Jose Latorre" "viniciusjl")
("Gaby Launay" "galaunay")
("Dick R. Chiang" "dickmao")
+ ("Lin Zhou" "georgealbert@qq.com")
+ (nil "yan@metatem.net")
+ (nil "gnu_lists@halloleo.hailmail.net")
)
"Alist of author aliases.
-Each entry is of the form (REALNAME REGEXP...). If an author's name
+Each entry is of the form (REALNAME REGEXP...).
+If an author's full name, as in \"J.R.Hacker <foobar.com>\",
matches one of the REGEXPs, use REALNAME instead.
If REALNAME is nil, ignore that author.")
@@ -496,6 +501,7 @@ Changes to files matching one of the regexps in this list are not listed.")
"nextstep/WISHLIST"
;; Removed, replaced by gitmerge.el
"admin/bzrmerge.el"
+ "bzrmerge.el"
;; Removed in commit f5090b91299
"lib/fdatasync.c"
;; Removed as obsolete
@@ -510,8 +516,11 @@ Changes to files matching one of the regexps in this list are not listed.")
"MORE.STUFF"
"notes/font-backend"
"src/ftxfont.c"
+ "ftxfont.c"
"src/ptr-bounds.h"
"obsolete/options.el"
+ "obsolete/old-whitespace.el"
+ "obsolete/lucid.el"
;; ada-mode has been deleted, now in GNU ELPA
"ada-mode.texi"
"doc/misc/ada-mode.texi"
@@ -872,11 +881,9 @@ Changes to files in this list are not listed.")
"gnus-compat.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "pgg.el"
"dns-mode.el" "run-at-time.el" "gnus-encrypt.el" "sha1-el.el"
"gnus-gl.el" "gnus.sum.el" "proto-stream.el" "color.el" "color-lab.el"
- "eww.el" "shr-color.el" "shr.el" "earcon.el" "gnus-audio.el" "encrypt.el"
- "format-spec.el" "gnus-move.el" "gnus-sync.el"
- "auth-source.el" "ecomplete.el" "gravatar.el" "mailcap.el" "plstore.el"
- "pop3.el" "qp.el" "registry.el" "rfc2231.el" "rtree.el"
- "sieve.el" "sieve-mode.el" "gnus-ems.el"
+ "earcon.el" "gnus-audio.el" "encrypt.el"
+ "gnus-move.el" "gnus-sync.el"
+ "gnus-ems.el"
;; doc
"getopt.c" "texindex.c" "news.texi" "vc.texi" "vc2-xtra.texi"
"back.texi" "vol1.texi" "vol2.texi" "elisp-covers.texi" "two.el"
@@ -957,6 +964,43 @@ in the repository.")
;; NB So only add a directory if needed to disambiguate.
;; FIXME?
;; Although perhaps we could let authors-disambiguate-file-name do that?
+;;
+;; WARNING: The semantics of these entries is tricky to grasp without
+;; reading the code!
+;; The rule is: for every file that was renamed or moved to another
+;; directory, add an entry (OLD-NAME . NEW-BASENAME), where OLD-NAME
+;; is the old name of the file as it appears in the ChangeLog files,
+;; and NEW-BASENAME is the _basename_ of its new name. Yes, this
+;; means that a file which was moved to another directory but kept its
+;; basename will have a seemingly-silly entry ("foo" . "foo"). (Told
+;; you: this is tricky!) If the moved/renamed file was mentioned in
+;; several ChangeLog files with different leading directories, you
+;; need to provide an entry for each such instance. For example, if
+;; some ChangeLog mentioned a moved file as lisp/gnus/something.el and
+;; another ChangeLog mentioned it as gnus/something.el, you need to
+;; have two entries:
+;;
+;; ("gnus/something.el" . "something.el")
+;; ("lisp/gnus/something.el" . "something.el")
+;;
+;; The important part is that the car of the entry should be identical
+;; to how a file was mentioned in the respective ChangeLog. It is
+;; advisable to run a Grep command such as
+;;
+;; fgrep -R BASENAME . --include='ChangeLog*'
+;;
+;; where BASENAME is the old basename of the renamed file. This will
+;; show all the different reference forms of the file in the various
+;; ChangeLog* files, and you can then prepare a separate entry for
+;; each reference form.
+;;
+;; The cdr of the entry should generally be only the basename of the
+;; file's current name, because that's how AUTHORS references files.
+;; It _can_ have leading directories, but that is only
+;; needed/advisable if there are several files in the tree that have
+;; the same basename, and you want to disambiguate them, so that
+;; people who actually contributed to different files aren't mentioned
+;; as if they contributed to the same single file.
(defconst authors-renamed-files-alist
'(("nt.c" . "w32.c") ("nt.h" . "w32.h")
("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h")
@@ -964,8 +1008,9 @@ in the repository.")
("ntproc.c" . "w32proc.c")
("w32console.c" . "w32term.c")
("unexnt.c" . "unexw32.c")
- ("s/windowsnt.h" . "s/ms-w32.h")
- ("s/ms-w32.h" . "inc/ms-w32.h")
+ ("m/windowsnt.h" . "ms-w32.h")
+ ("s/windowsnt.h" . "ms-w32.h")
+ ("s/ms-w32.h" . "ms-w32.h")
("src/config.h" . "config.h")
("winnt.el" . "w32-fns.el")
("linux.h" . "gnu-linux.h")
@@ -988,6 +1033,10 @@ in the repository.")
("INSTALL.MSYS" . "INSTALL")
("server.c" . "emacsserver.c")
("lib-src/etags.c" . "etags.c")
+ ;; gnulib
+ ("lib/strftime.c" . "nstrftime.c")
+ ("src/mini-gmp.c" . "mini-gmp.c")
+ ("src/mini-gmp.h" . "mini-gmp.h")
;; msdos/
("is-exec.c" . "is_exec.c")
("enriched.doc" . "enriched.txt")
@@ -1071,8 +1120,10 @@ in the repository.")
("nxml/test.invalid.xml" . "test-invalid.xml")
("nxml/test.valid.xml" . "test-valid.xml")
("automated/Makefile.in" . "test/Makefile.in")
- ("test/rmailmm.el" . "test/manual/rmailmm.el")
- ("rmailmm.el" . "test/manual/rmailmm.el")
+ ;; rmailmm tests wandered from test/ to test/manual to test/lisp/mail/
+ ("rmailmm.el" . "rmailmm-tests.el")
+ ("test/rmailmm.el" . "rmailmm-tests.el")
+ ("test/manual/rmailmm.el" . "rmailmm-tests.el")
;; The one in lisp is eshell/eshell.el.
("eshell.el" . "eshell-tests.el")
("automated/eshell.el" . "eshell-tests.el")
@@ -1104,22 +1155,79 @@ in the repository.")
("major.texi" . "modes.texi")
("msdog-xtra.texi" . "msdos-xtra.texi")
("msdog.texi" . "msdos.texi")
+ ;; Moved from lisp/gnus/ to lisp/
+ ("auth-source.el" . "auth-source.el")
+ ("lisp/gnus/auth-source.el" . "auth-source.el")
+ ("ecomplete.el" . "ecomplete.el")
+ ("format-spec.el" . "format-spec.el")
+ ("gnus/format-spec.el" . "format-spec.el")
+ ("lisp/gnus/ecomplete.el" . "ecomplete.el")
+ ("plstore.el" . "plstore.el")
+ ("lisp/gnus/plstore.el" . "plstore.el")
+ ("registry.el" . "registry.el")
+ ("lisp/gnus/registry.el" . "registry.el")
+ ("rtree.el" . "rtree.el")
;; Moved from lisp/gnus/ to lisp/calendar/
- ("time-date.el" . "calendar/time-date.el")
+ ("time-date.el" . "time-date.el")
;; Moved from lisp/gnus/ to lisp/mail/
- ("binhex.el" . "mail/binhex.el")
- ("uudecode.el" . "mail/uudecode.el")
- ("mail-parse.el" . "mail/mail-parse.el")
- ("yenc.el" . "mail/yenc.el")
- ("flow-fill.el" . "mail/flow-fill.el")
- ("ietf-drums.el" . "mail/ietf-drums.el")
- ("sieve-manage.el" . "mail/sieve-manage.el")
+ ("binhex.el" . "binhex.el")
+ ("gnus/binhex.el" . "binhex.el")
+ ("uudecode.el" . "uudecode.el")
+ ("gnus/uudecode.el" . "uudecode.el")
+ ("mail-parse.el" . "mail-parse.el")
+ ("gnus/mail-parse.el" . "mail-parse.el")
+ ("mail-prsvr.el" . "mail-prsvr.el")
+ ("gnus/mail-prsvr.el" . "mail-prsvr.el")
+ ("yenc.el" . "yenc.el")
+ ("flow-fill.el" . "flow-fill.el")
+ ("gnus/flow-fill.el" . "flow-fill.el")
+ ("ietf-drums.el" . "ietf-drums.el")
+ ("gnus/ietf-drums.el" . "ietf-drums.el")
+ ("pop3.el" . "pop3.el")
+ ("mail/pop3.el" . "pop3.el")
+ ("gnus/pop3.el" . "pop3.el")
+ ("lisp/gnus/pop3.el" . "pop3.el")
+ ("qp.el" . "qp.el")
+ ("gnus/qp.el" . "qp.el")
+ ("lisp/gnus/qp.el" . "qp.el")
+ ("rfc2045.el" . "rfc2045.el")
+ ("gnus/rfc2045.el" . "rfc2045.el")
+ ("rfc2047.el" . "rfc2047.el")
+ ("gnus/rfc2047.el" . "rfc2047.el")
+ ("rfc2231.el" . "rfc2231.el")
+ ("gnus/rfc2231.el" . "rfc2231.el")
+ ("lisp/gnus/rfc2231.el" . "rfc2231.el")
;; Moved from lisp/gnus/ to lisp/image/
- ("compface.el" . "image/compface.el")
+ ("compface.el" . "compface.el")
+ ("gravatar.el" . "gravatar.el")
+ ("lisp/gnus/gravatar.el" . "gravatar.el")
;; Moved from lisp/gnus/ to lisp/net/
+ ("eww.el" . "eww.el")
+ ("net/eww.el" . "eww.el")
+ ("lisp/new/eww.el" . "eww.el") ; an actual typo in ChangeLog.3
+ ("gssapi.el" . "gssapi.el")
+ ("lisp/gnus/gssapi.el" . "gssapi.el")
("imap.el" . "net/imap.el")
+ ("mailcap.el" . "mailcap.el")
+ ("gnus/mailcap.el" . "mailcap.el")
+ ("lisp/gnus/mailcap.el" . "mailcap.el")
("rfc2104.el" . "net/rfc2104.el")
- ("starttls.el" . "net/starttls.el")
+ ("starttls.el" . "starttls.el")
+ ("lisp/net/starttls.el" . "starttls.el") ; moved to obsolete/
+ ("shr.el" . "shr.el")
+ ("net/shr.el" . "shr.el")
+ ("shr-color.el" . "shr-color.el")
+ ("sieve-manage.el" . "sieve-manage.el")
+ ("sieve-mode.el" . "sieve-mode.el")
+ ("sieve.el" . "sieve.el")
+ ("lisp/gnus/sieve-manage.el" . "sieve-manage.el")
+ ("lisp/gnus/sieve-mode.el" . "sieve-mode.el")
+ ("lisp/gnus/sieve.el" . "sieve.el")
+ ;; Moved from lisp/gnus/ to lisp/international
+ ("rfc1843.el" . "rfc1843.el")
+ ("gnus/rfc1843.el" . "rfc1843.el")
+ ("utf7.el" . "utf7.el")
+ ("gnus/utf7.el" . "utf7.el")
;; And from emacs/ to misc/ and back again.
("ns-emacs.texi" . "macos.texi")
("overrides.texi" . "gnus-overrides.texi")
@@ -1134,7 +1242,7 @@ in the repository.")
("ED.WORSHIP" . "JOKES")
("GNU.JOKES" . "JOKES")
("CHARACTERS" . "TODO")
- ("lisp/character-fold.el" . "lisp/char-fold.el")
+ ("lisp/character-fold.el" . "char-fold.el")
("test/automated/character-fold-tests.el" . "char-fold-tests.el")
("test/automated/char-fold-tests.el" . "char-fold-tests.el")
("test/lisp/character-fold-tests.el" . "char-fold-tests.el")
@@ -1176,7 +1284,8 @@ in the repository.")
("grammars" . "grammars")
;; Moved from lisp/emacs-lisp/ to admin/.
("emacs-lisp/authors.el" . "authors.el")
- ("emacs-lisp/find-gc.el" . "admin/find-gc.el")
+ ("find-gc.el" . "find-gc.el")
+ ("emacs-lisp/find-gc.el" . "find-gc.el")
;; From etc to lisp/cedet/semantic/.
("grammars/bovine-grammar.el" . "bovine/grammar.el")
("grammars/wisent-grammar.el" . "wisent/grammar.el")
@@ -1184,28 +1293,41 @@ in the repository.")
("nt/README.W32" . "README.W32")
("notes/BRANCH" . "notes/repo")
("notes/bzr" . "notes/repo")
- ;; moved from lisp/ to lisp/net/
- ("lisp/pinentry.el" . "lisp/net/pinentry.el")
+ ;; moved from lisp/ to lisp/net/, then removed
+ ("pinentry.el" . "pinentry.el")
+ ("lisp/pinentry.el" . "pinentry.el")
+ ("lisp/net/pinentry.el" . "pinentry.el")
;; module.* moved to emacs-module.*
- ("src/module.h" . "src/emacs-module.h")
- ("src/module.c" . "src/emacs-module.c")
- ;; gnulib
- ("lib/strftime.c" . "lib/nstrftime.c")
- ("test/src/regex-tests.el" . "test/src/regex-emacs-tests.el")
- ("test/lisp/emacs-lisp/cl-tests.el" . "test/lisp/obsolete/cl-tests.el")
- ("lisp/net/starttls.el" . "lisp/obsolete/starttls.el")
- ("url-ns.el" . "lisp/obsolete/url-ns.el")
- ("gnus-news.texi" . "doc/misc/gnus.texi")
- ("lisp/multifile.el" . "lisp/fileloop.el")
- ("lisp/emacs-lisp/thread.el" . "lisp/thread.el")
- ("lisp/emacs-lisp/cl.el" . "lisp/emacs-lisp/cl-lib.el")
- ("lisp/progmodes/mantemp.el" . "lisp/obsolete/mantemp.el")
- ("src/mini-gmp.c" . "lib/mini-gmp.c")
- ("src/mini-gmp.h" . "lib/mini-gmp.h")
+ ("src/module.h" . "emacs-module.h")
+ ("src/module.c" . "emacs-module.c")
+ ("test/src/regex-tests.el" . "regex-emacs-tests.el")
+ ("test/lisp/emacs-lisp/cl-tests.el" . "cl-tests.el")
+ ("url-ns.el" . "url-ns.el")
+ ("gnus-news.texi" . "gnus.texi")
+ ("doc/misc/gnus-news.texi" . "gnus.texi")
+ ("lisp/multifile.el" . "fileloop.el")
+ ("lisp/emacs-lisp/thread.el" . "thread.el")
+ ;; cl.el was retired, replaced by cl-lib.el, and we want to
+ ;; pretend they are the same file...
+ ("emacs-lisp/cl.el" . "cl-lib.el")
+ ("lisp/emacs-lisp/cl.el" . "cl-lib.el")
+ ("lisp/obsolete/cl.el" . "cl-lib.el")
+ ("mantemp.el" . "mantemp.el")
+ ("lisp/progmodes/mantemp.el" . "mantemp.el")
+ ("progmodes/mantemp.el" . "mantemp.el")
("sysdep.c" . "src/sysdep.c")
+ ;; nnir.el started in lisp/gnus/ChangeLog.*, then was
+ ;; lisp/gnus/nnir.el in ChangeLog.[123], and is now
+ ;; lisp/obsolete/nnir.el.
+ ("nnir.el" . "nnir.el")
("lisp/gnus/nnir.el" . "nnir.el")
- ("src/regex.c" . "emacs-regex.c")
- ("src/regex.h" . "emacs-regex.h")
+ ;; regex.[ch] are mentioned as src/regex.[ch] in ChangeLog.[123],
+ ;; but as just regex.[ch] in src/ChangeLog.*, so we need 2 entries
+ ;; for each one of them.
+ ("regex.c" . "regex-emacs.c")
+ ("regex.h" . "regex-emacs.h")
+ ("src/regex.c" . "regex-emacs.c")
+ ("src/regex.h" . "regex-emacs.h")
("test/manual/rmailmm.el" . "rmailmm-tests.el")
("test/lisp/cedet/semantic-utest-fmt.el" . "format-tests.el")
("test/lisp/emacs-lisp/tabulated-list-test.el" . "tabulated-list-tests.el")
@@ -1366,19 +1488,25 @@ Additionally, for these logs we apply the `lax' elements of
(defun authors-canonical-file-name (file log-file pos author)
"Return canonical file name for FILE found in LOG-FILE.
+FILE is the file name as it appears in LOG-FILE, including any
+leading directories mentioned there.
+LOG-FILE is an absolute file name of the log file we are scanning.
Checks whether FILE is a valid (existing) file name, has been renamed,
or is on the list of removed files. Returns the non-directory part of
-the file name. Only uses the LOG-FILE position POS and associated AUTHOR
-to print a message if FILE is not found."
+the file name to use for FILE in the \"AUTHORS\" file.
+Only uses the LOG-FILE position POS and associated AUTHOR to print a
+message if FILE is not found."
;; FILE should be re-checked in every different directory associated
;; with a LOG-FILE. Eg configure.ac from src/ChangeLog is not the
;; same as that from top-level/ChangeLog.
(let* ((fullname (expand-file-name file (file-name-directory log-file)))
(entry (assoc fullname authors-checked-files-alist))
- laxlog relname valid)
+ laxlog relname valid foo)
(if entry
(cdr entry)
(setq relname (file-name-nondirectory file))
+ ;; File names in `authors-valid-file-names' are OK by
+ ;; definition, so no need to check those.
(if (or (member file authors-valid-file-names)
(member relname authors-valid-file-names)
(file-exists-p file)