17
May 16

Google Summer of Code 2016

It is about time for a new blog post. I know it has been a while and there are certainly some notable events I could have blogged about, but in today’s fast paced world I have preferred quick twitter messages.

The exciting news I would like to spread today is that we have a new Google Summer of Code student for this summer! May I introduce to you Paul Morris, who I believe is an awesome candidate. Here is a little information about Paul:

I am currently finishing my graduate degree and in my spare time I like to play music and work on alternative music notation systems (see Clairnote). I have written a few Firefox add-ons and I was interested in the “Event in a Tab” project because I wanted to contribute to Mozilla and to Thunderbird/Calendar which is used by millions of people and fills an important niche. It was also a good fit for my skills and an opportunity to learn more about using html/css/javascript for user interfaces.

Paul will be working on the Event in a Tab project, which aims to allow opening a calendar event or task in a tab, instead of in the current event dialog. Just imagine the endless possibilities we’d have with so much space! In the end you will be able to view events and tasks both in the traditional dialog and in a tab, depending on your preference and the situation you are in.

The project will have two phases, the first taking the current event dialog code and UI as is and making it possible to open it in a tab. The textboxes will inevitably be fairly wide, but I believe this is an important first step and gives users a workable result early on.

Once this is done, the second step is to re-implement the dialog using HTML instead of XUL, with a new layout that is made for the extra space we have in a tab. The layout should be adaptable, so that when the window is resized or the event is opened in a narrow dialog, the elements fall in to place, just like you’d experience in a reactive designed website. You can read more about the project on the wiki.

Paul has already made some great UI mock-ups in his proposal, we will be going through these with the Thunderbird UI experts to make sure we can provide you with the best experience possible. I am sure we will share some screenshots on the blog once the re-implementation phase comes closer.

Paul will be using this blog to give updates about his progress. The coding phase is about to start on May 22nd after which posts will become more frequent. Please join me in welcoming Paul and wishing him all the best for the summer!

 

 

 


13
Jun 15

There is no Lightning 4.0

…but of course there is is a release for Thunderbird 38! Since the release date for Thunderbird has been postponed and in the meanwhile Firefox has released 38.0.1, Thunderbird will also be released as Thunderbird 38.0.1. Since the Lightning version is automatically generated at build time, we have just released Lightning 4.0.0.1. If you are still using Thunderbird 31 and Lightning 3.3.3, you will be getting an update in the next days.

The exciting thing about this release is that Lightning has been integrated into Thunderbird. I expect there will be next to no issues during upgrade this time, because Thunderbird includes the Lightning addon already.

If you can’t wait, you can get Thunderbird in your language directly from mozilla.org. If you do happen to have issues with upgrading, you can also get Lightning from addons.mozilla.org. The latest Seamonkey version is 2.33.1 at the time of writing, you need to use Lightning 3.8b2 in this case. For more information on compatibility, check out the calendar versions page.

As mentioned in a previous blog post, most fixed issues are backend fixes that won’t be very visible. We do however have a great new feature to save copies of invitations to your calendar. This helps in case you don’t care about replying to the invitation but would still like to see it in your calendar. We also have more general improvements in invitation compatibility, performance and stability and some slight visual enhancements. The full list of changes can be found on bugzilla.

If you are upgrading manually, you might want to make a backup. Although I don’t anticipate any major issues, you never know.

If you have questions, would like support, or have found a bug, feel free to leave a comment here and I’ll get back to you as soon as possible.


28
Apr 15

The Third Beta on the way to Lightning 4.0

It’s that time of year again, we have a new major release of Lightning on the horizon. About every 42 weeks, Thunderbird prepares for a major release, we follow up with a matching major version. You may know these as Lightning 2.6 or 3.3.In order to avoid disappointments, we do a series of beta releases before a such major release. This is where we need you. Please help out in making Lightning 4.0 a great success.Time flies when you are preparing for releases, so we are already at Thunderbird 38.0b3 and Lightning 4.0b3. The final release will be on May 12th and there will be at least one more beta. Please download these betas and take a moment to go through all the actions you normally do on a daily basis. Create an event, accept an invitation, complete a task. You probably have your own workflow, these are of course just examples.

Here is how to get the builds. If you have found an issue, you can either leave a comment here or file a bug on bugzilla.

You may wonder what is new. I’ve gone through the bugs fixed since 3.3 and found that most issues are backend fixes that won’t be very visible. We do however have a great new feature to save copies of invitations to your calendar. This helps in case you don’t care about replying to the invitation but would still like to see it in your calendar. We also have more general improvements in invitation compatibility, performance and stability and some slight visual enhancements. The full list of changes can be found on bugzilla.

Although its highly unlikely that severe problems will arise, you are encouraged to make a backup before switching to beta. If it comforts you, I am using beta builds for my production profile and I don’t recall there being a time where I lost events or had to start over.

