Re: [RFC2] Handling Backwards Compatibility in PEAR

From: Date: Sat, 20 Sep 2003 08:51:28 +0000
Subject: Re: [RFC2] Handling Backwards Compatibility in PEAR
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-21834@lists.php.net to get a copy of this message
On 20 Sep 2003 at 12:39, Alexey Borzov wrote: > Stefan Neufeind wrote: > > > This is not what we discussed, right? This way you can't have a 2.x > > and 3.0 co-exist on a system. For sure this should be no problem on > > a computer you're working on - but it might become a problem in > > webhosting-environments. > > Lets say this loudly: if you want to fully control your environment, > you'll need to keep a private copy of PEAR. If you are using a hosting > that does not allow this, tough luck. You get what you pay for, > generally. Agreed. But you can't say "well, your provider upgraded and now the app doesn't run anymore? your problem.". That's not possible. And as a provider you will always get questions like "was the update necessary" and "everything ran fine - so why did you update" etc. For sure you have to update to keep pace with the development and all new features introduced in newer versions. But you will have a hard time with all customers who's apps you break. And you can't fully retest every app nce you've updated. Don't take it personally but: Wouldn't such a "you get what you paid for" and "it's not my problem" be a bit ignorant to the circumstances? I prefer using a dedicated server or at least a virtual server myself - but many other people don't. So classical webhosting is a problem - and as a provider you can run into real big problems when you upgrade and all customers start getting angry at you. > > You can't just judge on what version > > installed packages depend but you also need to judge: > > - if any packages that may need to be installed in the near future > > depend on the old version - if any apps (that you don't know of > > because they're not listed in the package deps) still need the old > > version > > I think it is not feasible. > If a new version of, say, glibc comes out Linux ditributors do not do > clever hacks to make old and new glibc versions co-exist. They simply > rebuild the existing packages for the new glibc. Why shouldn't we do > the same? a) Because it's not a simple "rebuild" like with most c-sources. You need to change tha API accordingly. b) You don't have everything centralised like a Linux distributor has. A distributor knows all the packages he ships and can therefor make adjustments so that on the day he releases a new glibc he also provides the other packages in an updated form. c) We're not only talking about packages but also about apps. And you can't judge about all apps on your server. Maybe some even are only available in bytecode (refering to as 'encoded', because they might be commercial PHP apps shipped without source). > > Even if you remove one or two functions or rename them you will > > break BC - and this should, in my eyes, be a new Foo2, v2.0. For > > sure the dev should consider this version step / API breakage > > carefully so he doesn't run into version 68.5 after a year :-)) So > > if the API changes we could suggest that the new API set is thought > > about carefully and that all plans for the foreseeable future are > > considered in one (!) API-breakage-step. > > Package maintainers tend to change. Careful planning will not help > here. Okay, if maintainers change you're right. But what I intended was to make people think carefully that they don't change the name of a function (and by this break API and require a new major version) and a month later they rename another function (bumping the major version by 1 again). Maybe we can assume that people will think this far - but we should give them a hint to think this way :-)) Stefan

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