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.

 

9 comments

  1. Hello Philip,

    Thanks for the update
    Would it be possible to give some bandwidth on https://bugzilla.mozilla.org/show_bug.cgi?id=705596

    [Bug 420516] Allow iTIP processor to support delegation to uninvited attendees (forward event invitation)

    My coding skills are far too rusty…
    And this is important for people working in some enterprise

    Thanks

    • Hi Christophe,

      I would love to bring the delegation project to an end, but unfortunately I personally won’t have the bandwidth to do so. I have been asking the person who started it again and again, but there is always something in the way.

      I hope someone else can pick this up, or that it will eventually be completed. Sorry for the inconvenience!

  2. Thanks for all the great work on this product. I am using Thunderbird v 24.1.1 with Lightning 2.6.4 (on Ubuntu 12.04) – and the Caldav functionality does not seem to work – I can add a caldav calendar but the synchronization does not pull in any data into the calendar. Is this a known/pending issue?

    • Can you try Thunderbird 24.2.0 ? Most recent caldav issues should be fixed with 2.6.4. If that doesn’t work, try to enable calendar.debug.log and calendar.debug.log.verbose in the config editor, restart, and check your error console.

  3. Hi,

    thanks for all the time you invest in this. Sorry to hear this caused so many problems during the last couple of months.

    I think the information policy should be clearer though.
    I can’t find any hint on when google CALDAV addresses might be working with lightning again. Could you please clarify if you’re still working on that?
    We use Thunderbird 24.2.0 and Lightning 2.6.4. Adding a Google CalDAV doesn’t give an error, but it won’t sync. Adding an event in that calendar results in an error, sadly its the german version:
    ============================
    Error when writing to calendar XXXX
    details:
    Errorcode: MODIFICATION_FAILED
    Comment: Status-Code: 2147500037, Die Anfrage kann nicht verarbeitet werden
    Server replied with 404
    ============================

    Provider for Google is no permanent fallback because it doesn’t provide a way to accept invitations. Lightning worked fine until october 2013 or so.
    Sadly, we will have to switch to another application though.

    Thanks for all your effort!

    Steve

    • Dear Steve.

      I knew how to fix this.

      Go to Add-ons Manager, then get ‘Provider for Google Canlender’.
      After getting this, now you can add ‘Google Calender’ on ‘Create a new calender’ tab.

      KB

      • I have this problem from time to time even though I’m using “Provider for Google Calendar” with Lightning. Very frustrating. I need to be able to rely on events actually showing up in my diary!

  4. OS: Solaris 11 for x86
    Browser: Firefox 28.0
    Thunderbird: 28.0
    Lightning 2.6.3 or 2.9b1 or whatever works

    Like many I get the dead/read-only calendar and tasks where I can’t create new events. So what’s the easily supported, stable version matrix? Thunderbird/Firefox is a moving target, especially with the Heartbleed/OpenSSL/TLS bug implications.

    This page has updates for FF/TB 24.x but then it goes mute on higher versions, but it mentions Lightning upto 3.x:
    https://developer.mozilla.org/en-US/docs/Mozilla/Calendar/Calendar_Versions

    This page mentions FF/TB 28.x and Lightning 3.x but has no support for my platform:
    https://addons.mozilla.org/en-US/thunderbird/addon/lightning/versions/

    Accessing the betaware 2.9b1 .xpi provided the same results as the 2.6 2.6.1 2.6.3 series (there is no 2.6.4 in stable contrib directories):
    http://ftp.mozilla.org/pub/mozilla.org/calendar/lightning/nightly/contrib/2.9b1-candidates/build1/solaris-x86/

    What is the most efficient use of time? Wait for a stable 3.x build of lightning which pairs with FF/TB 29+, or downgrade to 24.x?

    • Philipp Kewisch

      This is not an official statement on Mozilla products and heartbleed, but Mozilla uses a different implementation of SSL called “NSS”, which is not affected by the heartbleed bug. Therefore, you don’t need to worry about this w.r.t. client versions.

      That aside, I’d suggest using the latest full release (Thunderbird 24 + Lightning 2.6.4*). If you want to help out with beta testing (please do!), then you should use the beta version, which is currently Thunderbird 28 and Lightning 3.0b1*. It should be available for Windows/Linux/Mac, are you using a different platform?

      * Note that Lightning 2.6.5 and 3.1b1 will be released very soon.