pyrus is ready for initial testing

From: Date: Wed, 10 Jun 2009 23:22:29 +0000
Subject: pyrus is ready for initial testing
Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-51939@lists.php.net to get a copy of this message
Hi, Pyrus is the PHP 5.3+ re-factoring of the PEAR Installer, and it is within inches of a public alpha. As such, I want to let all of you, the developers who will be most affected by its release, know about pyrus and have a chance to play around with it before the first public release. As of about 3 seconds ago, I committed a small fix that completes Pyrus's ability to create packages. Pyrus is now capable of creating package.xml files (a la PEAR_PackageFileManager), and packages compatible with the PEAR installer as well as new-fangled packages that only work with Pyrus. package.xml creating only works for PEAR2 packages and PECL packages, but there is nothing stopping the support of PEAR packages, and that will probably be soon. There are some glitches to be worked out in the REST support for pear.php.net and pecl.php.net (all of pecl's REST is invalid XML, for instance), and a bug in packagesinfo.xml in all existing channels using Chiara_PEAR_Server or pearweb/peclweb, but these should be resolved soon. Most packages have valid package.xml, but a few do not, and Pyrus won't install them if they have any errors (it validates using the XSchema for package.xml, unlike PEAR). Pyrus is fully capable of managing existing PEAR installations, except it cannot install ancient packages that only have package.xml 1.0, as package.xml 2.0 and 2.1 are the only supported versions in Pyrus. It can, however, display information from ancient packages that are installed, and in theory can uninstall them (haven't tried this myself, as I don't have any installed). Another big change is that the developer tools are not bundled with pyrus, but are a separate package. This allows much more flexible development of these tools, while keeping the core of pyrus rock-solid and focused on the things people who are using PEAR packages will be needing. Some improvements over PEAR: Smaller - it leverages all of the best built-in extensions of PHP 5.3 including simplexml, libxml2, spl, phar, sqlite3, greatly reducing code size and improving features Faster - same reasons. XML parsing is particularly speedy compared to PEAR, and the new default sqlite3 registry format is also very, very fast for queries. More robust - redundant registries, with the ability to repair a broken registry, much more secure file installation transactions that are power-loss safe (no .tmpBlah files left around if you Ctrl-C) More flexible - installations can cascade, and pyrus automatically recognizes PEAR installations in include_path without configuration. More unit tested - even at this early pre-alpha stage, pyrus has 71% unit test coverage of its codebase, with more to come. Basically, it is quite awesome, and represents the collective work of me, Brett, Helgi, David Coallier, David Jean-Louis, Josh and a few others I am sure I am forgetting over the past several years both in terms of coding (primarily me) and of working out standards for PEAR2 that Pyrus is based off of. Pyrus also makes possible a simple channel server which can take a release and create the REST and release tarballs. doc.php.net is already using this simple channel server in production (as I understand it, correct me if I'm wrong) You can grab pyrus.phar from http://pear2.php.net or by checking out "all" from PEAR2's svn: svn checkout http://svn.pear.php.net/PEAR2/all pyrus is in Pyrus/pyrus.phar If you check out all, use these commands to get access to the developer commands: cd all php Pyrus/pyrus.phar install -pf Pyrus_Developer/package.xml simply run "php pyrus.phar" to get started. Greg

« previous php.pear.dev (#51939) next »