Announcement: New guidlines for BC breaking releases
| From: | Lukas Smith | Date: | Fri, 14 Nov 2003 09:24:06 +0000 |
| Subject: | Announcement: New guidlines for BC breaking releases | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-23592@lists.php.net to get a copy of this message | ||
Hi,
this has been a lengthy one in the making :-)
Vote Result:
5x +1
1x +0
2x -1
_____
+3
The goal is to make it possible to be able to run multiple major versions in
one script.
For this reason new major versions (BC break or when the maintainer feels it
makes sense as a result of dramatic feature additions or rewrites) require a
new package using the following naming convention in the following order of
preference (where 'Foo' is the package name and 'X' the major version
number):
1) FooX
2) FoovX
3) Foo_vX
The choice should be made based on preventing current and future misleading
or ambiguous names. This means good care should be taken in making the right
choice for the package. Obviously the first two allow for some ambiguity (is
DB2 a package for IBM's DB2 or just the major version 2 of DB? - is IPv4 a
package for IPv4 or is it the 4th major release if IP?). They don't break
the idea of "_" mapping to directories (the class DB_NestedSet implies that
there is a nestedset.php in the DB dir). The last one prevents any ambiguity
but it's the least visually pleasing and also breaks the '_' to directory
mapping and is therefore the last choice.
We also came to the conclusion that the pear installer should not be clever
about the relationship between two major releases aside from printing out
notices about the fact that there is a newer major version when a user
installs an earlier one. However all major versions of a package will be
listed on one package home. This is especially important in order to not
break tutorials that cover older major releases (tutorial xyz for major
version 1 simply says 'pear install Foo' - if the system would then install
'Foo2' the user might be in for an unpleasant surprise).
Therefore, new major versions are for all intents and purposes new packages
with the above mentioned exceptions. The names of these new packages are
derived using one of the above mentioned naming conventions.
Regards,
Lukas Smith on behalf of the PEAR Group