This post describes why I did not finish the project on time.

Well, it's a while since I posted about the GSoC project. As the time approaches the first evaluation, I have to admit that I did not finish what I planned to do.

It was a good beginning (at least not bad). I discussed the style model with mentors, and I believe after one discussion on IRC channel, we have made a lot of progress (i.e. I know how to implement the styles in the database). However, when I looked into the codebase of the old style implementation, I realize that it's far more complicated than I originally thought about. Things let the situation complex can be summarized as:

  1. The original Style Manager is not compatible with database at all (since the old styles are only classes written in code), so I have to find a way to refactor it. Some methods are not useful anymore in the context of using database to store styles.
  2. Some of the old styles are using some kind of function mapping, which requires the data from the list (e.g. in Identity style, we have mlist.display_name = mlist.list_name.capitalize()). This kind of method/function call cannot be easily supported by our database design.
  3. The lazy translation used in description is somehow weird to me. I do not know how to convert them into database.

Overall, these problems make me evade doing the scheduled work on time. Every time I open the project, I started thinking about these kind of hard questions to me, but it turned out that I just cannot find a satisfied solution. Then the schedule is delayed and delayed...

The key problem here is that I failed to communicate more with the mentors. In the case I do not get the answer to a problem, I should ask someone for help, but I didn't. As one of my mentor, Stephen, said, 'we can talk more'. I shouldn't keep those problems I have found as 'the secret delaying the schedule', but I should communicate more with others to get the work done in a more efficient way.

As for the discussed solution for these problems mentioned ahead:

  1. We do need to redesign the Style Manager to let it have access to styles in the database.
  2. There are only display_name written as method calling, since Identity is a must-applied-style, we can put this step in the mailinglist.
  3. It's just a mistake, I should remove it, and only store description text to the database regardless what language is using.

It turns out that I have only less than one week before the first evaluation, I can try to catch up the schedule as much as I can.