Re: [RFC2] Handling Backwards Compatibility in PEAR
| From: | Alexey Borzov | Date: | Mon, 22 Sep 2003 19:17:21 +0000 |
| Subject: | Re: [RFC2] Handling Backwards Compatibility in PEAR | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-21905@lists.php.net to get a copy of this message | ||
Hi!
Rob Hutton wrote:
I never said that, please check the discussion. In fact I like the idea of Foo2-style packages, because this is the way it is done in other projects.Two API incompatible versions are handled by Package/Foo.php containing class Package_Foo Package/Foo2.php containing class Package_Foo2 (An API incompatible rewrite of Package_Foo)Which is package renaming which you said you were against
Yes. So now I *may* have to fix my app on a package upgrade, but after the proposed improvement I will *need* to fix it to do an upgrade. Cool.3) having to fix my require_once calls and class names on each upgrade, even if no BC breakage actually happenedThat is the whole point of this discussion. Currently, if someone breaks BC then you HAVE TO FIX YOUR APP ON A RELEASE. Under the new system, you can run against the current version of the library, then upgrade as you have the need/desire.
This is what I consider a counter-intuitive versioning scheme:4) having an insane counter-intuitive versioning scheme (why not Package_Foo_2003_Advanced_Server, BTW?)What? We have been discussing versioning schemes that take the best of what we see from other schemes and apply rus consistent with the goals of PEAR development. Again, please check out the archives of this discussion.
In other words: FOOw x.y where:The problem is, no one does it this way. Even PHP's own versioning scheme is different.w reflects API version allows API Additions allows ANY BC breakage not related to bugfixes/security fixes allows ANY BC breakage releated to bugfixes/aecurity flaws x reflects new features allows API Additions DOES NOT allow BC breakage not related to bugfixes/security fixes ormajor BC breakagey relects bugfixes/security fixes allows only minor BC breakage directly related to fixing bugs oraddressing security flaws