pear:gsoc:2009

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
pear:gsoc:2009 [2009/03/12 14:50] – Added two proposals: MDB3 and Mail_Queue2 quipopear:gsoc:2009 [2009/03/12 15:58] – rewrite proposal paragraph to be more specific and attractive cellog
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 5.3.
-PHP 5.3+, namespaces and all the goodies that come with PHP 5.3+
  
-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/zip/tar packages in conjunction with the Pyrus_Developer package
 +  * Installation of local or remote packages and abstract package installation (as in "install the beta version of this package")
 +  * 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/XMLWriter/SimpleXML extensions)
 +  * PHP 5 Object-Oriented getters/setters (__get/__set)
 +  * 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/testing behavior/designing code to be testable)
 +  * PEAR packages and the PEAR Installer
 +  * Basic compilation of PECL extensions
 +
 +Architecturally, you will be expected to assist in the following processes:
 +
 +  - 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/small feature implementation as specified by the Pyrus roadmap
 +
 +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 =====
Line 187: Line 235:
  
 ===Optional Features=== ===Optional Features===
-If the quality of the work done is up to the expectations, and the time allows it, it would be nice to have some extra features:+If the quality of the work done is up to the expectations, and the time allows for it, it would be nice to have some extra features:
   * EXPLAIN abstraction   * EXPLAIN abstraction
   * import/export in CSV format   * import/export in CSV format
pear/gsoc/2009.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1