02
Oct 08

L10n dashboard now available to Calendar localizers as well

Thanks to gozer, Mozilla Messaging’s build guru, we now have a working l10n dashboard for the calendar localizations. Localizers, who also do l10n work for Firefox or Thunderbird should already be familiar with the dashboard, for the others here’s a quick explanation of the dashboard table:

  • Locale: The locale code for each calendar locale
  • Tree: The tree ID, the Mozilla Messaging dashboard currently knows two trees:
    • tb3x: Information on the localization status of the Thunderbird localization of a given locale
    • cal3x: Information on the localization status of the Sunbird/Lightning localization of a given locale
  • %: Percentage of completion of a locale (Please note, that this will probably never reach 100%, because there are some strings in each localization which shouldn’t be translated)
  • Errors: Number of localization errors
  • Missing: Number of missing strings
  • Unchanged: Number of unchanged strings excl. access- and commandkeys (this relates to the % number mentioned above)
  • Stats: Graphical history of locale status (H) and compare-locales output (C)
  • Status: Graphical indicator for the current state of the localization

I hope this helps our localizers in working even more effectively than they have already done in the past (if that’s even possible). Thanks again, gozer!


24
Sep 08

Problems with updating Lightning 0.8 –> 0.9

To answer all the questions with a single post:

Yes, we are aware that every time you startup Thunderbird, it will try to upgrade Lightning to 0.9 but will fail with a “Download error -288”. The reason for this is bug 456710, which Mozilla IT is working on. We hope that this will be resolved soon.

Until then, if you want to upgrade to Lightning 0.9, please uninstall Lightning 0.8 in the addon manager, download Lightning 0.9 and install it. Your calendar data will be preserved. We are sorry for the inconvenience.


23
Sep 08

Lightning 0.9 and Sunbird 0.9 are out!

The Calendar Project is proud to report, that the 0.9 release of Lightning and Sunbird has been completed and is now available via AMO and the Calendar Project website.

Five and a half months after the 0.8 release we move one step closer to our 1.0 release, currently planned for early 2009. Notable improvements of this release are:

  • Events spanning days now have a visual indicator indicating them as connected events
  • When reloading a remote calendar a progress indicator is now shown
  • The so-called “minimonth” (small calendar month in the upper left) has been given a visual overhaul
  • The calendar views (day, week, multiweek, month) have been given a visual overhaul
  • The today pane can now be displayed in calendar mode and task mode as well [Lightning-only]
  • CalDAV support and interoperability with various CalDAV servers has been improved
  • iMip/iTip support (support for email invitations) has been greatly improved [Lightning-only]
  • The application stability and memory consumption has been greatly improved
  • Lightning 0.9 is intended to be the last release for the Thunderbird 2 series. For the future we are planning to integrate Lightning fully into the upcoming Thunderbird 3 release [Lightning-only]
  • Icelandic, Romanian and Traditional Chinese were added as new languages. Unfortunately no builds in Macedonian or Turkish are available for 0.9
  • A full list of all the 397 changes that have gone into this release can be found on the Rumbling Edge website

Lightning 0.9 and Sunbird 0.9 are available for Windows, Mac OS X (universal builds), Linux, Solaris (Intel) and Solaris (Sparc) in 31 different languages including English.

Please use the following links to download the release:

Please read the release notes for Lightning 0.9 and Sunbird 0.9 before downloading.

Thank you again to all our developers, contributors, localizers, testers, and supporters. We would not be able to do this without your assistance!


19
Sep 08

Lightning/Sunbird 0.9 RC2 is out!

The second release candidate (RC2) of our 0.9 release is available! We really think that this is it. If nothing serious shows up during the next few days, this RC will become the 0.9 final release. Here are the links:

The Lightning builds contain all available locales (30). To download a localized Sunbird build, you’ll need adjust the link and replace the “en-US” string with the locale code of your locale, e.g. “ko” for Korean.

Here are the fixes that went into this 2nd RC:

  • Bug 416195: Selected calendar not highlighted in import and export
  • Bug 454664: Events not displayed after opening ics file
  • Bug 454691: Exception occuring when multiple transactions are occuring
  • Bug 454757: Wrong usage of this/thisCalendar
  • Bug 454983: Error when editing repeating event with exceptions
  • Bug 454998: Free/Busy lookups don’t work
  • Bug 455049: Toggling offline results in uncaught exception
  • Bug 455128: Exception on cached caldav calendars
  • Bug 455130: Potential transaction mismatch between sqlite databases
  • Bug 455132: Pasting event to disabled calendar deletes all events
  • Bug 455133: Dragging repeating event to the date of a previous deletion deletes it too
  • Bug 455182: Problems refreshing multiple Digest-authed CalDAV calendars
  • Bug 455232: Egroupware installation gives error when querying for tasks
  • Bug 455289: Offer WCAP experimental caching
  • Bug 455298: Impossible to load remote caldav
  • Bug 455462: Hovering over event in week view causes visual bug

