On Fri, Oct 9, 2009 at 7:43 AM, David Golden <xda...@gmail.com> wrote: > 04. Formalize allowed version number formats > > Proposal: > > Formalize the spec for version numbers as "decimal or normalized > dotted-integer (leading "v" and at least 3 components). (Dagolden) > > Comments: > > * It's not clear whether/how to include alpha versions (with underscores) > in the spec as they generally cannot be resolved by the toolchain > (Dagolden) > > * Version comparison for "greater than" must be both possible and fully > described in all possible combinations, as things like Module::Install > need to handle duplicate dependency assertions. For example, part of the > M:I internals silently assert "requires File::ShareDir 1.23". If the user > then manually asserts "requires File::ShareDir v1.24.1" M:I needs to be > able to determine which to keep and which to discard. > (AdamKennedy) > > * SUPER 1.16 declares some dependencies as the empty string instead of > zero. This apparently causes problems for some part of the toolchain. > We should clarify that empty string (and undef) are not allowed. I > believe the toolchain special cases 0 to mean "any" even if a module does > not define $VERSION, but we should specify that behavior explicitly as > well. (Dagolden)
First draft patch here. Still needs more work: http://github.com/dagolden/cpan-meta-spec/tree/04-version-formats