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
xdebug
repository:
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
xdebug
repository (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_0
branch: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 theissue681
part, 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 userxdebug
as 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
master
branch: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 theissue681
part, 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 userxdebug
as the recipient.Alternatively you can navigate to
https://github.com/{username}/xdebug/pull/new/issue{issue number}
.