Nov 09

1.0 beta 1 is One Step Closer!

Finally! Since July, we have been working on bug 470430. After lots of testing, reviewing and frustration, we have finally checked in the bug’s patch. This bug is of quite central importance since we want to make sure that calendar data is not broken on an upgrade between versions, which was sometimes the case.

I would appreciate if everyone could take a look at the current nightlys to see if anything fails. Especially if you have an old profile (i.e from Sunbird/Lightning 0.8 or earlier) around, it would be nice to find out if upgrading from
that profile works flawlessly.

If you have ever used Sunbird, please also check if you have the following directory:

  • Windows Vista: C:Users<your username>AppDataRoamingMozillaExtensions{718e30fb-e89b-41dd-9da7-e25a45638b28}calendar-timezones@mozilla.org
  • Windows XP or earlier: C:Documents and Settings<your username>Application DataMozillaExtensions{718e30fb-e89b-41dd-9da7-e25a45638b28}calendar-timezones@mozilla.org
  • Linux: ~/.mozilla/extensions/{718e30fb-e89b-41dd-9da7-e25a45638b28}/calendar-timezones@mozilla.org
  • MacOS: ~/Library/Mozilla/Extensions/{718e30fb-e89b-41dd-9da7-e25a45638b28}/calendar-timezones@mozilla.org

If you do have this directory and it is empty, please report on bug 470430. Having it causes the upgrade process to fail, since the timezones files can not be found. My hopes are that this directory was created in error due to something in the development build process.

Now all we have left for our beta release is bug 494140, which will hopefully make it into the tree a bit sooner. Also, some locales need a few more strings. When all that is taken care of, then we can finally bring out release candidates for this beta release!

I’m looking forward to hearing from you and am excited that the beta is now one giant step closer.

UPDATE: We had a small regression, bug 526264. Upgrading from an older profile should work again after tomorrow’s nightlys.

Oct 09

[October 03, 2009] Lightning/Sunbird Status Update

Ok, I have seen all the comments declaring the project is dead. Let me just say that rumours about our death are slightly exaggerated. Over the last six weeks we have fixed 31 bugs, which are listed below.

  • Bug 351321: Italic and bold font for high and low priority
  • Bug 397888: Get rid of anonymous functions
  • Bug 401032: Would be nice to be able to view calendar in a separate toplevel window
  • Bug 413387: Today-pane is broken in SeaMonkey+Lightning
  • Bug 443752: Dialog specific files should be moved into /calendar/base/content/dialogs/
  • Bug 461744: Missing icon on minimonth dropdown button in miniday in today pane
  • Bug 466288: Make use of type=”number” for textboxes representing integer preferences
  • Bug 466439: calIRelation/calIAttachment need proper cloning facility
  • Bug 482131: UTF-8 encoded invitation subject not displayed correctly
  • Bug 485890: Splitter styles vary. Splitter between mini-month and calendar view is too narrow.
  • Bug 494783: Switching view range or editing events doesn’t update view content and displayed events
  • Bug 500244: Update internal timezone database to version 2009l
  • Bug 502337: Menu “View > Today Pane” always disabled in Mail tab, Today Pane can’t be configured
  • Bug 506322: Today pane collapse/expand buttons should always react to first click
  • Bug 507215: Creating repeating event/task fails
  • Bug 507432: Hong Kong Holidays update (2007-2010)
  • Bug 510348: Sunbird Mac l10n builds failing due to requiring license unpack
  • Bug 511246: All-day events don’t get deleted from calendar-multiday-view onCalendarUnregistering
  • Bug 511412: Vietnam Holidays for 2009 – 2013
  • Bug 511476: Calendar-event-dialog-freebusy.xml: Remove obsolete range check
  • Bug 511505: SOGo not listed on the “Calendar Related” links page
  • Bug 512123: Lebanon Calendar 2009
  • Bug 512811: React to tab controller parameter change in bug 500506
  • Bug 514843: Xpcshell unittest fails in file test_relation.js line 59
  • Bug 515178: Luxembourg Calender
  • Bug 515399: Cannot add attendees to event invitation
  • Bug 516398: No Lightning pref UI in SeaMonkey
  • Bug 516405: Lightning error in SeaMonkey because of missing gFolderDisplay
  • Bug 516407: Lightning 1.0pre doesn’t install in SeaMonkey 2.0b2
  • Bug 516681: Lightning disables SeaMonkey’s throbber
  • Bug 517013: Package nssdbm3.chk and update the Windows packaging file

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

