Coding for Wammu and Gammu

Gammu is written in C and Wammu in Python, so you will need knowledge of one of these languages to contribute code directly to the project. You will probably use some parts of developer documentation to understand the code. If you want to know what is planned to happen in Gammu and Wammu, please check the roadmap.

Version Control System

We currently use Git as a version control system. It allows you create own local branch, develop the code and then submit us patches or merge request for the changes.

The Git repositories are being hosted on Gitorious service, having there Wammu and Gammu projects. You can browse the code on their site or just clone the repository and investigate it locally. To clone Wammu and Gammu sources, use following commands:

# For Wammu sources:
git clone git://gitorious.org/wammu/mainline.git wammu

# For Gammu sources:
git clone git://gitorious.org/gammu/mainline.git gammu

# For Wammu website:
git clone git://gitorious.org/wammu/website.git wammu_web

Alternatively (if your firewall blocks git protocol), you can access repositories over http, just replace git://gitorious.org/ with http://git.gitorious.org/. All repositories are also mirrored to SourceForge.net and repo.or.cz (Gammu and Wammu).

Instructions for building and installing are included in file INSTALL in both Gammu and Wammu. For compiling Gammu you need to have CMake.

Code Snapshots

If you for some reason do not want to use version control system, you can always download fresh snapshots of current code. They are available on our download server - for Gammu and Wammu. These snapshots are update several times a day, so they should always contain up to date copy of the code.

Patch Submission

We really do not care much about the way you deliver us patches. However the easiest thing is you use git format-patch, which allows us to easily include your changes. If you do not use git, any unified diff will serve it's purpose also very well. You can send patches to mailing lists or to the bug tracker.

Testing

Gammu comes with quite comprehensive testsuite, which is being run daily on some platforms. You can find results on CDash. If you have computer that runs all the time, you are very welcome to run the testsuite and contribute to the quality of the code. To run the testsuite, you basically just need checked out sources and run following commands every night:

cd /path/to/gammu
git pull
cd build-dir # eg. build-configure
make NightlyMemCheck # or just Nightly if memory checking tool is not available on your platform

The results are automatically uploaded to the dashboard and developers are being notified about every test failure which does happen.