aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorPaul Eggert2016-05-26 12:55:06 -0700
committerPaul Eggert2016-05-26 12:55:06 -0700
commit0bf5739b77c75f13d46fc49d5e3c098fe49a5070 (patch)
treed342da7bc9065197736a8184e55c9925a40f04f0 /admin
parent764f04871d67a5aad8943136d5142ed59bfa9a51 (diff)
parentc3489d050405ccb026cd44a280ead3a5f6b456d9 (diff)
downloademacs-0bf5739b77c75f13d46fc49d5e3c098fe49a5070.tar.gz
emacs-0bf5739b77c75f13d46fc49d5e3c098fe49a5070.zip
Merge from origin/emacs-25
c3489d0 * lisp/w32-fns.el (set-message-beep, w32-get-locale-info) (w3... a4d882c Correct old cell name unbinding when renaming cell. 6c12c53 Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into... 0be6725 Document problem: slow screen refresh on missing font. 853b9b9 * admin/admin.el (add-release-logs): Basic check of existing ... 5fa80cf * build-aux/gitlog-to-emacslog: Handle empty generated Change... 3c79e51 * admin/admin.el (add-release-logs): Generate ChangeLog if ne... 42275df * doc/misc/texinfo.tex: Revert previous change (Bug#23611). 3f4a9d9 * admin/authors.el (authors): First update the ChangeLog. 897fb6f ; 'Changes from the pre-25.1 API' copyedits 825ca25 Rename vc-stay-local back to vc-cvs-stay-local 4efb3e8 * doc/emacs/files.texi (Comparing Files): * doc/emacs/trouble... b995d1e * doc/misc/eww.texi (Advanced): Fix xref. 2e589c0 Fix cross-references between manuals f3d2ded * doc/misc/vhdl-mode.texi (Sample Init File): Rename node to ... 906c810 ; * admin/release-process: Move etc/HISTORY from here... ; * ... bea1b65 * admin/admin.el (add-release-logs): Also update etc/HISTORY. 503e752 ; * CONTRIBUTE: Fix a typo. fbfd478 Avoid aborting due to errors in arguments of 'set-face-attrib... bdfbe6d ; * admin/release-process: Copyedits. 44a6aed ; * test/automated/data-tests.el: Standardize license notice. c33ed39 ; * test/automated/viper-tests.el: Standardize license notice. df4a14b Add automated test for viper-tests.el c0139e3 Fix viper undo breakage from undo-boundary changes 920d76c Fix reference to obsolete fn ps-eval-switch 18a9bc1 Do not trash symlinks to init file 2671179 Don't print the "decomposition" line for control chars in wha... 869092c Bring back xterm pasting with middle mouse 5ab0830 Provide workaround for xftfont rendering problem c9f7ec7 * lisp/desktop.el: Disable restore frameset if in non-graphic... 30989a0 Mention GTK+ problems in etc/PROBLEMS 421e3c4 * lisp/emacs-lisp/package.el (package-refresh-contents): dadfc30 Revert "epg: Add a way to detect gpg1 executable for tests" e41a5cb Avoid errors with Czech and Slovak input methods d4ae6d7 epg: Add a way to detect gpg1 executable for tests ebc3a94 * lisp/emacs-lisp/package.el: Fix free variable warnings. 6e71295 * lisp/emacs-lisp/package.el (package--with-response-buffer): c45d9f6 Improve documentation of 'server-name' 3b5e38c Modernize ASLR advice in etc/PROBLEMS 1fe1e0a * lisp/char-fold.el: Rename from character-fold.el.
Diffstat (limited to 'admin')
-rw-r--r--admin/admin.el23
-rw-r--r--admin/authors.el32
-rw-r--r--admin/make-tarball.txt36
-rw-r--r--admin/release-process61
4 files changed, 94 insertions, 58 deletions
diff --git a/admin/admin.el b/admin/admin.el
index fe807ff96fe..4af1ff9003a 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -30,6 +30,7 @@
30 30
31(defun add-release-logs (root version &optional date) 31(defun add-release-logs (root version &optional date)
32 "Add \"Version VERSION released.\" change log entries in ROOT. 32 "Add \"Version VERSION released.\" change log entries in ROOT.
33Also update the etc/HISTORY file.
33Root must be the root of an Emacs source tree. 34Root must be the root of an Emacs source tree.
34Optional argument DATE is the release date, default today." 35Optional argument DATE is the release date, default today."
35 (interactive (list (read-directory-name "Emacs root directory: ") 36 (interactive (list (read-directory-name "Emacs root directory: ")
@@ -42,6 +43,19 @@ Optional argument DATE is the release date, default today."
42 (setq root (expand-file-name root)) 43 (setq root (expand-file-name root))
43 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 44 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
44 (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) 45 (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
46 (let ((clog (expand-file-name "ChangeLog" root)))
47 (if (file-exists-p clog)
48 ;; Basic check that a ChangeLog that exists is not your personal one.
49 ;; TODO Perhaps we should move any existing file and unconditionally
50 ;; call make ChangeLog? Or make ChangeLog CHANGELOG=temp and compare
51 ;; with the existing?
52 (with-temp-buffer
53 (insert-file-contents clog)
54 (or (re-search-forward "^[ \t]*Copyright.*Free Software" nil t)
55 (user-error "ChangeLog looks like a personal one - remove it?")))
56 (or
57 (zerop (call-process "make" nil nil nil "-C" root "ChangeLog"))
58 (error "Problem generating ChangeLog"))))
45 (require 'add-log) 59 (require 'add-log)
46 (or date (setq date (funcall add-log-time-format nil t))) 60 (or date (setq date (funcall add-log-time-format nil t)))
47 (let* ((logs (process-lines "find" root "-name" "ChangeLog")) 61 (let* ((logs (process-lines "find" root "-name" "ChangeLog"))
@@ -53,7 +67,14 @@ Optional argument DATE is the release date, default today."
53 (dolist (log logs) 67 (dolist (log logs)
54 (find-file log) 68 (find-file log)
55 (goto-char (point-min)) 69 (goto-char (point-min))
56 (insert entry)))) 70 (insert entry)))
71 (let ((histfile (expand-file-name "etc/HISTORY" root)))
72 (unless (file-exists-p histfile)
73 (error "%s not present" histfile))
74 (find-file histfile)
75 (goto-char (point-max))
76 (search-backward " ")
77 (insert (format "GNU Emacs %s (%s) emacs-%s\n\n" version date version))))
57 78
58(defun set-version-in-file (root file version rx) 79(defun set-version-in-file (root file version rx)
59 "Subroutine of `set-version' and `set-copyright'." 80 "Subroutine of `set-version' and `set-copyright'."
diff --git a/admin/authors.el b/admin/authors.el
index f1aa2fa4428..b93c9b251ca 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -1361,24 +1361,36 @@ and changed by AUTHOR."
1361 (cons (list author wrote-list cowrote-list changed-list) 1361 (cons (list author wrote-list cowrote-list changed-list)
1362 authors-author-list))))) 1362 authors-author-list)))))
1363 1363
1364(defun authors (root) 1364(defun authors (root &optional nologupdate)
1365 "Extract author information from change logs and Lisp source files. 1365 "Extract author information from change logs and Lisp source files.
1366ROOT is the root directory under which to find the files. If called 1366ROOT is the root directory under which to find the files.
1367interactively, ROOT is read from the minibuffer. 1367Interactively, read ROOT from the minibuffer.
1368Result is a buffer *Authors* containing authorship information, and a 1368Accurate author information requires up-to-date change logs, so this
1369buffer *Authors Errors* containing references to unknown files." 1369first updates them, unless optional prefix argument NOLOGUPDATE is non-nil.
1370 (interactive "DEmacs source directory: ") 1370The result is a buffer *Authors* containing authorship information,
1371and a buffer *Authors Errors* containing references to unknown files."
1372 (interactive "DEmacs source directory: \nP")
1371 (setq root (expand-file-name root)) 1373 (setq root (expand-file-name root))
1374 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
1375 (unless (y-or-n-p
1376 (format "Not the root directory of Emacs: %s, continue? " root))
1377 (user-error "Not the root directory")))
1378 ;; May contain your personal entries.
1379 (or (not (file-exists-p (expand-file-name "ChangeLog" root)))
1380 (y-or-n-p "Unversioned ChangeLog present, continue?")
1381 (user-error "Unversioned ChangeLog may have irrelevant entries"))
1382 (or nologupdate
1383 ;; There are likely to be things that need fixing, so we update
1384 ;; the versioned ChangeLog.N rather than the unversioned ChangeLog.
1385 (zerop (call-process "make" nil nil nil
1386 "-C" root "change-history-nocommit"))
1387 (error "Problem updating ChangeLog"))
1372 (let ((logs (process-lines find-program root "-name" "ChangeLog*")) 1388 (let ((logs (process-lines find-program root "-name" "ChangeLog*"))
1373 (table (make-hash-table :test 'equal)) 1389 (table (make-hash-table :test 'equal))
1374 (buffer-name "*Authors*") 1390 (buffer-name "*Authors*")
1375 authors-checked-files-alist 1391 authors-checked-files-alist
1376 authors-invalid-file-names) 1392 authors-invalid-file-names)
1377 (authors-add-fixed-entries table) 1393 (authors-add-fixed-entries table)
1378 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
1379 (unless (y-or-n-p
1380 (format "Not the root directory of Emacs: %s, continue? " root))
1381 (error "Not the root directory")))
1382 (dolist (log logs) 1394 (dolist (log logs)
1383 (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log) 1395 (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
1384 (message "Scanning %s..." log) 1396 (message "Scanning %s..." log)
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index 030ad4cee68..77486cc6399 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -37,38 +37,38 @@ General steps (for each step, check for possible errors):
37 M-: (require 'authors) RET 37 M-: (require 'authors) RET
38 M-x authors RET 38 M-x authors RET
39 39
40 (This first updates the current versioned ChangeLog.N)
41
40 If there is an "*Authors Errors*" buffer, address the issues. 42 If there is an "*Authors Errors*" buffer, address the issues.
41 If there was a ChangeLog typo, run "make change-history" and then 43 If there was a ChangeLog typo, fix the relevant entry.
42 fix the newest ChangeLog history file. If a file was deleted or 44 If a file was deleted or renamed, consider adding an appropriate
43 renamed, consider adding an appropriate entry to 45 entry to authors-ignored-files, authors-valid-file-names, or
44 authors-ignored-files, authors-valid-file-names, or
45 authors-renamed-files-alist. 46 authors-renamed-files-alist.
46 47
47 If necessary, repeat M-x authors after making those changes. 48 If necessary, repeat 'C-u M-x authors' after making those changes.
48 Save the "*Authors*" buffer as etc/AUTHORS. 49 Save the "*Authors*" buffer as etc/AUTHORS.
49 Check the diff looks reasonable. Maybe add entries to 50 Check the diff looks reasonable. Maybe add entries to
50 authors-ambiguous-files or authors-aliases, and repeat. 51 authors-ambiguous-files or authors-aliases, and repeat.
51 Commit any fixes to authors.el. 52 Commit any fixes to authors.el.
52 53
533. Set the version number (M-x load-file RET admin/admin.el RET, then 543. Set the version number (M-x load-file RET admin/admin.el RET, then
54 M-x set-version RET). For a release, add released ChangeLog 55 M-x set-version RET). For a pretest, start at version .90. After
55 entries (create a ChangeLog symlink a la vc-dwim, then run M-x 56 .99, use .990 (so that it sorts).
56 add-release-logs RET, then run the shell command 'vc-dwim --commit').
57
58 For a pretest, start at version .90. After .99, use .990 (so that
59 it sorts).
60 57
61 The final pretest should be a release candidate. Set the version 58 The final pretest should be a release candidate. Set the version
62 number to that of the actual release. Pick a date about a week 59 number to that of the actual release. Pick a date about a week
63 from now when you intend to make the release. Use vc-dwim and 60 from now when you intend to make the release. Use M-x
64 M-x add-release-logs as described above to add commit messages 61 add-release-logs to add entries to etc/HISTORY and the ChangeLog
65 that will appear in the tarball's automatically-generated ChangeLog 62 file. It's best not to commit these files until the release is
66 file as entries for that date. 63 actually made. Merge the entries from (unversioned) ChangeLog
64 into the top of the current versioned ChangeLog.N and commit that
65 along with etc/HISTORY. Then you can tag that commit as the
66 release.
67 67
68 Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the 68 Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
69 following week, you can simply rename the file and use it for the 69 following week, you can simply rename the file and use it for the
70 actual release. If you need another release candidate, remember 70 actual release. If you need another release candidate, remember
71 to adjust the ChangeLog entries. 71 to adjust the ChangeLog and etc/HISTORY entries.
72 72
73 If you need to change only a file(s) that cannot possibly affect 73 If you need to change only a file(s) that cannot possibly affect
74 the build (README, ChangeLog, NEWS, etc.) then rather than doing 74 the build (README, ChangeLog, NEWS, etc.) then rather than doing
@@ -86,8 +86,8 @@ General steps (for each step, check for possible errors):
86 86
875. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. 875. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
88 88
89 Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed 89 Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the
90 by M-x set-version. 90 files changed by M-x set-version.
91 91
92 If someone else made a commit between step 1 and now, 92 If someone else made a commit between step 1 and now,
93 you need to repeat from step 4 onwards. (You can commit the files 93 you need to repeat from step 4 onwards. (You can commit the files
diff --git a/admin/release-process b/admin/release-process
index 2668ea3b445..28f2307846d 100644
--- a/admin/release-process
+++ b/admin/release-process
@@ -7,7 +7,7 @@ Each release cycle will be split into two periods.
7** Phase one: development 7** Phase one: development
8 8
9The first phase of the release schedule is the "heads-down" working 9The first phase of the release schedule is the "heads-down" working
10period for new features, on the 'master' branch and several feature 10period for new features, on the 'master' branch and any needed feature
11branches. 11branches.
12 12
13** Phase two: fixing and stabilizing the release branch 13** Phase two: fixing and stabilizing the release branch
@@ -29,47 +29,60 @@ command to do that, then commit the changes it made and push to
29'master'. For major releases, also update the value of 29'master'. For major releases, also update the value of
30'customize-changed-options-previous-release'. 30'customize-changed-options-previous-release'.
31 31
32The 2 main manuals, the User Manual and the Emacs Lisp Manual, need to 32Each chapter of the two main manuals, the User Manual and the Emacs
33be proofread, preferably by at least 2 different persons, and any 33Lisp Manual, should be proofread, preferably by at least two people.
34uncovered problems fixed. This is a lot of work, so it is advisable 34This job is so big that it should be considered a collective
35to divide the job between several people (see the checklist near the 35responsibility, not fobbed off on just a few people. After each
36end of this file). 36chapter is checked, mark off the name(s) of those who checked it in
37the checklist near the end of this file.
37 38
38In parallel to this phase, 'master' can receive new features, to be 39In parallel to this phase, 'master' can receive new features, to be
39released in the next release cycle. From time to time, the master 40released in the next release cycle. From time to time, the master
40branches merges bugfix commits from the "emacs-NN" branch. 41branches merges bugfix commits from the "emacs-NN" branch.
42See admin/gitmerge.el.
41 43
42* RELEASE-CRITICAL BUGS 44* RELEASE-CRITICAL BUGS
43 45
44Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to 46Emacs uses the "blocking" feature of Debbugs for bugs that need to be
45be addressed in the next release. 47addressed in the next release.
46 48
47Currently, bug#19759 is the tracking bug for release of 25.1 and 49Currently, bug#19759 is the tracking bug for release of 25.1 and
48bug#21966 is the tracking bug for release of 25.2. Say bug#123 needs 50bug#21966 is the tracking bug for release of 25.2. Say bug#123 needs
51bug#21966 is the tracking bug for the next release. Say bug#123 needs
49to be fixed for Emacs 25.1. Send a message to control@debbugs.gnu.org 52to be fixed for Emacs 25.1. Send a message to control@debbugs.gnu.org
50that says: 53that says:
51 54
52 block 19759 by 123 55 block 19759 by 123
53 56
54Change "block" to "unblock" to unblock the bug. 57Change "block" to "unblock" to remove a bug from the list. Closed
58bugs are not listed as blockers, so you do not need to explicitly
59unblock one that has been closed. You may need to force an update of
60the tracking bug with ctrl-f5/shift-reload to see the latest version.
61
55 62
56* TO BE DONE SHORTLY BEFORE RELEASE 63* TO BE DONE SHORTLY BEFORE RELEASE
57 64
58** Make sure the Copyright date reflects the current year in the source 65See 'admin/make-tarball.txt' for the details of making a release or pretest.
59files. See 'admin/notes/years' for information about maintaining 66
60copyright years for GNU Emacs. 67** Make sure the Copyright date reflects the current year in all source files.
68(This should be done each January anyway, regardless of releases.)
69See admin/update-copyright and admin.el's set-copyright.
70For more details, see 'admin/notes/years'.
61 71
62** Make sure the necessary sources and scripts for any generated files 72** Make sure the necessary sources and scripts for any generated files
63are included in the source tarball. (They don't need to be installed, 73are included in the source tarball. (They don't need to be installed,
64so e.g. admin/ is fine.) 74so e.g. admin/ is fine.) This is important for legal compliance.
65
66** Regenerate AUTHORS by using admin/authors.el
67(The instructions are at the beginning of that file.)
68 75
69** Remove temporary +++/--- lines in NEWS. 76** Remove temporary +++/--- lines in NEWS.
70But first make sure there are no unmarked entries, and update the 77But first make sure there are no unmarked entries, and update the
71documentation (or decide no updates are necessary) for those that 78documentation (or decide no updates are necessary) for those that aren't.
72aren't. 79
80** Try to reorder NEWS: most important things first, related items together.
81
82** For a major release, add a "New in Emacs XX" section to faq.texi.
83
84** cusver-check from admin.el can help find new defcustoms missing
85:version tags.
73 86
74** Manuals 87** Manuals
75Check for node names using problematic characters: 88Check for node names using problematic characters:
@@ -85,8 +98,7 @@ For major releases, rewrite the "Antinews" appendix of the User Manual
85previous version. The way to do that is read NEWS, pick up the more 98previous version. The way to do that is read NEWS, pick up the more
86significant changes and new features in the upcoming release, then 99significant changes and new features in the upcoming release, then
87describe the "benefits" from losing those features. Be funny, use 100describe the "benefits" from losing those features. Be funny, use
88humor. The text written for the previous major release can serve as 101humor. The text written for the previous releases can serve as an example.
89good example.
90 102
91Check cross-references between the manuals (e.g. from emacs to elisp) 103Check cross-references between the manuals (e.g. from emacs to elisp)
92are correct. You can use something like the following in the info 104are correct. You can use something like the following in the info
@@ -147,10 +159,6 @@ size that the GNU Press are going to use when they print the manuals.
147I think this is different to what you get if you just use e.g. 'make 159I think this is different to what you get if you just use e.g. 'make
148emacs.pdf' (e.g., enable "smallbook"). 160emacs.pdf' (e.g., enable "smallbook").
149 161
150** Try to reorder NEWS: most important things first, related items together.
151
152** For a major release, add a "New in Emacs XX" section to faq.texi.
153
154** Check the keybindings in the refcards are correct, and add any new ones. 162** Check the keybindings in the refcards are correct, and add any new ones.
155What paper size are the English versions supposed to be on? 163What paper size are the English versions supposed to be on?
156On Debian testing, the packages texlive-lang-czechslovak and 164On Debian testing, the packages texlive-lang-czechslovak and
@@ -172,11 +180,6 @@ pt-br Rodrigo Real
172ru Alex Ott 180ru Alex Ott
173sk Miroslav Vaško 181sk Miroslav Vaško
174 182
175** cusver-check from admin.el can help find new defcustoms missing
176:version tags.
177
178** Add a line to etc/HISTORY for the release version number and date.
179
180* BUGS 183* BUGS
181 184
182** Check for modes which bind M-s that conflicts with a new global binding M-s 185** Check for modes which bind M-s that conflicts with a new global binding M-s