We are ecstatic to announce that we have released the third experimental version of Pidgin 3.0!!! This is a pre alpha release with an official version number of 2.92.1. 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 and should show up on Flathub Beta shortly.
If you don’t want to use the Flathub Beta method, there are build instructions in the README for building a flatpak locally or installing into a meson devenv
. Both methods avoid installing directly to your OS installation which is preferred as there is no easy way to uninstall.
About
Just like Experimental 1 and 2, 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 as things just didn’t align well this cycle, but there’s still a lot of good progress.
Looking forward, Experimental 4 is scheduled for 2025-09-30 and will have a version number of 2.93.0.
We have a bunch of tickets entered for Experimental 4, and you can keep an eye on the Burndown Chart for Experimental 4 to stay informed. As always, priorities and possibilities can and will change, so even if something is listed for this release that doesn’t mean it will be in the release until it’s actually completed.
Highlights
The main highlights for this release are preferences! We’ve finally added some much need new sections named Appearance
, Privacy
, and Development
. There’s not a whole lot in these three yet, but there’s a bunch we want to drop in here in the future.
Appearance Preferences
Right now the appearance preference just lets you toggle formatting of message which affects all messages and can be easily restored. We have a number of things to add here in the future, but if there’s something you’d like to see, let us know in the comments below!
Privacy Preferences
Just like appearance the privacy preferences page is meant to help you keep your personal information personal. In the future we’ll be adding options for how Pidgin should identify itself when queried and a few other things.
Development Preferences
The development preferences are meant to make the development of Pidgin and plugins easier. Developer mode itself does a number of things right now including showing the Bonjour and XMPP protocols which are not yet functional. This way developers can work on them easily and end users won’t get confused by something that’s not implemented.
ChangeLog
In the past we’ve tried to filter the ChangeLog to just the bits that might be interesting, but going forward we’re just going to include everything that was done for the release.
General
- Add a native file for macos on arm (RR 3956) (Gary Kramlich)
- Run scour over all of the svgs (RR 3990) (Gary Kramlich)
- Add discrete options for protocol plugins (RR 3994) (Gary Kramlich)
- Fix a typo in POTFILES.in for the privacy preferences (RR 3998) (Gary Kramlich)
- Add an in-development tag to all protocols that are still early in development (RR 4007) (Gary Kramlich)
- Update the flatpak to gnome 48 and to the matching birb version (RR 4038) (Gary Kramlich)
libpurple:
- Add GListModel versions of purple_account_manager_get_{disabled,enabled (PIDGIN-18067) (RR 3952) (Elliott Sales de Andrade)
- Remove GList versions of purple_account_manager_get_{disabled,enabled} (RR 3955) (Elliott Sales de Andrade)
- Update the convey plans (RR 3975) (Gary Kramlich)
- Add Purple.ContactInfo:external for tracking external contacts (PIDGIN-18090) (RR 3973) (Gary Kramlich)
- Add Purple.Conversation:url (PIDGIN-18091) (RR 3974) (Gary Kramlich)
- Make Purple.ProtocolConversation.join_channel_finish return a conversation (RR 3982) (Gary Kramlich)
- Move the connection-state implementation to Purple.Account (PIDGIN-17988) (RR 3964) (Gary Kramlich)
- Add a Purple.Account::connection-state-changed signal (PIDGIN-18087) (RR 3965) (Gary Kramlich)
- Add Purple.Presence.primitive-changed signal (PIDGIN-18025) (RR 3966) (Gary Kramlich)
- Add Purple.Contact.is_own_account (RR 3985) (Gary Kramlich)
- Create purple_core_new_settings (RR 4000) (Gary Kramlich)
- Add Purple.Protocol:tags and add unit tests for protocol properties (RR 4006) (Gary Kramlich)
- Update to birb 0.4 and use the testing helpers in libpurple (RR 4014) (Gary Kramlich)
- Remove some unused markup functions (RR 4029) (Gary Kramlich)
Pidgin
- Port PidginApplication to purple_account_manager_get_enabled_model (PIDGIN-18067) (RR 3952) (Elliott Sales de Andrade)
- Convert PidginAccountsDisabledMenu to the list model (PIDGIN-18067) (RR 3952) (Elliott Sales de Andrade)
- Convert PidginAccountsEnabledMenu to the list model (PIDGIN-18066) (RR 3954) (Elliott Sales de Andrade)
- Remove a dead assignment in Pidgin.ConversationMember (RR 3962) (Gary Kramlich)
- Fix Pidgin.Application.get_active_window to only return Pidgin.DisplayWindows (RR 3972) (Gary Kramlich)
- Add keybinding support to the channel join dialog (RR 3971) (Gary Kramlich)
- Add a preference for toggling whether or not to show formatting (PIDGIN-18081) (RR 3970) (Gary Kramlich)
- Start of the appearance preferences (PIDGIN-18082) (RR 3996) (Gary Kramlich)
- Remove the conversation preferences (RR 3995) (Gary Kramlich)
- Create a Privacy preference page with the send typing notification preference (PIDGIN-17450) (RR 3999) (Gary Kramlich)
- Add a Pidgin.PresenceIcon to Pidgin.ConversationMember (RR 4004) (Gary Kramlich)
- Add a Developer Settings preference pane (RR 4005) (Gary Kramlich)
- Update Pidgin.ProtocolChooser to hide in-development protocols (RR 4008) (Gary Kramlich)
- Add the operating system to the runtime information (PIDGIN-18005) (RR 4015) (Gary Kramlich)
Demo
- Use EionRobb’s typical handle (RR 3967) (Gary Kramlich)
- Fix EionRobb’s avatar (RR 3976) (Gary Kramlich)
- Fix some unbalanced G_BEGIN_DECLS (RR 3989) (Gary Kramlich)
IRCv3
- Fix privmsg going to the status window before registration is complete (RR 3963) (Gary Kramlich)
- Set the presence to offline when we receive a quit message (PIDGIN-18089) (RR 3969) (Gary Kramlich)
- Add support for away-notify (PIDGIN-18088) (RR 3968) (Gary Kramlich)
- Do a who after joining a channel (PIDGIN-17936) (RR 3981) (Gary Kramlich)
- Handle the WHOTOPIC and CHANNEL_URL messages (RR 3983) (Gary Kramlich)
- Check if a member is in a conversation before adding them (RR 3987) (Gary Kramlich)
- Handle formatting in server messages (RR 3991) (Gary Kramlich)
- Handle RPL_NOWAWAY and RPL_UNAWAY messages (RR 4003) (Markus Fischer)
- Remove versioned API (RR 4030) (Gary Kramlich)
SIP
- A stubbed out SIP protocol plugin (RR 3988) (Gary Kramlich)
- Disable SIP by default and update the protocol summaries to reflect what will be built (RR 4028) (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.