GSoC 2021: Difficulties and Delay
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:
- 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.
- 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. - 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:
- We do need to redesign the Style Manager to let it have access to styles in the database.
- There are only
display_name
written as method calling, since Identity is a must-applied-style, we can put this step in themailinglist
. - 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.