Re: About PEAR site's package process

From: Date: Tue, 06 Dec 2011 20:27:42 +0000
Subject: Re: About PEAR site's package process
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-54620@lists.php.net to get a copy of this message
> 1. remove the proposal process and let packages can be review or rating. > (let the packages be eliminated through selection and contest) There is a fine balancing act that needs to be made here... quality vs. quantity. Lesser quality control can easily lead to packages of poor quality, which would still be OK if all packages were not for the same thing... but if there were for example several Mail and/or DB abstraction packages in PEAR, it would soon become confusing for users which one is the most mature, especially if the APIs are similar. The situation in PEAR currently is not the same in that the reccomended package is clearly labeled (e.g. PEAR_MDB2 over PEAR_DB). Ratings don't really reflect feature set or quality... they reflect popularity, which is not directly reflected by those two. There are multiple open source hosting services (SourceForge, Github, Google code, etc.) in which people can easily filter based on the language. Some (I know SourceForge for a fact) even have ratings. The difference between them and PEAR is exactly that there is a centralized quality control at PEAR. > 2. pick up an easier document format like Markdown for describing synopsis > and tutorial, release note, change logs for packages. (keep the PHPDoc for > API reference) As Brett pointed out, this is being done in PEAR2, at least for release notes and change logs. There are no tutorials for PEAR2 packages yet (not on pear2.php.net at least), but this will come as soon as someone can make PhpDocumentor or another similar application (e.g. DocBlox) support such formats (i.e. support linking between API docs and tutorials). > 3. provide tester for reviewing package quality. I'm not sure I get this suggestion... there's PHPUnit that lets developers automate testing of their packages... the problem is not all developers use it. In PEAR, having PHPUnit is not required (although reccomended, and if present is sure to guarantee votes). In PEAR2, having a test suite with 50%+ coverage is required to get a "beta" status (not for alpha releases). This is done in order to lower the barrier of entry. If you're talking about a human tester verifying the package quality... that's part of the review process. > 4. quality testing, use phpcs PHP_CodeSniffer to detect violations of a > defined coding standard. This is already being done, and is encouraged in the coding standards guide to be done by developers themselves before submission. Not everyone uses it of course, hence the review process. I think the only part that needs improvement is in just one rule of the voting process - the less than 5 vote denial rule... many packages don't get 5 votes, but get fewer positive ones. I think those should be considered accepted instead of denied. The other part is in the package.xml generation, but that's been taken care of by yourself and by PEAR2's dev tools. 2011/12/6 Lin Yo-An <cornelius.howl@gmail.com>: > Hi folks, > > I am Yo-An Lin,  the author of Onion (PEAR package builder) > https://github.com/c9s/Onion. > > > Since from Perl, I noticed that there are not so many packages on > pear.php.net or even on pear2.php.net. > > Till now, there are about 600+ packages on pear.php.net, but there are more > than 100000+ modules and more than 9000 authors on the CPAN site of Perl. > the numbers are from <http://search.cpan.org/>. > > I found the main differences are: > > 1.  users can easily register account on CPAN, and upload their modules > easily and free, there are no proposal process to proof module authors > patience, and the modules can still can be reviewed, rating, given > comments, to improve the quality. > > 2.  to use a CPAN module is quite easy, you can review the api design from > the synopsis document section at the main page of package, then check if > it's good enough to use.   like this:   < > http://search.cpan.org/dist/Moose/lib/Moose.pm> the > Object-Oriented System. > > 3.  CPAN tester site, which tests all CPAN modules, and generate a matrix > test report (with different Perl versions and Platform), since PHP5.4 has > big improvements and changes, package testing on different languages and > platforms are very important.  < > http://www.cpantesters.org/distro/M/Moose.html#Moose-2.0401> > > And on PEAR site, if people want to upload a package, they have to post a > proposal for this, and keep waiting for a review or discussion for days or > weeks, this makes package uploading process longer. though this could > filter out some ugly packages. but most people will lose their patience, > and not going to upload new packages again. > > I deeply want to help the PHP PEAR ecosystem, I think there are 5 things > need to do: > > 1. remove the proposal process and let packages can be review or rating. > (let the packages be eliminated through selection and contest) > 2. pick up an easier document format like Markdown for describing synopsis > and tutorial, release note, change logs for packages. (keep the PHPDoc for > API reference) > 3. provide tester for reviewing package quality. > 4. quality testing, use phpcs PHP_CodeSniffer to detect  violations of a > defined coding standard. > 5. separate packages by vender names (this won't pollute global package > name), let people can define their dependencies with vendor names. > > Once the process is improved, people will come to PEAR to release their > packages more and more. > > There are many good references for this, like CPAN, or RubyGems. > > CPAN: http://search.cpan.org/ > RubyDoc: http://rubydoc.info/gems , > http://rubydoc.info/gems/abcrunch/0.0.5/frames > RubyGems:  http://rubygems.org/ > > > Thanks :-) > > > -- > Best Regards, > > Yo-An Lin > > http://github.com/c9s

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