Sep 09

Radio interview covering the Calendar Project (in German)

Two weeks ago, I was interviewed by the Bavarian broadcasting station here in Germany for their weekly computer radio show. The interview went pretty well and we covered a lot of areas, including:

  • Current project situation
  • History of the project
  • Major pain points of radio listeners with our applications (enterprise features vs. small business feature set, mobile phone synchronization)
  • Project roadmap
  • Contributing to an open source project

You can listen to the podcast of the show by downloading the mp3 file (the interview covers the last eight minutes). As this was a German radio station, the interview was conducted in German as well. Sorry to all our non-German-speaking folks about that.

Nevertheless, this gives us some much needed publicity, for which we are grateful. We are already discussing some followup actions with the radio folks. More about this, when things get more concrete.

Aug 09

[August 24, 2009] Lightning/Sunbird Status Update

More than one month has gone by without a status update. Obviously it’s vacation time :-)) We’re hard at work to finally get our next release out of the door for Lightning and Sunbird. More on that in a separate post. Over the last six weeks we have fixed 22 bugs, which are listed below.

  • 328216: It is not possible to assign duration to a task
  • 378951: [Mac] non-functional button in About Sunbird dialog
  • 411849: Default date for add New Task is current day rather than the selected day
  • 430090: Collapsed state of Today pane is not remembered when dragging the splitter
  • 445304: Today-pane: width should be set mode-dependently
  • 459381: Calendar and task tabs should be persistent
  • 471860: Use .trim*() in Calendar
  • 483643: Strict JavaScript warnings “reference to undefined property”
  • 500718: (scalability) useless refresh of unchanged calendars in onCalendarAdded/-Removed
  • 501402: Day View not updated correctly after deleting multiple events
  • 501613: Croatia holidays
  • 506461: Change the menupopup id in messenger-overlay-toolbar.xul
  • 506608: View, task list, and toolbar broken after startup
  • 507105: Task list doesn’t update correctly when adding/removing calendars
  • 507170: Removing calendar breaks unifinder
  • 507700: WARNING: Illegal character in window name calendar-properties-dialog
  • 508295: Task list: creating new task via double click or context menu entry fails
  • 509335: Make use of zoom controls for calendar views
  • 509345: US Holidays file uses inconsistent categories
  • 509405: Calendar builder tinderboxen down? starting 2009-08-10
  • 509936: Warning: undeclared variable in minimonth.xml
  • 510499: Correcting grammar on Sunbird homepage

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

Aug 09

Merike’s developer comments: Writing smoketests for Calendar

In February 2008 I wasn’t even a user of Lightning yet as it becomes obvious from looking at my home calendar. Four months later I was researching how to translate it so I could have Thunderbird and Lightning in the same language because an Estonian localization didn’t exist.
A year later being familiar with the localization side of Mozilla and using Lightning regularly the option to write tests for calendar looked really appealing when I noticed it in the wiki. In April I found myself participating in the testday for Mozmill 1.1. (There’s another one coming where you could participate by the way!)

Now that I’ve written smoketests for bug #500469 I find Mozmill relatively similar to Selenium as I expected. Both of these tools test user interface functionality and therefore the basic three types of steps are common to both:

  • Locating elements to act on
  • Specifying actions to be done
  • Checking the results

Element location in a Mozilla application can be done either by using Mozmill’s inspector which gives you a ready to use locator or with the help of DOM inspector if you need to access an element that is further down in the hierarchy of UI elements than what Mozmill’s inspector gives you. Locators in Lightning are quite long but mostly relatively easily accessible. There are exceptions to this though: bug #505336 being an example of an element that is fighting against automation.

As UI responsiveness is always slower than script speed pauses between test actions are essential to let UI load properly. Failing to do that can result in an otherwise fine-looking test not working and once in a while I’m still able to forget that despite of knowing it. There are also some inconsistencies between platforms support of Mozmill which made it impossible to stick to the Linux environment I mostly use but it also gives both the Mozmill and Calendar development version stress on both platforms which can only make these more bulletproof.

Result checking is the most important part of functional tests even if running a test without any asserts can reveal some of the bugs too. This is also the part of Mozmill code that recently reminded me of just how quickly Mozmill is developed. I was looking for a way to assert that a certain element is not hidden and found a assertPropertyNotExist function by scrolling through the available methods on Google Code. This seemed like a good way to make sure that there’s no hidden attribute attached to an element. To my surprise the first call to this method caused a failure which stated that there’s no such function. It had been added only a couple of hours earlier and the version installed didn’t have it yet!

