Contributing
GIT #
Xdebug is hosted in GIT. The source code can be browsed through github and can be checked out with:
git clone git://github.com/xdebug/xdebug.git
If you think you want to fix a bug or work on a new feature, then you need to follow the instructions below.
Initial Set-up #
- Fork Xdebug on github.
- Clone the repository:
git clone git@github.com:{your username}/xdebug.git
for example:
git clone git@github.com:jamesbond/xdebug.git - Change into the
xdebugrepository:
cd xdebug. - Make sure to set your git name and email:
git config --get user.name && git config --get user.email
If they are not correct, set them to the correct value:
git config user.name {your name} && git config user.email {your email}
for example:
git config user.name "Derick Rethans" && git config user.email "derick@xdebug.org" - Add the original repository as remote (after removing the old one):
git remote add upstream git://github.com/xdebug/xdebug.git && git fetch upstream - Add a tracking branch for xdebug 3.0:
git checkout --track origin/xdebug_3_0
Keeping up-to-date #
- Change into the
xdebugrepository (if you haven't done yet):
cd xdebug - Run:
git checkout master && git fetch upstream && git rebase upstream/master - Run:
git checkout xdebug_3_0 && git fetch upstream && git rebase upstream/xdebug_3_0
Working on a bug fix #
The steps for this are the same as for working on new features except that you make a branch of xdebug_3_0 instead of master.
- First of all, make sure you're up-to-date.
- Checkout the
xdebug_3_0branch:git checkout xdebug_3_0. - Create a feature branch:
git checkout -b issue{issue number}
for example:
git checkout -b issue681
If there is no bug report yet, then you need to create one. If you want, you can add a description of the feature after theissue681part, for example:issue1623-debug-static-properties. - Work on the code, and add one or more tests in the tests directory, with as
name
tests/bug0{issue number}.phpt, for example:tests/bug01623.phpt. - Commit it to your local repository:
git commit .., with your main commit message's format asFixed issue #1623: {issue report title}. - Repeat the previous two steps as long as you want.
- Bring things up-to-date with the original repository, especially important
if it took some time since you branched:
git fetch upstream && git rebase upstream/xdebug_3_0 - Push your changes to your remote repository:
git push origin {issue number}
for example:
git push origin issue681 -
Once you're satisfied, generate a pull request, by navigating to your repository (
https://github.com/{username}/xdebug), select the branch you just created (issue681), and then select the "Pull Request" button in the upper right. Select the userxdebugas the recipient.Alternatively you can navigate to
https://github.com/{username}/xdebug/pull/new/issue{issue number}.
Working on a new feature #
The steps for this are the same as for fixing bugs except that you make a branch of master instead of xdebug_3_0.
- First of all, make sure you're up-to-date.
- Checkout the
masterbranch:git checkout master. - Create a feature branch:
git checkout -b issue{issue number}
for example:
git checkout -b issue681
If there is no bug report yet, then you need to create one. If you want, you can add a description of the feature after theissue681part, for example:issue1623-debug-static-properties. - Work on the code, and add one or more tests in the tests directory, with as
name
tests/bug0{issue number}.phpt, for example:tests/bug01623.phpt. - Commit it to your local repository:
git commit .., with your main commit message's format asFixed issue #1623: {issue report title}. - Repeat the previous two steps as long as you want.
- Bring things up-to-date with the original repository, especially important
if it took some time since you branched:
git fetch upstream && git rebase upstream/master - Push your changes to your remote repository:
git push origin {issue number}
for example:
git push origin issue681 -
Once you're satisfied, generate a pull request, by navigating to your repository (
https://github.com/{username}/xdebug), select the branch you just created (issue681), and then select the "Pull Request" button in the upper right. Select the userxdebugas the recipient.Alternatively you can navigate to
https://github.com/{username}/xdebug/pull/new/issue{issue number}.