11
Sep 08

[September 11, 2008] Lightning/Sunbird Status Update

Now that 0.9 RC1 is out, I thought some of you might be interested in the latest news on what patches made it into the RC1. We fixed 34 bugs in the last two weeks and most of the bugs in the list below made it into the RC1 (I’m not 100% sure, which bugs didn’t make it, sorry). So that is really good news and with you guys out there testing the hell out of those builds, I’m sure we can make it to the RC2 and the final release in a very short timeframe.

Here are the 34 bugs fixed within in the last two weeks:

  • Bug 202360: Color Coding of Tasks and Events (multiple classification)
  • Bug 348009: Drag and Drop in Month view freezes Un*x desktops
  • Bug 354979: Timezone names sorted by their English names
  • Bug 363218: Migrator: migrating evolution files not working
  • Bug 392561: Need to revise provider error notifications
  • Bug 428544: Unable to dismiss reminder for repeating events that are sync’ed with Google Calendar Sync
  • Bug 428851: Accepting Meeting Invites Does Not Update Google Calendar
  • Bug 433772: Edit/New Task Dialog resets Due Date if Start Date is modified
  • Bug 437318: optimize caldav queries for “long” calendars
  • Bug 437441: Finalize calendar-timezones.xpi
  • Bug 437944: Memory leakage in the calendar Status-Observer
  • Bug 438964: Closing Event window without modifications prompts Save dialog
  • Bug 445736: Wcap event/non-server attendee -> organizer gets no Update button in reply mail
  • Bug 446002: Tooltips in calendar list always show the first readonly calendar name
  • Bug 449574: aDOMWindow errors
  • Bug 450034: Month view shows weekends like out-of-current-month days
  • Bug 450104: insertion of data is extremely slow compared to other platforms
  • Bug 452214: CalDAV provider interop issues with newer CalendarServers
  • Bug 452231: Colliding events: events collide with special invitation status;
  • Bug 452610: Disable CalDAV scheduling (make pref-based)
  • Bug 452759: bump sunbird version
  • Bug 453195: Allow providers to disable imip
  • Bug 453198: Allow arbitrary reminder times
  • Bug 453250: turning calendars off not working
  • Bug 453409: Calendar list scrollbar hides read-only icons
  • Bug 453453: Error in calAttendee.js when opening properties dialog
  • Bug 453454: Principal namespace list will always be empty with multiple home sets
  • Bug 453794: Cannot update/create any event on a Google calendar
  • Bug 454180: Support for server-based auto-scheduling
  • Bug 454195: calendar overlapp when floating timezone is involved
  • Bug 454213: Parsing errors if server doesn’t return valid XML on getetag
  • Bug 454478: No drag shadow displayed in month/multiweek view anymore
  • Bug 454540: [CalDAV] Ensuring trailing slash with replace fails
  • Bug 454637: firstInRealm always false

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


11
Sep 08

0.9 RC1 Available – We Need You!

Finally! The first release candidate (RC!) of our 0.9 release is available! I know you’ve been waiting a long time for it, so grab yourself a build. Here are the links:

The Lightning builds contain all available locales (30). To download a localized Sunbird build, you’ll need adjust the link and replace the “en-US” string with the locale code of your locale, e.g. “ko” for Korean.

We really need your help to complete the rest of the L10N Checks and the Update testing, as you can see from our Test Plan.

The Update Testing is of special concern to us, because historically this has always been where we have found critical issues in our release candidate builds. So, please take a look. Feel free to update the test plan wiki or leave a comment on this post with what you tested, so we can track what has been done versus what is still remaining to do.

If you have problems or questions, please drop by #calendar-qa on IRC.

Happy Testing!


31
Aug 08

Berend’s developer notes: My XBL adventures in the calendar views

I recently fixed some issues around the event boxes in the calendar views (see calendar-multiday-view.xml and calendar-view-core.xml). They are implemented by means of XBL and although they are certainly a very sophisticated use case I found that the implemented bindings do not always utilize all features of this markup language. Probably some of these features are also missing in many other bindings around the world and so I thought this is worth a blog entry :)

