2022 Year in review
Tags: review, repost, opensource
Published: 2023-04-29 14:00:00

> This article was originally posted on [Patreon](https://www.patreon.com/posts/year-in-review-76321047) and has been brought over here to get all of the Pidgin Development/History posts into one single place.

With the year wrapping up I thought now is a great time to look at all the fun and exciting things that happened in the project this year! Don't get worried, we are still of course going to do the Q4 State of the Bird next month, but I wanted to look back on the year as a whole as well.

## Releases

Well for starters, it should come as no surprise, but we didn't release Pidgin 3.0 this year. Maybe next year? However, we did have 705 commits from 7 contributors. Of those 705 commits 97 of them were the GTK4 transition.

We did release Pidgin 2.14.9 and Pidgin 2.14.10 which were the results of 48 commits from 4 contributors. We're trying to get Pidgin 2.14.11 ready, but aren't quite their yet.

We also released GPlugin 0.38.0, 0.38.1, 0.39.0, and 0.39.1 which was the results of 60 commits from 3 contributors . We also have GPlugin 0.40.0 nearing release as well.

Finally, we released Talkatu 0.1.0 which was its first release! This included 21 commits from 2 contributors.

## Highlights

As I mentioned earlier, Pidgin 3 is now a full fledged GTK4 application. Early on in the year we decided that releasing a new GTK3 application when GTK3 was being deprecated was a bad idea and pushed forward to move to GTK4. GTK4 has changed a lot of things and will soon be deprecating some things we're still using, but we're in much better shape than if we had stuck with GTK3. This also means that we've been adopting libadwaita as well which we've slowly been converting everything to as well. See how the libadwaita based account editor looks below.

![screenshot of the new account editor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vki4coevlny3m9rpoume.png)

At the very end of 2021, we created the Demo protocol plugin. It was initially created to give us stable contacts and stuff for screenshots, but quickly grew to become a development tool as well by gaining the ability to trigger connection errors and other events that are difficult to produce for testing. You can see a screenshot below of the demo protocol plugin in action displaying contacts.

![screenshot of the existing contact list](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yf9rqgzqjrdtvcgxgfut.png)

Next we also created a brand new Notifications API. Historically in Pidgin, we would either pop-up a dialog or put a "mini-dialog" into the bottom of the buddy list window. One of the plans for Pidgin 3 is to move the contact list into the main conversation window which means the mini dialog option had to change. The pop-up dialogs also had to change, as it was very easy to accidentally dismiss them.

Thus the Notifications API was created. The goal here is to have both transient and persistent notifications here. A transient notification is something along the lines of a connection error that would get removed when the account automatically reconnects. A persistent notification would be something like a contact authorization request or perhaps a message from and administrator of a network. 

As you can see in the screen shot below, the notifications present actions that can be used immediately. Also this API is available to all plugins, so they could use them to mention new versions or perhaps even email notifications.

![screenshot of the new notifications list](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvibci0nben2y4opcfae.png)

We also finally removed all of the protocols that we can not test. That means we deleted Sametime, Novell Groupwise, SILC, and Zephyr support. Currently we're also trying to decide whether or not to remove Gadu Gadu although we have been able to test it recently.

Also on the list is the Facebook protocol plugin. This plugin hasn't gotten the attention that the Purple 2 version has, which means it probably doesn't work very well as it's been quite a while since it's been tested as well. Also there's some talk about building a new Facebook protocol that uses the API that the mobile client does rather than MQTT that this version implements.

We also removed the NULL Protocol Plugin as the Demo protocol plugin does a much better job being an example protocol plugin.

Finally we also deleted the NULL Client as it wasn't exactly helpful and we'd like to do a series of blog posts or something similar of how to build a libpurple user interface instead.

## Closing

While we still didn't get Pidgin 3.0 released in 2022, you can see we hit some very nice milestones! We have an alpha release in our sights and we're trying to figure out exactly how to get there, so stay tuned for those exciting updates!

I hope you're enjoying these posts! Remember they go live for patrons at 9AM CST on Mondays and go public at 12AM CST on Thursdays! If there's something specific you'd like to see me cover here, please comment below!