Active development of Mozmill and fantastic people on both the #qa and #calendar IRC channels make the difference between a person merely checking things out and a new participant in the project. That’s what it takes to get a new person to participate.

Aug 09

How to Save Sunbird

Since the last blog post, many people have asked what can be done to keep Sunbird alive. I’d like to attempt to answer this question, and also tell you how to bring Sunbird forward (i.e attracting new users).

What’s needed to keep Sunbird alive

On the development side, whenever a Lightning bug is fixed that touches shared code, extra testing and possibly some coding is needed to make sure that the bug is also fixed in Sunbird. In most cases no additional work is necessary, but once in a while Sunbird acts a bit differently. Similarly, when a new feature is added to Lightning, some extra work may be needed to make sure Sunbird can also benefit from it.

Extra testing is also needed for Sunbird. This includes regular testing of nightly builds and writing or adapting automated tests to work with Sunbird. Also some triage work needs to be done. When a bug is filed and there is no note if the bug relates to Sunbird or Lightning, the reporter needs to be asked just this question. Appropriate bugs should then be moved into the Sunbird Only component, which should be looked after in case of duplicate or obsolete bugs.

Some release engineering work also needs to be done when nearing a release. This includes configuring the automatic update servers and moving around builds on the ftp servers.

Note however you don’t necessarily have to do all of this on your own. Depending on how many people are interested in actively working on Sunbird it’s quite possible that you can split the work similar to how we’ve been doing it (backend, frontend development, user experience, release engineering, testing).

Sunbird’s possible future vision

What Sunbird needs is a vision of its own. That means, that new Lightning features should no longer be incorporated into Sunbird by default. Instead Sunbird needs to get its own identity to attract new users. If you have experience with user interfaces, Sunbird could use your help to create a new and innovative way for users to manage their appointments.

A vision we have come up with and other users have also brought up is to make Lightning modify Thunderbird so far that starting from a new profile gives you the option of either a calendar or mail account (or both). If you choose Calendar, then you will be presented with only calendar relevant UI (i.e similar to what Sunbird is today). You will not be bothered with mail features unless you need them (i.e you want to invite attendees and send invitations to them). This would have the benefit of shared features like the address book being available without much extra work.

If you would like to save Sunbird, please drop me an email and I’ll help you get started. Please be sure to tell me what area you’d like to work on and if I can forward your Email address to other people interested in helping with Sunbird.

Jul 09

Donations update – How we spend our money

It’s been three months since I last posted a donations update. And it’s more than time to update our community on the current state of things, because two exciting things have happened or are about to happen.

  1. Back in April we had accumulated roughly 1150$ of donations and we were heavily contemplating what to do with it. At the same time, a long-term localization contributor, Merike Sell, offered to create an automated testing framework for the calendar applications as part of Google’s Summer of Code. Unfortunately the project was not accepted (only a few of the dozens of worthy projects were accepted by Google), but the offer was too good to let it slip.

    So we decided to use our money to fund Merike’s project outside of Google’s summer of code. Unfortunately our money was not enough to fund Merike for the three months period, but David Ascher (CEO of Mozilla Messaging) graciously agreed to cover the remaining 3350$.

    Merike is already hard at work. You can watch her progress in Bug 500469. Her mentor, Clint Talbert, will post an introductory posting explaining the overall goal of her project. And hopefully Merike will post here as well with a short introductory post and a status update once in a while.

  2. The mozilla.org add-ons site has finally introduced the possibility to ask for donations (or contributions as they call them) directly on the add-on page of each participating add-on. The Calendar Project to participate in this program in the hope of increasing its donations through this avenue. Let me state clearly that these donations/contributions will be optional.

Let me close by aying “thank you” to everybody who has donated to the Calendar Project so far and to everyone who is planning on doing this in the future. As you can see, these donations can really do some good, so donate now!

Jul 09

[July 14, 2009] Lightning/Sunbird Status Update