If you have questions or have found a bug, feel free to leave a comment here.


03
Mar 15

We are now on Twitter

In the spirit of Twitter I will keep this blog post down to 140 characters. Check out @mozcalendar for more frequent updates on the project.


28
Feb 15

Google Summer of Code 2015 Projects

The one thing I like best about the Google Summer of Code is that it gives us an opportunity work on cool new features I never have time for on my own. Also, its a great opportunity for students to learn about working on a large-scale project and prepare for real life work, which is very much different than the smaller projects I remember from my university. Students that have stayed with us even after the Summer of Code have proven themselves invaluable, showing spirit and enthusiasm for an open source project like the Mozilla Calendar Project gives me a warm feeling in my heart.

This year, we have proposed two projects: Introducing Calendar Accounts and Resource Booking Improvements. As the projects have been available on the wiki for a while (sorry for not blogging about this earlier!), we’ve already had the one or other student interested in applying. However, that doesn’t mean there isn’t any room left for a fine candidate like you!

In the first project, Introducing Calendar Accounts, the goal is to improve our backend layer to move from a flat list of calendars to a hierarchical list with calendars grouped by the accounts they belong to. Aside from the benefits this gives us w.r.t. avoiding code duplication and ugly hacks, it will open Lightning to a load of new features related to accounts, for example notifications if a new calendars was added to the account or improved support for authenticating to calendars on one server with different credentials.

Second, we have proposed a project on Resource Booking Improvements. Right now, our invite attendees dialog is fairly simple and only allows entering email addresses and seeing their free/busy status. What is missing is an easy way to invite resources and rooms, for example when you want to book a conference room for your meeting. There is an inconspicuous feature that allows changing an attendee to a resource entry, although there is no real value in doing this aside from sending more correct data to the calendar server. The user still has to remember the virtual email address associate with the conference room. With this Summer of Code project we want to allow any kind of calendar provider to be able to specify how to search for rooms and resources. Certain CalDAV servers support searching for these entries using custom queries, the goal for this project is mostly to support those servers.

If you are interested, please do get in touch with me, either via email or on irc.mozilla.org, where my nickname is Fallen and I usually hang around in #calendar. Should I not be around, redDragon (a former GSoC Student, by the way!) will be there to help you.


22
Jul 14

Lightning 3.3 is Out the Door

I am happy to announce that Lightning 3.3, a new major release, is out of the door. Here are a few release highlights:

  • Various components have been made asynchronous, allowing for better perceived performance. This means less hanging when Lightning is busy.
  • Improved invitation processing, as well as a few new features:
    • Restrict sending invitations to newly added attendees
    • Send one invitation email per attendee, not disclosing other attendees
    • Consider default BCC and CC of configured email identity when sending invitations
    • More actions when viewing invitations, e.g. tentative accept, accepting only occurrences.
  • When accessing Google Calendar via CalDAV, the authentication dialog doesn’t constantly reappear.

There have also been a lot of changes in the backend that are not visible to the user. This includes better testing framework support, which will help avoid regressions in the future. A total of 103 bugs have been fixed since Lightning 2.6.

When installing or updating to Thunderbird 31, you should automatically receive the upgrade to Lightning 3.3. If something goes wrong, you can get the new versions here:

Should you be using Seamonkey, you will have to wait for the 2.28 release, which is postponed as per this thread.

If you encounter any major issues, please comment on this blog post. Support issues are handled on support.mozilla.org. Feature requests and bug reports can be made on bugzilla.mozilla.org in the product Calendar. Be sure to search for existing bugs before you file them.

Addons Update:

There are a number of addons that have compatibility issues with Lightning 3.3. The authors have been notified and a few first fixes are available:

  • Calendar Tweaks: This addon causes constant flashing and makes Lightning unusable. The author has been notified and has released version 6.0 which shoul fix all issues. Plase notify him in case there is more trouble.
  • Thunderbird Conversations: There is an issue with the Lightning invitations plugin. It has been fixed in one of the nightly builds and will be available as a release soon.

Other Updates:


16
Jun 14

Only 5 Weeks Until Thunderbird 31 – Testing Needed

Thunderbird and Lightning do major releases about every 42 weeks and by now there are only 5 weeks left until Thunderbird 31 will be released. Your matching calendaring extension version is Lightning 3.3. Betas for both products are available and now its up to you: we need all the manpower we can get to make sure there are no regressions and everything still works as expected. Over a million active daily users will thank you for this!

To get started, download the beta builds and follow the standard installation procedure.

Although I doubt there will be any issues, its always a good idea to back up your profile. I myself have been using each of the beta builds and haven’t run into any dataloss issues.

