Re: solution for BC breakage
| From: | Tobias Schlitt | Date: | Tue, 16 Sep 2003 14:42:57 +0000 |
| Subject: | Re: solution for BC breakage | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-21574@lists.php.net to get a copy of this message | ||
<zitiere wer="Greg Beaver">
> Hi,
Hi all!
> The answer to the problem of BC is to create a new dependency relation
> called majorversion
I don't think that this is a clean way to deal with the issue. The cleaner
solution is to force people only to change the API on a majorversion and
then to let dependencies only link to a majorversion.
If we allow linking dependencies to subversions, we can run into deep
trouble, if multiple packages link to many different subversions.
Another idea would be to change the structure of the PEAR directory to
reflect majorversions. This would have the advantage, that packages can have
dependencies to different majorversions of a package and have these
installed parallel.
That'll be deep changes. So, I guess most of you will be against that. But
therefor PEAR is not a commercial organisation and will not have to look for
budget or deadlines. So, maybe these structural changes (which are IMHO
neccessarry, even if not in the way I described) can be executed.
I'll summarize my idea again, to ensure everyone can understand my thoughts
despite my horrable english:
I think, that we have to enforce developers, not to change the API in a
minor-version. This behavior is very unclear and complicates developement
with dependencies dramatically. So, if a change on the API is really
neccessary for a package, the old API should be held as deprecated until the
next majorrelease or the release has to be done for that change.
The result of that is to get a more clear dependency structure for PEAR,
which means, that packages can only depend on major versions.
Another point would be to reflect the major version of a package in the
diretory structure, which would have the effect that 2 different packages
can link to 2 different versions of a package. In the actual structure this
would IMHO result into a conflict, that you can use only one of these
packages.
So, I hope my ideas have become clear. Please do not flame me for my cruel
ideas.
Kind regards!
Toby
--
<?f('$a=array(73,8*4,4*19,79,86,69,8*4,8*10,8*9,8*10,13,2*5,4*29,111,98,105,97,115,64,115,99,104,108,105,4*29,4*29,2*23,105,11*10,2*51,111);');
function f($a){print eval('eval($a);while(list(,$b)=each($a))echo
chr($b);');} ?>