An excellent well thought out, complete proposal, with none of the usual copying
of previous proposals with a bit of tweaking.

All looks good to me.

Gav...


> -----Original Message-----
> From: Tobias Schlitt [mailto:tob...@schlitt.info]
> Sent: Monday, 19 April 2010 11:53 PM
> To: general@incubator.apache.org
> Cc: Derick Rethans; Kore Nordmann; Sebastian Bergmann; Ole Marius
> Smestad; Roland Benedetti
> Subject: [PROPOSAL] Zeta Components
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi all,
> 
> please find below our proposal for Zeta Components. The proposal is
> also available in the wiki:
> 
>       http://wiki.apache.org/incubator/ZetaComponentsProposal
> 
> Regards,
> Toby
> 
> =========================
> Proposal: Zeta Components
> =========================
> 
> Zeta Components is a high-quality library of loosely coupled PHP
> components.
> 
> - --------
> Proposal
> - --------
> 
> The Zeta project was originally named *eZ Components* [1]_ and was
> developed as an open source project under New BSD license by eZ Systems
> AS [2]_. Involving a name change, eZ Systems is willing relicense the
> source code basis and documentation and to donate it to the Apache
> Software Foundation.
> 
> The goal of the project is to provide high-quality, loosely coupled
> components for the development of applications based on PHP version 5.1
> and above. On the one hand, Zeta contains standard components for e.g.
> database abstraction, templating, email, image manipulation and more,
> on the other hand there are modules which are unique in the PHP world,
> like a document format conversion component, a WebDAV server module and
> a workflow based programming framework.
> 
> The project is developed with a strong focus on code and documentation
> quality, as well as on backwards compatibility. It follows a well-
> defined development process with extensive architecture and design
> discussions and prescribes a test driven development approach.
> 
> - ----------
> Background
> - ----------
> 
> PHP is the most common language for developing web applications, but is
> also in use in other areas. While the language itself already ships
> with many libraries to solve different tasks, there is still a need for
> user land libraries to provide more complex repetitive functionality.
> 
> Zeta provides components dedicated to such functionality. An example
> for a tasks that can be solved using Zeta are processing and sending of
> email. This is already possible from within pure PHP. But working with
> multi-part MIME emails is not easily possible and a real pain when
> doing that on your own. For that reason, a module [5]_ exists in Zeta
> which allows the developer to easily create and send such emails and to
> receive and process them.
> 
> The Zeta project currently consists of the following components:
> 
> - - Archive
> - - Authentication
> - - AuthenticationDatabaseTiein
> - - Base
> - - Cache
> - - Configuration
> - - ConsoleTools
> - - Database
> - - DatabaseSchema
> - - Debug
> - - Document
> - - EventLog
> - - EventLogDatabaseTiein
> - - Execution
> - - Feed
> - - File
> - - Framework
> - - Graph
> - - GraphDatabaseTiein
> - - ImageAnalysis
> - - ImageConversion
> - - Mail
> - - MvcAuthenticationTiein
> - - MvcFeedTiein
> - - MvcMailTiein
> - - MvcTemplateTiein
> - - MvcTools
> - - PersistentObject
> - - PersistentObjectDatabaseSchemaTiein
> - - PhpGenerator
> - - Search
> - - SignalSlot
> - - SystemInformation
> - - Template
> - - TemplateTranslationTiein
> - - Translation
> - - TranslationCacheTiein
> - - Tree
> - - TreeDatabaseTiein
> - - TreePersistentObjectTiein
> - - Url
> - - UserInput
> - - Webdav
> - - Workflow
> - - WorkflowDatabaseTiein
> - - WorkflowEventLogTiein
> - - WorkflowSignalSlotTiein
> 
> As can be seen, there are typical web-application modules included,
> such as the Feed component - which allows users to generate and consume
> different types of aggregation feeds -, the already mentioned Mail
> component, a template component for website templates and a WebDAV
> server component. Beside that, the library also contains many modules
> which are not only suitable for web applications, like a component for
> managing various archive file formats, multiple layers of database
> abstraction, tools for image manipulation, basic interfaces and
> implementations of a model-view-controller [17]_ structure and more.
> 
> In contrast to other frameworks, the components in Zeta are loosely
> coupled and there are almost no hard inter-dependencies between them.
> Instead, if a component can be integrated with another one, a so-called
> *Tiein* component is provided, supplying the classes necessary to
> couple the components. This allows users to cherry pick the components
> they need, without the need of using the whole stack. That is
> especially useful for using the provided modules in legacy code or when
> there is a standard framework to build new applications on.
> 
> - ---------
> Rationale
> - ---------
> 
> Zeta is a library of high-quality, loosely coupled components for
> application development on basis of PHP. The project existed for five
> years now under the New BSD license, named eZ Components. It has been
> developed so far as a product of eZ Systems AS by a team of lately 4
> core developers and received various contributions from 3rd parties.
> 
> The unique characteristics of the project are a strong focus on high-
> quality code and documentation as well as extensibility.
> 
> About the project
> =================
> 
> The Zeta project is well established under the name *eZ Components* and
> has a vital open source community around it. Its goal is to provide
> high-quality PHP code in form of general purpose, re-usable components.
> Being developed for 5 years now, the project has well established
> processes for development in place:
> 
> Zeta underlies very hard code and documentation quality constraints.
> For each new feature or component, requirements and architecture
> documents need to be provided and publicly discussed, before they are
> implemented.
> In addition, a test driven development approach is appointed, ensuring
> few bugs and backwards compatibility. Full API documentation, a
> tutorial and extensive examples are required for every components,
> before it is released.
> 
> More information about the development process can be found in [6]_ and
> [7]_.
> 
> History
> =======
> 
> The Zeta project was initially started in 2005 and developed until now
> by eZ Systems under the name eZ Components [1]_. The initial goal was
> to refactor the core libraries used by the open source content
> management system eZ Publish [3]_ for the purpose of cleaning up the
> code base and migrating it to PHP version 5.
> 
> Already during the initial planning phase, it turned out that a
> refactoring was not feasible and a re-write of the desired library
> became necessary. In addition, it was decided not to concentrate on the
> needs of eZ Publish exclusively, but to create a general purpose
> library.
> 
> The source code base was mainly developed by employees of eZ Systems
> under the New BSD license, with multiple contributions from 3rd
> parties.
> Every external contributor needed to sign a CLA [8]_ which is derived
> from the CLA used by the Apache Software Foundation.
> 
> Since eZ Systems will still make use of the Zeta project and plans to
> even increase the usage drastically, their employees will continue to
> contribute. eZ Systems also maintains a very vital open source
> community around eZ Publish and it is expected, that their partners and
> contributors also make use of and contribute to the Zeta project.
> 
> The main development team of eZ Components left eZ Systems in early
> 2010. While their initial idea was to continue with the project
> themselves, they finally worked out the plan of moving the project into
> a dedicated foundation together with their old employer. The ASF was
> decided to be the most feasible new owner of the project.
> 
> To reflect the change of ownership and the changing project structure,
> the name *eZ Components* was changed to *Zeta Components*. The original
> development team is willing to maintain the project further on, as they
> already put lots of efforts into it and feel very passionate about it.
> eZ Systems is so kind to donate the IP of the source code basis,
> documentation and infrastructure code to the Apache Foundation.
> 
> The goal of all involved parties is, to avoid a re-focusing of the
> project, in terms of it becoming an exclusive part of the eZ Publish
> content management system, and to further develop Zeta as an
> independent project.
> 
> The most recent state of the eZ Components project can be found here:
> 
> - - Website [1]_
> - - Code repository [9]_
> - - Issue tracker [10]_
> - - Mailinglist archive [11]_
> 
> Statistics
> ==========
> 
> Zeta currently consists of:
> 
> - -  712,708 lines of code:
>   - 294,234 of these are non-test code:
>     - 151,439 of these docs
>     - 142,795 of these non-docs
> - - Non test code consists of:
>   - 1,909 classes:
>     - 184 abstract classes (9.64%)
>     - 1725 concrete classes
>   - ~123 lines of code per class
> - - Tests consist of:
>   - 651 classes with 7134 methods
> 
> Needs for Zeta Components
> =========================
> 
> Some of the initial reasons to start the project have already been
> explained in the `About the project`_ section. Find in following a
> summary of the reasons why there is still a need for the project and
> where its benefits are:
> 
> While there are many frameworks and class repositories for the PHP
> language out there, none of them has such a strict focus on quality.
> Many frameworks are developed by hobby programmers and do therefore, or
> for historical reasons, not have a quality assurance process in place.
> The result is varying code quality and often un-maintained code. Many
> of them also still support PHP 4, which results in slow and hard to
> maintain code. In addition to that, many such projects suffer from
> lacking architecture and design processes, as well as naming and usage
> inconsistencies. Furthermore they allow code duplication and therefore
> do not give the user a consistent choice of functionality.
> 
> The Zeta project has, in contrast to that, strict quality assurance,
> architecture and design processes and consistent naming, development
> and documentation guidelines. Its components are built upon PHP 5.1 and
> support all later versions. Zeta focuses on generality and
> extensibility. Beside that, Zeta components provide many components
> which cannot be found in any other PHP library in this way. These are:
> 
> DatabaseSchema
>     A component to read, write and store database schemas independent
>     from the relational database system in use. Beside that, schema
>     differences can be stored and written to a database to update the
>     schema.
> Document
>     Using this component, a developer can convert between many
> different
>     document formats, like (X)HTML, DocBook XML, ODF, Wiki markup and
>     more. The component is designed to support any kind of document
>     format in the future.
> Graph
>     This module is used to render many different kinds of charts from
>     numerical data into various image file formats. It can be used with
>     any of the image generation libraries available in PHP.
> Mail
>     While most email libraries just support sending plain text or HTML
>     emails, this component supports various email RFCs [5]_ including
>     multi-part MIME. Furthermore it can receive email via IMAP and POP
>     and process these mails to be presented in the very same way as
>     they are represented for sending.
> PersistentObject
>     This component is inspired by Javas Hibernate component, providing
>     an object-relational mapping mechanism. It supports typical CRUD
>     operations and has an optional layer for identity mapping.
> Search
>     An abstraction layer for different search engines, one of them
>     being Solr, is realized in this component. Its goal is to enable an
>     application developer to transparently exchange the search engine
>     used in an application.
> Webdav
>     This module delivers a fully featured, customizable WebDAV (class 1
>     and 2) server implementation to the user. Its is developed with
>     focus on interaction with different clients and to iron out their
>     misbehaviours. The server can easily be integrated into custom
>     applications.
> Workflow
>     There is currently no other known library for graph (or workflow)
>     driven development in PHP. This framework provides the basis for
>     such a programming approach as well as control and storage
>     mechanisms.
> 
> The current code base is designed in a flexible and extensible way, so
> that integration of new features is easily possible. Several such
> feature additions have already been noted down in the issue tracker
> [10]_ to be implemented in the future (current count is 124). In
> addition to that, several new components have already been discussed on
> the mailinglist for being added in the future.
> 
> The current user and developer base almost guarantees, the there is an
> active future for the project.
> 
> Zeta and the ASF
> ================
> 
> In early 2010 the last members of the eZ Components development team
> left eZ Systems for various reasons. Since they gave their all for the
> project in the past and still fully support the project and its ideals,
> the idea of spinning off the project into an independent foundation was
> born. Discussions with eZ Systems' management and developers turned
> out, that this is the way to go.
> 
> The Apache Software Foundation is the most accepted OSS foundation and
> best supports the ideas involved in the spin-off perfectly:
> 
> - - Maintain clean IP
> - - Keep permissive licensing
> - - Grow the contributor base
> - - Stick to a meritocratic approach
> 
> There is no comparable project inside the ASF and we really think, that
> both parties (the project and the ASF) would benefit from contribution
> the code base. Zeta and its community will get a new and secure home
> and will flourish from the above named facts. The ASF will receive many
> new developers and enthusiasts, which are likely to also participate in
> the foundation itself and possibly other Apache projects.
> 
> - --------------
> Current status
> - --------------
> 
> The following sections give you an overview of the state of the Zeta
> project, in terms of its compatibility and willingness to become an
> Apache project.
> 
> Meritocracy
> ===========
> 
> Although initialized and led by a company so far, the project has been
> following a quite meritocratic approach from its start. All technical
> decisions have been discussed publicly on the mailinglists and were
> never dictated by the management. Furthermore, the project was always
> open for 3rd party contributed components, patches and feature
> requests.
> 
> This approach is mainly the result of all core developers being
> involved in other open source projects around PHP. Find details on this
> in the `Core Developers`__ section of this document.
> 
> One reason for moving the project to the ASF is to stabilize and expand
> the meritocratic approach. We want to communicate this goal clearly to
> the community and want to gather more contributors for the project.
> 
> Community
> =========
> 
> eZ Components was mainly developed by the core team of lately 4
> employees of eZ Systems. During the past 5 years, 10 employees
> contributed actively to the project. In addition, 18 external
> contributors signed the CLA and actively provided patches or full
> components to the project.
> 
> The project maintains a vital open source community, with currently
> more than 15 people active on the development mailinglist, discussing
> and contributing. In addition, there is an active IRC channel, which
> counts between 20 and 40 people and is used for support and technical
> discussions.
> 
> We are sure that this community will stay with the project, if it moves
> to the ASF, and that there is growing potential from the PHP users
> community. Especially when people realize that the project is no more a
> "product of eZ Systems", but a fully independent OSS project.
> 
> eZ Systems plans to integrate the components provided by the Zeta
> project further into their product eZ Publish. Therefore, the company
> also plans to have their developers contribute further. This includes
> bug fixes, feature additions and potentially new components.
> 
> In addition to that, there is a vital community of partners and open
> source contributors around eZ System's product eZ Publish. These
> parties already make heavy use of eZ Components and will continue to
> use it as Zeta Components, since the project provides essential
> building blocks for eZ Publish development. While some of them already
> contribute to the project, it is expected, that contributions and
> participation from this community grow in the future.
> 
> Beside that, the contributors are willing to represent and evangelize
> the project at open source events and to attract new contributors.
> 
> Core Developers
> ===============
> 
> Zeta has four core developers by now, which all have a degree in
> computer science and are long time members of the open source community
> around PHP. As there are:
> 
> Derick Rethans
>     Derick works on the core and multiple extensions for the PHP
>     language itself. In addition, he is the creator of the widely used
>     Xdebug PHP debugging extension [12]_.
> Sebastian Bergmann
>     As the creator and maintainer of PHPUnit [13]_, Sebastian is head
> of
>     development of this de-facto standard for unit testing in the PHP
>     world.
> Kore Nordmann
>     Kore Nordmann maintains several open source projects, for example
>     Arbit [14]_, a PHP based issue tracking and project management
>     system. Beside that, he regularly contributes to various other
>     projects in the PHP world.
> Tobias Schlitt
>     As a long time member of the PEAR project [15]_, the standard PHP
>     code collection, Tobias has brought experiences in software
>     architecture and PHP development. Beside his work on Zeta, he
>     contributes to various other open source projects and is a
>     maintainer of Planet PHP [16]_.
> 
> Alignment
> =========
> 
> The Zeta project fits especially into the ASF for its meritocratic
> development approach and the target of having a very permissive
> license.
> There is currently only one component in Zeta interacting with an ASF
> project: The Search component supports Solr as a backend. However, PHP
> is a project that is quite close to the ASF and many applications
> written on basis of Zeta will run in an Apache web server.
> 
> In addition, some employees of eZ Systems also contribute to other ASF
> projects. Jerome Renard maintains some custom Apache server modules and
> contributed bug reports and patches in the past. Paul Borgermanns
> contributes to Solr and Tinka.
> 
> - -----------
> Known Risks
> - -----------
> 
> In following, we try to analyze the risks for the Zeta project.
> 
> Orphaned Products
> =================
> 
> The Zeta project has been developed for the past 5 years under the name
> eZ Components. There is a vital and active community around it. While
> the core development team has been paid for development in the past,
> they did that also with their heart and soul and will therefore not
> allow the project of becoming orphan.
> 
> eZ Systems will continue to use the project in its main product (eZ
> Publish) and even plans to extend the usage. To realize this, eZ
> Systems will make its developers contribute to the project.
> 
> The project is in use by many PHP companies and in open source projects
> like Arbit. In addition, 2 of the core developers plan to found a
> company and to build their business model onto this project, among
> others.
> 
> Chances that development of Zeta will die away in the future are
> therefore rare.
> 
> Inexperience with Open Source
> =============================
> 
> The project exists since 5 years as an open source project and one
> reason for putting it into the ASF is to keep it this way. All core
> developers have long time experiences in leading and contributing to
> various open source projects. eZ Systems is an open source company and
> its business model is fully built upon OSS.
> 
> Homogeneous Developers
> ======================
> 
> 3 of the 4 core developers of Zeta reside in Germany, but work for 2
> different companies. One of them resides in London, UK. eZ Systems is
> located in Norway and has a vital community of partners and
> contributors among Europe and even world wide. All parties involved in
> the project are looking forward to new team members from all over the
> world.
> 
> Reliance on Salaried Developers
> ===============================
> 
> The four core contributors were paid for working on the project in the
> past 5 years. However, their intention to work on the project on a not
> salaried basis is clear and strong, as can be seen by the efforts put
> into the project becoming independent.
> 
> eZ Systems might pay developers for working on Zeta in the future. Two
> of the core contributors might work on the project in terms of their
> own company in the future.
> 
> Relationships with Other Apache Products
> ========================================
> 
> Zeta Components are already used in some open source projects outside
> the Apache Foundation, like eZ Publish and Arbit. We encourage other
> projects to make use of the components and are looking forward to their
> feature requests and contributions. Beside that, the Search component
> in Zeta enables the easy usage of Solr (Lucene) from within PHP.
> 
> We would also be happy to receive technical input from any other Apache
> project and OSS projects in general and are looking forward to
> integrating with them.
> 
> A Excessive Fascination with the Apache Brand
> =============================================
> 
> All core contributors of the project already have a well-established
> standing in the OSS community, since they contribute to various
> projects for a long time now. The goal of joining the ASF is not driven
> by the demand of more publicity. None of the contributors has
> misdemeanors against any OSS project / foundation at any time.
> 
> However, the core contributors fully agree with the values and ideals
> of the ASF and would be happy to be part of this movement.
> 
> - -------------
> Documentation
> - -------------
> 
> .. [1]  eZ Components: http://ezcomponents.org .. [2]  eZ Systems:
> http://ez.no .. [3]  eZ Publish: http://ez.no/ezpublish .. [4]  eZ
> Systems community: http://ez.no/developer
> 
> .. [5]  Mail component: http://ezcomponents.org/s/Mail .. [6]
> Development process:
> http://ezcomponents.org/contributing/dev_process
> .. [7]  Coding guidelines:
> http://ezcomponents.org/contributing/coding_standards
> .. [8]  Current CLA: http://ezcomponents.org/contributing/cla
> .. [9]  Code repository: http://svn.ez.no/svn/ezcomponents/
> .. [10] Issue tracker: http://issues.ez.no/ProjectSelect.php?Id=1
> .. [11] Mailinglist: http://lists.ez.no/pipermail/components/Systems
> 
> .. [12] Xdebug: http://xdebug.org
> .. [13] PHPUnit: http://www.phpunit.de
> .. [14] Arbit: http://arbitracker.org
> .. [15] PEAR: http://pear.php.net
> .. [16] Planet PHP: http://planet-php.net
> 
> .. [17] Model-View-Controller:
> http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
> .. [18] Continuous integration:
> http://en.wikipedia.org/wiki/Continuous_integration
> 
> - --------------
> Initial Source
> - --------------
> 
> Alls source code was developed in the SVN repository provided by eZ
> Systems so far. This repository, including all releases and branches of
> the code, can be found here in [9]_.
> 
> - ---------------------
> External Dependencies
> - ---------------------
> 
> There are no external dependencies which need to be taken into account.
> Zeta components works on basis of PHP and its bundled libraries. It can
> optionally work with external tools like e.g. Solr and ImageMagick, but
> there is no reason to bundle these resources users are not forced to
> make use of them.
> 
> - ------------------
> Required Resources
> - ------------------
> 
> The current project infrastructure is hosted by eZ Systems, but this
> should change. The project can be fully hosted on its own servers,
> sponsored by some of the core contributors. However, for reliability
> reasons, there are some services which we would want to have hosted by
> the ASF.
> 
> Mailinglists
> ============
> 
> - - zeta-private
> - - zeta-dev
> - - zeta-commits
> - - zeta-users (could initially also be handled on zeta-dev)
> 
> Subversion directory
> ====================
> 
> We would like to have the code repository hosted by the ASF:
> 
>     https://svn.apache.org/repos/asf/incubator/zeta
> 
> Issue Tracking
> ==============
> 
> The core developers would better like to host issue tracking on their
> own, since an issue tracker that is build upon Zeta Components (Arbit
> [14]_) already exists and is maintained by some of the core developers.
> This tool also offers continuous integration [18]_ facilities, which is
> important for the project.
> 
> - ------------------
> Initial Committers
> - ------------------
> 
> - - Derick Rethans <e...@derickrethans.nl>
> - - Kore Nordmann <k...@php.net>
> - - Tobias Schlitt <t...@php.net>
> - - Sebastian Bergmann <sebast...@php.net>
> - - Ole Marius Smestad <o...@ez.no>
> - - Roland Benedetti <r...@ez.no>
> 
> No CLAs sent, yet.
> 
> - ------------
> Affiliations
> - ------------
> 
> Ole Marius Smestad is head of development of eZ Publish, Roland
> Benedetti is product manager of eZ Publish, both employed by eZ
> Systems.
> Kore Nordmann and Tobias Schlitt are in the process of creating a
> company together. All four core contributors worked together on the
> original eZ Components project on behalf of their employment at eZ
> Systems AS, but are now independent of this company.
> 
> - --------
> Sponsors
> - --------
> 
> Champion
> ========
> 
> Erik Abele accepted being our champion.
> 
> Nominated Mentors
> =================
> 
> We don't have mentors, yet, and are looking for them.
> 
> 
> Sponsoring Entity
> =================
> 
> We want to kindly ask the Apache Incubator project for sponsoring.
> 
> - --
> Tobias Schlitt         tob...@schlitt.info       GPG Key: 0xC462BC14
> a passion for php                     http://schlitt.info/opensource
> Member of the eZ Components project          http://components.ez.no
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAkvMYC4ACgkQ5bO3TcRivBQvhQCZAeGRa3AnLpb27zk7UUzhEwdg
> FKwAn2cy6pFAA9AswDuQSBK87xslsylO
> =nmLP
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
> For additional commands, e-mail: general-h...@incubator.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to