Monday, April 27, 2009

Accepted Projects for Google Summer of Code 2009

This is a follow up to the previous post about wx acceptance into GSoC 2009. We have had many great proposals this year -- it was the best year for us so far from this point of view IMO -- and the only regret is that only 3 of them could have been accepted, I really feel sorry for some students who have clearly put a good effort in making their application. Nevertheless I can't really be sad about it because the 3 that were accepted look pretty exciting to me. There are:
I'm mentoring the first one of those so I'm naturally quite interested in it but the wxAUI project is clearly very much needed too and in spite of my initial opposition to the idea of including ribbon bar into wx, it turned out to be the most popular proposal among both students and wx users so it definitely will be great to have too.

Finally, just as during the last year GSoC, even if wx itself has only received 3 slots, there is also at least one other wx-related project in a different organization: Perl has one slot for creating Perl bindings for wxWebKit. And Audacity is participating in GSoC again as well and while their projects don't seem to be especially wx-related it is still nice to see wx applications being part of GSoC. OTOH it's a pity that none 30 Python projects seem to be wxPython related, especially as wxPython itself is not part of the GSoC this year but well, like this we have something to hope for the next year :-)

In the meanwhile good luck to Bartosz, Malcolm and Peter and looking forward to their contributions to wx!

Saturday, April 04, 2009

Marching Forward

Here is a brief and late report of changes in wxWidgets in March. Somehow it looks that once again not that much happened, although it certainly seemed like a busy month. But most of the effort was spent on not very sexy activities such as bug fixing and release preparation -- and 2.9.0 was finally postponed to mid-April in spite of all that so I can't even boast about a new release this month. This was a bit of disappointment but OTOH we'd like 2.9.0 to be usable in production, the ominous zero at the end notwithstanding, and so we decided to release it slightly later but with less problems.

Personally I was also upset by not managing to finish my work on debug/release builds unification before 2.9.0. I did check in the changes introducing wxDEBUG_LEVEL which allows us to more flexibly configure the presence of assertions and other debugging helpers in your build, but the default behaviour didn't change yet, it will now have to wait for 2.9.1 as we didn't want to postpone 2.9.0 for that long neither.

A lot of time was also taken by preparation for GSoC 2009 and discussion of proposal ideas first and the proposals themselves later. This is definitely not time wasted though as we have more proposals this year than the last one (although about the same as the years before) and, most importantly, their average quality is much higher so I'm really looking forward to working with students this year.

Anyhow, in short here is what happened at wxWidgets code level:

  • Added wxTextEntry::SetHint() which can be used to show a hint string (e.g. "Search") in an empty text control or combobox. This uses native XP/Vista support if available or a generic fallback otherwise.

  • Made wxFTP logging more flexible with wxProtocolLog (thanks to troelsk). We also should extend this to wxHTTP in the future.

  • wxSP_WRAP support was added to wxSpinCtrlDouble and wxSP_ARROW_KEYS was fixed too; alignment flags are now honoured for both it and plain wxSpinCtrl (thanks Andrew Radke).

  • wxImageHandler can now have more than one associated extension making it finally possible to use both .jpg and .jpeg (Ivan Krestinin).

  • Events for wxComboBox popup drop-down and close-up were added (Igor Korot).

  • wxString::ToCLong(), ToCULong() and ToCDouble() were added.

  • Many fixes to wxDateTime parsing methods which were broken in variously entertaining ways after rewriting them to use iterators instead of string pointers some time ago. wxLocale::GetInfo() was extended to return various date and time formats in the process and as the result all our wxDateTime unit tests finally pass in all locales.

  • A bad and long standing bug 9638 introduced by Unicode-related changes was finally fixed. Several other bugs related to handling of embedded NULs in wxString were fixed as well. And all string unit tests pass too in all builds (wchar_t, UTF-8, ...) now.

  • XRC error reporting was significantly improved, now the line number is given in error messages.

  • wxDocView code was streamlined a bit more and made less surprising to an unsuspecting application programmer.

  • Several wxAUI bugs were fixed as Ben had some time to work on it recently.

  • Many OS X enhancements/fixes from Stefan and Kevin Ollivier.

  • And some wxDataViewCtrl improvements from Robert, as usual.

The previously mentioned Bind() function was finally finished and documented and I'll describe it in more details in a separate post soon.

The usual monthly stats: 732 commits, 137 new tickets and 101 closed ones (oops, no bragging about moving in the right direction this time).

And that's all for now, hopefully we'll have more meaty news next month with a flurry of commits which habitually accompany the end of release freeze period.