~~~~~~~~~~~~~~~ Anant Narayanan anant@kix.in ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PHP Bindings to the GNOME Platform ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Greetings! I wish to take on the development of PHP language bindings to GNOME and its associated libraries as a part of Google's Summer of Code initiative. This project will result in PHP being added as an official GNOME language binding, and that means that the bindings developed will be in accordance to the GNOME platform binding and release cycle rules. (http://developer.gnome.org/arch/lang/) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Benefits to the PHP Community ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The project will provide the entire PHP community with an easy entry point into GNOME application development. This will also put PHP on the official GNOME Platform Bindings project, in addition to the 4 existing modules (C++, Java, Perl and Python) This project will also enhance the usage scope of PHP-GTK 2 considerably and is a definite step towards making PHP a serious language to develop desktop applications in. ~~~~~~~~~~~~ Deliverables ~~~~~~~~~~~~ 1. Creation of the 'gnome-php' package that will provide PHP language bindings to the following libraries: Bonobo, GConf, Gnome, GnomeCanvas and GnomeVFS. 2. Creation of the 'gnome-php-extras' package that will provide PHP language bindings for the following libraries: libEgg, libGDL, GnomeApplet, GnomePrint, GtkHTML2, GtkSpell, GTop, NautilusBurn, Totem, WNCK, GtkMozembed and GtkSourceView. 3. Integrate PHP-GTK 2 (along with the new bindings, excluding the non-GNOME platform bindings, i.e. gnome-php-extras) with the upcoming GNOME bindings release set as a separate module, proposed to be included in GNOME 2.18 Non-Code deliverables will include usage example scripts and documentation for all the libraries mentioned above. ~~~~~~~~~~~~~~~ Project Details ~~~~~~~~~~~~~~~ The project will be based on PHP-GTK 2, the existing PHP language binding to Gdk, Gtk, Pango and Atk. Although PHP-GTK 2 is currently based on Gtk+ 2.6, I will undertake upgrading it to 2.8 as required. PHP-GTK 2 has has the ability to support extensions that add some functionality to it. This feature will be used to develop bindings to the various libraries mentioned in the deliverables. I have already developed bindings for GtkMozembed and GtkSourceView as extensions to PHP-GTK 2: http://cvs.php.net/viewcvs.cgi/php-gtk/ext/sourceview/ http://cvs.php.net/viewcvs.cgi/php-gtk/ext/mozembed/ The same methodology will be applied to all the other libraries for which bindings are required. The packages will require PHP-GTK 2 to be installed, much like how gnome-python requires pyGTK. The finished packages will be submitted to both the PHP-GTK 2 and GNOME projects for official inclusions in their next cycle release. ~~~~~~~~~~~~~~~~ Project Schedule ~~~~~~~~~~~~~~~~ The project is planned to be split across 6 major Phases: 1. Analysis (May 23 - May 31): This phase involves interaction with the mentor and the key people involved in similar projects (maintainers of pyGTK, gtkmm etc) in order to exactly understand the requirements. The GNOME Platform binding rules and release cycle requirements will also be studied in detail during this phase. Project infrastructure (CVS Repository, Website etc.) will also be setup. 2. Development Part I (June 1 - June 15): This phase will involve the up-gradation of PHP-GTK 2 to bind Gtk+ 2.8, instead of the current version (2.6). 3. Development Part II (June 16 - July 10): The core development phase where the bindings to the primary GNOME libraries will be implemented. This includes Bonobo, GConf, Gnome, GnomeCanvas and GnomeVFS. 4. Development Part III (July 11 - July 25): Implementation of bindings to the non-gnome platform libraries: libEgg, libGDL, GnomeApplet, GnomePrint, GtkHTML2, GtkSpell, GTop, NautilusBurn, Totem, and WNCK. Although the GtkSourceView and GtkMozembed bindings are already prepared, they will be reviewed again at this point. 5. Packaging (July 26 - August 5): Prepare PHP-GTK 2 along with the newly developed bindings for inclusion in it's next release. Also package the same for inclusion as a module in GNOME's next language binding set release. 6. Testing and Wrap-Up (August 5 - August 21): Thoroughly test every aspect of the finished package. This phase will also include the development of non-code deliverables: example scripts and documentation (to be merged with the existing PHP-GTK 2 documentation). Small feature requests may also be added at this stage in addition to fixing any bugs that may be reported/encountered. Note: Probable mentors for this project are Steph Fox and Andrei Zmievski. ~~~ Bio ~~~ I am a second-year undergraduate at the Malaviya National Institute of Technology, Jaipur, India. I am pursuing my B.Tech. in Computer Engineering at the institute. I have been passionate about computers since my childhood and have been a free software advocate as well as a PHP programmer for around 2 years now. I am an active developer in several open source projects, the most prominent of which are GNU Parted and PHP-GTK 2. My involvement in both these projects has brought me an in-depth knowledge of C as well as PHP, which I believe are essential requirements for this project. I am already an active member of the PHP-GTK 2 development and documentation teams and have already developed the bindings for the GtkSourceView, GtkScintilla and GtkMozembed libraries as part of my development efforts. I am also an active PEAR member and am currently maintaining 4 packages there. I am also a system administrator at my university, and have had the opportunity to develop several applications that automate several tasks at the institute. Applications that I have developed include a content management system, an online assignment evaluation system, and a library management software. My responsibility as a system administrator has also kept me at close-quarters with all leading open source technologies and GNU/Linux in general. Lastly, I would like to express my deep commitment to this project, PHP, and free software ideals in general. You can find more details about me and the projects that I am currently involved in, at my website. Please don't hesitate to contact me if any part of this proposal is not clear to you. Thank you for considering this proposal, and for your time! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ My CV : http://www.kix.in/soc/resume.pdf My Website: http://www.kix.in/ This proposal is also available at: http://www.kix.in/soc/php-gnome.txt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~