Contributing to Xpad
Xpad uses Bazaar for versioning. It might be useful to read the tutorial first.
Getting the code
1) Get the latest version of the code on Launchpad:
$ bzr branch lp:xpad
2) Run autogen.sh, which will give you all files to compile and make the package.
$ ./autogen.sh
3) In order to compile package run
$ ./configure -prefix=/path/to_install
you can also enable debug flag using,
./configure --enable-debug CFLAGS=""
$ sudo make $ sudo make install
3b) Launch Xpad :
$ cd src $ ./xpad
2c) Launch Xpad with debugging data using gdb (so it doesn't mess with your data) :
$ gdb src/xpad $ run --g-fatal-warnings
Choosing a feature to work on
If you would like to contribute you can :
choose a bug which are easier to solve
ask people on IRC channel #xpad on irc://irc.freenode.net/#xpad
ask on our mailing list
Working on the feature in a branch
1) You have your local copy of the code (see "Getting the code"). create a another branch.
$ cd .. $ bzr branch xpad cool-new-feature
(your xpad folder is branched in a new cool-new-feature folder)
When working with Bazaar, it's a good idea to keep your local xpad branch as a pristine copy of trunk on Launchpad.
2) Hack hack hack
3)
bzr commit -m "description of my change"
4) Do 2) and 3) as much as you want. Don't hesitate to abuse the local commits. Think of 'commit' like 'quick save' in a video game
5) Modify Changlog to reflect your changes. If it's your first contribution, add yourself in the AUTHORS file with your email address.
6) If the trunk has been updated while you were hacking, you should update your local trunk branch, and merge modification in your branch.
$ cd ../xpad $ bzr pull lp:xpad $ cd ../cool-new-feature $ bzr merge ../xpad
If you have conflicts, you must solve them (see this or search google for information about conflict solving.
Once you don't have any conflict anymore, you must commit the changes related to the merge. Use a clear commit message, like "Updating branch by merging the last trunk version."
7) Pushing your work to your own branch on Launchpad (where "sagar" is your Launchpad username):
$ bzr push lp:~sagar/xpad/cool-new-feature
8) Ask for a merge request and comment on the corresponding bug. (Open one if there is none). Add the tag "toreview" to the bug in Launchpad. This is very important and ensures we are not letting a patch rotting.
You can file a bug at https://bugs.launchpad.net/xpad/+filebug.
To ask for a merge request, run
$ cd cool-new-feature $ bzr lp-open
This will open the branch's web page on Launchpad. From there, click 'Propose for merging'.
Alternatively, you can use bzr send to submit your changes. See the Launchpad documentation and the Bazaar user guide for more information.
If your branch is solving specific reported bugs, please also register your branch to these bugs (there is an link for that in each bug report page). It allows to link together all related resources (which in turn is useful to dig out precious information from all the discussions that happened around those bugs).
Troubleshooting
If you have a problem with SSH keys while uploading to launchpad, look at this SuperUser question.