Re: bundles

From: Date: Tue, 21 Sep 2004 05:26:49 +0000
Subject: Re: bundles
References: 1 2 3 4 5 6 7 8 9 10  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-33502@lists.php.net to get a copy of this message
Okay, go ahead, implement it and prove me wrong (I agree completely about version ranges btw). - Stig On Mon, 2004-09-20 at 18:04, Greg Beaver wrote: > Stig S. Bakken wrote: > > >>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. > > > > > > IMHO, this is about build/release management, and should be dealt with > > before packaging. In my experience, the best solution to this, bundles > > or not, is to have a stable (CVS) branch for each PEAR major.minor > > release, ala > > http://pear.php.net/manual/en/standards.cvs.php (that page > > is actually a bit misleading, since it calls branches QA_n_n_n, while > > QA_n_n is really what you want according to current CS). > > I really don't see any way this solves the problem, there already is a > branch for PEAR_1_3, which is stable, and HEAD is unstable. This has no > effect on the problem at all. > > > The PEAR package is a bit special actually, and if I did this today I > > would embed Console_Getopt and System differently, and not have any > > package dependencies in the PEAR package. > > The flaw is in the way dependencies are designed - there is no way to > specify a range of acceptable versions and a set of specifically > certified versions. > > This idea, by the way, is hardly new. Windows installer has supported > the idea for years. It is possible to download dependency bundles and > upgrade them independent of the primary application (.dlls, for > instance). Specific versioning is used, and it has worked brilliantly. > It's much better than the old days when you were forced to download > the whole thing over again. > > >>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. > > > > > > Yes, it is. But having an alpha package bundled with a stable > > bundle/package is no less confusing! The package manager isn't the > > right place to deal with this sort of problem. > > I don't understand. Are you saying that we should never be allowed to > add new, complex features to stable releases, even if they don't affect > existing functionality? (probably not - but bear with me as I try to > understand :) > > >>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. > > > > > > But is this is general problem, or a specific one caused by some bad > > decisions done for the File/File_VFS packages, or some other "historic > > reason"? > > > > Would PEAR developers repeat the same mistake again now that we've > > learnt these things the hard way? I'd prefer that we all learn from > > these issues, fix the specific problems for those specific packages, and > > just make sure it doesn't happen again. > > This is a general problem. Developers continue to make mistakes no > matter how much we learn from the past. When you design an application, > you don't necessarily know the best way to use it. What was once an > ancillary part of the package may become crucial to more people than the > primary part. > > >>4) Once a package is split up, it's very difficult to coordinate the > >>pieces, especially at uninstall time. > > > > > > But you have that problem regardless, as long as it is possible to > > upgrade part of a bundle separately. It simply has to be dealt with > > either way. > > The only solution is to be more strict with versioning in a dependency. > Each dependency should specify a recommended version that will be > installed _regardless of available versions_. On the other hand, a > newer version of the dependency should be able to specify _explicit_ > compatibility with the older versions. > > Anything else would error out and cause installation to fail, except for > the use of --force (or a new option specifically for this, > --relaxedversioning), which would allow installation the way it works now. > > Since I will be the one writing the code for this, perhaps it's best to > let me write it, and we can always remove it after there has been some > regression testing. Regression testing always finds the bad ideas. The > point is, I am positive that these problems exist, and can be elegantly > solved in a way that supports both the upgrade freak and the > fear-of-breakage users, without requiring any advanced knowledge from > the fear-of-breakage folks, or pain from upgrade freaks. > > I've already willingly removed entire files that didn't make sense after > the initial design, so this would be no different. > > >>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 > > > > > > I may or may not have ready it :) news.php.net times out here though, > > but if you give me the subject+date I can find it in my own archive. > > Subject: possible solution to bundles vs. bundles [sleeping does help!] > date: Wed Sep 15 17:36:32 2004 > > Greg

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