Re: bundles

From: Date: Sun, 19 Sep 2004 23:20:54 +0000
Subject: Re: bundles
References: 1 2 3 4 5 6 7  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-33459@lists.php.net to get a copy of this message
Stig S. Bakken wrote:
But what are we trying to fix here? I have to admit I don't really see a problem that needs fixing :) Do people *need* to be able to choose which parts of a package/bundle they want to install, and won't optional dependencies solve this? We're talking about a good amount of complexity for (IMHO) questionable gain.
Optional dependencies serve a useful purpose right now, but they aren't quite specific enough. An optional dependency is something that is literally optional - it is never, ever absolutely needed in order to perform a function, but makes that functionality better. Many packages have been forced to abuse this definition, and instead use it to define a dependency that is *required* for fringe use. Also, there are other situations where a dependency is not optional, but should be in a separate package with separate release cycles. I know you haven't had as much time to read all of the threads, so I'll re-summarize the problems I've run into again and again. 1) Larger packages contain too many elements PEAR consists of (or will consist of): - the installer - PEAR_ErrorStack - PEAR_Exception - Console_Getopt - System There are significant bugfixes in PEAR_ErrorStack that need to be released, but I can't just release the entire PEAR package because 1/5 of it has changed. Console_Getopt can never be changed because it will instantly break all PEAR installations (and it did a few months ago). System is a component that could easily be a separate package. 2) Different chunks of a large package have different stabilities. Right now, PEAR is stable, but PEAR_ErrorStack is alpha. This is inherently confusing to users. 3) People often want only a sub-section of a package, such as File_VFS, which is stuck forever as a subpackage of File, and can never be extracted because of BC issues. With the bundling solution I've described, it will be possible to extract File_VFS, finally, into its own package, while maintaining BC with the existing File package. 4) Once a package is split up, it's very difficult to coordinate the pieces, especially at uninstall time. You probably missed the message (or maybe you didn't and hated it :) where I described the solution I think will work best, it's at: http://news.php.net/php.pear.dev/33393 This defines in-package bundles as groups of optional dependencies, where they belong. Greg

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