Here is a list of areas that have changed and you should especially look into:

  • The access method for Preferences has changed, test everything that looks like we might need to store options for.
  • Make sure disabled UI elements are only disabled if they should be.
  • Some theme changes have been made, also in Thunderbird. Lightning may look different, but if its odd or out of place let us know.
  • Cool new feature: There are new ways to navigate in the today pane.
  • A number of changes in the area of scheduling. Please make sure sending, receiving, accepting, declining and reopening invitations still works as expected.
  • There were changes to the autocompletion feature used in the attendees dialog.
  • Remote CalDAV calendars, especially in combination with Google Calendar.

There is one known issue if you use a localized version of Thunderbird and Lightning. Certain locales have not been fully translated, but are included in the beta builds nevertheless. We will fix this issue for the second beta build soon.

If you notice any issues please leave a comment here as soon as possible. The more time we have to fix the issue the better. If you have a bugzilla account (or don’t mind creating one for free) please comment on an existing bug or file a new one if needed.


23
Apr 14

The 2014 Google Summer of Code Students are here!

I am particularly excited to announce that this year the Calendar Project has received two slots in Google Summer of Code 2014. Both projects target our backend code. This means users won’t have a chance to complain about user interface changes and instead will be blown away by performance and interoperability improvements.

I would like to take a few minutes to introduce our awesome new students to the community, please join me in giving them a warm welcome!

Reid Anderson: Improve Calendar Provider Backends

This project is about performance and stability for our calendar storage. Here is what Reid has to say:

I have been a student at the University of Minnesota since 2012 studying Chemistry and Computer Science. Outside of the classroom, I spend a lot of my time both watching and playing a variety of sports. I also enjoy reading, talking to friends, or playing a quick game of Civilization. I heard about Google Summer of Code before I entered college, and participating in the program had always been a goal of mine.

I was introduced to the Mozilla community when I started submitting patches to Songbird, a desktop media manager built on the Mozilla framework. Throughout the entire community I saw a consistent message of an open web powered by open technology and open software. This is something that I am excited to be a part of, and I am looking forward to contributing. My project is to improve the cached mode for online calendar providers to the point where it can be used as the default setting. This should allow Lightning to function effectively in an offline environment, while also bringing significant performance improvements. Hopefully these will be a useful contributions to the community, and I’m looking forward to getting started.

Isn’t that wonderful? I’m particularly excited about the performance improvements this will bring. Further project updates will be done on his blog and we will of course be posting major updates here too.

Malintha Fernando: Update Invitations to the latest Specification

This project will not only improve our invitations support, it will also guard us from future regressions through more tests. Here is an excerpt from Malintha’s blog post:

My name is Malintha Fernando and I am a student developer from Sri Lanka, currently studying at University of Moratuwa. I started contributing to Mozilla some months back (Still got a lot to learn) as my first contribution in open source and glad to be a part of the Lightning project in GSoC 2014.

The objective of this project is to improve Lightning’s scheduling system by updating the available features to the latest RFC specifications. As we know most of the Lightning’s implementation were done referring to the draft version 4 of the RFC 6638, there are some features lagging behind from the final RFC document.

Do you remember the mess we had when 2.6.x was released? At least one of the bugs we had to fix quickly was a regression in the invitations code. With Malintha’s help this won’t happen again!Whats next?According to Google, we are currently in the “Community Bonding Period”. This means we have a little time to set things up and make preparations. Coding officially begins on May 19th. You can follow progress on the projects as mentioned above, I will also blog about major updates here as we get closer to completion. Lets have some fun with this and continue to make Lightning better. Its about time!


12
Dec 13

Lightning 2.6.x Version Recap

As you may have read in the previous post, there have been quite a few issues with Lightning 2.6.x. I wanted to explain what happened and what we can do to avoid these issues in the future.

The Lightning build process is closely coupled with Thunderbird. Every time Thunderbird does a release, we get builds for Lightning for free. This means we mostly depend on them doing a release, otherwise I have to patch the final builds manually. This is a little more work. Luckily, each of the releases between 2.6 and 2.6.4 have been done together with a Thunderbird build.

Google Calendar Issues via CalDAV

Just before Lightning 2.6 was released, we made some last minute changes to accomodate for the fact that Google Calendar had changed their CalDAV URL. Not only that, they also implemented a specification for faster synchronization of CalDAV. We already supported this specification, but only an older version. A quick fix was done to take care. In total, were some authentication issues and an error loading calendars. We knew we had to release a 2.6.1, but we didn’t know it had to happen so fast…

Version compatibilitiy issues

