State of the Bird August 2025
State of the Bird August 2025
The State of the Bird is a recap of what has been happening in the project.
You can find the previous posts via the #state-of-the-bird tag.
Retrospective
Our last State of the Bird was August 2nd 2025 and can be found here.
Things have picked up considerably since the summer lull in the northern hemisphere.
Metrics
We have a number of metrics we keep an eye on which you can see below.
Contributors
The number of contributors continues to fluctuate a bit, but that's expected for a volunteer project.
If you're interested in contributing you can find some documentation here including ways that don't require knowing how to program.
[chart type="bar" backgroundColors="#db3a83,#e76a2a,#4cdc8b" title="Contibutors" xAxisTitle="Time Frame" ]2025-03 | 2025-04 | 2025-05 | 2025-06 | 2025-07 | 2025-08Developers | 1 | 2 | 2 | 2 | 2 | 1 |Crazy Patch Writers | 1 | 0 | 1 | 0 | 0 | 1 |Casual | 0 | 0 | 1 | 1 | 0 | 1[/chart]
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.
As you can see activity has picked up quite a bit.
[chart type="bar" backgroundColors="#db3a83,#e76a2a" title="Review Requests" xAxisTitle="Time Frame" ]2025-03 | 2025-04 | 2025-05 | 2025-06 | 2025-07 | 2025-08Open | 78 | 44 | 26 | 20 | 42 | 61 |Closed | 82 | 43 | 22 | 25 | 39 | 57 |[/chart]
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.
[chart type="bar" backgroundColors="#db3a83,#e76a2a" title="Issues" xAxisTitle="Time Frame" ]2025-03 | 2025-04 | 2025-05 | 2025-06 | 2025-07 | 2025-08Open | 41 | 16 | 6 | 11 | 11 | 16 |Closed | 18 | 6 | 5 | 10 | 3 | 11 |[/chart]
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.
As you can see, Pidgin 3 activity continues to dominate everything else.
[chart type="bar" backgroundColors="#ed207b,#9eb83b,#0088cc,#b3b5b4,#8c6238,#231f20,#f1592a,#ffea61,#bf1e2e,#0088cc,#57e389,#7f007f" title="Commits" xAxisTitle="Time Frame" ]2025-03 | 2025-04 | 2025-05 | 2025-06 | 2025-07 | 2025-08Pidgin 3 | 27 | 28 | 15 | 10 | 25 | 51 |Pidgin 2 | 0 | 0 | 0 | 4 | 0 | 2 |GPlugin | 1 | 0 | 2 | 0 | 4 | 0 |HASL | 1 | 0 | 1 | 4 | 2 | 0 |Birb | 6 | 0 | 5 | 0 | 1 | 0 |Xeme | 7 | 0 | 0 | 0 | 1 | 0 |Ibis | 27 | 11 | 0 | 0 | 0 | 0 |Hiya | 15 | 2 | 0 | 0 | 0 | 0 |Myna | 0 | 0 | 0 | 0 | 2 | 0 |Seagull | 8 | 0 | 0 | 13 | 3 | 0 |Traversity | 0 | 0 | 0 | 0 | 0 | 0 |retro-purple | 0 | 0 | 38 | 48 | 0 | 3 |[/chart]
Infrastructure
No new updates here.
#pidgin3
Retrospective
Lots of work on Pidgin 3 this month!
Updates
- Cleaned up and modernize PurpleImage. We were looking to get rid of this, but GdkPixbuf is getting deprecated so we cleaned this up and backed it with GBytes as we'll be using it going forward.
- Replaced Purple.Avatar with Purple.Image. With the above mentioned GdkPixbuf deprecations there isn't much need for this anymore as Purple.Image will handle everything we need.
- Added an avatar-for-display property to Purple.ContactInfo. This is just like all the other
-for-display
functions, but for avatars. - Created Purple.Contacts. This is a simple collection of Purple.Contact instances which is used by the new Purple.ProtocolDirectory API.
- Created Purple.ProtocolDirectory. This is currently just being used to search for users but in the future will include channels as well.
- Added Purple.ConversationMembers.find_first_other. This is used to help find the ConversationMember for the non purple user in a direct message.
- Don't show the presence icon in messages. This turned out to get really obnoxious over time.
- Made the demo protocol plugin use the active presence. This is the first step in getting a status selector going.
- Added default handlers to Purple.Account to manage the online state of conversations. These handlers will automatically mark all conversations for an account offline when the account disconnects as well as ask the protocol to refresh the conversation when the account comes back online.
- Added a Purple.ContactInfo:badges property. This allows us to set badges at a global global as well as the existing conversation level.
- Added vfuncs to Purple.Protocol for setting display names.
- Added a Purple.Conversation::displayed. This is useful for protocols so that they can avoid syncing a conversation until the user is actually looking at it.
- Removed all of the proxy code. Nearly all of our proxy stuff is supported by GProxyResolver so we didn't really need it anymore. We do still need to add back the preferences and account settings, but there isn't a large need for this right now.
- Moved the saved-plugins preference to GSettings. This was the last user of the preferences API.
- Removed the preferences API. Everything has been ported to GSettings now so this API was no longer necessary.
- Removed Purple.ContactInfo:username. For protocols that still use usernames should be using the id field and this field was just making everything more confusing.
- Deprecated ChangeLog.API. This was a very large and difficult to read list and most of the API changes are in the core documentation and separate articles are being written to make the changes easier to understand.
- Renamed Attachment:inline to Attachment:is-inline to fix some compiler errors on Windows.
- Ported everything to the birb string functions.
Releases
None
Future Plans
- The account options API is in the process of being replaced by a new AccountSetting API.
The following items are still in the works from the last state of the bird.
- Add persistence to the scheduler.
- Add persistence to the contact manager, this needs to be done so we can fix some issues with direct messages being restored correctly.
- Gary has started an out o#gplugin-plugin-library f tree protocol plugin to help figure out how the voice and video API will work.
As always, you can view the burn down chart for our next release here.
#pidgin2
We're still planning on doing a 2.15.0 release, but we haven't moved forward on this at all this month.
Updates
- Cleaned up the app data file.
- Removed the auto package spec file.
Retrospective
We still need to finish up the build environment packages so we can upgrade GTK on windows and get that all into the installer. We also need to remember to update the spell checking dictionaries as we haven't done that in awhile.
Releases
None
Future Plans
Just the same as what was mentioned above.
#gplugin
GPlugin is our GObject based plugin library that is used in Pidgin 3.
Retrospective
No activity this month.
Updates
None
Releases
None
Future Plans
We're going to continue moving forward with the GLib.List -> Gio.ListModel changes and eventually have GPlugin.Manager implement Gio.ListModel.
#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
No activity this month.
Updates
None
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 activity this month.
Updates
None
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.
Retrospective
No activity this month.
Updates
None
Releases
None
Future Plans
Everything! Seriously though, we're looking to get back to this in the near future.
Ibis
#ircv3-library 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 activity this month.
Updates
None
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.
#sqlite3-helper-library
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
No activity this month.
Updates
None
Releases
None
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, escargot, and NINA.
Retrospective
We realized that users can't necessarily point these protocol to different severs so we've been slowly correcting that.
Updates
- Fixed some compiler warnings in libymsg.
- Removed the default server from napster.
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.
One Last Thing...
We've gotten a fair amount of feedback when it comes to the user interface direction of Pidgin 3. The feedback is that some people prefer the simplified user interface of Pidgin 2 which is more focused on one to one chats than multiple user chat rooms.
Due to this, Gary has been playing around with an additional GTK4 interface which will reproduce the Pidgin 2 look and feel. This is still very early in development, but as it's just another GTK4 user interface which we're all very well versed in, it should pick up steam quickly especially since it's cloning an existing design. However, we're waiting on the Account Setting API before we really move forward at the moment.
So that said, the only thing left to discuss is the name. As you might have guessed, we've spent a fair amount of time discussing this and I'm pleased to tell you that we're calling it Gaim 3. That's right, we're bringing the Gaim name back. We've talked to a lawyer and they believe we are in the clear when it comes to the old AOL trademark which has since expired.
We have created a #gaim category on our Discourse for additional discussion including some screen shots of what it looks like so far and Gaim 3 will be part of future State of the Birds!
Closing
We hope you all are enjoying the new format and if you have any questions of comments please leave them below!
Spotify will now let free users pick and play tracks | TechCrunch
Spotify will now let free users pick and play tracks | TechCrunch
On Monday, the company announced that free users globally will now be able to search and play any song they want or play a song shared by a friend or an artist they follow on social media.Sarah Perez (TechCrunch)
Google Chrome has gone bad ?
Just updated Chrome on Windows.
You now have to sign in at the start, or go in limited "Guest" mode in which everything in settings has been cut out. So it automatically downloads to OneDrive for instance and you can't change it.
There is no Google prompt, only an AI prompt where the URL bar would be.
I'm using Firefox now, I can't get anything to work on Chrome.
adhocfungus likes this.
Internet Archive vs. Music Labels: $693m Copyright Battle Ends with Confidential Settlement * TorrentFreak
Internet Archive vs. Music Labels: $693m Copyright Battle Ends with Confidential Settlement * TorrentFreak
A copyright lawsuit launched by major record labels against the Internet Archive, over the ambitious Great 78 Project, is officially over.Ernesto Van der Sar (TF Publishing)
like this
Never pay for music again, and don't let anyone you know do that shit either.
They come for archives; nothing should be off limits.
Never pay for music again, and don't let anyone you know do that shit either.
They come for archives–nothing should be off limits.
FF won't let me install BPC extension
Looking for help here. I created a new Firefox profile and wanted to load the Bypass Paywalls Clean Add-on/Extension from the XPI file. So I did what I've always done and got the message displayed above.
Then I went into about:config
and changed both xpinstall.whitelist.required
and xpinstall.signatures.required
to false
. Fully exited and restarted the browser but still, no dice.
Anyone know how to fix this?
SOLUTION: go to extensions.blocklist.enabled
and turn it to false
like this
National Voter Registration Day
If there was ever a time to register to vote or check to confirm you’re registered, it’s now.
The National Voter Registration Day website has plenty of resources so you can ensure your are able to vote.
- Register to vote/Check voter registration
- Find Your Poling Place
- Verify your voter ID requirements
- Serve as a poll worker, something I’m considering doing
Every election is important, especially at the local level. Make sure you can do your part.
Register to Vote/Check Registration | National Voter Registration Day
If you’re looking to register to vote or check/update your voter registration, you’re in the right place! Not sure if you need to update your registration? Here’s a list of reasons to check your status: You’ve moved You’ve changed your name since you…National Voter Registration Day
Are You Under the Influence? The Tail That Wags The Dog - Dhole Moments
Are You Under the Influence? The Tail That Wags The Dog - Dhole Moments
It is tempting and forgivable to believe that we’re in control of our social media experiences. After all, we write what we want in our bio, select our avatars, and even come up with our own …Dhole Moments
adhocfungus
in reply to fossilesque • • •