pear:gsoc:2009
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
pear:gsoc:2009 [2009/03/12 14:50] – quipo | pear:gsoc:2009 [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 121: | Line 121: | ||
//Possible mentors: Helgi, Brett// | //Possible mentors: Helgi, Brett// | ||
- | This will involve working on Pyrus installer which is the next generation PEAR installer. | + | Pyrus is a self-contained package delivery system for PHP that takes advantage of PHP's strongest features as of PHP version |
- | PHP 5.3+, namespaces and all the goodies | + | |
- | This includes writing good chunks of the installer from scratches, write extensive unit tests, design APIs and still make it work with existing channels and packages. | + | Pyrus supports |
- | This will require very good understanding of PHP, XML and other technologies a like. | + | |
+ | * Robust, remote dependency validation and download | ||
+ | * Creation of phar/ | ||
+ | * Installation of local or remote packages and abstract package installation (as in " | ||
+ | * Redundant registries, allowing re-building corrupted installs | ||
+ | * Registries in Sqlite, Xml, and Serialized PHP format | ||
+ | * managing PEAR installations | ||
+ | * Packages that can work with or without installation to support try-before-you-buy or bundling packages in other projects | ||
+ | * Full asymmetric signed packages using OpenSSL (natively supported through the phar extension) | ||
+ | * No need to install Pyrus, run directly from the downloaded phar archive. | ||
+ | * Customizability through extensions to Pyrus | ||
+ | |||
+ | This is a major leap of functionality over the PEAR Installer, and will be a major component of the PHP Language when completed, as the PEAR installer was for earlier versions of PHP. | ||
+ | |||
+ | To develop Pyrus, you need to have the ability to work with the following technologies on a very high level: | ||
+ | |||
+ | * Subversion source repository use | ||
+ | * XML (including proficiency in XMLReader/ | ||
+ | * PHP 5 Object-Oriented getters/ | ||
+ | * PHP 5 Object-Oriented ArrayAccess interface | ||
+ | * PHP 5 Iterator interface | ||
+ | * PHP 5 SPL iterators | ||
+ | * PHP 5 exceptions and exception handling | ||
+ | * SQL and Sqlite database, in order to maintain Sqlite3 registry | ||
+ | |||
+ | You also need a basic understanding of: | ||
+ | |||
+ | * PHP Namespaces (new in PHP 5.3) | ||
+ | * PHP closures (new in PHP 5.3) | ||
+ | * PHPT testing format | ||
+ | * Testing methodologies (code coverage/ | ||
+ | * PEAR packages and the PEAR Installer | ||
+ | * Basic compilation of PECL extensions | ||
+ | |||
+ | Architecturally, | ||
+ | |||
+ | - Writing unit tests for the installer in the PHPT test format | ||
+ | - Implementing the plugin system for Pyrus | ||
+ | - Improving the command-line interface to Pyrus | ||
+ | - Ensuring Pyrus can manage an existing PEAR repository | ||
+ | - Porting PECL compilation code from the PEAR Installer to Pyrus | ||
+ | - General bugfixing/ | ||
+ | |||
+ | As of the proposal, Pyrus is at approximately 50% code coverage, and it will be much higher by the time GSoC begins | ||
+ | |||
+ | ====Deliverables==== | ||
+ | ===Midterm=== | ||
+ | We expect a working plugin system and PECL compilation to be working on unix, as well as approximately 70% code coverage | ||
+ | |||
+ | ===Final=== | ||
+ | For the final review we would expect a fully functioning installer with approximately 80% code coverage. | ||
===== PEAR CI ===== | ===== PEAR CI ===== |
pear/gsoc/2009.1236869454.txt.gz · Last modified: 2017/09/22 13:28 (external edit)