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.
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.
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.
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.
- There was an issue with addons.mozilla.org that caused all Lightning downloads to fail. It has been fixed in the meanwhile.
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.
- Thunderbird: https://www.mozilla.org/en-US/thunderbird/all-beta.html
- Lightning: https://addons.mozilla.org/thunderbird/addon/lightning/ (open the “Development Channel” box).
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.
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
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!
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.
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.
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 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.
I am happy to announce the release of Lightning 2.6, compatible to Thunderbird 24 and Seamonkey 2.21. The release went live on Tuesday, September 17th and is the next major release after Thunderbird 17 and Lightning 1.9. If you are using the Provider for Google Calendar, you will also have to upgrade to version 0.25.
You may have not received the updates automatically because of server side throttling, you can either wait until the update occurs, force checking for updates via the About Thunderbird dialog, or grab them manually:
- Thunderbird 24 can be retrieved from mozilla.org
- Seamonkey 2.21 is available on the release page of the Seamonkey Project.
- Lightning 2.6 can be downloaded from addons.mozilla.org.
- The Provider for Google Calendar 0.25 can also be downloaded from addons.mozilla.org.
Contributed builds, for example for Solaris, are available on the ftp servers.
Before upgrading, be sure to backup your profile so you can restore in case something goes wrong unexpectedly.
The release notes can be found on addons.mozilla.org. An important note for users of Google Calendar via CalDAV (not via Provider for Google Calendar): Due to a server side change at Google, you must update the URL of the calendar, as described in this post.
Should you be experiencing any issues, here are some steps that might resolve them:
- Make sure that you are running Thunderbird 24 or SeaMonkey 2.21.
- Redownload and install Lightning using the download links above.
- If you are using the Provider for Google Calendar make sure you upgrade to version 0.25
If you enjoy this update or want to thank us for the hard work we have done, feel free to leave a review at addons.mozilla.org. If you have issues upgrading, please don’t misuse the reviews. Leave a comment here and I’ll try to get back to you soon! If you are sure you have found a bug, you can also search for it on bugzilla or file a new one if it doesn’t yet exist.
Lightning 2.6 is going to be the release you are stuck with for about 42 weeks, so its vitally important that this one is tested thoroughly. All features are important to test, as not only Lightning code has changed, but also the Mozilla Platform behind it.
If you find an issue, please file a bug at bugzilla.mozilla.org, product Calendar. Search for an existing bug first. If you come across any major bugs (not missing features), a comment is fine too.
Thank you for your support!
Since the last big release is a while back, I thought I’d let everyone know that the current Lightning 2.6 nightly builds on comm-central will become the release compatible with Thunderbird 24, the next big Thunderbird release.
What this means for localizers
When the current 6 weeks cycle ends, the code will merge down to comm-aurora as usual. At this moment you should be preparing your translations and signing off. There is no process change, you will still have time until the beta, but especially if you have a lot of untranslated strings you might want to start early. While the intermediate beta releases have not been so important, missing the deadline this time means up to 42 weeks of Lightning without your language.
What this means for developers
Have a patch you are working on? A nice new feature? Better get it in review soon, otherwise we might have to postpone it. Especially so if it contains string changes, additions or removals. Again, postponing means at least 42 weeks before its in the final release.
What this means for users
It is vitally important that you test the Lightning builds we offer. Given we haven’t had final releases in a while more regressions might have snuck in and its better we find them early. It would be super helpful if you could test the nightly builds, but if you want a little more safety, there is a test week in progress for Thunderbird and the current Lightning beta. You are of course encouraged to install the beta builds at any time. I personally use them for my production calendars.