Support/TechPlatformAnalysis
Language and Framework
We plan to use a modern MVC framework to build Kitsune. The initial choices considered were Kohana and Zend Framework (both PHP), Django (Python), and Ruby on Rails (Ruby).
An overview of the required features and an evaluation of each framework versus these features is located [here].
We ruled out Ruby on Rails quite quickly due to lack of local skills and infrastructure. Django has been adopted by the AMO team for the AMO rewrite, hence we gave it close consideration, despite a similar issue.
Kohana is used in other web apps at Mozilla, and the team generally likes it. Going against Kohana: most of what we need to build is fairly generic functionality, and it doesn't supply as many tools for building this functionality. (See feature analysis for details.)
In the feature analysis, Zend Framework and Django seemed fairly comparable, with Zend coming out slightly ahead in the matrix. Weighing against Django is the fact that the SUMO team, unlike the AMO team, is limited in Python resources. (Only one person has some limited skills.) No-one on the team has experience architecting or scaling a Python or Django application. It is critically important to get this right, as it is our entire rationale for re-writing SUMO. On the other hand, using Django would, long term, allow for better synergies with the AMO team.
We will come to a decision some time in the week starting February 1 2010.
Database
We briefly considered moving to PostgreSQL. During the migration process we will need to use some tables from the old schema and some from the new schema, and sync data between the two. To avoid unnecessary complications we decided to stick with MySQL at this time.
Code repository
SUMO will for some time to come be running partially on TikiWiki code. The question remains, do we want to put our new code into a new repository, or just eliminate pieces of Tiki code from the repo as we move forward?