State of the Bird June 2025

State of the Bird June 2025

The State of the Bird is a recap of what has been happening in the project.

We used to do these quarterly as an interactive live stream, but we’re now
doing these as a monthly posts instead.

You can find the playlist with all of the old videos on YouTube.

Retrospective

Our last State of the Bird was June 9th 2025 and can be found here.

Like last month, things have been a bit slower due to summer but because of some other stuff we’ll get into shortly.

Metrics

We have a number of metrics we keep an eye on which you can see below.

Contibutors

Our number of contributors continues to average around 3 per month and we are still seeing some casual contributors popping up from time to time.

2025-01 | 2025-02 | 2025-03 | 2025-04 | 2025-05 | 2025-06 Developers | 2 | 2 | 1 | 2 | 2 | 2 Crazy Patch Writers | 0 | 1 | 1 | 0 | 1 | 0 Casual | 1 | 0 | 0 | 0 | 1 | 1

Review Requests

Review requests are what we call our code reviews and this is a look at how many were open and closed each month.

2025-01 | 2025-02 | 2025-03 | 2025-04 | 2025-05 | 2025-06 Open | 92 | 72 | 78 | 44 | 26 | 20 Closed | 88 | 72 | 82 | 43 | 22 | 25

Issues

This is a look at the number of issues that were opened in our issue tracker as well as how many were closed by month.

2025-01 | 2025-02 | 2025-03 | 2025-04 | 2025-05 | 2025-06 Open | 44 | 30 | 41 | 16 | 6 | 11 Closed | 34 | 18 | 18 | 6 | 5 | 10

Commits

This is a break down of commits to each project per month. In most cases a review request is just a single commit, but this chart helps to see what projects are being worked on.

2025-01 | 2025-02 | 2025-03 | 2025-04 | 2025-05 | 2025-06 Pidgin 3 | 46 | 22 | 27 | 28 | 15 | 10 | Pidgin 2 | 8 | 0 | 0 | 0 | 0 | 4 | GPlugin | 0 | 1 | 1 | 0 | 2 | 0 | HASL | 10 | 5 | 1 | 0 | 1 | 4 | Birb | 12 | 1 | 6 | 0 | 5 | 0 | Xeme | 2 | 5 | 7 | 0 | 0 | 0 | Ibis | 16 | 10 | 27 | 11 | 0 | 0 | Hiya | 0 | 0 | 15 | 2 | 0 | 0 | Myna | 0 | 0 | 0 | 0 | 0 | 0 | Seagull | 0 | 23 | 8 | 0 | 0 | 13 | Traversity | 0 | 8 | 0 | 0 | 0 | 0 | retro-purple | 0 | 0 | 0 | 0 | 38 | 48 |

Infrastructure

  • We’ve federated our Discourse server so all news and releases will automatically get posted via Activity Pub! Announcement

Pidgin 3

Retrospective

Not a whole lot happened with Pidgin 3 this month as we had our focus on other projects.

Updates

  • Disabled the SIP protocol plugin by default as we determine how to proceed.
  • Removed the old versioned API from the IRCv3 protocol.
  • Removed some unused purple_markup API.
  • Updated the flatpak to GNOME 48.

Releases

We did originally rlease 2.92.0 but I noticed immediately when I went to update the flatpak that I forgot to update the version in the metadata file so we had to cut 2.92.1 right away to address that.

Future Plans

  • Finish up the conversation persistence that we were trying to get into Experimental 3.
  • Determine how to proceed with the SIP protocol plugin. We’re probably going to create yet another library to handle it.
  • After conversation persistence is done, we need to add persistence to the contact list as well.
  • Get Hiya to a usable state.

As always, you can view the burn down chart here.

Pidgin 2

We have decided that we’re going to do a 2.15.0 release. The decision and announcement can be found here.

Retrospective

  • Added support to display protocols, loaders, and other “hidden” plugins in the plugins list but made them not unloadable.
  • Fixed log viewing for protocols that are no longer loadable.
  • Removed the “retro” protocols plugins. The ones that still existed have been moved to the new retro-prpl project.

Releases

None yet, we’re trying to finalize some things before releasing 2.15.0.

Future Plans

We’re still working on updating the versions of GLib and GTK for the windows build as well as creating an official pre-built development bundle/SDK.

GPlugin

GPlugin is our GObject based plugin library that is used in Pidgin 3.

Retrospective

No notable changes

Releases

None

Future Plans

GPlugin is pretty stable at the moment but there’s quite a lot of maintenance stuff to get too, but it’s not as high of a priority as the other stuff at the moment.

HASL

HASL is the Hassle-free Authentication and Security Layer library. It implements SASL in a modern and easy use way compared to the existing libraries.

Retrospective

  • We fixed our error domains which were not implemented in a way that would work in language bindings.

Releases

None

Future Plans

We have been in the progress of implementing the SCRAM Mechanisms which will be included in the next release.

Birb

Birb is a library of GLib utilities that we use across all of our projects.

Retrospective

No notable changes

Releases

None

Xeme

Xeme is our XMPP integration library. It is the basis for both the Link Local Messaging (Bonjour) and XMPP protocols in Pidgin 3. It is still early in development and has not yet had a release.

Ibis

Ibis is our IRCv3 integration library. It has seen a lot of active development as it is used in the IRCv3 protocol plugin in Pidgin 3.

We are nearing known feature completion on it and expect to do a 1.0 release in the near future.

Retrospective

No notable changes

Releases

None

Future Plans

Continue working through the open issues and watching new IRCv3 specifications for things we should be including.

Hiya

Hiya is a new client abstraction library for mDNS. It was created to help make implementation of the Link Local Messaging protocol easier as we would have to abstract out the different platform implementations and by putting it in a library that abstraction can be used by other projects.

Hiya has not yet had a release.

Myna

Myna is a new integration library for Matrix. It is still extremely early in development.

Seagull

Seagull is a new library we created to make working with SQLite feel more like a GLIB/GNOME library and force usage of prepared statements with named parameters and other similar things.

Retrospective

  • Added aliases for columns.
  • Added support for binding objects.
  • Added support for retrieving columns from objects.
  • Added support for creating statements from resources.
  • Added API for date times, enums, and flags.
  • Fixed a bug were non prefixed parameters would match even though a prefix was specified.

Releases

Future Plans

We have a few features to fill out yet and a few ideas that need a bit more time in the oven.

More specific details can be found in our open issues.

Traversity

Traversity is a new library for traversing NATs. There are many different ways to traverse a NAT and the goal of Traversity is to hide that from developers who just need to traverse a NAT.

It is still early in development and has not yet had an official release.

retro-prpl

retro-prpl is a new repository we’ve created on GitHub. This repository contains all of the abandoned protocols that have ever lived in our code base and is meant to make them easier to study and for people to use with services like Retro AIM Server and NINA.

Retrospective

We’ve wrapped up just about all the development here and are just waiting for Pidgin 2.15.0 before releasing.

Releases

None

Future Plans

Right now we didn’t add any support for protocol specific emojis because we completely forgot about them. Anyways we’re looking at creating a custom emoji theme that will include everything for these retro protocols.

Closing

We hope you all are enjoying the new format and if you have any questions of comments please leave them below!

2 Likes