InTRePId 5
Title: New Namespace
Author: Pedro Ferreira
Date: 09 Feb 2010
Target version: 0.98
Status: draft
Objectives
- To migrate from an existing MaKaC package to a brand-new indico one;
- To reorganize once and for all the namespace;
- Better isolating some modules, so that they can be unit tested;
- Enforcing Python good practices;
Status quo
- Indico is aging, no major refactoring effort done;
- Performance is a priority, and some architectural changes will be required;
- Naming of modules and package structure is out of date and degraded (MaKaC, no isolation between modules, etc...);
- Some plugins (RoomBooking, epayment) are not actually plugins;
- Unification between the "classical" interface and the new ajax-capable services is required;
Description
- indico
- core - core objects and functions - should be testable without db access;
- schema - database objects
- base - basic, general objects (Avatar, etc...)
- event - event-related stuff (Conference, Session, Contribution, etc...
- resource - material/resource and data storage classes (LocalFile?, etc...)
- index - contains IndexManager, and other index classes
- schema - database objects
- modules - basic modules, included in Indico
- scheduler - old "task daemon"
- news
- upcoming
- cssTpls
- ...
- util - utility functions
- time - time, timezone, etc...
- fossilize - "fossilization"
- struct - data structures
- db
- access - database access
- web
- util - web interface utils
- html - html escaping, sanitization, etc...
- interface
- common - shared among interfaces (i.e. protection)
- form - current WP + RH (part of it) (?)
- jsonrpc - current JSONRPC services
- export - data export services - common query interface, type conversion at the end (?) - further study required
- ical - iCal interface
- rss - RSS interface
- atom
- json
- xml
- wsgi - WSGI handlers, etc
- tpl - template files
- util - web interface utils
- ext - base namespace for extensions (plugins)
- base- base classes for plugins
- livesync
- core - core objects and functions - should be testable without db access;
Further improvements
- Plugins should be isolated as individual packages (EGGs, RPMs, etc...) instead of being moved to the source tree;
Comments
Last modified 5 years ago
Last modified on 11/16/10 10:52:07