Following our last post regarding the new phergie-irc-parser project, we’re happy to announce that the second Phergie sub-project, phergie-irc-generator, is now available. This sub-project provides a fairly fast and easy-to-use PHP-based library for programmatically generating messages conforming to the IRC protocol. You can find the source code for it on GitHub and it is available on Packagist as well.
This project has sadly not received as much attention over the last year as in past years. We were hoping to get into a more regular release cycle, but it’s been more than a year since the last release. We are, however, hoping to get 2.2.0 out within the year.
A few maintenance releases may follow 2.2.0, but not long after that the 2.x branch of Phergie will reach EOL. Following the 2.2.0 release, efforts will be focused on Phergie 3, which will entail a number of changes we’re very excited about.
- We will be splitting the project into multiple sub-projects, following suit with projects like PHPUnit and Zend Framework. Sub-projects will have their own repositories under the umbrella of the Phergie GitHub organization.
- We will move to requiring PHP 5.3 or higher for most or all sub-projects. All new code will use PHP namespaces.
- We will make sub-projects reusable by other projects. To that end, we will be supporting use of Composer and publishing sub-projects on Packagist.
- We will integrate existing projects where possible. In particular, we’re looking at using React for the daemon portion of Phergie 3.
- We will maintain continuous integration using Travis CI.
- We will implement a low-friction process for contributing to documentation likely using either GitHub’s pages or wiki features.
We’re happy to announce the first Phergie sub-project, phergie-irc-parser. This sub-project provides a fairly fast and easy-to-use PHP-based parser for streams of data conforming to the IRC protocol. You can find the source code for it on GitHub and it is on Packagist as well.
We hope to have more announcements soon. Stay tuned!
Until now, the main GitHub repository for the Phergie project had been kept under a single user account at http://github.com/elazar/phergie. It has been transferred to an organization on GitHub. The new repo address is http://github.com/phergie/phergie.
There are a few reasons for this transfer:
- A new core team will be given merge rights to streamline acceptance of contributions where it was previously limited by the availability of a single developer.
- Eventually, plugins and other sub-projects can be split off into their own repositories within the same organization to be developed independently from the main project and to allow more fine-grained grants of merge rights.
Any pull requests and issues should be directed to the transferred repository. Any existing clones of the original repository will need to have their upstream remotes updated to point to the new location. This can be done using the following command:
git remote set-url upstream git://github.com/phergie/phergie.git
Any questions about this change can be directed to the #phergie IRC channel on Freenode or in a comment on this post.
The Developers page now includes a section on unit testing Phergie plugins. Efforts to improve code coverage of the Phergie codebase continue, so if you’d like to help out, find a plugin lacking a unit test suite and write one. If you’re developing your own plugins to contribute back to the project, try to include unit test suites for them when you submit them. Our continued thanks go out to all of our contributors.
There’s a known issue with the Phergie 2.0.3 release that prevents some events from being processed. This is due to three circumstances:
- Human error – In an effort to push the release out more quickly to replace the existing Phergie 1.x installation on Freenode with a 2.x instance, this issue was simply overlooked and somehow didn’t present itself distinctly during rudimentary testing. This was a big mistake on our part and we apologize to any affected users.
- Lack of sufficient unit testing – This is something we’re working on. However, the problem was actually with two Phergie core components that had full code coverage. This shows that, while code coverage can be useful to expose blocks of code that are definitely not covered by any tests, don’t assume code is fully covered simply because code coverage says it is.
- Unexpected behavior – What appears to be a bug in PHP itself, specifically in the FilterIterator class, contributed to the problem. Oddly, this class also appears to have full code coverage, affirming the related point above.
For those users affected, there are two options for dealing with this issue pending the next release.
- Downgrade to Phergie 2.0.2 – Not ideal, but that release was relatively stable.
- Patch 2.0.3 – The patch is in the git repository if you’d like to apply the patch to fix the issue yourself.
- Run Phergie bleeding edge – This is done by cloning the git repository, placing your settings file on the same level as the Phergie directory, and running the phergie.php script there.
We’re hoping to make another release within the next couple of weeks.
The Phergie project now has a Google Group! Because not all users or developers frequent IRC, it was decided that some sort of mailing list medium was needed where users and developers can come together to discuss issues and potential new features as well as to offer support to the community. We hope you’ll join and we thank you for your continued contributions.
Who: Everyone and anyone who loves Phergie and wants to help make her better!
What: The Phergie Hackathon
Where: The #phergie channel of the Freenode IRC network
When: Saturday, June 19 from 10 AM CDT till the last person leaves
Why: We’re gearing up for a 2.0.3 release and we’re looking to knock out as many bugs as we can that currently block us from replacing the old Phergie 1.x instance currently running on Freenode with a 2.x instance.
How: Just show up in the IRC channel, pick a ticket from the laundry list, and start hacking. Feel free to post any questions you may have to the channel. If you want to hit the ground running on the day of the Hackathon, decide what ticket you’d like to work on and take a look at the developer docs and source code beforehand.
Hope to see you there!
Thanks to the efforts of Jess Planck, the Phergie project finally has a logo! You’ll now see it sported in the page header on this web site. The colors of the image have been designed such that Phergie shirts are a definite possibility in the future. Please take a moment to send a shout out to Jess on Twitter and thank him for his contribution!