On Thu, Dec 16, 2010 at 11:40:18AM -0800, Nathan Kurz wrote:
> The solution seems reasonable, but remind me why there will be version
> numbers scattered through so many places?
The fundamental reason is that we're not a standard CPAN module. If we we're,
we'd only need to have $VERSION at the top of Lucy.pm and to supply
dist_version_from in Build.PL (or the equivalent in Makefile.PL, I forget what
it is). If you don't put an extra copy of the version number into your docs,
that's it, you're done.
We're doing a bunch of non-standard things:
* X.Y.Z version numbers.
* Version number in POD documentation.
* XSLoader::load() called within a BEGIN block, so we can't use $VERSION
for esoteric compile-time/run-time reasons.
* Different version number formats in different contexts, as covered in
the recent thread.
At some point, we're going to want to supply version numbers via other hosts.
C, for instance:
#define LUCY_VERSION_MAJOR 0
#define LUCY_VERSION_MINOR 1
#define LUCY_VERSION_MICRO 0
For the same reason that it's not feasible to derive all the version numbers
we'd need for Perl from such a canonical programmatic representation in C, I'm
assuming that there will be other hosts that will require special treatment.
Maybe not all of them, but I'm assuming that we will have a growing problem.
Marvin Humphrey