Function and Variable Naming

Conkeror variables and functions are named in all lower case with underscores separating words. If the identifier is part of a module, the name should begin with the name of the module. Abbreviate sparingly. Abbreviations in identifier names don't really make anyone's life easier. The Mozilla codebase uses the camelCase style for identifiers. This makes it easy to tell at a glance whether a given identifier is part of Conkeror, or part of the underlying Mozilla platform. We also find the underscore style easier to read. There are some exceptions to this guideline in the Conkeror source, but only for historical reasons. All new identifiers should follow this guideline for style.

New User Variables

If you use define_variable to add a new user variable to Conkeror, document it in UserVariables or in a page about the module the variable belongs to on this wiki.

Avoid pushing merge commits

The correct way to incorporate upstream changes with commits that exist only in your local repository is to git-rebase. Refer to GitHelp for more details.

Breaking Changes

If you make a change to Conkeror that is likely to break users' rc scripts, or a non-trivial change to the UI, announce it far and wide. Note it on BreakingChanges in this wiki, and announce it on irc and the mailing list. Update any documentation relevant to the change.

Long Strings

Break up long strings into several short strings, concatenated with the + operator.

Commit Messages

In order to play nice with GitWeb, it is best if commit messages are in the following form:

<blank line>
1 line briefly describing the change.  try for less than 60 characters.
<blank line>
The change described in full detail.  Wrap paragraphs to 60 or 70 characters.

Whitespace

DevelopmentGuidelines (last edited 2009-10-11 02:08:33 by JohnFoerch)