Support/Q42009 Goals/Goal D Candidates

From MozillaWiki
Jump to: navigation, search

DRAFT
The content of this page is a work in progress intended for review.

Please help improve the draft!

Ask questions or make suggestions in the discussion
or add your suggestions directly to this page.


URL Generation

In Q3 we spent an inordinate amount of time manually rewriting URL generation in multiple places, including fixing {$tikiroot} regressions and forum friendly URLs. We've been duplicating functionality (and occasionally duplicating code exactly) and making maintenance worse than it already was.

Given the nature of templates in Tiki, this is probably best implemented as a new Smarty block function, but I'm not sure of the details yet.

Simplifying Includes

The deeply nested system of includes slows down development. grep is only so helpful while attempting to track down where and why a variable is altered, especially when dealing with globals.

This is a pervasive issue, and I do not see an easy solution at the moment. While the improvement is dramatic, the work is commensurate with that.

Centralize Configuration

Configuration is spread throughout a lot of code. We have several .dist files that must be copied (and occasionally customized) before they can be used--but we have no fallback or default if the constants are not defined.

As much as is possible (eg: the localsettings.py-dist file will need to remain separate because it's in Python) we should centralize configuration and move these constant definitions into one place, then make sure those constants have reasonable default values (cf. [1]).

Database Migrations

We currently attach schema changes and data updates in Bugzilla, which makes it very hard to reconstruct a database via anything except a complete dump. If we were to use something even as simple as Jeff's schematic.py and keep the migrations in SVN, we could ameliorate this going forward.

ML: Database schema management has changed since Tiki 1.10: http://dev.tikiwiki.org/Database+Schema+Upgrade Preference changes could also be stored as profiles: http://profiles.tikiwiki.org/