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>