Re: dependencies and applications

From: Date: Thu, 21 Aug 2003 19:57:08 +0000
Subject: Re: dependencies and applications
References: 1 2 3 4 5  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-20343@lists.php.net to get a copy of this message
Davey wrote:
Davey wrote:
Just tossing this into the air. This *really* seems like the least messy, easily implementable (its all on the individual package developers, and if they don't publish a new version of something by PEAR 2.0 perhaps it should be moved to siberia anyways), backwards and forwards compatible solution with the most amount of migration time. - Davey
And so, thanks to pierre (I mean that sincerely pierre :) we have the first flaw in my idea: the pear command is not currently able to let you specify the version to install. Also, there may be needed updates to pear web for this too. (i.e. pear.php.net/get/PEAR_Info/1.0 would get the latest release in the 1.0 branch). This means we cannot rush into these things (not that we would anyways!). We should slow down, and talk *specifically* how we can implement this feature (it should go in anyways IMO). We also need pear update* to be aware of seperate major versions too, and to never upgrade across major versions.
Add to these flaws that it will depend on the developer remembering to modify the package.xml for the new format - with no typos. For these reasons, it won't work. What can be done is an internal modification to the installer. Here is some pseudo-pseudo-code to describe how pear upgrade package would work: check: currentversion if (currentversion != array) -> if (newversion.major > currentversion.major) ---> install newversion into Package/v{$currentversion.major}/ -> else upgrade currentversion else -> foreach (currentversion as upgrade_to_majorversion) ---> apply installation code above In other words, development on version 1.x may continue, at the same time that development on 2.x is going. This is very common (Apache 1.3.x and 2.0.x). A pear upgrade would check for the current version of all installed major version, and for any upgrades to that major version. All would be easily automated. Arguments can be used to limit this for rare situations: upgrade 1.x major version only: pear upgrade --majorversion 1 package upgrade 1.x and 2.x major version only: pear upgrade --majorversion 1,2 package The same arguments can be applied to revert Greg

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