
On Mon, Jan 22, 2007 at 08:51:53PM -0500, MenTaLguY wrote:
On Mon, 2007-01-22 at 15:34 -0800, Bryce Harrington wrote:
- Codebase refactoring and documentation: With as many contributions as we've received, it's no surprise things have gotten cluttery, but for future maintainability it would be beneficial to spend a focused amount of time finishing various refactoring projects, excising old code, documenting stuff, and simplifying our build process.
I think cleaning up the codebase is probably the single most important task right now, and it will make all the others significantly easier to accomplish.
Here are the refactoring tasks currently in our roadmap.
Could you review this and see if there's additional stuff we should have listed, or if some of these should be postponed for now?
Architectural Refactoring Effort:
(For 0.46:) * Eliminate all use of sp_repr_new in favor of XML::Document::* classes (see [1] * Migrate SPObject to native C++ classes * Implement gradient UI "release" handler to deal with gradient garbage collection (see bug 984854) * Create an SPObject API for tracking references and avoiding id clashes on import and interdocument copy/paste. What we need are a void SPDocument::importCopies([set of SPObjects]), and an [set of SPObjects] SPObject::dependencies() method. * What else?
(Maybe 0.46?) * Eliminate use of the style.h types in as much of codebase as possible, particularly display/*. * Replace style.cpp entirely, with a clearer and cleaner version. * 2geom Integration
(Definitely post-0.46) * Cairo Adoption Effort: o Prereq: Is renderer immune to the same kinds of numerical problems we see with our new renderer, libnr, or libart? o Will the new renderer improve performance for most users? o Integrate a Cairo-based SVG Canvas library
Also, I'm trying to also spell out the 'janitorial' type tasks that may be easier for novices to tackle. Here's a start at this list; let me know if there's other things we could include in this list:
Codebase Cleanup Effort:
* Convert use of gboolean to bool where feasible * Switch from use of TRUE/FALSE to true/false * Change to use of GQuarks instead of #defines where feasible * Learn and use autoscan and autoreconf to find out which configure tests are still needed. * Clean up configure.in * (PARTIALLY DONE) DirectoryReorgProposal * Convert all tabs into spaces (convert tabs to 4 spaces) * Rename all 'SPFooBar' routines to 'FooBar' and put into namespaces o (DONE) dialogs folder