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
pear:gsoc:2009 [2009/03/12 14:50] – Added two proposals: MDB3 and Mail_Queue2 quipopear: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 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.1236869410.txt.gz · Last modified: 2017/09/22 13:28 (external edit)