File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / README.SUBMITTING_PATCH
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 20:03:41 2014 UTC (10 years, 6 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_29, HEAD
php 5.4.29

    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: The preferred way to propose PHP patch is sending pull request from
   54: github.
   55: 
   56: https://github.com/php/php-src
   57: 
   58: Fork the official PHP repository and send a pull request. A
   59: notification will be sent to the pull request mailing list. Sending a
   60: note to PHP Internals list (internals@lists.php.net) may help getting
   61: more feedback and quicker turnaround.  You can also add pull requests
   62: to bug reports at http://bugs.php.net/.
   63: 
   64: 
   65: PHP Documentation Patches
   66: -------------------------
   67: If you are fixing incorrect PHP documentation first create a bug or
   68: identify an existing bug at http://bugs.php.net/.  A bug can be used
   69: to track the patch progress and prevent your changes getting lost in
   70: the PHP mail archives.
   71: 
   72: If your change is large, then first discuss it with the mail list
   73: phpdoc@lists.php.net.  Subscription is explained on
   74: http://www.php.net/mailing-lists.php.
   75: 
   76: Information on contributing to PHP documentation is at
   77: http://php.net/dochowto and http://wiki.php.net/doc/howto
   78: 
   79: Attach the patch to the PHP bug and consider sending a notification
   80: email about the change to phpdoc@lists.php.net.  Explain what has been
   81: fixed/added/changed by your patch.
   82: 
   83: Please make the mail subject prefix "[PATCH]".  Include the bug id(s)
   84: which can be closed by your patch.  If attaching a patch, ensure it
   85: has a file extension of ".txt".  This is because only MIME attachments
   86: of type 'text/*' are accepted.
   87: 
   88: 
   89: PECL Extension Patches: http://pecl.php.net/
   90: --------------------------------------------
   91: If you are fixing broken functionality in a PECL extension then create
   92: a bug or identify an existing bug at http://pecl.php.net/bugs/.  A bug
   93: can be used to track the patch progress and prevent your changes
   94: getting lost in the PHP mail archives.
   95: 
   96: If your change is large then create a Request For Comment (RFC) page
   97: on http://wiki.php.net/rfc, discuss it with the extension maintainer,
   98: and discuss it on the development mail list pecl-dev@lists.php.net.
   99: PECL mail list subscription is explained on
  100: http://pecl.php.net/support.php.  RFC Wiki accounts can be requested
  101: on http://wiki.php.net/start?do=register
  102: 
  103: Information on PHP internal C functions is at
  104: http://www.php.net/internals, though this is considered incomplete.
  105: Various external resources can be found on the web.  A standard
  106: printed reference is the book "Extending and Embedding PHP" by Sara
  107: Golemon.
  108: 
  109: Update any open bugs and add a link to the source of your patch.  Send
  110: the patch or pointer to the bug to pecl-dev@lists.php.net.  Also CC
  111: the extension maintainer.  Explain what has been changed by your
  112: patch.  Test scripts should be included.
  113: 
  114: Please make the mail subject prefix "[PATCH] ...".  Include the patch
  115: as an attachment with a file extension of ".txt".  This is because
  116: only MIME attachments of type 'text/*' are accepted.
  117: 
  118: 
  119: PEAR Package Patches: http://pear.php.net/
  120: ------------------------------------------
  121: Information on contributing to PEAR is available at
  122: http://pear.php.net/manual/en/developers-newmaint.php and
  123: http://pear.php.net/manual/en/guide-developers.php
  124: 
  125: 
  126: How to create your PHP, PHP Documentation or PECL patch
  127: -------------------------------------------------------
  128: PHP and PECL use Subversion (SVN) for revision control.  Read
  129: http://www.php.net/svn.php for help on using SVN to get and build PHP
  130: source code.  We recommend using a Sparse Directory checkout described
  131: in http://wiki.php.net/vcs/svnfaq.  If you are new to SVN, read
  132: http://svnbook.red-bean.com.
  133: 
  134: Generally we ask that bug fix patches work on the current stable PHP
  135: development branches and on "trunk".  New PHP features only need to
  136: work on "trunk".
  137: 
  138: Read CODING_STANDARDS before you start working.
  139: 
  140: After modifying the source see README.TESTING and
  141: http://qa.php.net/write-test.php for how to test.  Submitting test
  142: scripts helps us to understand what functionality has changed.  It is
  143: important for the stability and maintainability of PHP that tests are
  144: comprehensive.
  145: 
  146: After testing is finished, create a patch file using the command:
  147: 
  148:   svn diff > your_patch.txt
  149: 
  150: For ease of review and later troubleshooting, submit individual
  151: patches for each bug or feature.
  152: 
  153: 
  154: Checklist for submitting your PHP or PECL code patch
  155: ----------------------------------------------------
  156:  - Update SVN source just before running your final 'diff' and
  157:    before testing.
  158:  - Add in-line comments and/or have external documentation ready.
  159:    Use only "/* */" style comments, not "//".
  160:  - Create test scripts for use with "make test".
  161:  - Run "make test" to check your patch doesn't break other features.
  162:  - Rebuild PHP with --enable-debug (which will show some kinds of
  163:    memory errors) and check the PHP and web server error logs after
  164:    running your PHP tests.
  165:  - Rebuild PHP with --enable-maintainer-zts to check your patch
  166:    compiles on multi-threaded web servers.
  167:  - Review the patch once more just before submitting it.
  168: 
  169: 
  170: What happens after submitting your PHP, PHP Documentation or PECL patch
  171: -----------------------------------------------------------------------
  172: If your patch is easy to review and obviously has no side-effects,
  173: it might be committed relatively quickly.
  174: 
  175: Because PHP is a volunteer-driven effort more complex patches will
  176: require patience on your side.  If you do not receive feedback in a
  177: few days, consider resubmitting the patch.  Before doing this think
  178: about these questions:
  179: 
  180:  - Did I send the patch to the right mail list?
  181:  - Did I review the mail list archives to see if these kind of
  182:    changes had been discussed before?
  183:  - Did I explain my patch clearly?
  184:  - Is my patch too hard to review? Because of what factors?
  185: 
  186: 
  187: What happens when your PHP or PECL patch is applied
  188: ---------------------------------------------------
  189: Your name will likely be included in the SVN commit log.  If your
  190: patch affects end users, a brief description and your name might be
  191: added to the NEWS file.
  192: 
  193: Thank you for patching PHP!

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