unread
Here is a quick outline regarding the reasons for using a
version agnostic system. These have not been well
communicated before which resulted in some resentment of the
approach. I urge to read this with an open mind.
Advantages:
a) Improving accessibility to the source code for everyone.
b) Fostering synchronization across branches.
c) Enables easy migration between trees.
Disadvantages:
d) Win32 developers might lose 10s every 6-18 months.
a) Improved accessibility to the source code for everyone.
The module name phpX suggests that you instantly get PHP X
which is not true, unless PHP X is on the HEAD branch.
This has resulted in lots of frustration in the past where
people could not figure out why "php4" would not give them
PHP 4, but a broken PHP 5 checkout.
Thus, "php4" has been already eliminated. For the same
reason, "php5" would become defunct, but people would
continue to try using it. Embedding a version in the
module name simply does not work in the long run, because
it implies semantics which cannot be supported by CVS.
b) Fostering synchronization across branches.
The module name "php5" is misleading. If developers think
of the PHP HEAD branch as a separate "php5" module, they
will not be aware of other branches. And thus,
improvements will not be merged properly, causing a
detoriation in code quality.
A recent example: When the SNMP maintainer wanted to
apply/test a patch properly, he had to come to this mailing
list to ask for the proper procedure. Other maintainers
might simply not bother and will leave the code as it is:
unpatched.
c) Enables migration between trees.
With php4/php5 you had to have distinct checkouts. With
php-src, you only need one checkout where "cvs upd -r XXX"
lets you switch between the major PHP versions.
Disadvantages:
d) Win32 developers might lose 10s every 6-18 months.
After a fresh checkout, VC++ needs to be restarted once.
Note that building PHP takes already ten times longer than
this little one-time step.
- Sascha