bugreport Coding Guidelines

We prefer code be written in pairs. For remote pair programming, look into TightVNC (or any other VNC) and Skype. If you're on a Mac running OS X, also consider SubEthaEdit. At least one of the core developers hacks bugreport on a Mac and SubEthaEdit is well-suited to remote pair programming. Code without unit tests that fully cover changes will not be accepted. To facilitate this, we highly recommend doing unit test first test-driven development (TDD). For help with remote pairing and/or TDD, ask on the mailing list and see if and when one of the core developers is available to help.

This document is broken up into two sets of guidelines, but they are all important. The distinction is more fuzzy than absolute, and exists primarily to identify which guidelines may be simple enough to implement in your editor (style guidelines) and which require some thought or reflection (design guidelines). Note, however, that style and design are two interdependent elements of a whole craft, not strictly orthogonal pieces. Follow as many of these guidelines as often as you can. Work to improve. Suggest your own guidelines so we can learn from you.

Stylistic guidelines:

Design guidelines: