Permalink
Switch branches/tags
yaf-2.1.0 xmlrpc_epi_0_51_merge_pt php5_5_0 php4 php_ibase_before_split oci8-1.4.3 oci8-1.4.0 init help dev before-sapi-split ZO_B1 ZEND_OPTIMIZER_B1 SQLITE_4_3_20041227 SPL_ALPHA SAFEGUARD_3_0_BETA1_RC1_26062002 RETURN_REF_BP RELEASE_2_0_2 RELEASE_2_0_1 RELEASE_2_0_0 RELEASE_2_0_0b1 RELEASE_2_0_0a2 RELEASE_2_0_0a1 RELEASE_2_0_0RC1 RELEASE_1_5 RELEASE_1_4 RELEASE_1_3_5 RELEASE_1_3_1 RELEASE_1_3 RELEASE_1_3b6 RELEASE_1_3b3 RELEASE_1_3b2 RELEASE_1_2_5 RELEASE_1_2_4 RELEASE_1_2_3 RELEASE_1_2_2 RELEASE_1_2_1 RELEASE_1_2_0 RELEASE_1_2 RELEASE_1_2b5 RELEASE_1_1_1 RELEASE_1_1_0 RELEASE_1_1 RELEASE_1_0_4 RELEASE_1_0_3 RELEASE_1_0_2 RELEASE_1_0_1 RELEASE_1_0_0RC1 RELEASE_1_0 RELEASE_1_0b3 RELEASE_1_0b2 RELEASE_1_0b1 RELEASE_1_0RC2 RELEASE_1_0RC1 RELEASE_0_91 RELEASE_0_90 RELEASE_0_11 RELEASE_0_10 RELEASE_0_9_4 RELEASE_0_9_3 RELEASE_0_9_2 RELEASE_0_9_1 RELEASE_0_9_0 RELEASE_0_9 RELEASE_0_9b RELEASE_0_7 RELEASE_0_6 RELEASE_0_5_3 RELEASE_0_5_2 RELEASE_0_5 RELEASE_0_4 RELEASE_0_3 RELEASE_0_2_4 RELEASE_0_2_3 RELEASE_0_2_2 RELEASE_0_2_1 RELEASE_0_2_0 RELEASE_0_2 RELEASE_0_1_1 RELEASE_0_1 PRE_ZEND_VM_DISPATCH_PATCH PRE_USED_RETURN_VALUE_PATCH PRE_TSRM_MERGE_PATCH PRE_SUBST_Z_MACROS PRE_RETURN_REF_PATCH PRE_RETURN_REF_MERGE PRE_PARAMETER_PARSING_API PRE_NEW_VM_GEN_PATCH PRE_NEW_OCI8_EXTENSION PRE_METHOD_DEREFERENCE_PATCH PRE_METHOD_CALL_SEPERATE_FIX_PATCH PRE_LIBZEND_TO_ZEND PRE_LIBMYSQL_REVERT PRE_ISSET_TYPE PRE_ISSET_PATCH PRE_GRANULAR_GARBAGE_FIX PRE_FUNC_RETURNS_OBJECT_PATCH PRE_FILE_COMPILE_API_CHANGE PRE_FETCH_READ_PATCH PRE_ENGINE2_SPLIT
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
130 lines (85 sloc) 4.78 KB
====================
Git Commit Rules
====================
This is the first file you should be reading when contributing code via Git.
We'll assume you're basically familiar with Git, but feel free to post
your questions on the mailing list. Please have a look at
http://git-scm.com/ for more detailed information on Git.
PHP is developed through the efforts of a large number of people.
Collaboration is a Good Thing(tm), and Git lets us do this. Thus, following
some basic rules with regards to Git usage will::
a. Make everybody happier, especially those responsible for maintaining
Git itself.
b. Keep the changes consistently well documented and easily trackable.
c. Prevent some of those 'Oops' moments.
d. Increase the general level of good will on planet Earth.
Having said that, here are the organizational rules::
1. Respect other people working on the project.
2. Discuss any significant changes on the list before committing and get
confirmation from the release manager for the given branch.
3. Look at EXTENSIONS file to see who is the primary maintainer of
the code you want to contribute to.
4. If you "strongly disagree" about something another person did, don't
start fighting publicly - take it up in private email.
5. If you don't know how to do something, ask first!
6. Test your changes before committing them. We mean it. Really.
To do so use "make test".
7. For development use the --enable-maintainer-zts switch to ensure your
code handles TSRM correctly and doesn't break for those who need that.
Currently we have the following branches in use::
master The active development branch.
PHP-5.5 Is used to release the PHP 5.5.x series. This is a current
stable version and is open for bugfixes only.
PHP-5.4 Is used to release the PHP 5.4.x series. This is a current
stable version and is open for bugfixes only.
PHP-5.3 Is used to release the PHP 5.3.x series. This is currently
in extended support and open forsecurity fixes only. Triaged
via security@php.net
PHP-5.2 This branch is closed.
PHP-5.1 This branch is closed.
PHP-4.4 This branch is closed.
The next few rules are more of a technical nature::
1. All changes should first go to the lowest branch (i.e. 5.3) and then
get merged up to all other branches. If a change is not needed for
later branches (i.e. fixes for features which where dropped from later
branches) an empty merge should be done.
2. All news updates intended for public viewing, such as new features,
bug fixes, improvements, etc., should go into the NEWS file of *any
stable release* version with the given change. In other words,
news about a bug fix which went into PHP-5.4, PHP-5.5 and master
should be noted in both PHP-5.4/NEWS and PHP-5.5/NEWS but
not master, which is not a public released version yet.
3. Do not commit multiple file and dump all messages in one commit. If you
modified several unrelated files, commit each group separately and
provide a nice commit message for each one. See example below.
4. Do write your commit message in such a way that it makes sense even
without the corresponding diff. One should be able to look at it, and
immediately know what was modified. Definitely include the function name
in the message as shown below.
5. In your commit messages, keep each line shorter than 80 characters. And
try to align your lines vertically, if they wrap. It looks bad otherwise.
6. If you modified a function that is callable from PHP, prepend PHP to
the function name as shown below.
The format of the commit messages is pretty simple.
<max 79 characters short description>\n
\n
<long description, 79 chars per line>
\n
An Example from the git project (commit 2b34e486bc):
pack-objects: Fix compilation with NO_PTHREDS
It looks like commit 99fb6e04 (pack-objects: convert to use
parse_options(), 2012-02-01) moved the #ifdef NO_PTHREDS around but
hasn't noticed that the 'arg' variable no longer is available.
If you fix some bugs, you should note the bug ID numbers in your
commit message. Bug ID should be prefixed by "#" for easier access to
bug report when developers are browsing CVS via LXR or Bonsai.
Example::
Fixed bug #14016 (pgsql notice handler double free crash bug.)
When you change the NEWS file for a bug fix, then please keep the bugs
sorted in decreasing order under the fixed version.
You can use OpenGrok (http://lxr.php.net/) and gitweb (http://git.php.net/)
to look at PHP Git repository in various ways.
For further information on the process and further details please refer to
https://wiki.php.net/vcs/gitworkflow and https://wiki.php.net/vcs/gitfaq
Happy hacking,
PHP Team