Skip to content
Kevin Smith edited this page Mar 12, 2015 · 1 revision

Contributing

This page is intended as a quick overview of 'what you need to know' if you want to start contributing to Stroke. It's largely written for students hoping to participate in the Google Summer of Code for Stroke, although it's generally applicable to anyone wanting to write some code with us, apart from a couple of GSoC-specific bits.

A brief introduction

Stroke is a (currently incomplete) port of the Swiften C++ XMPP library to Java. It's API, excepting where Java doesn't allow this, should be identical to Swiften's, so the Swiften guide at http://swift.im/swiften/guide is a good place to start.

Talk to us!

We'd really like to talk with you a bit, so please come by the XSF's GSoC MUC room at [email protected] (the Swift projects also have their own MUC room at [email protected]), please come and have a chat - we like to know the people we're thinking about working with for the summer (please be aware that issues with Google Talk's XMPP server means it's not usually usable for joining MUC rooms), which is also the reason for...

Having a play ("Teaser Tasks")

We recommend that prospective students get stuck in with some simple tasks before the application period - this serves (at least) three purposes: you get to decide if you like working with Stroke (and with us!); you get up to speed on the codebase and can, if selected, hit the ground running for GSoC; you can show us that you're able to work within the Stroke codebase, which makes it much easier to judge applications for projects later. Plus you could get some of your code committed into Stroke, which is good too :)

If you want to get your hands dirty with some simple(ish) tasks, here are a selection of suggestions. Please do stop by the MUC room to discuss them further (don't feel you have to struggle alone if the new codebase is daunting), we'd like to know what you're working on and we're here to help (support you, not write code for you!). These explanations may not be terribly clear, if not please ask Kev to explain what he meant when he wrote them. The aim here is not for prospective GSoCcers to play "Guess the task". We'll be happy to point you at the appropriate bit of code to start looking.

Port-a-payload

Find a payload that exists in Swiften but that isn't in Stroke, and port it over. This'll need the element, the parser, serializer, and any unit tests.

Examples

Add some examples of how to do useful things in Stroke. There are several of these in Swiften that could be ported, or any number of other things that would be useful to show examples of.