diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-01-12 14:16:04 +0100 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-01-12 14:26:11 +0100 |
commit | adbc02f851471df72079559cf0c833fc55066d40 (patch) | |
tree | b1323ebb6e7b80cee9197bca8ad364f493bf9029 /HACKING | |
parent | 352e10c12329a2d04a8a7254ad77050ce68bc221 (diff) | |
parent | 84d77cd6e35f66a6bfd5b41a39bb8c2a4f909b6f (diff) | |
download | automake-adbc02f851471df72079559cf0c833fc55066d40.tar.gz |
Merge branch 'master' into ng/master
This merge breaks few tests. They will be adjusted by follow-up patches.
* master: (26 commits)
tests: remove most uses of the AM_PROG_CC_C_O obsolete macro
coverage: obsolete macro AM_PROG_CC_C_O should cause no warning nor errors
INSTALL: update copyright years
ithreads: use runtime (not configure time) detection of perl threads
copyright: add few missing copyright notices
maint: files in PLANS are to be exempted from copyright notice
maint: consistently honor the UPDATE_COPYRIGHT_YEAR environment variable
copyright: update some copyright years
compile: use 'compile' script when "-c -o" is used with losing compilers
HACKING: suggest more checks before releasing
tests: can fake a compiler not grasping "-c -o" -- globally in all tests
sync: update files from upstream with "make fetch"
typofix: in comments in GNUmakefile
Rename 'maint/' -> 'maintainer/', for Git's sake
HACKING: minor typofix
HACKING: bug-tracker, the PLANS directory, and how to plan "big" changes
HACKING: rewindable branches should live in the 'experimental/*' namespace
HACKING: fixlets about git branch rewinding policy
HACKING: commit messages are not to follow GCS ChangeLog rules too strongly
HACKING: "detailed explanation" in commit messages is almost mandatory
...
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 54 |
1 files changed, 36 insertions, 18 deletions
@@ -14,7 +14,7 @@ * If you incorporate a change from somebody on the net: First, if it is a large change, you must make sure they have signed the appropriate paperwork. - Second, be sure to add their name and email address to THANKS + Second, be sure to add their name and email address to THANKS. * If a change fixes a test, mention the test in the commit message. If a change fixes a bug registered in the Automake debbugs tracker, @@ -38,6 +38,16 @@ * Changes other than bug fixes must be mentioned in NEWS. Important bug fixes should be mentioned in NEWS, too. +* Changes which are potentially controversial, require a non-trivial + plan, or must be implemented gradually with a roadmap spanning several + releases (either minor or major) should be discussed on the list, + and have a proper entry in the PLANS directory. This entry should be + always committed in the "maint" branch, even if the change it deals + with is only for the master branch, or a topic branch. Usually, in + addition to this, it is useful to open a "wishlist" report on the + Automake debbugs tracker, to keep the idea more visible, and have the + discussions surrounding it easily archived in a central place. + ============================================================================ = Naming @@ -107,7 +117,7 @@ * There may be a number of longer-lived feature branches for new developments. They should be based off of a common ancestor of all active branches to which the feature should or might be merged later. - in the future, we might introduce a special branch named 'next' that + In the future, we might introduce a special branch named 'next' that may serve as common ground for feature merging and testing, should they not yet be ready for master. @@ -121,15 +131,17 @@ the active branches descending from the buggy commit. This offers a simple way to fix the bug consistently and effectively. -* For merges from branches other than maint, prefer 'git merge --log' over - plain 'git merge', so that a later 'git log' gives an indication of which - actual patches were merged even when they don't appear early in the list. +* When merging, prefer 'git merge --log' over plain 'git merge', so that + a later 'git log' gives an indication of which actual patches were + merged even when they don't appear early in the list. -* master and release branches should not be rewound, i.e., should always - fast-forward, except maybe for privacy issues. The maint branch should not - be rewound except maybe after retiring a release branch or a new stable - release. For next, and for feature branches, the announcement for the - branch should document rewinding policy. +* The 'master' and 'maint' branches should not be rewound, i.e., should + always fast-forward, except maybe for privacy issues. For 'next' + (if that will ever be implemented), and for feature branches, the + announcement for the branch should document rewinding policy. If a + topic branch is expected to be rewound, it is good practice to put + it in the 'experimental/*' namespace; for example, a rewindable branch + dealing with Vala support could be named like "experimental/vala-work". ============================================================================ = Writing a good commit message @@ -143,8 +155,9 @@ <reference to relevant bugs, if any> Here goes a more detailed explanation of why the commit is needed, - and a general overview of what it does, and how. This section is - optional, but you are expected to provide it more often than not. + and a general overview of what it does, and how. This section + should almost always be provided, possibly only with the expection + of obvious fixes or very trivial changes. And if the detailed explanation is quite long or detailed, you can want to break it in more paragraphs. @@ -161,10 +174,10 @@ <detailed list of touched files> -* The <detailed list of touched files> is mandatory but for the most - trivial changes, and should follows the GNU guidelines for ChangeLog - entries (described explicitly in the GNU Coding Standards); it might - be something of this sort: +* The <detailed list of touched files> should usually be provided (but + for short or trivial changes), and should follow the GNU guidelines + for ChangeLog entries (described explicitly in the GNU Coding + Standards); it might be something of this sort: * some/file (func1): Improved frobnication. (func2): Adjusted accordingly. @@ -230,9 +243,14 @@ The repository will always have its own "odd" number so we can easily distinguish net and repo versions.) -* Run this: +* Run these commands, in this order: - make bootstrap && make check && make distcheck + make bootstrap + make check keep_testdirs=yes + make maintainer-check + make distcheck + make check-no-trailing-backslash-in-recipes + make check-cc-no-c-o It is also advised to run "git clean -fdx" before invoking the bootstrap, to ensure a really clean rebuild. However, it must |