Just a few moments ago, I released PEAR 1.4.1 at pear.php.net. This is not just your typical bugfix release, some issues that have been around for a long time have finally been fixed. I'm very excited about this release, and look forward to hearing feedback.
This release fixes critical issues for both end-users and packagers discovered in the week since PEAR 1.4.0's release, and also enhances functionality of existing features significantly.
A short list of fixes:
- PECL installation works
- "pecl pickle" command for PECL devs
- Serious XML issues are resolved, significant XML processing speed-up as a side effect.
- Critical errors in package.xml 1.0 validation that have been present since PEAR 1.0 have been found and fixed
- processing of compatible dependencies was broken
- the "makerpm" command was broken
- post-install script advanced features broken, dependency groups not properly validated on packaging
- progress bars for "list-all" and "remote-list"
For PECL developers, this release is a milestone. After all of the wrangling with Wez Furlong over package.xml 2.0 publicly, behind the scenes we worked together quite effectively to begin the process of resolving differences. I devoted an intense amount of time to improving the "pear package" command so that it will more closely compare package.xml/package2.xml. In addition, the new "pear pickle" command can take a limited subset of package2.xml, auto-generate a package.xml 1.0, and then package. This is a tremendous convenience to PECL developers, who instead of maintaining package.xml 1.0 and doing this release process:
<hand-edit package.xml 1.0>
$ pear convert
$ pear package
to generate package.xml 2.0, they can instead:
<hand-edit package.xml 2.0>
$ pear pickle
and that's it! The pickle command is extremely restrictive because of the complexity of translating from a greater set to a lesser set of possible package configurations. As such, it will only work for extension source packages that have a single release, no ignore tags, no complex dependencies, and none of the new features of package.xml 2.0. Fortunately, this describes about 95% of pecl extensions.
If you are a pecl dev, and would like to get started, all you need to do is:
$ pear convert
$ cvs add package2.xml
$ cvs commit -m "initial commit" package2.xml
Then, from this point on, simply edit your package2.xml, and run:
$ pear pickle
to create the release .tgz. In this way, you will gain the advantage of using package2.xml without having to worry about issues with package.xml 1.0. If you want to take advantage of more advanced features, the PEAR_PackageFileManager package is what you need. The crack extension makes use of this package to generate a binary extension as well as the source package, allowing people to install crack on windows for the first time through the "pecl" command.