Dev Communiqué for September 2021
Published on September 29, 2021 by Sam Whited
Admin

The big news this month is the release of mellium.im/[email protected]!

Most of the major improvements were covered in the release announcement and were actually done during previous months, so we'll cover some smaller (but no less important) features that materialized this month as well as a few breaking changes (sorry).

Recap


This month in mellium.im/xmpp there were 14 commits by two contributors, including one new contributor! Welcome genofire and thank you for your contributions!

In Communiqué there were 8 commits by 1 contributor.

mellium.im/xmpp


The main feature in mellium.im/xmpp this month was the addition of the In() and Out() methods on the Session type. This replaces the (now deprecated) InSID() and OutSID() methods added in v0.18.0 and provide more stream information. The deprecated methods will be removed in the next release, so go ahead and begin migrating to the new methods!
This may not sound like a big feature (and it's not), but it unlocks a good deal of future work and also allowed us to add more strict namespace checking to more parts of the package (which unfortunately resulted in several breaking changes, see the changelog for full details).

There was also a major breaking change that makes stream configuration using the built in negotiator more flexible! Stream negotiation can now change the state of XML logging and the default language for the stream in the same way that it could previously change the advertised features list.

Communiqué


The Communiqué TUI client received minimal work this month as most of our dev hours were focused on the library release, but there is still some big news to report:
Basic support for Multi-User chats has been merged! Though it's not usable in any real sense yet (MUCs have to be joined every time and won't be remembered), you can now join and talk in MUCs directly from Communiqué.

Easier multi-process support was also merged. The config file can now contain multiple accounts, each with their own setting, and only the "default account" will be logged in to. To log into a different account the user can change the default or set a command line flag to override the account and use one of the others. This lets you launch multiple instances of Communiqué that all use the same configuration, but log in with different accounts. Used in conjunction with a terminal multiplexer like tmux(1) this feature makes for relatively satisfying multi-account support until we decide if single-process/multi-account support should be added later.

That's it for this month! If you've benefited from Mellium please consider supporting us on Open Collective! Our current goal is to make enough to move these posts to a proper blog, possibly hosted by the folks at write.as.