Draft proposal, Kallithea coding/contribution guideline

Mads Kiilerich mads at kiilerich.com
Wed Jul 30 15:00:30 EDT 2014


Here is a dump of my thoughts about how we should deal with development 
and process - this is pretty much what have been guiding my 
contributions and management of the project. This is mainly a starting 
point, describing how we do it now. We can always discuss and change it. 
Do you have any initial thoughts or comments?


Kallithea is GPLv3 and we assume all contributions are made by the 
committer/contributor and under GPLv3 unless explicitly stated. We do 
care about preservation of copyright and license information for 
existing code that is brought into the project.

For coding/formatting standard, we are currently using a mix of 
Mercurial (http://mercurial.selenic.com/wiki/CodingStyle), pep8, and 
consistency with existing code. (We would like to have some tool that 
could fix the most trivial formatting inconsistencies.)

We only support Python 2.x >= 2.6. For now we don't care about Python 3 
compatibility.

We try to support the most common modern web browsers. IE8 is still 
supported to the extent it is feasible but might be the next candidate 
for elimination in a year.

Html templates should use 2 space for indentation ... but be pragmatic. 
We should use templates and avoid duplication. We should use reasonable 
semantic markup with classes and ids that can be used for styling and 
testing. We should only use inline styles in places where it really is 
semantic (default value of display etc).

Javascript should use ; between/after statements. Indentation 4 spaces. 
Inline multiline functions should be indented two levels - one for the 
() and one for {}. jQuery value arrays should have a leading $.

Contributions will be accepted in most formats - such as pull requests 
on bitbucket, something hosted on your own Kallithea, or patches sent by 
mail to the kallithea-general mailing list . We care about quality and 
review and keeping a clean repository history. We might give feedback 
that requests polishing contributions until they are "perfect". We might 
also rebase and collapse and make minor adjustments to your changes when 
we apply them.

We aim at having major changes reviewed by two core developers to make 
sure we have consensus on the direction the project is taking - obvious 
non-controversial changes will be handled more casually.

For now we just have one official branch ("default") and try to keep it 
so stable that it can (and is) used in production. Experimental changes 
should live elsewhere until they are ready.

/Mads



More information about the kallithea-general mailing list