09
Jan 09

Calendar leadership changes

Hi,

almost two years have passed since I took over as calendar lead from mvl, and I think it’s time for a change. So I am stepping back from this role. There are two main reasons why I think this is necessary:

  • I am going to have less time for calendar work in the future, and I fear I can’t meet the requirements of that role in the future
  • I think it’s simply refreshening to have a change in lead from time to time, to gather new views on things and do them differently

So who’s my successor?
I am grateful that Philipp Kewisch has volunteered to step in. He’s both smart and a great guy to work with, and has already done a lot for the project. So he feels like the natural choice to me. Please support Philipp in his new role!

Finally, I’d like to thank the whole team for supporting me during this time. It’s been a great time for me and I learned a lot. I am sure we continue to have great releases! Having less time does not mean I am leaving the project ;-) I will certainly do a few features/bugfixes/reviews. Stay tuned!

best regards,
Daniel

PS: Philipp is at the top of the “2008 bug fix ranking“!!


31
Dec 08

[December 31, 2008] Status update and 2008 bugfixing stats

Ok, 34 days without a status update :-( Some of you might think, that there’s nothing to report… which is wrong. We’re still there, we’re still fixing bugs, we’re still working hard to on the next release. In fact, even with the Christmas holidays, the Christmas shopping, the year-end preparations and celebrations we still fixed 46 bugs in the last 34 days.

But before I come to that, let’s look at 2008 as a whole. 2008 was the year, where we fixed 866 bugs. The highest count since the creation of the project eight years ago. Our leading bug-fixer that year was Philipp Kewisch (Fallen) with 190 bugs fixed. Right on his heels was Daniel Boelzle (dbo) with 176 fixed bugs, followed by Berend Cornelius (berend) with 96 bugfixes on third place. Congratulations guys!

One thing is bothering me though. As I already said yesterday we’re way to dependent on very few precious souls, which do most of the development work in the project. If you look at the numbers 53,35% of all fixed bugs in 2008 were fixed by the top3 bugfixers. 63,39% were fixed by the top5 and nearly 77% (76,91% to be exact) were fixed by our top10 development contributors. Hopefully in 2009 we can broaden our base some more while still retaining the extraordinary talent that we have in our current developer base.

That said, here’s the list of the 46 bugs fixed since the last status update:

  • Bug 353696: View/Number-of-weeks is not updated with Option weeks-to-show
  • Bug 384554: Kazakhstan Holidays Calendar
  • Bug 402336: Luxembourg Holidays 2008/2009
  • Bug 402365: Tabs break calendar mode view
  • Bug 404039: New added tasks don’t appear in task list
  • Bug 405650: Integer overflow during creating custom reminders
  • Bug 420340: Snooze icons not transparent, grey background
  • Bug 432704: Drag and Drop in Month/Multiweek view fails
  • Bug 445729: Enable compare-locales for Calendar
  • Bug 451821: X-Props are not roundtripped (dismiss or snooze alarms doesn’t work)
  • Bug 456379: Thunderbird3: Remove lightning calendar/task toolbars
  • Bug 458564: “Mail with no Date header not accepted here” failure
  • Bug 460266: ‘Open task’ menu via context menu is broken
  • Bug 461124: Mode/Tab doesn’t change when using Alt+[1234]
  • Bug 462048: Monthly recurrence rule “Last Day Of Month” breaks Custom Recurrence Dialog
  • Bug 462109: Convert eMail to event/task -> Recipient should not added to the attendees list
  • Bug 462278: Week view should default to being scrolled to the “Day Starts At” time
  • Bug 463014: Columns in task list are not persistent
  • Bug 463050: Slight improvements to calIAlarm
  • Bug 465551: Additional localization comments needed in calendar-event-dialog.properties
  • Bug 466009: Calendar property page is missing Cancel/Ok
  • Bug 466655: Organizer adds an alarm and/or a category -> notification eMail dialog pops up
  • Bug 466664: Using Lightning makes text on Thunderbird’s tabs too large
  • Bug 466981: Delete a single instance of a recurring event -> exceptions are gone
  • Bug 467001: itip exception
  • Bug 467069: Consolidate decorated-month-view-binding and decorated-multiday-view-binding
  • Bug 467156: Fix calendar mode borders
  • Bug 467330: Shortcalendarweek and shortCalendarWeek used in the same file
  • Bug 467336: Recurrence dialog: datepicker elements are missing a backround graphic
  • Bug 467351: Get rid of bug fix for bug 348009
  • Bug 467546: Consolidate calendar-multiday-view.xml and calendar-month-view.xml
  • Bug 467652: Reproducible hang when retrieving remote ICS calendar
  • Bug 467724: Sunbird win32 l10n builds missing since 25-Nov-2008
  • Bug 467756: Thunderbird versions on beta1 branch do not accept Lightning anymore
  • Bug 467909: Remove datepicker in Lightning sidebar
  • Bug 468020: Regex used to parse RFC3339 dates is incorrect
  • Bug 468077: Add gl to calendar/locales/all-locales file
  • Bug 468999: Add calendar.debug.log and calendar.debug.log.verbose to default prefs
  • Bug 469355: Frequent hangs of “win2k3 comm-central sunbird” buildbot
  • Bug 469554: Use pluralForm in Task tree – Due In column
  • Bug 469840: Recurring Sundays incorrect
  • Bug 470394: Guard all SQL transactions in case of database corruption
  • Bug 470623: Change the property name WARN_UNSUPPORTED_MSG to WARN_MIN_SUPPORTED_OS_MSG
  • Bug 470894: Finnish holidays for 2009
  • Bug 470987: Sunbird.exe should have the manifest with requestedExecutionLevel=”asInvoker”
  • Bug 471195: 2009 Holiday File for India

Speaking on behalf of the Mozilla Calendar project, I want to say a big thank you to everyone, who has contributed to our project in 2008, be it by providing bug fixes, doing QA work, writing documentation, writing bug reports or just telling some friends about our software. Thank you very much! I hope you stay with us in 2009. Happy new year to everyone!


30
Dec 08

Looking back at 2008 from a calendar perspective

We’re just two days away from 2009, so this is probably a good time to look back on 2008 and some of the good and some of the not so good stuff that happened in that year from my own perspective.

First the good stuff:

  • We released two fine releases this year with 0.8 in early April and 0.9 in late September. Both releases were well received by our users and had a considerable amount of new features and UI improvements, which most people loved.
  • Our development transition from the MOZILLA_1_8_BRANCH on CVS to the current Gecko 1.9.1 backend on Mercurial (the trunk) went very smoothly. Given the fact, that we had essentially abandoned the trunk for nearly 18 months and had had close to no testing on the trunk during our time on the branch, everything went very well. I think this speaks well with regards to the skills of our developers as well as the maturity of the mozilla platform that this was so rather painless.
  • We’re well on our way to our 1.0 release and the integration of Lightning into Thunderbird 3. We’ve made some great progress on the road to integrate Lightning better into Thunderbird. The emergence of Mozilla Messaging and the energy that David Ascher and his newly assembled team have brought into the Thunderbird community make it much more exciting today to work on extending Thunderbird’s capabilities than was the case 12 or 18 months ago.
  • We had some great team-building events this year. The 3rd face-to-face meeting in Hamburg, the Mozilla summit in Whistler and the Mozilla Camp Europe in Barcelona were great highlights of 2008 that both excited the community as well as the developers and other contributors that were part of these events. My thanks go to Sun for hosting the frist event and to the Mozilla Corporation/Mozilla Europe for hosting the last two.

Now the not so good stuff:

  • We have not yet come to the point where Lightning is part of the default Thunderbird installation. We’re having some sort of a chicken-egg problem right now. The Thunderbird crew currently does not want to enable Lightning by default in Thunderbird 3 nightly builds because of quality reasons. But we want them to enable Lightning by default ASAP because that would broaden our testing and QA coverage significantly, thereby enabling us to remove those bugs faster and more easily, that the Thunderbird crew currently sees as blocking the activation of Lightning. We’ll probably need to work this out early in 2009.
  • We have not managed to increase our development community in a significant way. I’m actually very concerned about this one, because right now the 3,75 people that Sun Microsystems has assigned to the project (2 full-time developers, 1 full-time QA engineer, 1 part-time (50%) build engineer, 1 part-time (25%) user experience lead) do most of the work in the project. That is not bad in itself, but looking at it from a medium- to long-term perspective, we really need to work much harder on attracting new talent to the project to place it on a much more solid foundation. We’ve started some efforts with regards to that in 2008 with (hopefully) improved communication activities between the core team and the community, but we obviously need to do much more in 2009 to make a significant change happen.

That is my perspective on 2008. I would be interested in hearing your take on the Up’s and Down’s of our project in 2008. Until that I wish everyone of our blog readers a happy new year 2009!


05
Dec 08

Sunbird/Lightning needs t-shirts!

We need great t-shirts!

Dear designers, we now have a great new community store, where anyone can upload designs, and t-shirts come out the other end.

We would really appreciate it, if you could help us with some cool designs for Sunbird-wear or Lightning-wear.


28
Nov 08

[November 28, 2008] Lightning/Sunbird Status Update

22 days with no update here :-(
Some of you may think that this is, because we’re not making much progress, but this couldn’t be farer from the truth. Actually we have fixed 57 bugs in the last three weeks, which is is really an impressive feat.

Because of the large amount of changes, we’re asking everybody to go and download a nightly build and test it intensively and report all the bugs that you find in bugzilla.

As a reference, here’s the list of the 57 bugs that were fixed within the last 22 days:

  • Bug 349892: No validation what (kind of data) is pasted
  • Bug 355927: Make description in install.rdf localizable
  • Bug 357399: Import of iCalendar with (invalid?) RECURRENCE-ID is incomplete
  • Bug 380289: Warning: Error in parsing value for property ‘max-height’
  • Bug 390922: File | Exit menu item in Event dialog is misleading and should be removed
  • Bug 392465: Accept meeting invitation fails (has RECURRENCE-ID but no parent item)
  • Bug 405529: Event dialog: Typed start time or end time reset to default after moving focus
  • Bug 417585: Find Event toolbar button doesn’t restore collapsed unifinder
  • Bug 419807: After closing task dialog now save-messagebox pops up
  • Bug 423861: No email prepared when the timeslice of an event is changed from the calendar view
  • Bug 437982: No accept/Decline buttons and NS_ERROR_NOT_INITIALIZED in calIItipItem::getItemList
  • Bug 453138: Display ‘Last day of the month’ recurrence rule as clear text
  • Bug 454933: Move month, day, week mode buttons into calendar view
  • Bug 455752: Update internal timezone database to version 2008i
  • Bug 456671: Hong Kong holidays updated with 2009 holidays added
  • Bug 457467: Sunbird/Lightning 0.9 source missing folder: mozilla/security/nss-fips
  • Bug 458828: Many errors when setting up zimbra calendar
  • Bug 459184: Timezone for Australia/Perth is wrong
  • Bug 459371: Convert eMail to event, try to add attendees -> Attendees dialog is read only
  • Bug 459402: Provide Sunbird l10n builds from comm-central
  • Bug 459645: Open Timezone dialog in attendees dialog -> error output
  • Bug 460041: Modifying an event remove its category
  • Bug 460413: Incorrect mail when accepting invitations with line breaks in subject
  • Bug 462326: Thunderbird with Lightning leaks on Shutdown.
  • Bug 462837: WARNING: Illegal character in window name prompt-occurrence-modification
  • Bug 462990: Outlook 2003 Calendar UID are line wrapped when added to Calendar
  • Bug 463047: Use js 1.7 iterators for properties bag and ical components
  • Bug 463060: Clean-up and move clipboard.js
  • Bug 463195: CalEvent/calTodo icalComponent setter: make sure object is properly reset
  • Bug 463267: Adding or modifying event throws exception
  • Bug 463282: Tasks cannot be created or imported
  • Bug 463401: Invitations dialog is empty
  • Bug 463407: eMail notification dialog on attendee side after first event change is wrong
  • Bug 463507: Add currentAppVersion to extensions.update.url default pref
  • Bug 463680: L10n windows builds are broken
  • Bug 463716: Icon and preview image for default theme missing in add-on manager
  • Bug 463784: Copy and multiple paste is broken, fails with DUPLICATE_ID error
  • Bug 463790: Do not pass compiler flags to –enable-optimize
  • Bug 464102: When closing Edit Task dialog, it will not prompt to save
  • Bug 464344: Deleted events from the server are still shown in Lightning after a refresh
  • Bug 464348: Adding Hebrew locale to Sunbird all-locales
  • Bug 464365: Selecting Write Button -> Message brings up two compose windows
  • Bug 464444: No event notification eMail when organizer deletes the last attendee
  • Bug 464560: Error: “this.setProperty is not a function” in calAttachment.js
  • Bug 464751: Missing button icons in Customize Toolbar dialog of Event/Task dialog
  • Bug 465227: Updated 2009 spanish holidays calendar for Mozilla Calendar project website
  • Bug 465285: Indonesian Holidays 2009
  • Bug 465717: WCAP calendars are not available in lightning/sunbird build 20081118
  • Bug 465739: Attempting to close a new task dialog with no changes asks if I want to save
  • Bug 465896: Many timezone startup errors on fresh profile
  • Bug 465911: Invite Attendees dialog shows no free/busy information
  • Bug 466119: Add Sinhala (si) to calendar/locales/all-locales
  • Bug 466164: Icon for calendar-timezones.xpi
  • Bug 466301: Make it easier to restore collapsed sidebar by adding a grippy to the splitter
  • Bug 466308: Sunbird Mac OS X nightly builds are failing since 19-Nov-2008
  • Bug 466367: Receiving acceptation from a Windows Lightning to a Linux version results in a garbled e-mail
  • Bug 466996: Implement single / plural form in alarmWindowTitle

Many thanks go to all developers, contributors, localizers, testers, and supporters that have made this possible.


06
Nov 08

[November 06, 2008] Lightning/Sunbird Status Update

Two weeks have gone by and the Calendar developers are fixing bugs like crazy, as evidenced by the 44 bugs that we could fix in the last 14 days.

Because of the large amount of changes, we’re asking everybody to go and download a nightly build and test it intensively and report all the bugs that you find in bugzilla.

As a reference, here’s the list of the 44 bugs that were fixed within the last 14 days:

  • Bug 281690: Days are shown two times in Minimonth (depending on timezone)
  • Bug 303663: Should ICS calendar always bumps DTSTAMP on all events when writing?
  • Bug 305432: Setting nativeTime sets timezone to UTC
  • Bug 351880: Selecting repeating event in Unifinder does not select events in Main View
  • Bug 358498: calAttendee::icalProperty bug with rsvp
  • Bug 361634: imip-bar should consider local status of iTIP/iMIP invitations
  • Bug 394902: Update libical
  • Bug 401597: Provide Sunbird nightly updates via aus2-community.mozilla.org server
  • Bug 412096: “New Event” button should have the same disabled state everywhere
  • Bug 414949: Add AMO integration pane for Sunbird
  • Bug 418345: Decide how to handle Generation property properly
  • Bug 431127: Move email-specific itip processor code to the transport
  • Bug 431383: Replace GIF with APNG throbber
  • Bug 445769: iMIP bar isn’t updated after declining an invitation
  • Bug 446172: Add tentative invites to invites-counter
  • Bug 450565: When accepting an invitation the ‘Default alarm setting’ is not considered
  • Bug 452759: Tracking bug for 0.9 RC cleanup
  • Bug 456354: Get rid of “Today” toolbarbutton
  • Bug 456377: Integrate New Event, New Task into Write Button
  • Bug 457024: Crash during shutdown
  • Bug 457203: iTIP overhaul
  • Bug 458190: Broken unit tests
  • Bug 460263: Postflight on macosx fails when building thunderbird with lightning
  • Bug 460408: Shutdown crash at nsXPConnect::GetRuntime()
  • Bug 460649: Make use of new search textbox widget in unifinder
  • Bug 461166: e4x parser borks on surrounding white spaces and certain response elements
  • Bug 461328: Errors because chooseCalendarDialog.xul and calErrorPrompt.xul aren’t packaged
  • Bug 461337: Sunbird tinderboxen need more disk space to stay green
  • Bug 461628: Failed to load jar:calendar.jar!/content/calendar/calendar-minimonth-busy.js
  • Bug 461709: Remove ctrl-q for quit on Windows (like Thunderbird)
  • Bug 461826: .ics attachments from Thunderbird/Lightning not compatible with iCal
  • Bug 461941: [404] link to http://www.mozilla.org/projects/calendar/lightning/build.html
  • Bug 461944: Selected event in unifinder is not highlighted in calendar view
  • Bug 462026: 301 and 302 redirects not done properly with caldav provider
  • Bug 462317: Crash [@strlen][@icalmemory_strdup] when closing a recursive event
  • Bug 462393: Sunbird tinderboxen busted [Error: mozilla/dist/bin/js: Not a directory]
  • Bug 462426: Throbber icon not visible in Customize Toolbar dialog
  • Bug 462447: Remove CVS leftovers from new buildbot mozconfig files
  • Bug 462490: Today pane -> ‘new event’ icon is defect
  • Bug 462837: WARNING: Illegal character in window name prompt-occurrence-modification
  • Bug 463060: Clean-up and move clipboard.js
  • Bug 463067: Small icons for Cut/Copy/Paste toolbar buttons are truncated
  • Bug 463079: Assertion failure, can’t load any remote calendars
  • Bug 463082: Update screenshot section to Sunbird 0.9 release

Many thanks go to all developers, contributors, localizers, testers, and supporters that make this possible.


23
Oct 08

[October 23, 2008] Lightning/Sunbird Status Update

Another week has gone by and we are making good progress with bugfixing and driving the integration into Thunderbird forward. Here’s the list of the 19 bugs that were fixed within the last 8 days:

  • Bug 290747: Use sunbird.jar for sunbird specific files
  • Bug 329582: Remove gCalendarWindow
  • Bug 332796: Incorrect behavior of up/down arrow keys in unifinder
  • Bug 348481: Unifinder: focus is lost when moving between events via up & down key
  • Bug 351145: Entry unreadable in unifinder/task list
  • Bug 404468: Can not review calendar whilst reviewing invitations
  • Bug 412817: Improve ASSERT macro output or remove the macro
  • Bug 415509: Only the last event of a day is selectable by mouse click in day/weekview
  • Bug 451018: Change “Send attendees invitations via email”
  • Bug 452381: Don’t pass strings to setTimeout
  • Bug 454543: Calendar Multiday-View: Performance improvement is required
  • Bug 456364: Thunderbird3: Remove Find Events, Delete, Print, Reload from Toolbar
  • Bug 459500: Cleanup packages-static, add missing and remove unnecessary entries
  • Bug 459803: Searching with unifinder causes error output and doesn’t work
  • Bug 459908: Error “gCalendarStatusFeedback is not defined” when some dialogs
  • Bug 460234: Sunbird fails to load a calendar if HTTP Auth is required
  • Bug 460994: Crash Reporter is not enabled in Sunbird
  • Bug 461121: Thunderbird3: Move Invitations link into status bar
  • Bug 461162: Port bug 451466 to calendar [make -C calendar/locales wget-en-US]

Many thanks go to all developers, contributors, localizers, testers, and supporters that make this possible.


23
Oct 08

Meeting minutes of the Calendar developer status call (2008-10-22)

  • Participants: mschroeder, dbo, clarkbw, sipaq, fallen
  • Simon (sipaq):
    • sent email to gozer about l10n builds for trunk: gozer mentioned pretty near to l10n builds for sunbird, lightning more complicated. Localizers keep on asking sipaq about localized builds
    • L10n work on Thunderbird, finding unused strings.
  • Martin (mschroeder):
    • done some cleanup recently, removed gCalendarWindow
    • litmus test case cleanup with Andreas
  • Daniel (dbo):
    • has been left sick most of the week, but started working again yesterday
    • more on iTIP overhaul
    • some investigations into recent tb/ltn crasher
    • thinks about a parentless occurrences solution
  • Bryan (clarkbw):
  • Philipp (fallen):
    • getting rid of the toolbar items, either just removing or replacing them
    • posted bugs about what needs to be discussed
    • everything P1 that’s in work
    • probably after barcelona: unifinder tied to gloda/exptoolbar
  • Simon reminds of blogging!
    • Daniel will try to write something up on the iTIP overhaul
    • Philipp will try to blog about the toolbar work or on integrating into gloda
    • Martin will come up with a topic by the weekend

15
Oct 08

Calendar code moving to comm-central and status update (October 14)

It’s been a while since my last status update on September 19 and I want to give you an update on what we’ve been up to in the last four weeks.

But before I do that, I want to move your attention to the fact that all calendar code development has been moved away from the MOZILLA_1_8_BRANCH to our new repository comm-central, that we share with the Thunderbird and SeaMonkey developers.

This benefits us in various ways:

  • We get all the benefits of the Gecko platform development over the last two years (e.g. better memory management, faster javascript execution, better performance, etc.)
  • The platform is actually developed further, while only security and crash fixes were added to the 1.8 branch, which allows us to remove a lot of workarounds and ugly hacks in our codebase
  • We can now actively focus on getting Lightning in shape for the next Thunderbird release (TB 3) in early 2009. Before our move to comm-central Lightning on TB3 nightlies was broken in various ways and it’s getting better every day now

There is one major downside as well:

  • As announced earlier on various occasions, Lightning 0.9 was the last release for Thunderbird 2.0.0.x releases and Sunbird 0.9 was the last release for Windows 98, Windows ME and MacOS 10.2 and 10.3.

    The reason for this is, that with the very small development team that we are having, we can only support one platform in an optimal way. For us this is Thunderbird 3, which we hope will feature a fully integrated Lightning extension in its default install. Everything else has to come after this longstanding goal of our project. There will still be Sunbird releases of course and we are planning to release Sunbird 1.0 together with Thunderbird 3

With that being said, it’s time to mention the tremendous work of our developers in the last four weeks, where 63 bugs where fixed. Here’s the complete list:

  • 386432:
    Unify front-end code of Lightning and Sunbird
  • 393748:
    Active tasks are dimmed in task list while completed tasks are shown in black
  • 405196:
    Unifinder: selecting event in unifinder doesn’t select it in day or week view
  • 407961:
    Google sends Email reminders to all non-google attendees, 24 hours before the event
  • 414336:
    Last day in minimonth view is always not bold, independent whether events exist or not
  • 414957:
    Missing link on the Plugins pane of the Add-ons manager dialog
  • 419007:
    Invalid ics files don’t trigger INVALID_TIMEZONE error, times are assumed as floating
  • 428091:
    Unifinder close button icon is misaligned/misplaced
  • 431775:
    Remove unused gopher files
  • 432440:
    A new calendar file of Israel holidays – 2008-2009
  • 435166:
    Better error handling for repeating tasks without start date
  • 437418:
    Libical shouldn’t add extra linefeed after inner components of VTIMEZONE.
  • 437441:
    Finalize calendar-timezones.xpi
  • 437622:
    Upgrade via update mechanism fails, restart results in error on local calendars
  • 438807:
    Introduce “Meeting” category
  • 438964:
    Closing Edit Event window without modifications prompts Save Event dialog
  • 448753:
    Lightning and GData Provider are incompatible to Thunderbird 3.0b1pre
  • 450147:
    Some locales need to add “of” to the yearly-period-absolute-controls
  • 450391:
    Remove workaround for Task context menu
  • 451035:
    Remove the strings time.1 – time.23
  • 451912:
    Major update not offered when some language packs are installed
  • 453330:
    Make it possible to build Sunbird from comm-central
  • 453422:
    Add et (Estonian) locale for Calendar
  • 455182:
    Problems refreshing multiple Digest-authed CalDAV calendars
  • 455221:
    Graphic glitch on invitations-pane
  • 455262:
    Use PROPFIND instead of REPORT in CalDAV refresh()es
  • 455512:
    Dom_events.xpt differences bettwen ppc and i386 architectures breaks builds
  • 455728:
    Consolidate sort mechanisms in different views and trees
  • 455733:
    Consolidate filter mechanisms in different views and trees
  • 455768:
    Convert calendar/ from application/x-javascript to application/javascript
  • 455837:
    Support for re-enabling disabled calendars
  • 455863:
    Select event in unifinder scrolls multiday-view to time in its timezone
  • 455868:
    Update Sunbird and Lightning version numbers for comm-central builds
  • 455869:
    Remove MOZILLA_1_8_BRANCH ifdefs from calendar trunk code
  • 456037:
    Provide Sunbird nightly builds from comm-central
  • 456102:
    Minimonth should generally be able to show free-busy states
  • 456170:
    Cannot change authentication information for GData Provider
  • 456362:
    Thunderbird3: Move Today Pane Button into Status Bar
  • 456715:
    Remove COMM_BUILD ifdefs from calendar code
  • 456724:
    Add fy-NL to calendar all-locales list
  • 456865:
    Select Calendar dialog doesn’t show Google Calendars when accepting invitations
  • 456923:
    Add a build target to compare bin/ and the package list
  • 457078:
    Incorrect Icelandic language name on download page
  • 457692:
    Switch the invites dialog to use local Address Book autocomplete on toolkit interfaces
  • 457755:
    Add l10n.ini file for Calendar for new python-based compare-locales
  • 457830:
    Delete extended properties
  • 457854:
    Drag Shadow doesn’t disappear after event resize
  • 457890:
    Lightning 0.9/Google Calendar 0.5 do not synchronize Google Alarms anymore
  • 458078:
    Sunbird-bin shouldn’t try and link directly with libtracemalloc anymore
  • 458163:
    Lightning 0.9 source tarball is missing on FTP server
  • 458201:
    Link to 64-bit Linux version of Lightning is incorrect
  • 458368:
    Move and integrate calendar/prototypes to calendar/base
  • 458404:
    Remove -moz-pre-wrap from calendar-views.css
  • 458492:
    Llink to lightning/nightly/latest-comm-central/ builds
  • 458589:
    Drag and drop ical (.ics) attachments onto calendar icon does nothing
  • 458611:
    windows nightly build link is broken
  • 458808:
    Remove some unused entities from calendar.dtd
  • 458830:
    Lightning build instructions are obsolete
  • 458858:
    Lightning keeps asking for password on startup
  • 459107:
    Sunbird startup error (NS_ERROR_FILE_NOT_FOUND – nsIXPCComponents_Utils.import)
  • 459182:
    Syntax error in iCal file for Israeli holidays
  • 459432:
    Please move to Gecko 1.9
  • 459951:
    Update to links and description for CSV to iCal tool

Many thanks go to all developers, contributors, localizers, testers, and supporters that make this possible.


14
Oct 08

Fred’s developer comments: Cleaning up the trees – the first step

A few days ago, a new Calendar contributor, Fred Jendrzejewski, fixed bug 455728 and bug 455733. I believe that what he experienced here might be beneficial for other would-be contributors, so I asked him to write about his experience in the calendar codebase. Here is his report:

  • Some introducing things
    Few weeks ago I started to work on the mozilla calendar code. My first interesting patches became available in the nightly builds last week and I would like to report about my experience. As this is my first blog post for the mozilla community, I will introduce myself shortly. I am a German 22-year-old physic student in his last year. Since two years I have the great pleasure to live in Paris and to get to know the French way of life (I love it).

    A few months ago, I started to work on the Spicebird project, but the problems in the calendar code also catched my attention. I began working on the task / event lists and didn’t like that everything was written twice. The idea was that tasks and events are very similar. This property is used almost everywhere in the code( by the calIItemBase object), except those trees. So I decided, highly motivated, to rewrite the two trees and to work on the simpler code.

    So, I asked Philipp and Berend for there opinions and they liked it, but over time, the tree code became so complex that it was almost impossible to review the patches nicely. I had to step back and simplify the code first. Following Berends proposition, I started to sort out the hole mechanism for sorting and filtering items in the trees.

  • The new way of sorting and filtering
    So I sorted out functions, modified the code and abstracted it. If you want to sort a item array now, you don’t need to write this function completely by your own: you can use a preset of sort functions in the calUtils.js file. Even more practical is the solution for the filtering. We now have a calFilter object, which can handle the most common filtering mechanisms for you. We now have built-in solutions for property filtering and date filters.

    First, you can associate a text field for text search to the filter object, just by passing the id as a string to the text-field to the filter. Another possibility is to set a property filter out of the property filter bag (a predefined set of filter functions) in the calFilter object. This code is just one string away from usage, as the text-field filter. If you don’t like any of the built-in functions, you also can write your own filter function and set it as the property filter of the calFilter object.
    Here again, the date filter can use a predefined set of times (today, this week…). But you can also write your own date filter. To filter out the next 8 days you have to pass the string to the calFilter and it should work already. You’ll still have the possibility to set the start and the end date manually. This is done in only one line.

    Why is it nicer? I think that these are some nice functions that developers of the core code and for extensions can use. If they find other very common filter functions the filter bags can be extended easily. So actually I have cleaned up the trees now and we have created a first common set of filter and sort functions in the calendar code, that can be used as a standard implementation.

  • What will come?
    Now I started to work on a unification of observers and tree internal mechanisms. It seems possible to have only one tree implementation with only minor modifications for the event or task tree. Wait and see…