RE: [PEAR-DEV] PFC-RFC Update

From: Date: Tue, 25 Feb 2003 13:10:23 +0000
Subject: RE: [PEAR-DEV] PFC-RFC Update
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-13850@lists.php.net to get a copy of this message
Hi Christian, My initial opinion is that classes for PHP5 will be written differently to classes written for PHP4. Do you expect PFC's to have to maintain two classes? Best regards, Stu -- > -----Original Message----- > From: Christian Stocker [mailto:chregu@bitflux.ch] > Sent: 25 February 2003 12:16 > To: pear-dev@lists.php.net > Subject: [PEAR-DEV] PFC-RFC Update > > > Hi > > I rewrote and extended it with all the comments I got. So here it is: > > ******************************* > * PEAR Foundation Classes RFC * > ******************************* > > Goal: > > The intention of PEAR Foundation Classes is to provide > well-written, well-documentated, well-tested and > well-extendable code within PEAR and mark them as such. For > becoming a PFC, a class has to follow strict rules. Users of > PFCs can be assured that those class went through thorough > reviewing and testing and therefore should be the first > choice for everyone needing a class for a given task. > > Prerequesites: > -------------- > > - PFCs should only depend on PFCs. If a needed library is not > yet a PFC, the developers should take the appropriate steps > to make it a PFC, as well. > > - PFCs should preferably have 2 lead-developer or at least > some active and dedictated maintainers. > > - PFCs have to strictly follow the PEAR Coding Standards > > - PFCs have to provide scripts for unit testing > > - PFCs have to have thoroughly documented. This applies to > inline docs (PHPDoc), as well as external documentation (peardoc) > > - PFCs have to work on all widely used platforms (Windows, > Linux, *BSD, Mac OS X), except where it doesn't make sense. > > - PFCs have to have customizible error reporting (ie. they > inherit PEAR so users can do $obj->expectError() and so on). > > - PFCs do not break BC without providing users enough time to > adjust. A well thought upgrade path should be provided. > > - PFCs have to work with error-reporting set to E_ALL and > throw no NOTICEs, WARNINGs. > > - PFCs have to work with register_globals = off > > - PFCs have to run on each released PHP-version since 4.2. If > PHP 5 has matured, they have to run on PHP 5 as well. If new > functionality of later versions is needed, PFCs should > provide a user-land implementation of this functionality. > > - PFCs should keep the dependencies on non-standard > extensions as low as possible. There should always be a > fallback, if the extension is not available. > > - PFCs should follow the additional guidelines (to be > written) to ensure that the same approach is taken to solve > the same problem. For example, for pattern implementations, > the same general design and method names are used. > > - PFCs have to show some kind of stability (in API-sense) and > should be widely used. > > > Further Stuff: > -------------- > > - PFCs packages are signed with a PFC Key by the PFC core > group (see below). > > - PFCs are automatically tested on upload. If tests fail, the > package will not be published (multiple platform testing?) > > > Concurrent Packages: > -------------------- > > - Concurrent PFC Packages should be avoided as much as > possible. They are only allowed, if they take a whole > different approach to the same problem and if it's really not > fitable in an existing PFC. It is always preferred to extend > existing PFCs before providing a new one. > > > Becoming a PFC: > --------------- > > - A class can only become a PFC, if at least 2 independent > people have reviewed the code and gave their approval. > > - All prerequesites have to be accomplished. > > - If everything is ok, the PFC core group decides, if it > conforms to everything asked for and changes the state of > that package in the PEAR databse. There is no public vote for > becoming a PFC, since a class should become a PFC if it > conforms to the points above, and not if the public thinks it > should... [but how do you measure, if a class has enough > documentation/unittesting/etc..] > > > PFC core group: > --------------- > > - The PFC core group consists of some (5?) core developers, > which decide, when a class conforms to the standards and can > get the PFC badge. > > - The PFC core group signs newly uploaded PFC packages > > - If more than "some" people want to become a PFC Core > member, a public vote should be held. > > - PFC core group does not decide about which classes should > go into PEAR. This is still task of the whole PEAR community > and the exact procedure should be discussed in another RFC. > PFC core group should be an administrative counsil like the > php-group and not make "political" desicions. This wouldn't > be in the spirit of php development. > > > To be discussed: > ---------------- > > - Concurrent Packages: The above point is not very clearly > defined. From my point of view, it would make sensde to not > allow concurrent packages in PFC. But then again, when is a > package a concurrent package and when it's a new one. Who > decides that? > > - Who has the last saying? If some people want to do > something this way and some the other way, who decides? the > lead developer(s)? the community? > > - Who can commit to PFCs? at the moment, everyone with a > pear-cvs-account can commit to every package. Shouldn't be > this restricted for PFC classes? Or is this getting to > copmlicated for maintaining CVSROOT/avail. > > - If there is common approval of this RFC, what should be the > next steps? > > > > -- > nam...christian stocker adr...pflanzschulstr. 31, ch-8004 zurich > pho...+41 43 317 9984 www...http://blog.bitflux.ch > mob...+41 76 561 8860 ema...chregu@phant.ch > wor...+41 1 240 5670 gpg...0x5CE1DECB > > > -- > PEAR Development Mailing List (http://pear.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.pear.dev (#13850) next »