New Developers' Guide

aaicken edited this page Feb 9, 2017 · 3 revisions
Clone this wiki locally

Getting started

The Git repository for SIPp is at https://github.com/SIPp/sipp. Fork it, check it out and make changes - once your changes are working and you want them merged into the main project, send a pull request from your Git repository to the main one.

Tools reference

Coding standards

The Google C++ Style Guide (https://google.github.io/styleguide/cppguide.html) is the most extensive C++ style guide I've seen and I recommend it for all new SIPp code.

Useful tasks

Bugs

The SIPp Github has a list of currently open bugs. Some are marked with the "good-first-bug" tag, and should be easy for a newcomer to fix, but taking a look at any of them would be a useful contribution to the project - a good first step would be to see whether a bug still exists in the latest version of the code, and if it does, to get some clear steps (a sample command, XML file, etc.) to reproduce it. Then you can start looking at the code, guess what causes the bug (possibly using a debugger like gdb to check program state), and try out some fixes.

However far you get, it's worth updating the bug with a summary - even if you don't track the bug down, it's still useful to know where it isn't.

Polycom SIPped backporting

Code tidying

I recently updated the SIPp coding standards to allow use of C++11 features when it makes the code clearer, simpler and more readable, and to remove the previous requirement to use Hungarian scope notation (e.g. prefixing local variables with L_, member variables with M_, and parameters with P_). A very useful task for new developers would be to take a small section of the code - just a single small function would help - and check that all its variables are sensibly named, that the comments are clear and well-written, that it relies on as few global variables as possible, and whether it could be simplified by using C++ features like std::vector.