POE::Component::IRC version 6.00 has just been released on CPAN. I've neglected to blog about PoCo::IRC since I started contributing to it, but since a new major release has been rolled out[1], now would be a good time. Also, as it turns out, next May will be the tenth anniversary of the project's first release.
For the uninitiated, POE::Component::IRC is an event-driven IRC client library built on top of POE. People mostly use it to write bots. Some have made that even easier by creating a simpler interface suited to that task (see Bot::BasicBot).
I became involved in the project about 14 months ago, fixing bugs and adding features. There've been about 50 releases during that time, so there's something for everybody. Following is a list of the most prominent ones.
Important squashed bugs
New major features
New plugins
I wrote 5 additional core plugins:
Testing
The test suite has been reorganized, many tests improved and more added. The test coverage (as reported by Devel::Cover) has increased from 40% (version 5.48) to 61% (version 6.00).
Refactoring
Much refactoring was done. The coding and indenting style has also been made consistent across the project, and many spotty coding practices have been eliminated (thanks, Perl::Critic).
POE::Filter::CTCP was merged with POE::Filter::IRC:Compat, and the former was removed. DCC support has been moved into its own plugin, and the plugin system itself has been ripped out in favor of POE::Component::Pluggable (which is based on the aforementioned plugin system).
Using the project's current Perl::Critic parameters, version 6.00 has zero policy violations in 11,791 lines of code, compared to version 5.48's 242 violations in 10,634 lines of code. The average McCabe score of subroutines also dropped from 4.21 to 3.45.
Documentation
Last but not least, the Pod docs have been improved. Errors have been fixed, much more formatting and linking has been added for easier reading and browsing, consistency has been improved, and many sections have been expanded.
I also added a cookbook with a few recipes showing off some of the things one can do with POE::Component::IRC.
Credits
Thanks to all the users who provided feedback, bug reports and patches. You helped make this happen. I also couldn't have done many of these things without the help of Chris 'BinGOs' Williams, the senior maintainer of POE::Component::IRC.
Now go write some IRC bots (or clients)!
This is a repost from my blog.
Notes:
1. It's actually quite an insignificant release. Historically, POE::Component::IRC versions have always passed the whole-number boundaries naturally as part of a regular "bump the version number up by 0.02 for the next release" process.