28
Oct 08

Calendar Community Testday On Thursday, October 30

The next test day will be held on Thursday, October 30th. This time we want to take a look at the Lightning trunk builds in Thunderbird 3.0b1pre again. Please keep in mind both are alpha versions! Therefore you should take following steps:

  • Though we do not expect things to go wrong, we always strongly encourage you to back up your profile, and to do your testing on a “test” profile.
  • Backing up a profile is easy:
    1. Find your profile directory:
      Windows: %AppData%Thunderbird
      Linux: ~/.thunderbird
      MacOSX: ~/Library/Thunderbird
    2. Copy the root of it somewhere else, for example copy the Thunderbird directory and everything below it.
  • Creating a testing profile is also easy:
    1. Launch your application with a ‘-P’ option.
    2. Create a new profile by clicking the ‘Create Profile’ button.
    3. Click ‘Next’, Give it a name like “Testing Profile”, click ‘Finish’.
    4. Select the testing profile, and click the ‘Start Shredder’ button.
  • Remember that you will have to start the application with the -P option during testing so you can pick your testing profile.
  • Once you have finished testing, you can delete the extra profiles, and you will be back to normal. If something goes terribly wrong (although we do not expect it to), close the application, and just replace the profile with the backed up copy. That will reset the application to the way it was before you started testing.

The goal of our test day is to run as many Litmus test cases for Lightning as possible. If you find outdated or broken test cases, please leave a comment.

There are also some fixed tb-integration bugs that need to be verified. You simply have to add a comment to the bug report stating what version and operating system you used while verifying the bug fixed.

Join us in the #calendar-qa IRC channel on Thursday. All the information on the testday is on our usual Test Day wiki page.

Hope to see you in #calendar-qa!

Andreas
Calendar QA Team


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…


14
Oct 08

Calendar Community Testday On Thursday, October 16

The next test day will be held on Thursday, October 16th. This time we want to take a look at the Lightning trunk builds in Thunderbird 3.0b1pre. Please keep in mind both are alpha versions! Therefore you should take following steps:

  • Though we do not expect things to go wrong, we always strongly encourage you to back up your profile, and to do your testing on a “test” profile.
  • Backing up a profile is easy:
    1. Find your profile directory:
      Windows: %AppData%Thunderbird
      Linux: ~/.thunderbird
      MacOSX: ~/Library/Thunderbird
    2. Copy the root of it somewhere else, for example copy the Thunderbird directory and everything below it.
  • Creating a testing profile is also easy:
    1. Launch your application with a ‘-P’ option.
    2. Create a new profile by clicking the ‘Create Profile’ button.
    3. Click ‘Next’, Give it a name like “Testing Profile”, click ‘Finish’.
    4. Select the testing profile, and click the ‘Start Shredder’ button.
  • Remember that you will have to start the application with the -P option during testing so you can pick your testing profile.
  • Once you have finished testing, you can delete the extra profiles, and you will be back to normal. If something goes terribly wrong (although we do not expect it to), close the application, and just replace the profile with the backed up copy. That will reset the application to the way it was before you started testing.

The goal of our test day is to run as many Litmus test cases for Lightning as possible. If you find outdated or broken test cases, please leave a comment.

Join us in the #calendar-qa IRC channel on Thursday. All the information on the testday is on our usual Test Day wiki page.

Hope to see you in #calendar-qa!

Andreas & Martin
Calendar QA Team


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!