Development News March 2020

Gajim development news

Development News March 2020

Gajim development news

This is the third development news post this year, and it’s covering big changes. Starting with this month, the new connection code is available in Gajim’s master branch. It allows better connection handling in difficult network situations and significantly improves connection speed. Building on top of these changes, we’d like to introduce Gajim’s completely rewritten account creation wizard. This month also brings some fixes for voice/video calls, which are the first steps to make this feature available again in the future.

Changes in Gajim

The first thing to do after installing Gajim is to setup an account. Gajim’s account creation wizard hasn’t been touched in years, and it showed. As this is one of the very first steps a new user takes, it has to be as easy as possible. Initial work on the new account creation wizard began in June 2019. But before this project would be an actual improvement, the underlying network code had to be rewritten. A major part of the work has been completed this month, resulting in a completely new account creation wizard. It makes use of the new assistant which is also used for account removal and password changes.

Server suggestions (#3833), links to the compliance tester, and server auto completion should help in the process of registering a new account. Input errors will be shown directly instead of using disrupting error dialogs. Last but not least, the dataform (input for username, password, captcha, etc.) presented while registering on a server has been significantly improved (e.g. #7589).

Voice/video chats have not been working in the past couple of Gajim releases. Now, first steps were made to fix voice/video chats, but there is a lot of work to do until it’s usable again. Currently, it is far from fully working or being user friendly, but it’s also a quite complex feature. The latest fixes also aim to make voice/video chats work if Wayland is used. To help with missing dependencies, the preferences window will now show an info bar on the top (#9839).

To be able to see if dependencies for optional features are missing, Gajim has a Features window (Help > Features). This window will now show if Gajim is able to play notification sounds and whether Gajim could determine the device’s location (if the user wants to publish it).

It sometimes happens that a group chat becomes unavailable for various reasons (e.g. permanently closed, discontinued service). In this case, Gajim will now show a button to remove that faulty group chat from your bookmarks (#9970).

There is still much work to do until the release of Gajim 1.2, but progress is steady. If you’re interested, you can track the progress here.

What else happened

  • Support for WebSocket (RFC 7395)
  • File transfers via HTTP File Upload (XEP-0363) now honor proxy settings
  • Fixed error in account creation (#9867)
  • Fixed error in accounts window (#9986)
  • Fixed file picker error on XFCE (#9371)
  • Better password handling if no keyring is installed (#7795) or password was mistyped (#8456)
  • Many improvements for Gajim’s Flatpak version

Plugin updates

Gajim’s URL Image Preview plugin will now check your system for supported file formats at runtime. Also, it will use the account’s proxy for downloading images, if the user specified one.

Changes in python-nbxmpp

Over the past few months it was quite often mentioned that the network connection code is in the process of being rewritten. Starting with this month, the new connection code is available in Gajim’s master branch. This should greatly improve the connection handling in situations with a flaky network coverage or WiFi connection loss. Initial connection speed, reconnection after resuming from sleep, IPv4/IPv6 connection decisions, and proxy handling have also been improved. These changes were the foundation to the develop the new account creation wizard and also lead to a better account registration and account removal workflow. In this process, numerous bugs have been fixed. Of course there is still room for tweaks and improvements, but progress is steady.

As always, feel free to join to discuss with us.