When Thunderbird 24.0.1 was released, Lightning 2.6 did not work on Linux. The reason for this was a regression in the Mozilla Platform around Thunderbird 23. The binary component we have was built with a specifc compiler flag with a parameter that was too strict. It bascially said “this binary component is only for version 24.0.1”. The fix was easy, change it to “this binary component is for version 24.*”, but it took a while for that fix to be completed and admitted to all branches. Lightning 2.6.1 was quickly released as a workaround specificly compatible to Thunderbird 24.0.1, Lightning 2.6.2 was needed for Thunderbird 24.1.0.

Another problem why this was so hard to figure out for users is that some Linux distributions decided to skip the minor releases and only do 24.0, 24.1.0, 24.2.0 and so on. There were complaints because the latest Lightning version wasn’t working, when 24.1.1 was missing from the distribution repositories. We still needed to release consequent Lightning versions though, otherwise users using the stock builds would complain.

Lightning 2.6.3: Issues with CalDAV

Unfortunately, one of the patches for 2.6.1 had an error in it. We decided there needs to be a quick fix, and it was just in time for Lightning 2.6.3. The binary compatibility bug had been fixed by now, so this should also be the first version that is compatible to any version of Thunderbird 24.1.1 and up.

Lightning 2.6.4: Yet another one

Now this is the release that really annoyed me. First of all, I did a bad job on one of the patches. The other one was a minor issue with servers that don’t have a certain XML element in their response. These are the kinds of issues we could have easily figured out before the release with more and better unit tests. We might have even saved another release.

Conclusion

We probably could have known about all of these issues beforehand if we had tests to catch them. Just running the any of the tests using the build machinery would have caught the binary compatibility issue. If we had at least some manual tests to test CalDAV servers, we could have started them for a few public demo servers and caught all of the CalDAV regressions. Both of this has been on my list for quite some time, but given all the other things coming up I never got around to it.

Integrating the tests with the build system is unfortunately something only someone with Mozillians trust can do, but if you want to help us write some unit test, that would be marvelous. The cool new thing to use is promises and tasks, which allow writing really easy to read asynchronous code. I have some demo code thats not quite working but is ready for someone to pick up.

If you want to help in some other way, please contact me! Even if you are not a developer, there is a lot that can be done for someone with a little initiative.

 


13
Oct 13

Using Lightning 2.6.* on Linux? Be sure you are using the exact compatible Thunderbird Version

As you may have noticed, Lightning is no longer working with Thunderbird 24.0.1. This is totally unexpected for us, it seems Thunderbird 24.0 and 24.0.1 are not binary compatible. We will be releasing Lightning 2.6.1 this week to fix the issue and afterwards find out how this could have happened.

If you are using Lightning 2.6, please downgrade to Thunderbird 24.0 for now and you will regain access to Lightning and your calendars.

I’m sorry for the inconvenience. Here is the compatibility table:

Thunderbird Version Lightning Version
Thunderbird 24.0 Lightning 2.6
Thunderbird 24.0.1 Lightning 2.6.1
Thunderbird 24.1.0 Lightning 2.6.2
Thunderbird 24.1.1 Lightning 2.6.3
Thunderbird 24.2.0 (unreleased) Lightning 2.6.3 and up

Update 1: This seems to be a Linux-only issue. Windows and Mac users can safely upgrade to Thunderbird 24.0.1!

Update 2: You can get the English version of Thunderbird 24.0 for Linux here. For other languages, please see the release directory on the ftp server.

Update 3: Lightning 2.6.1 is the version compatible to Thunderbird 24.0.1. To date it has not been reviewed by the Mozilla Addons Team, but you can still get it manually using the Other Versions page.

Update 4: Lightning 2.6.1 is now public. On Linux, it is compatible ONLY with Thunderbird 24.0.1, so go ahead and upgrade now.

Update 5: To be more clear: If you are using Thunderbird 24.0 on Linux you MUST continue to use Lightning 2.6. If you are using Thunderbird 24.0.1 on Linux, you MUST use Lightning 2.6.1. Thunderbird 24.1.0 (no typo) will be released soon, you MUST use the upcoming Lightning 2.6.2 here.

Update 6: If you cannot use the newer Lightnig versions yet and want to disable addon updates: Go to the Addons Manager → right click on Lightning → Show More Information → Disable Automatic Updates.

Update 7: Thunderbird 24.1.0 (not .0.1) has just been pushed to the mirrors. On Linux you will need Lightning 2.6.2 together with it. I have heard from some packagers for the Linux distributions that, in contrary to 24.0.1, this version will be made available. If you need Lightning 2.6.2 now, you can get it from the Other Versions page until it has been reviewed.

Update 8: I was now able to set up the version compatibility correctly. If all goes well, Thunderbird 24.0 users should NOT be getting upgrades to Lightning 2.6.1 anymore, all other versions should work correctly too.

Update 9: Updated for 24.1.1 release. The problems are now going away :) I will recap as soon as I get to it.