Michael G Schwern said:
http://use.perl.org/~schwern/journal/35127
What I would like is a way to explicitly indicate bug and API stability,
as well as compatibility, in META.yml. For example...
version: 2.01
api_version: 2.0
api_compatibility: 1.4
Which API? Are we only talking about the programming interface, or are we
also considering protocol and storage file format versions/changes? How
would you distinguish between these? What if there are several types in
the same package?
Would it be sensible to introduce an API.yml file instead of shoehorning
stuff like this into the existing files?
stability: high
Are you talking about the author's intentions here, or the module history?
And how is this an improvement against established conventions with
version numbering? (0.x_99 vs. 1.0) Is the author promising something
about the the entire set of APIs a package supplies (including any file
formats or protocols), or just the programming interface?
release_type: bugfix
This may be useful, but doesn't this kind of info better fit into the
Changelog? (If you want it in a machine-parsable format, then I'd look at
Chris Dolan's Changelog.yml thoughts[1]. I like what he's been doing.)
api_version defaults to version. Since most folks don't religiously
track when they add new things I believe this will be the normal state
of affairs.
So, the API would by default get it's version number bumped every release?
Would that give a correct impression about the state of the package?
stability defaults to high
How optimistic :-P
release_type and api_compatibility default to unspecified.
This would allow automated installers to warn the user when they're
about to upgrade to an unstable version or an incompatible release or a
major upgrade. It allows authors to have explicit sliding windows of
backwards compatibility.
I think the goal of this idea is a good one, and definitely worth our
attention. But I'd rather look into placing this kind of metadata into the
Changes file in some way - mostly because that's where one would look for
info like that to begin with.
Just my €0.02 worth.
- Salve
[1] http://use.perl.org/~ChrisDolan/journal/34951
--
#!/usr/bin/perl
sub AUTOLOAD{$AUTOLOAD=~/.*::(\d+)/;seek(DATA,$1,0);print# Salve Joshua Nilsen
getc DATA}$"="'};&{'";@_=unpack("C*",unpack("u*",':4@,$'.# <[EMAIL
PROTECTED]>
'2!--"5-(50P%$PL,!0X354UC-PP%/0\`'."\n"));eval "&{'@_'}"; __END__ is near! :)