Annotation of embedaddon/php/README.SUBMITTING_PATCH, revision 1.1.1.1

1.1       misho       1: Submitting Enhancements and Patches to PHP
                      2: ==========================================
                      3: 
                      4: This document describes how to submit an enhancement or patch for PHP.
                      5: It's easy!
                      6: 
                      7: You don't need any login accounts or special access to download,
                      8: build, debug and begin submitting PHP, PECL or PEAR code, tests or
                      9: documentation.  Once you've followed this README and had several
                     10: patches accepted, commit privileges are often quickly granted.
                     11: 
                     12: An excellent article to read first is:
                     13: http://phpadvent.org/2008/less-whining-more-coding-by-elizabeth-smith
                     14: 
                     15: 
                     16: Online Forums
                     17: -------------
                     18: There are several IRC channels where PHP developers are often
                     19: available to discuss questions.  They include #php.pecl, #php.doc and
                     20: #pear on the EFNet network and #php-dev-win on FreeNode.
                     21: 
                     22: 
                     23: PHP Patches
                     24: -----------
                     25: If you are fixing broken functionality in PHP C source code first
                     26: create a bug or identify an existing bug at http://bugs.php.net/.  A
                     27: bug can be used to track the patch progress and prevent your changes
                     28: getting lost in the PHP mail archives.
                     29: 
                     30: If your change is large then create a Request For Comment (RFC) page
                     31: on http://wiki.php.net/rfc, discuss it with the extension maintainer,
                     32: and discuss it on the development mail list internals@lists.php.net.
                     33: RFC Wiki accounts can be requested on
                     34: http://wiki.php.net/start?do=register.  PHP extension maintainers can
                     35: be found in the EXTENSIONS file in the PHP source.  Mail list
                     36: subscription is explained on http://www.php.net/mailing-lists.php.
                     37: 
                     38: Information on PHP internal C functions is at
                     39: http://www.php.net/internals, though this is considered incomplete.
                     40: Various external resources can be found on the web.  A standard
                     41: printed reference is the book "Extending and Embedding PHP" by Sara
                     42: Golemon.
                     43: 
                     44: Attach the patch to the PHP bug and consider sending a notification
                     45: email about the change to internals@lists.php.net.  Also CC the
                     46: extension maintainer.  Explain what has been changed by your patch.
                     47: Test scripts should be included.
                     48: 
                     49: Please make the mail subject prefix "[PATCH]".  If attaching a patch,
                     50: ensure it has a file extension of ".txt".  This is because only MIME
                     51: attachments of type 'text/*' are accepted.
                     52: 
                     53: 
                     54: PHP Documentation Patches
                     55: -------------------------
                     56: If you are fixing incorrect PHP documentation first create a bug or
                     57: identify an existing bug at http://bugs.php.net/.  A bug can be used
                     58: to track the patch progress and prevent your changes getting lost in
                     59: the PHP mail archives.
                     60: 
                     61: If your change is large, then first discuss it with the mail list
                     62: phpdoc@lists.php.net.  Subscription is explained on
                     63: http://www.php.net/mailing-lists.php.
                     64: 
                     65: Information on contributing to PHP documentation is at
                     66: http://php.net/dochowto and http://wiki.php.net/doc/howto
                     67: 
                     68: Attach the patch to the PHP bug and consider sending a notification
                     69: email about the change to phpdoc@lists.php.net.  Explain what has been
                     70: fixed/added/changed by your patch.
                     71: 
                     72: Please make the mail subject prefix "[PATCH]".  Include the bug id(s)
                     73: which can be closed by your patch.  If attaching a patch, ensure it
                     74: has a file extension of ".txt".  This is because only MIME attachments
                     75: of type 'text/*' are accepted.
                     76: 
                     77: 
                     78: PECL Extension Patches: http://pecl.php.net/
                     79: --------------------------------------------
                     80: If you are fixing broken functionality in a PECL extension then create
                     81: a bug or identify an existing bug at http://pecl.php.net/bugs/.  A bug
                     82: can be used to track the patch progress and prevent your changes
                     83: getting lost in the PHP mail archives.
                     84: 
                     85: If your change is large then create a Request For Comment (RFC) page
                     86: on http://wiki.php.net/rfc, discuss it with the extension maintainer,
                     87: and discuss it on the development mail list pecl-dev@lists.php.net.
                     88: PECL mail list subscription is explained on
                     89: http://pecl.php.net/support.php.  RFC Wiki accounts can be requested
                     90: on http://wiki.php.net/start?do=register
                     91: 
                     92: Information on PHP internal C functions is at
                     93: http://www.php.net/internals, though this is considered incomplete.
                     94: Various external resources can be found on the web.  A standard
                     95: printed reference is the book "Extending and Embedding PHP" by Sara
                     96: Golemon.
                     97: 
                     98: Update any open bugs and add a link to the source of your patch.  Send
                     99: the patch or pointer to the bug to pecl-dev@lists.php.net.  Also CC
                    100: the extension maintainer.  Explain what has been changed by your
                    101: patch.  Test scripts should be included.
                    102: 
                    103: Please make the mail subject prefix "[PATCH] ...".  Include the patch
                    104: as an attachment with a file extension of ".txt".  This is because
                    105: only MIME attachments of type 'text/*' are accepted.
                    106: 
                    107: 
                    108: PEAR Package Patches: http://pear.php.net/
                    109: ------------------------------------------
                    110: Information on contributing to PEAR is available at
                    111: http://pear.php.net/manual/en/developers-newmaint.php and
                    112: http://pear.php.net/manual/en/guide-developers.php
                    113: 
                    114: 
                    115: How to create your PHP, PHP Documentation or PECL patch
                    116: -------------------------------------------------------
                    117: PHP and PECL use Subversion (SVN) for revision control.  Read
                    118: http://www.php.net/svn.php for help on using SVN to get and build PHP
                    119: source code.  We recommend using a Sparse Directory checkout described
                    120: in http://wiki.php.net/vcs/svnfaq.  If you are new to SVN, read
                    121: http://svnbook.red-bean.com.
                    122: 
                    123: Generally we ask that bug fix patches work on the current stable PHP
                    124: development branches and on "trunk".  New PHP features only need to
                    125: work on "trunk".
                    126: 
                    127: Read CODING_STANDARDS before you start working.
                    128: 
                    129: After modifying the source see README.TESTING and
                    130: http://qa.php.net/write-test.php for how to test.  Submitting test
                    131: scripts helps us to understand what functionality has changed.  It is
                    132: important for the stability and maintainability of PHP that tests are
                    133: comprehensive.
                    134: 
                    135: After testing is finished, create a patch file using the command:
                    136: 
                    137:   svn diff > your_patch.txt
                    138: 
                    139: For ease of review and later troubleshooting, submit individual
                    140: patches for each bug or feature.
                    141: 
                    142: 
                    143: Checklist for submitting your PHP or PECL code patch
                    144: ----------------------------------------------------
                    145:  - Update SVN source just before running your final 'diff' and
                    146:    before testing.
                    147:  - Add in-line comments and/or have external documentation ready.
                    148:    Use only "/* */" style comments, not "//".
                    149:  - Create test scripts for use with "make test".
                    150:  - Run "make test" to check your patch doesn't break other features.
                    151:  - Rebuild PHP with --enable-debug (which will show some kinds of
                    152:    memory errors) and check the PHP and web server error logs after
                    153:    running your PHP tests.
                    154:  - Rebuild PHP with --enable-maintainer-zts to check your patch
                    155:    compiles on multi-threaded web servers.
                    156:  - Review the patch once more just before submitting it.
                    157: 
                    158: 
                    159: What happens after submitting your PHP, PHP Documentation or PECL patch
                    160: -----------------------------------------------------------------------
                    161: If your patch is easy to review and obviously has no side-effects,
                    162: it might be committed relatively quickly.
                    163: 
                    164: Because PHP is a volunteer-driven effort more complex patches will
                    165: require patience on your side.  If you do not receive feedback in a
                    166: few days, consider resubmitting the patch.  Before doing this think
                    167: about these questions:
                    168: 
                    169:  - Did I send the patch to the right mail list?
                    170:  - Did I review the mail list archives to see if these kind of
                    171:    changes had been discussed before?
                    172:  - Did I explain my patch clearly?
                    173:  - Is my patch too hard to review? Because of what factors?
                    174: 
                    175: 
                    176: What happens when your PHP or PECL patch is applied
                    177: ---------------------------------------------------
                    178: Your name will likely be included in the SVN commit log.  If your
                    179: patch affects end users, a brief description and your name might be
                    180: added to the NEWS file.
                    181: 
                    182: Thank you for patching PHP!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>