Re: [RFC_v3] Handling Backwards Compatibility in PEAR [hopefully the final draft]
| From: | Alexey Borzov | Date: | Thu, 25 Sep 2003 15:03:27 +0000 |
| Subject: | Re: [RFC_v3] Handling Backwards Compatibility in PEAR [hopefully the final draft] | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-22015@lists.php.net to get a copy of this message | ||
Hi!
Lukas Smith wrote:
Do you upgrade to a new major version on production server without first testing it on development one? Neither do I. If there are people who *do* this, new infrastructure will not really help here, they'll just add smore bugs changing the paths from Foo to Foo_v2.1) The proposed handling for mostly-compatible major versions andcompleteAPI changes is the same: this adds to confusion.Well this is a question of perception. I think it is unrealistic to assume that a package that has seen a major rewrite does not break BC. It is simply the norm. This may not be on the API level, but as I pointed out in hidden new bugs, unknown bugs being fixed, patch incompatibility, performance differences etc. Therefore imho it does not add to confusion but it makes it more clear that you are actually playing with a different beast now, eventhough the API might have not changed. Essentially what I am saying is that breaking BC is not just about having made changes to the API. There is much more to it.
Why don't we just add "clear guidelines" and not break PEAR? See my point?2c) It will be *necessary* to depend on a *specific* packageversionafter implementing this RFC. It is *possible*, but not *necessary* now.2a) and 2b) I don't see as an issue. 2c) is an issue. However since major version changes imply a drastic change in behaviour I don't see this so much as an issue. Today we never really had clear guidelines. So I am hoping that as a result of these guide lines API changes will be reduced because developer are now more aware of what this actually means for PEAR and its users.
As I said: "Well, this is a major version. It may or may not have BC breaks, but as it is installed to a different dir I don't really care" vs. "Well, this is a major version, but it passes all unit tests"4) This may serve as a good excuse to not have tests, QA process andothernecessary things.I dont understand that argument.
And voila: you can do $ pear upgrade Horde The key word in THE ULTIMATE QUESTION is "mandatory".THE ULTIMATE QUESTION THAT SHOULD BE ANSWERED BEFORE IMPLEMENTING THIS 1) There are people who may need to run several mostly API-compatible versions of a package at once. What exactly prevents them from doing the custom versions themselves, when needed? Why should this be mandatory and implementedatthe PEAR framework level?Indeed. I can maintain forks of every package myself. I don't use the pear installer for my applications atm anyways. But I was sort of hoping that the pear installer would soon enable me to also handle applications. For PEAR installer to handle applications, *another* change is needed. It should be able to have *several* servers to download packages from.