Basically an XBL binding contains several elements: One ‘content’ element where the structure of the binding is defined, one ‘implementation’ element, that controls the behavior and one ‘handlers’ element that listens to events.

For the maintenance of an arbitrary XBL binding it is imperative to keep as much information as possible within its ‘content’ element. This way it is far easier for the developer to perceive the structure and logic of the binding and it also helps to avoid redundant information that may lead to bugs during the development process. If the developer should decide to modify the structure of a binding binding he will most likely run into problems when he then has to adjust the ‘implementation’ code at many places, too. In this context the ‘attribute inheritance’ feature executed by the ‘xbl:inherits’ attribute proves to be very helpful. This
attribute takes care that modifications are forwarded down to the appropriate child elements. When it is done like this, attributes may be directly set at the binding without any internal knowledge about it.

In some cases anonymous elements were added unnecessarily to the bindings. For example quite often one box element can be removed just by extending a binding to a ‘xul:box’ or whatever. ‘Spacer’ elements may be exchanged by setting the ‘pack’ or ‘align’ attribute to the parental element.

I observed that there is also some redundancy in the code. I remember that this has not been resolved with regards to the possible performance loss. From all I have read and heard about XBL this argument is to be taken seriously, but I believe that the use of the ‘children’ tag within a binding could be an elegant solution, because it allows to add various anonymous content at a defined insertion point.

XBL goes hand in hand with cascading stylesheets – whereupon one should pay close attention to move all style settings to ‘.css’ files. In my struggle with the calendar views I was frequently confronted with completely unexpected problems and side effects caused by seemingly harmless style attributes. For example I could see that setting attributes at certain elements seem to force a distinctive relayout and consequently trash the whole view because of too many other ‘compact’ widgets involved. This and some other side-effects have made me occasionally become anxious to destroy the layout by merely looking at the .css files!

Last but not least I certainly don’t get around to admit that the views have always run quite reliable and offer a vast functionality with an appealing design! As we all know a lot of blood, sweat and tears have accompanied their implementation…

I hope that we will find some time to give the code its finishing touch at the beginning of the next release cycle so that we have time to react to the inescapable regressions that will come up.


29
Aug 08

[August 29, 2008] 0.9 release status update

I guess it’s time to give you an update on our efforts to finally nail down the 0.9 release.

The major newsitem is, that we have decided on our last developer conference call that we will cut CalDAV scheduling from the list of 0.9 features. The reason behind this is, that we have found that this feature is still too immature for wide-spread consumption and the list of regressions would likely put the release date a few weeks (or even months) in the future. Therefore CalDAV scheduling will be disabled by default in 0.9, but interested users can enable it, by setting a hidden preference via about:config.

With that out of the way, we are now down to nine release blockers, where only four of the nine blockers will require code changes and the other five covering tasks to be done during the release preparation process by our build and documentation crew.

So hopefully, we can fix the four remaining code issues during the next week and give you first release candidate (0.9 RC1) shortly thereafter. We also have fixed some other bugs (15) during the last week. Here’s a list of last week’s bug fixes:

  • Bug 326792: ‘Next’ button doesn’t change to active when dragging URL into text field
  • Bug 366482: “Edit as new” for opened eml files results in a broken compose window
  • Bug 409166: Missing crop attribute in agenda checkbox
  • Bug 437412: Zero-length and short events are shown at the wrong times in timegrid
  • Bug 446303: Use the “RELATED-TO” property
  • Bug 447800: Month View is missing a right border
  • Bug 447814: Reloading remote calendars shows wrong progress in status bar
  • Bug 449449: Invitations Link: CPU usage every three minutes
  • Bug 450563: Attendee gets organizer alarm setting if he accepts iTip/iMip invitation
  • Bug 451585: Use ICS service for ics parsing in CalDAV
  • Bug 451827: no local storage calendar, error at startup
  • Bug 451937: Titlebar changes to text of Calendar Mode at midnight
  • Bug 452379: Accepting an invitation on caldav (Bedework) doesn’t work (regression)
  • Bug 452392: Minimum height of eventboxes is too little
  • Bug 452417: Readonly events should not show grippies on hover event

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


22
Aug 08

Philipp’s Developer Notes: Using CalDAV with Google Calendar

