AM> How does this amount of effort (keeping two CVS repositories AM> in sync) compare to maintaining just one tree but with AM> "feature-test macros" as one might try to do in C? In other AM> words, how much help would it be if (for example) Python's AM> compiler optimized away tests of the form, e.g., if AM> __version__ > ( 2, 2 ) : as it does now with -O for "if AM> __debug__:" but even more deeply (so even some "syntax errors" AM> in the optimized-away conditional would be OK -- catering for AM> future syntax changes at the add-a-keyword level, e.g.)? AM> Maybe the obfuscated-with-version-tests merged source would be AM> too hard to maintain -- and maybe not, so I'm quite curious AM> about what your experience suggests here. Intuitively, it AM> might seem a version test could perhaps help two or more AM> versions be alive at the same time, but I know of so much AM> controversy over C's #if (mostly, IMHO, because of its AM> over-use) that I wonder.
Part of the problem is implementation details (i.e. avoiding the use of Python 2.2 features in standalone, but not in the Python cvs tree). Part of it is due to the nature of distutils package layout (i.e. you need to put setup.py, README, etc. someplace, and distutils seems to strongly discourage it being in th epackage). Part of it's also that I feel I have more leeway to change things in the standalone package.
But at some point it will stop making sense to distribute a separate package.