Three weeks after the last status update, it’s time for another. We’re hard at work to finally get our next release (1.0 beta) out of the door for Lightning and Sunbird. Over the last three weeks we have fixed 12 bugs, which are listed below.

  • Bug 392021: Event dialog: Option to delete event/task
  • Bug 413594: move alarm indication icon to the extreme right
  • Bug 431126: Revise calIItipTransport::defaultIdentity
  • Bug 435168: New Calendar Wizard shows empty focus box next to “Show Alarms” check box
  • Bug 455281: Color of drag-and-drop shadow in day/week and multiweek/month view is different
  • Bug 459478: Tooltips in main view don’t work anymore
  • Bug 460967: Sorting of tasks to their title in the task-tree is not working
  • Bug 483582: Multiple requests for master password on startup of Sunbird
  • Bug 485912: Recurring events with monthly rule: “every” + “day of the month” show wrong recurrence summary
  • Bug 499542: View menu entries Rotate View and Workweek Days Only are always disabled
  • Bug 500488: Can’t open Calendar and Tasks tabs; adopt Lightning to openTab API changes in Bug 467768
  • Bug 500908: Find events button keeps its own state and may work invertedly

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

Jun 09

[June 22, 2009] Lightning/Sunbird Status Update

It’s time for another status update again. We’re hard at work to finally get our next release (1.0 beta) out of the door for Lightning and Sunbird. Over the last three weeks we have fixed 31 bugs, which are listed below.

  • Bug 273279: no visual status mark on tentative or cancelled events/tasks
  • Bug 387014: While reloading remote calendars, Thunderbird windows are unresponsive
  • Bug 389088: Use default alarms defined in Google Calendar
  • Bug 395281: Attendee icons in Free Busy Pane need tooltips to be understandable
  • Bug 404902: View calendar while refreshing remote calendar
  • Bug 410050: description is taken from wrong e-mail message
  • Bug 433847: Update w.m.o build guide
  • Bug 448291: Optionally disable scroll through calendar months
  • Bug 449197: ‘Calendar -> Publish’ menu item is always disabled
  • Bug 453067: Eventboxes with and without icons have different height
  • Bug 453122: Newlines not trimmed from description when converting from email
  • Bug 453145: Using ctrl+s or ‘Save’ while editing a occurrence changes whole series
  • Bug 456385: Thunderbird3: Integrate Calendar and Task mode menu items into new menu
  • Bug 459018: ‘self.stopEditing is not a function’ while creating an event
  • Bug 462824: clean up calendar/test/homegrown
  • Bug 466170: Extra separator in View menu
  • Bug 480266: Switching mail and tasks tabs duplicates the account list
  • Bug 485891: Bottom Border under Column Day Labels is missing.
  • Bug 489773: Invitation dialog has flaws
  • Bug 491326: Non-ascii calendar names are displayed wrong after restart
  • Bug 491868: print card/contact is completely unstyled and hard to read
  • Bug 492723: Error “favoriteFolderMenu is null” opening the Edit menu from Lightning
  • Bug 494160: Event dialog: Add accesskeys for menuitems in menu “Options – Status”
  • Bug 495859: Lightning notification bar appears at the bottom of the message pane.
  • Bug 496413: faulty PROPFIND will not declare the request as complete
  • Bug 498158: Context edit menu (undo/cut/copy/paste) has got no icons
  • Bug 498700: imip bar is not displayed, error “GetLoadedMessage is not defined”
  • Bug 498779: Outdated information in /calendar/lightning/nightly/README.html
  • Bug 499500: Error “GetFirstSelectedMessage is not defined”
  • Bug 499540: Multiweek View: changing Number of Weeks via View menu fails
  • Bug 499588: TB3 integration: Fix accesskeys for File -> New menu items

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

PS: We’ve read and noticed the repeated requests for a more high-level plan of our future goals (some call it a “roadmap”). Philipp is currently working on a blog post, that will hopefully satisfy those of you, who were kind enough to get in contact with us and ask us for such a high-level plan. Stay tuned!

Jun 09

String freeze for the upcoming Lightning/Sunbird 1.0beta release on June 23

It’s been a long time, but it seems that we’re finally getting near to a new release. Yay!

Philipp tells me, that we now have only five open bugs on the blocking list that are needed for the 1.0 beta release. All of those bugs have no localization impact, which means that we are ready for a string freeze.

We will therefore freeze all application strings by tomorrow, Wednesday, June 23 at 23:59 PST. That means that all strings will then be entirely frozen until we release Lightning and Sunbird 1.0beta. I will open up a separate opt-in thread for localizers in the mozilla.dev.l10n newsgroup soon.

One additional note to localizers:
Please take a close look at the status of your tinderbox (at http://tinderbox.mozilla.org/showbuilds.cgi?tree=Mozilla-l10n-locale where “locale” must be replaced with your locale code (e.g. es-ES or de). I’ve seen some locales having a red Windows tinderbox (and therefore broken Windows builds), because those locales didn’t follow this change to our installer strings. Please check if this applies to you and make the necessary changes.