New Developer Guide
The following is an introductory guide for new developers on the WarFoundry project. It will hopefully guide people new to the project through the process of getting involved as a developer.
Useful links
Some useful links are:
- Getting Started guide
- Get Involved instructions
- FAQ
- Coding Conventions
- Trac conventions and writing commit messages
- Linux Screencast for getting started
How to get started
Instructions on how to get started with the source code are in our Getting Started guide.
Once you have the source code you can build and use WarFoundry, but can't commit changes back to the project. If you want to help out and make changes then please contact IBBoard (either through the forums or his website) to get your Trac account promoted to a "developer" account. To commit code then just create an account on the Repository Manager and fork your own personal copy of the code.
What can I help with?
There are lots of things that people can help with. The Get Involved page details the ways to get involved in a broad sense, but any contribution is welcomed.
I'm new to using source control - how do I use it?
It depends on what platform you're on. We've got a page listing Mercurial version control clients.
Once you've got a source control client, you need to "clone" the projects to get a full copy of the code and all of its history that you can work with. This can be done anonymously for all WarFoundry projects using the username default
and the password default
. To get the full application working you'll need to check out all of the appropriate projects.
If you want to make changes and share them back to the project then you can either push them to a 'fork' on our Repository Manager or create a patch and attach it to a ticket. Check the Contributing page for more details.
I'm new to large projects - where do I start?
It depends where your interest is! WarFoundry isn't an overly large project, but it does come as a number of projects. If you're interested in usability and front-end work then check out the Qt#, GTK# or WinForms interfaces for Linux and Windows respectively. If you want to add back-end functionality then check out the main WarFoundry API project. If you want to help with other file formats then either check out the pre-existing project (e.g. Rollcall or ArmyBuilder) or start your own project from scratch to support another file format.
If you want a specific task to start working on, then there are always bugs and feature requests for you to investigate. The Papercut bugs are generally small bugs that can be picked up and fixed without much in-depth knowledge of WarFoundry. To accept a bug and work on it, sign up for an account here, ask IBBoard to make you a "developer", accept the bug, fix the bug and then contribute the fix. Any work on bugs and features would be appreciated, but working on tickets tagged against earlier milestones first is best!
How does the ticketing system work and how does it help?
The ticketing system allows users to record problems and feature requests in an easily recordable and viewable way. It also makes the workflow easier by identifying new tickets, bugs/requests that have been checked and confirmed, tasks that are being worked on, and tasks that are fixed, as well as identifying who is working on or worked on a particular ticket and the changes it required.
Our ticketing system works the same as just about any other Trac system and most bug trackers, with a few special conventions. We've also got it hooked up to our version control, so you can use commit messages to link commits to tickets and even to close the ticket automatically when you're done.