Making a plan about doing 2.0 in small steps

Maybe doing 2.0 in small steps is the way to reach it faster. Just collecting items now, sort into right sequence later. Each section should contain some limited amount of work and should begin and end with a usable state. Some stuff is already partly done, but maybe needs cleanup/refactoring.

Introduce mimetype parsers / formatters

Storage

Cleanup / making it easier

User storage changes

Before moving anything, I strongly suggest to get the API right first. Because the API should be abstract and therefore the caller should not mind how the data is stored. This is not a problem IMHO for the user data. -- AlexanderSchremmer 2006-09-02 21:26:13

After those steps, we shouldn't have to care about users and attachments for a while.

Modularize

Result after these steps: the API has proven that it is abstract enough to be able to work for this legacy storage format. Implementing the new system should be rather trivial (no "workarounds", no old code) now. Note that we have a working MoinMoin now that has only lost compatiblity to code that uses very internal Page functions (easy to do the transition, no barriers for users and developers).

Now it is time to think about the new storage format - this is not about changing, though. It is about implementing the classes because the actual change can be done a generic converter that just copies all itemrevisions without knowing any internals (never write any structural migration scripts again :-)).

Change layout

Add meta

Page content meta

Search / TitleIndex / WordIndex

Items

Replacing attachment code

edit-log to meta

Later

Change layout to be hierarchical

Converting to a hierarchical storage layout is completely optional (in case we see that the itemlist gets too long), alternatively it would be possible to have some high level code doing mass renames.

In case we do it in the hierarchical way:

Use YAML

We could use YAML for:

MoinMoin: MoinMoin2.0/StepByStep (last edited 2010-07-23 16:29:46 by ReimarBauer)