Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 194 lines (148 sloc) 8.025 kb
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
1 Submitting Enhancements and Patches to PHP
2 ==========================================
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
3
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
4 This document describes how to submit an enhancement or patch for PHP.
5 It's easy!
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
6
95af340 Mention account access so we can refer account-requestors to this README
Christopher Jones authored
7 You don't need any login accounts or special access to download,
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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.
95af340 Mention account access so we can refer account-requestors to this README
Christopher Jones authored
11
afb5209 Add auroraeos's article URL. Add IRC channels
Christopher Jones authored
12 An excellent article to read first is:
13 http://phpadvent.org/2008/less-whining-more-coding-by-elizabeth-smith
14
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
15
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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.
ea0105a Add pecl mail list
Christopher Jones authored
43
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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.
5e34310 Add info on PHP doc contributions and add internals references
Christopher Jones authored
48
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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.
5e34310 Add info on PHP doc contributions and add internals references
Christopher Jones authored
52
d65ddb6 Fix English and improve by Stas. Thanks :)
Yasuo Ohgaki authored
53 The preferred way to propose PHP patch is sending pull request from
54 github.
f496aac Update source docs
Yasuo Ohgaki authored
55
56 https://github.com/php/php-src
57
d65ddb6 Fix English and improve by Stas. Thanks :)
Yasuo Ohgaki authored
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/.
f496aac Update source docs
Yasuo Ohgaki authored
63
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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.
5e34310 Add info on PHP doc contributions and add internals references
Christopher Jones authored
75
76 Information on contributing to PHP documentation is at
77 http://php.net/dochowto and http://wiki.php.net/doc/howto
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
78
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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
afb5209 Add auroraeos's article URL. Add IRC channels
Christopher Jones authored
124
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
125
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
126 How to create your PHP, PHP Documentation or PECL patch
127 -------------------------------------------------------
128 PHP and PECL use Subversion (SVN) for revision control. Read
09205f9 Update and fix grammar
Christopher Jones authored
129 http://www.php.net/svn.php for help on using SVN to get and build PHP
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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
09205f9 Update and fix grammar
Christopher Jones authored
132 http://svnbook.red-bean.com.
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
133
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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".
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
137
09205f9 Update and fix grammar
Christopher Jones authored
138 Read CODING_STANDARDS before you start working.
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
139
09205f9 Update and fix grammar
Christopher Jones authored
140 After modifying the source see README.TESTING and
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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
ea0105a Add pecl mail list
Christopher Jones authored
143 important for the stability and maintainability of PHP that tests are
144 comprehensive.
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
145
ea0105a Add pecl mail list
Christopher Jones authored
146 After testing is finished, create a patch file using the command:
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
147
09205f9 Update and fix grammar
Christopher Jones authored
148 svn diff > your_patch.txt
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
149
09205f9 Update and fix grammar
Christopher Jones authored
150 For ease of review and later troubleshooting, submit individual
151 patches for each bug or feature.
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
152
153
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
154 Checklist for submitting your PHP or PECL code patch
155 ----------------------------------------------------
ea0105a Add pecl mail list
Christopher Jones authored
156 - Update SVN source just before running your final 'diff' and
157 before testing.
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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".
09205f9 Update and fix grammar
Christopher Jones authored
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
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
164 running your PHP tests.
165 - Rebuild PHP with --enable-maintainer-zts to check your patch
166 compiles on multi-threaded web servers.
09205f9 Update and fix grammar
Christopher Jones authored
167 - Review the patch once more just before submitting it.
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
168
87e3b97 Add a note about the mime-type
Melvyn Sopacua authored
169
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
170 What happens after submitting your PHP, PHP Documentation or PECL patch
171 -----------------------------------------------------------------------
09205f9 Update and fix grammar
Christopher Jones authored
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
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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:
0459ad7 some typo fixing, and following The Little Book, omitting needless words
Sascha Schumann authored
179
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
180 - Did I send the patch to the right mail list?
09205f9 Update and fix grammar
Christopher Jones authored
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?
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
184 - Is my patch too hard to review? Because of what factors?
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
185
186
8b1dc1b Restructure into PHP/PECL/PEAR component areas (at the expense of duplic...
Christopher Jones authored
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.
69d6f1e Added README.SUBMITTING_PATCH file. Please fix/add/change.
Yasuo Ohgaki authored
192
09205f9 Update and fix grammar
Christopher Jones authored
193 Thank you for patching PHP!
Something went wrong with that request. Please try again.