Nightlies fixed and with upgraded libpurple

  • We have nightly builds again on all 3 OSes.
    • We have had issues on the physical machine that hosts our Windows and Linux compilation virtual machines. Even has been hard at work to get them back online as quickly as possible.
    • Additionally, our Windows builds failed with the obscure gklayout.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x2000D93C error message. No, the disk wasn’t full, that would be too easy to understand… After a lot of wasted effort trying to figure out what had changed in the configuration of that machine or in the code, we finally got the solution on IRC from khuey and ted (thanks!): reboot with the /3GB switch to extend the address space.
  • The add-ons manager is usable again on nightlies. We got tired of bug 591801 and pushed for Instantbird a partial backout of the patch from bug 562797. (I haven’t attached it in the bug because this is clearly not a fix, but if other xulrunner application developers want to use it, it’s here. I know Daniel was very happy to have it for BlueGriffon.)
  • Known issue: Message Styles currently don’t work without being unpacked in the profile folder. This means that even though the add-on manager now works, if you install Message Styles with it in your new nightly, they won’t work. Message Styles that were already installed will continue to work even if you upgrade your nightly.
  • We have upgraded libpurple from version 2.6.6 to 2.7.3:
    • No big disaster has been reported, so nightly testers probably don’t need to fear the update.
    • We are tracking the crash reports: we have seen some new reports related to the MSN protocol; we will investigate soon.
    • The Gadu-Gadu protocol support has improved, but is not as fixed as we hoped it would be. We will see if we can find ways to fix it.
    • Our translators may be interested in taking strings from translation files generated based on this new version to help them in the process of upgrading their locale. These new converted files are available here.
  • The patches for minor issues that had been waiting in bugzilla for quite a bit of time (because we didn’t want to land them just before releasing 0.2 or in the middle of the js-proto and mozilla2 branch merges) have landed.
  • We have welcomed translators for two new locales: Chinese and Hebrew! :)
  • We have created an experiments mercurial repository where contributors from our community are enthusiastically experimenting with projects that we look forward to integrating in the default Instantbird code base once they are ready:
    • Mic is working on adapting Firefox Sync to work with Instantbird.
    • clokep is working on a readable implementation of the IRC protocols in JavaScript, leveraging the work that has been done in the last few months on the js-proto branch.
  • I plan to start rewriting the backend of our buddy list next week. The goals of this work are to simplify the code, make it work correctly with protocol plugins implemented in JavaScript, and give us the necessary APIs to implement the contact and tag features we plan add for the 0.3 release.