When I arrived at the Mozilla Firefox+ Summit 2008 on the 28th, I was surprised to hear, that Google announced the release of CalDAV support for Google Calendar while I was up in the air. At first I thought Simon was joking when he told me, but he was not!
I had very mixed feelings on this step. On one side this is a really great step. Supporting CalDAV means that more applications will be able to natively read and write to Google Calendar, without the need for third party applications that proxy the write process through the web-based API. In the long run this means less work for me since at some point the Provider for Google Calendar will not be needed anymore. Instead of fixing the Provider for Google Calendar, I can focus on CalDAV bugs, which benefits both Google users and those of other servers. Also this is something I’ve been hoping for a while now and have asked Google employees about in the past.
On the other side, I was of course a bit disappointed, that all the work and pain I’ve put into the Provider for Google Calendar is now being made obsolete. This didn’t last long though, since thats just the way it goes with software and I was always aware that at some point something like this would happen. Nevertheless I have no regrets since I think I’ve done a great deal for users of the Provider and the feedback I’ve gotten was overwhelming (and mostly positive). Writing the Provider also taught me a great deal about the Mozilla codebase and how the calendar application works, so it was definitely worth it!
Since the above sounds much like I’m going to drop work on the Provider right away and suggest to use CalDAV, let me tell you that it is quite the contrary. As noted in Google’s blog post, the release of CalDAV support is developer-focused. There are a number of known issues and application support is currently quite minimal. At the time of release, as far as I know only Apple iCal actually works. Therefore, I’d still suggest to use the Provider for Google Calendar until Google’s CalDAV server is more mature.
Using a few workarounds introduced in bug 448561 and bug 451455 I was able to make Sunbird/Lightning’s CalDAV work with Google. If you are interested in testing, please feel free to take a look at the latest nightlies (Sunbird / Lightning).
Philipp


22
Aug 08

[August 22, 2008] Lightning/Sunbird Status Update

We’re getting nearer and nearer to our first 0.9 release candidate. With 31 bugs fixed in the last 10 days, many of them release blockers, we’re now down to only 11 release blockers at the time of writing. 8 of those 11 bugs currently still need a patch, so if anyone of our readers wants to help out, now would be a great time.

On the localization front it looks like the Macedonian and Turkish localizations will not be able to make it, but Slovenian will, so we’ll still be in better shape l10n-wise than we were during the time of the 0.8 release.

For anyone interested, here are the 31 bugs fixed within in the last 10 days:

  • Bug 316927
    Fix dataloss, when importing events/tasks with multiple categories
  • Bug 405222
    Time format not respected in prefs window
  • Bug 406581
    Enhance cal::detectTimezone() to dump errors
  • Bug 409921
    Implement CalDAV scheduling
  • Bug 417629
    Import ICS file to CalDAV server fails to handle recurrence-id correctly
  • Bug 435447
    Today pane events don’t change color when calendar color is changed
  • Bug 444532
    Select ‘Convert to->Task/event’ in the preview pane in mailmode causes an uncaught exception
  • Bug 447996
    Month View doesn’t display the full month anymore
  • Bug 448205
    Calendar mode does not set Thunderbird Application title (regression)
  • Bug 448561
    Allow CalDAV provider to work with Google Calendar’s new CalDAV
  • Bug 448771
    Open task context menu in calendar view -> output in error console
  • Bug 448946
    Switching calendar views via keys ALT+[1-4] is broken
  • Bug 449019
    Mouse over event in unifinder
  • Bug 449401
    Storage provider does cleanly separate items of the same id across different calendars
  • Bug 449573
    Deleting item/items from local ics file fails with MODIFICATION_FAILED, items missing
  • Bug 450107
    View -> Tasks in View command behaves erratic in Month view
  • Bug 450285
    Startup Error: mozStorage exception: createStatement failed (regression)
  • Bug 450381
    Itip email are not sent while being offline
  • Bug 450398
    Add Icelandic (is) and Chinese Traditional (zh-TW) to shipped-locales
  • Bug 450447
    Remove pa-IN (Punjabi) and mn (Mongolian) from all-locales
  • Bug 450451
    Remove mk (Macedonian) and tr (Turkish) from shipped-locales
  • Bug 450611
    Add space between icon and button text in occurrence selection dialog
  • Bug 451020
    Support for mixed server/non-server attendees
  • Bug 451162
    Organizer’s email address isn’t in iMIP invitation request
  • Bug 451174
    CalDAV provider can fail to check inbox
  • Bug 451327
    Move mouse to the unifinder, but not over an event -> error output
  • Bug 451353
    Emphasize open/unanswered invitations
  • Bug 451383
    Tooltips are not updated and display wrong information (regression)
  • Bug 451455
    CalDAV provider can delete items mistakenly
  • Bug 451529
    Deleting invitation copy sends out CANCEL to all attendees
  • Bug 451539
    Recurring items and attachments

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