As the project is over, I think it's time for some summary. I think this year
we got quite a good improvements. Most of them are already merged in trunk,
but they might need some polishing, especially as the branches were developed
separately and now they are first time used together. Anyway if you want to
give new code a try, please go to our demo server and play with it!
So what do we have?
Import and export improvements
When I saw the proposal for first time, I thought that this is the best
prepared proposal I've ever seen and we must have this student. And it turned
to be true. Derek did great job, going in more directions than proposal
included and brought great improvements to phpMyAdmin.
To start with import part, phpMyAdmin can now take any spreadsheet or CSV and
create table from it automatically, with some kind of heuristics to find out
numerical or date columns.
On the export side, he integrated PHPExcel library and phpMyAdmin can now
generate proper Excel 2003 and 2007 documents.
The good thing also is that he wants to stay active even after GSoC.
Changes tracking
Even though Alexander Rutkowski was really quited in first half of the
project, he indeed did code in that time and he brought feature that will be
useful mostly for application developers. You can activate tracking of
certain table, all your changes will be logged and you can get SQL commands to
replay the changes on other database later.
This can be useful either for monitoring changes which users did or for making
changes on development system and applying them later on production one.
Database synchronisation
Zahra Naeem did originally also apply for changes tracking, but as we did not
want to have two students on the same topic, we persuaded him to take another
project, which was not taken by other students - database synchronisation.
This feature is somewhat similar to previous in one use case - you can use it
to apply changes from development system to production one. You enter
connection settings for two database servers and phpMyAdmin finds out
difference between the databases and allows you to synchronize them.
I feel like Zahra felt that almost everything is done in mid-term and slowed
down a lot and I'm still not happy with documentation he had provided.
Hopefully he will get to that and improve it.
Replication support
This project was mentored by Marc and to me it looks like Tomáš Srnka did good
job there. The changes are not yet in trunk, but hopefully they will be merged
soon and I will then try to set up some replication stuff on demo server, so
that you can play with it.
Permanent user preferences
The only unsuccessful project this year. The student failed to deliver
something for mid-term evaluation and because of this he failed. We still have
his patch in patch tracker and I think I will try to find time to look at
it more deeply, whether it is worth using and cleaning up or it is better to
write whole thing from beginning.
Summary
I think this Summer of Code was great and I hope next year we will be really a
separate project there and not under MySQL hood (not that would be bad, but I
think with five students it is better to be directly there than coordinating
with MySQL guys). And I hope we will have more students like Derek :-).