A few years ago I pledged to publish regular updates on Phing’s development. I’m a little ashamed that I haven’t done that for nearly three years. Needless to say, a lot has happened, so it’s about time to post an update!
The latest version, 2.14.0, was released in March. Ever since the move of the code to GitHub, a steady flow of pull requests and contributions has resulted in a lot of new functionality, improved documentation and numerous squashed bugs.
Here’s a selection of interesting features that have recently been added:
- Support for PHP 7 & HHVM.
- A flurry of new tasks: stopwatch, switch, throw, retry and many more.
- Better support for composer and numerous dependencies (such as PHPUnit).
- Additional selectors and conditions.
- Remember the old HTML user guide? That has been replaced by (significantly improved!) Docbook5 documentation.
- Additional tests & test coverage.
Of course there’s much more and all the details can be found in the changelog.
The next minor version, 2.15.0, should be released in a few weeks, the tickets assigned to that version can be found here.
Beyond Phing itself, there are a few planned changes to the website and the build process:
- Migrating the ticket tracker (Trac) to GitHub issues.
- Shipping a “full” .phar file with each release (containing recent versions of the most popular dependencies).
- Testing the generated .phar file in the travis-ci builds.
- Adding a documentation search.
- Refreshing the website.
A serious refactor of Phing has been on my own wishlist for quite some time. Some work towards that goal has been committed to the 3.0 branch and I try to keep this branch more or less synchronized with master (albeit with some delay). The branch is entirely functional and requires PHP 5.6+ or above.
Some of the work that’s still in progress or on the roadmap: integrating SPL, changing the way booleans are handled, a proper task autoloader, cleaning up the code, improving the test harness, etc. If you have suggestions, then please let me know! Time available to spend on a pull request is even better 🙂