xref: /PHP-7.3/CONTRIBUTING.md (revision e3f58de3)
1# Contributing to PHP
2
3Anybody who programs in PHP can be a contributing member of the community that
4develops and deploys it; the task of deploying PHP, documentation and
5associated websites is a never ending one. With every release, or release
6candidate comes a wave of work, which takes a lot of organization and
7co-ordination.
8
9## Pull requests
10
11PHP welcomes pull requests to [add tests](#writing-tests), fix bugs and to
12implement RFCs. Please be sure to include tests as appropriate!
13
14If you are fixing a bug, then please submit your PR against the lowest actively
15supported branch of PHP that the bug affects (only green branches on
16[the supported version page](http://php.net/supported-versions.php) are supported).
17For example, at the time of writing in early-2018, the lowest supported version is
18PHP 7.1, which corresponds to the `PHP-7.1` branch in Git. Please also make sure you
19add a link to the PR in the bug on [the bug tracker](https://bugs.php.net/).
20
21Pull requests implementing RFCs should be submitted against `master`.
22
23Pull requests should *never* be submitted against `PHP-x.y.z` branches, as
24these are only used for release management.
25
26If your pull request exhibits conflicts with the base branch, please resolve them
27by using `git rebase` instead of `git merge`.
28
29## Filing bugs
30
31Bugs can be filed on the [PHP bug tracker](https://bugs.php.net/). If this is
32the first time you've filed a bug, we suggest reading the
33[guide to reporting a bug](https://bugs.php.net/how-to-report.php).
34
35Where possible, please include a self-contained reproduction case!
36
37## Feature requests
38
39Feature requests are generally submitted in the form of
40[Requests for Comment](https://wiki.php.net/rfc/howto), ideally accompanied by
41[pull requests](#pull-requests). You can find the extremely large list of RFCs
42that have been previously considered on the
43[PHP Wiki](https://wiki.php.net/rfc).
44
45You may want to read
46[The Mysterious PHP RFC Process](https://blogs.oracle.com/opal/entry/the_mysterious_php_rfc_process)
47for additional notes on the best way to approach submitting an RFC.
48
49## Writing tests
50
51We love getting new tests! PHP is a huge project and improving code coverage is
52a huge win for every PHP user.
53
54[Our QA site includes a page detailing how to write test cases.](http://qa.php.net/write-test.php)
55Please note that the section on submitting pull requests is outdated: in
56addition to the process listed there, you can also
57[submit pull requests](#pull-requests).
58
59## Writing documentation
60
61There are two ways to contribute to the PHP manual. You can edit the manual and
62send patches anonymously via [the online editor](https://edit.php.net/), or you
63can check the XML source out from Subversion and edit that and build it
64[per the instructions on the documentation site](http://doc.php.net/tutorial/).
65Patches created that way should be sent to the
66[documentation mailing list](mailto:phpdoc@lists.php.net).
67
68## Getting help
69
70If you are having trouble contributing to PHP, or just want to talk to a human
71about what you're working on, you can contact us via the
72[internals mailing list](mailto:internals@lists.php.net), or the
73[documentation mailing list](mailto:phpdoc@lists.php.net) for documentation
74issues.
75
76Although not a formal channel, you can also find a number of core developers on
77the #php.pecl channel on [EFnet](http://www.efnet.org/). Similarly, many
78documentation writers can be found on #php.doc.
79