diff options
| author | Stephen Leake | 2014-12-06 02:11:36 -0600 |
|---|---|---|
| committer | Stephen Leake | 2014-12-06 02:38:34 -0600 |
| commit | 06264b3d247b21be627d1bcd7d928cd3140d249a (patch) | |
| tree | d47798b293468d4a60a185f4c62e2cda64601627 /admin | |
| parent | 7841e9348276c076eb6be26683ee25f0e0db4706 (diff) | |
| download | emacs-06264b3d247b21be627d1bcd7d928cd3140d249a.tar.gz emacs-06264b3d247b21be627d1bcd7d928cd3140d249a.zip | |
Improve CONTRIBUTE and related files.
* CONTRIBUTE: improve; add explicit web references, move some info from
admin/notes/* here.
* INSTALL.REPO: You can't "just run make" after a clean checkout.
* admin/notes/commits: deleted; merged into ./CONTRIBUTE
* admin/notes/repo: move commit, branch info into ./CONTRIBUTE
Diffstat (limited to 'admin')
| -rw-r--r-- | admin/notes/commits | 70 | ||||
| -rw-r--r-- | admin/notes/repo | 92 |
2 files changed, 0 insertions, 162 deletions
diff --git a/admin/notes/commits b/admin/notes/commits deleted file mode 100644 index f33c6905d4c..00000000000 --- a/admin/notes/commits +++ /dev/null | |||
| @@ -1,70 +0,0 @@ | |||
| 1 | HOW TO COMMIT CHANGES TO EMACS | ||
| 2 | |||
| 3 | Most of these points are from: | ||
| 4 | |||
| 5 | http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00555.html | ||
| 6 | From: Miles Bader | ||
| 7 | Subject: commit style redux | ||
| 8 | Date: Tue, 31 Mar 2009 12:21:20 +0900 | ||
| 9 | |||
| 10 | (0) Each commit should correspond to a single change (whether spread | ||
| 11 | over multiple files or not). Do not mix different changes in the | ||
| 12 | same commit (eg adding a feature in one file, fixing a bug in | ||
| 13 | another should be two commits, not one). | ||
| 14 | |||
| 15 | (1) Commit all changed files at once with a single log message (which | ||
| 16 | in CVS will result in an identical log message for all committed | ||
| 17 | files), not one-by-one. This is pretty easy using vc-dir now. | ||
| 18 | |||
| 19 | (2) Make the log message describe the entire changeset, perhaps | ||
| 20 | including relevant changelog entries (I often don't bother with | ||
| 21 | the latter if it's a trivial sort of change). | ||
| 22 | |||
| 23 | Many modern source-control systems vaguely distinguish the first | ||
| 24 | line of the log message to use as a short summary for abbreviated | ||
| 25 | history listing (in arch this was explicitly called the summary, | ||
| 26 | but many other systems have a similar concept). So it's nice if | ||
| 27 | you can format the log entry like: | ||
| 28 | |||
| 29 | SHORTISH ONE-LINE SUMMARY | ||
| 30 | |||
| 31 | MULTIPLE-LINE DETAILED DESCRIPTION POSSIBLY INCLUDING (OR | ||
| 32 | CONSISTING OF) CHANGELOG ENTRIES | ||
| 33 | |||
| 34 | [Even with CVS this style is useful, because web CVS browsing | ||
| 35 | interfaces often include the first N words of the log message of | ||
| 36 | the most recent commit as a short "most recent change" | ||
| 37 | description.] | ||
| 38 | |||
| 39 | (3) Don't phrase log messages assuming the filename is known, because | ||
| 40 | in non-file-oriented systems (everything modern other than CVS), | ||
| 41 | the log listing tends to be treated as global information, and the | ||
| 42 | connection with specific files is less explicit. | ||
| 43 | |||
| 44 | For instance, currently I often see log messages like "Regenerate"; | ||
| 45 | for modern source-control systems with a global log, it's better to | ||
| 46 | have something like "Regenerate configure". | ||
| 47 | |||
| 48 | (4) (Added in 2014) In commit comments, and ChangeLog files, it is best | ||
| 49 | to use ways of identifying revisions that are not dependent on a | ||
| 50 | particular version control system. (At time of writing Emacs is | ||
| 51 | about to move to its fourth VCS and another move in the future is | ||
| 52 | not impossible.) An excellent way to identify commits is by | ||
| 53 | quoting their summary line. Another is with an action stamp - an | ||
| 54 | RFC3339 date followed by ! followed by the committer's email - for | ||
| 55 | example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my | ||
| 56 | previous commit" will suffice. | ||
| 57 | |||
| 58 | Followup discussion: | ||
| 59 | http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html | ||
| 60 | http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00401.html | ||
| 61 | |||
| 62 | |||
| 63 | PREVIOUS GUIDELINES FOR CVS | ||
| 64 | |||
| 65 | For historical interest only, here is the old-style advice for CVS logs: | ||
| 66 | http://lists.gnu.org/archive/html/emacs-devel/2007-12/msg01208.html | ||
| 67 | |||
| 68 | From: Eli Zaretskii | ||
| 69 | Subject: Re: Log messages in CVS | ||
| 70 | Date: Sat, 29 Dec 2007 16:06:29 +0200 | ||
diff --git a/admin/notes/repo b/admin/notes/repo index 97b4349ed65..2d4cc2a55cf 100644 --- a/admin/notes/repo +++ b/admin/notes/repo | |||
| @@ -1,70 +1,5 @@ | |||
| 1 | NOTES ON COMMITTING TO EMACS'S REPOSITORY -*- outline -*- | 1 | NOTES ON COMMITTING TO EMACS'S REPOSITORY -*- outline -*- |
| 2 | 2 | ||
| 3 | * Commit metainformation | ||
| 4 | |||
| 5 | ** Commit in the author's name | ||
| 6 | |||
| 7 | If installing changes written by someone else, commit them in their | ||
| 8 | name, not yours. | ||
| 9 | |||
| 10 | ** Commit message format | ||
| 11 | |||
| 12 | Commit messages should follow the conventions used in all modern | ||
| 13 | distributed version-control systems. That is, they should consist of | ||
| 14 | |||
| 15 | - A self-contained topic line, preferably no more than 75 chars long. | ||
| 16 | |||
| 17 | - If other content follows the topic line, there should be a blank | ||
| 18 | line separating the two. | ||
| 19 | |||
| 20 | - Follow the blank line with ChangeLog-like entries for the specific | ||
| 21 | changes you made, if any. (As long as Emacs maintains ChangeLog | ||
| 22 | files, just copy the entries you made in them to the commit message | ||
| 23 | after the blank line.) | ||
| 24 | |||
| 25 | - Preferred form for several entries with the same content: | ||
| 26 | |||
| 27 | * help.el (view-lossage): | ||
| 28 | * kmacro.el (kmacro-edit-lossage): | ||
| 29 | * edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys. | ||
| 30 | |||
| 31 | (Rather than anything involving "ditto" and suchlike.) | ||
| 32 | |||
| 33 | - Emacs generally follows the GNU coding standards when it comes to ChangeLogs: | ||
| 34 | http://www.gnu.org/prep/standards/html_node/Change-Logs.html | ||
| 35 | One exception is that we still sometimes quote `like-this' (as the | ||
| 36 | standards used to recommend) rather than 'like-this' (as they do now), | ||
| 37 | because `...' is so widely used elsewhere in Emacs. | ||
| 38 | http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html | ||
| 39 | |||
| 40 | ** Unnecessary metainformation | ||
| 41 | |||
| 42 | There is no need to make separate change log entries for files such as | ||
| 43 | NEWS, MAINTAINERS, and FOR-RELEASE, or to indicate regeneration of | ||
| 44 | files such as 'configure'. "There is no need" means you don't have | ||
| 45 | to, but you can if you want to. | ||
| 46 | |||
| 47 | * Commit to the right branch | ||
| 48 | |||
| 49 | Development normally takes places on the trunk. | ||
| 50 | Sometimes specialized features are developed on separate branches | ||
| 51 | before possibly being merged to the trunk. | ||
| 52 | |||
| 53 | Development is discussed on the emacs-devel mailing list. | ||
| 54 | |||
| 55 | Sometime before the release of a new major version of Emacs | ||
| 56 | a "feature freeze" is imposed on the trunk. No new features may be | ||
| 57 | added after this point. This is usually some months before the release. | ||
| 58 | |||
| 59 | Shortly before the release, a release branch is created, and the | ||
| 60 | trunk is then free for development. | ||
| 61 | |||
| 62 | For example, "emacs-23" for Emacs 23.2 and later, "EMACS_23_1_RC" for | ||
| 63 | 23.1, "EMACS_22_BASE" for 22.x, and "EMACS_21_1_RC" for 21.x. | ||
| 64 | |||
| 65 | Consult emacs-devel for exactly what kinds of changes are allowed | ||
| 66 | on what branch at any time. | ||
| 67 | |||
| 68 | ** elpa | 3 | ** elpa |
| 69 | 4 | ||
| 70 | This branch does not contain a copy of Emacs, but of the Emacs Lisp | 5 | This branch does not contain a copy of Emacs, but of the Emacs Lisp |
| @@ -72,25 +7,6 @@ package archive (elpa.gnu.org). See admin/notes/elpa for further | |||
| 72 | explanation, and the README file in the branch for usage | 7 | explanation, and the README file in the branch for usage |
| 73 | instructions. | 8 | instructions. |
| 74 | 9 | ||
| 75 | * Install changes only on one branch, let them get merged elsewhere if needed. | ||
| 76 | |||
| 77 | In particular, install bug-fixes only on the release branch (if there | ||
| 78 | is one) and let them get synced to the trunk; do not install them by | ||
| 79 | hand on the trunk as well. E.g. if there is an active "emacs-24" branch | ||
| 80 | and you have a bug-fix appropriate for the next emacs-24.x release, | ||
| 81 | install it only on the emacs-24 branch, not on the trunk as well. | ||
| 82 | |||
| 83 | Installing things manually into more than one branch makes merges more | ||
| 84 | difficult. | ||
| 85 | |||
| 86 | http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html | ||
| 87 | |||
| 88 | The exception is, if you know that the change will be difficult to | ||
| 89 | merge to the trunk (eg because the trunk code has changed a lot). | ||
| 90 | In that case, it's helpful if you can apply the change to both trunk | ||
| 91 | and branch yourself (when committing the branch change, indicate | ||
| 92 | in the commit log that it should not be merged to the trunk; see below). | ||
| 93 | |||
| 94 | * Installing changes from your personal branches. | 10 | * Installing changes from your personal branches. |
| 95 | 11 | ||
| 96 | If your branch has only a single commit, or many different real | 12 | If your branch has only a single commit, or many different real |
| @@ -129,14 +45,6 @@ variable in admin/merge-gnulib before running it. | |||
| 129 | If you remove a gnulib module, or if a gnulib module | 45 | If you remove a gnulib module, or if a gnulib module |
| 130 | removes a file, then remove the corresponding files by hand. | 46 | removes a file, then remove the corresponding files by hand. |
| 131 | 47 | ||
| 132 | * Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24"). | ||
| 133 | |||
| 134 | Indicate in the commit log that there is no need to merge the commit | ||
| 135 | to the trunk, e.g. start the commit message with "Backport:". This is | ||
| 136 | helpful for the person merging the release branch to the trunk. | ||
| 137 | |||
| 138 | http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00262.html | ||
| 139 | |||
| 140 | * How to merge changes from emacs-24 to trunk | 48 | * How to merge changes from emacs-24 to trunk |
| 141 | 49 | ||
| 142 | [The section on git merge procedure has not yet been written] | 50 | [The section on git merge procedure has not yet been written] |