As always, don’t hesitate to file bugs if you come across them! You are also welcome to join us on IRC (in #instantbird, where we have been more than 20 a few times this week!)

Nightly builds now based on mozilla-central

In late July, I started working on making Instantbird use the Mozilla 2.0 platform (which the recently released Firefox 4 betas are based on). This work, which started in a branch, has recently reached a point where we believe it could benefit from wider testing. The mozilla2 branch was merged Friday, September 10th, 2010.

This didn’t happen as smoothly as I would have hoped, but after 10 (!) bustage fixes, yesterday we were able to provide the first set of Instantbird nightly builds based on Mozilla 2.0. Our slowly growing community on #instantbird has jumped on them, and quickly reported a few significant issues. Thanks to their awesome help, those are fixed, and today we have a new set of nightly builds.

Additional help to test these new builds (Windows and Linux, Mac), will be greatly appreciated.

Known issues of this set of builds:

  • The ‘Show Logs’ menuitems don’t work (already fixed and will work tomorrow).
  • The Add-ons manager is broken. This is bug 591801.
  • The ‘Instantbird’ checkbox in the ‘Update’ pane of the ‘Advanced’ panel of the preference Window is disabled (already fixed and will work tomorrow).

Status update

We’ve been a bit quiet since the 0.2 release, but we haven’t slept all of this time, so let’s do another status update!

After some time spent polishing the new website and dealing with post-release work (like testing and enabling major updates), we have started working toward Instantbird 0.3:

  • Some major refactoring work to allow protocol plugins to be written fully in JavaScript had started a long time before the final 0.2 release. This work was being done in the js-proto branch. The branch has been merged so that our nightly testers can help spot new issues in 0.3a1pre nightly builds. They have been super helpful, and have found 2 regressions, which are now fixed.
  • Instantbird 0.2 is based on the mozilla-1.9.2 platform. Instantbird 0.3 will be based on Mozilla 2.0. The work to switch to using code from mozilla-central is almost completed. This involved updating our build system (which is a copy of the comm-central one), changing the way our XPCOM components are registered, and other adjustments to make Instantbird’s code work with a newer Mozilla. This work has happened in a mozilla2 branch in our repository. The branch isn’t merged yet because there remains a serious regression that we need to fix (JavaScript code included in message styles isn’t executed).
  • We have welcomed new translators, who have enthusiastically started translations of Instantbird into 7 new locales (Czech, Dutch, Estonian, Italian, Slovak, Spanish and Ukrainian)!

Development is slower than usual this month, because some members of the team, including myself, are taking some time away from the Internet.

In the relatively near future, we will finish the work to switch to Mozilla 2.0, and upgrade libpurple to the latest released version (2.7.*).

Major update to Instantbird 0.2

As no critical issues have been reported in the recently released Instantbird 0.2, we have turned on major updates for users of Instantbird 0.1.2 and 0.1.3. If you are still using one of these old versions, you will receive a major update offer to get the newer Instantbird 0.2. It will look like this:

Major update offer dialog

Unfortunately, due to a bug of the updater that shipped in the Windows version of Instantbird 0.1.3.1, the update won’t be automatic for these users, who should download the full installer themselves. We are sorry for the inconvenience.

Tip for MacBook users

Instantbird 0.2 uses the multitouch feature of Macbook touchpads in conversation windows:

  • Pinch in or out 2 fingers to change the zoom level.
  • Swipe up (3 fingers) to scroll to the top of the conversation, down to scroll to the last message. This saves time when looking for an old messages in the conversation (for example, using the Find feature) and then going back to the display of the most recent messages.
  • Twist left or right to select the tab at the left or right of the currently selected tab.
  • Swipe left or right (3 fingers) to change the selected tab to the previously selected tab. This gesture is probably the most useful one: it’s very convenient when reading quickly a message in a newly opened tab and then going back to the conversation tab where an active conversation is occurring, or when actively participating in 2 discussions and repeatedly switching between 2 tabs.

Instantbird 0.2 released!

After months of development and a few pre-release versions, we are happy to announce that Instantbird 0.2 is now ready to be put in the hands of the general public.

Instantbird 0.2 is now available in 5 languages thanks to the great work of our translators.

If you have tried Instantbird 0.1 back in 2007 when it was first released, Instantbird 0.2 may feel like a completely different software to you. The most dramatically changed area is the conversation window (for example, new tabs and message styles), but there are notable changes in almost every window. For a list of changes, see the release notes.

Let’s stop talking, so that you can discover Instantbird 0.2 now!

Instantbird logo

In the next few days, we will talk about our plans for the future, and especially Instantbird 0.3. Stay tuned!

Context Menus

Context menus (opened with a “right click”) are a common and expected part of the user interface. It can be very frustrating when they are missing, so in Instantbird 0.2 we tried to add one wherever users are likely to expect one.

In the buddy list, the context menu of contacts can be used to start a conversation (although pressing enter or double clicking is usually faster), show the conversation history, rename a contact, move the contact to a different group or remove it from the list:

Buddy context menu

The context menu is usable anywhere in the buddy list to toggle the display of offline buddies:

Buddy list context menu

A context menu was added in the account manager too. There, it proposes all the possible actions for an account. Since Instantbird 0.2, it’s possible to reorder the accounts in the list (this is also possible with drag & drop using the mouse or with the keyboard using shift + the up or down arrow).

Account context menu

A context menu is available on conversation tabs, with actions related to that tab (opening it in a new window, closing it, …) and to the conversation, like showing the history of previous conversations with the same contact.

Tab context menu

Last but not least, there’s a context menu in conversation content. This is the most “contextual” context menu we have added. The proposed actions will vary depending on whether there is a selection or if the context click was done over a link.

Content context menu

When selecting some text from a conversation, a common action is to copy it to the clipboard and then paste it in a browser to use it as the query in search engine. We have included search engine items directly in the context menus to reduce the number of clicks needed for this common case.