We are ecstatic to announce that we have released the second experimental version of Pidgin 3.0!!! This is a pre alpha release with an official version number of 2.91.0. We will continue releasing in this fashion until we are ready for 3.0.0 which will be the release we consider ready for end users.
The release can be found on SourceForge.
Please see the README file in the source code for build instructions. We recommend you use a meson devenv
instead of installing directly to your OS installation.
About
Just like Experimental 1, this is a milestone release. It is something we think other tinkerers and developers may want to start playing with, but it is not meant for end users. Most things are not implemented, the user interface has not been polished at all, and there are so many bugs. As such we are asking that packagers please do not package this for your users yet as the potential support requests will be too much for us to handle at this time.
This release isn’t quite what we wanted but there’s still lots of goodies. We were hoping to have another protocol ready in time but it just didn’t happen. The protocol in question is Link Local Messaging which you may know of as Bonjour in Pidgin 2. Unfortunately we just couldn’t get it done in time, so look for it in Experimental 3!
Looking forward, Experimental 3 is scheduled for 2025-06-30 and will have a version number of 2.92.0. Following that, Experimental 4 is scheduled for 2025-09-30, with the idea that Alpha 1 will be 2025-12-31. We don’t have many tickets entered for these releases yet, but you can keep an eye on the Burndown Chart for Experimental 3 to stay informed.
Highlights
The conversation member list is now properly sorted by badges. For IRC that means channel operators are at the top and users with voice are sorted just above users without any other permissions.
Speaking of the conversation member list, it can now be searched. Here we’re searching for all users that have an n
in their name.
We also threw together new message notifications. They’re kind of hacky right now, but they totally work. We need to finish working through the history API to implement them correctly, but this implementation will do for now.
We also added support for incoming IRC formatting which you can see in the examples from the IRCv3 formatting spec below.
ChangeLog
Here is the complete ChangeLog from the release.
General
- Simplify the flatpak instructions (RR 3744) (Gary Kramlich)
- Make all of the subprojects use tarballs (RR 3771) (Gary Kramlich)
libpurple
- Remove Purple.Conversation:name (PIDGIN-18001) (RR 3748) (Gary Kramlich)
- Add some additional methods to Purple.ProtocolConversation (PIDGIN-18026) (RR 3738) (Gary Kramlich)
- Add properties to track whether conversation properties are editable (PIDGIN-18026) (RR 3739) (Gary Kramlich)
- Add an alias property to Purple.ConversationMember (PIDGIN-18003) (RR 3749) (Gary Kramlich)
- Create Purple.ConversationMember:color (RR 3753) (Gary Kramlich)
- Rename purple_tag_parse to purple_tag_split (PIDGIN-18027) (RR 3757) (Gary Kramlich)
- Add a name property to Purple.Account (PIDGIN-18029) (RR 3788) (Gary Kramlich)
- Add Purple.Protocol.generate_account_name (PIDGIN-17997) (RR 3787) (Gary Kramlich)
- Add Purple.CreateConversationDetails.is_valid (PIDGIN-18032) (RR 3791) (Gary Kramlich)
- Fix reloading of account errors (RR 3796) (Elliott Sales de Andrade)
- Add Purple.ConversationMember.matches (PIDGIN-18038) (RR 3807) (Gary Kramlich)
- Replace the Purple.Sqlite3 API with Seagull (RR 3821) (Gary Kramlich)
- Annotate libpurple constructors that return base types (RR 3837) (Elliott Sales de Andrade)
- Implement Purple.Badges.compare (PIDGIN-18042) (RR 3844) (Gary Kramlich)
- Implement Purple.ConversationMember.compare (PIDGIN-18051) (RR 3845) (Gary Kramlich)
- Add find_or_create method to Purple.ContactManager (PIDGIN-18037) (RR 3846) (Markus Fischer)
- Implement Purple.ConversationMembers.extend (PIDGIN-18068) (RR 3923) (Gary Kramlich)
- Notify that the n-items property changed when extending Purple.ConversationMembers (PIDGIN-18074) (RR 3934) (Gary Kramlich)
- Add Purple.Message:attributes (PIDGIN-18075) (RR 3937) (Gary Kramlich)
Pidgin
- Implement searching the conversation members (PIDGIN-18039) (RR 3808) (Gary Kramlich)
- Annotate Pidgin constructors that return base types (RR 3838) (Elliott Sales de Andrade)
- Display the timestamp of notifications (PIDGIN-17977) (RR 3849) (Gary Kramlich)
- Add simple tool tips to badges (PIDGIN-18046) (RR 3842) (Gary Kramlich)
- Add basic support for libspelling (PIDGIN-18054) (RR 3850) (Gary Kramlich)
- Implement message notifications in a hacky way (RR 3897) (Gary Kramlich)
- Make the contents of event messages bold and italic (RR 3909) (Gary Kramlich)
- Sort the member list based on Purple.ConversationMember.compare (PIDGIN-18045) (RR 3918) (RR 3919) (RR 3922)
- Update Pidgin.Message to honor Purple.Message:attributes (PIDGIN-18076) (RR 3938) (Gary Kramlich)
Demo
- Default conversations to online (PIDGIN-18048) (RR 3843) (Gary Kramlich)
IRCv3
- Add the quote command to send raw messages (PIDGIN-18019) (RR 3719) (Gary Kramlich)
- Remove redundant account disconnection (RR 3794) (Elliott Sales de Andrade)
- Don’t attempt to join the status window when connecting (RR 3803) (Gary Kramlich)
- Update the status window title when the user’s nick changes (PIDGIN-18036) (RR 3814) (Gary Kramlich)
- Return an error when trying to join multiple channels at once (PIDGIN-18044) (RR 3841) (Gary Kramlich)
- Fix CTCP ACTION going to the status window (RR 3910) (Gary Kramlich)
- Handle mode messages for channel modes (PIDGIN-18000) (RR 3908) (Gary Kramlich)
- Normalize channel names when joining and looking for existing ones (PIDGIN-17999) (RR 3917) (Gary Kramlich)
- Default conversations to online (PIDGIN-18048) (RR 3843) (Gary Kramlich)
- Don’t add the libpurple user when joining a channel (PIDGIN-18073) (RR 3933) (Gary Kramlich)
- Handle incoming formatting (PIDGIN-18078) (RR 3945) (Gary Kramlich)
Link Local Messaging
- Update the Bonjour protocol name to Link Local Messaging (Bonjour)(PIDGIN-18057) (RR 3860) (Gary Kramlich)
- Listen for XMPP connections (PIDGIN-18058) (RR 3862) (Gary Kramlich)
Thank You!
Thank you everyone for your continued support of Pidgin, it means a lot to us!
If you’re interested in contributing, you can check out our Contributing Guide to get started.
Also be sure to check out our merch store as well as our sticker store!
And if you’re feeling generous, you can learn how to donate to the project on our Donation Page.