use Perl Log In
Changes.yml specs v0.01
OK, I'll bite. Here is a first rough draft for discussion and brain-storming, please post suggestions for add'l hash keys. Basic format of Changes.yml should be a stream of hashes, each hash defining one release.
---
version: 0.02 # plain number or version string, required
released: 2007-09-06 # datestring, required
author: Roland Giersig <RGiersig@cpan.org> # release author, required
stability: draft # stable | draft, required
backward-compatibility: partial # full | partial | none, required
breaks-compatibility-in: # list of subs, optional
- foo()
- bar()
bugs-fixed: # list of bugs with references, optional
- foo() crashes when given undef parameter <http://rt.cpan.org/Ticket/Display.html?id=1234>
- bar() should return "blah"
changes: # list of text, required
- rearranged arguments to foo()
- changed return value of bar()
---
version: 0.01
released: 2007-09-05
author: Roland Giersig <RGiersig@cpan.org> # release author, required
stability: draft
backward-compatibility: none
changes:
- first release
---
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.

What I'd want
(Score:1)( http://infotrope.net/ | Last Journal: 2007.08.22 15:14 )
I've been doing CPAN Watch [perlbuzz.com] for a couple of weeks now and I'm starting to get a handle on what I'd want if I had a machine-parsable changelog. A few random notes:
To me, the main distinction in changelogs is "noteworthy" and "not noteworthy". Bugfixes, additional features, and breaking backwards compatibility are noteworthy. Things like packaging fixes, test improvements, etc are not noteworthy. Admittedly my criteria are very personal here, but I think the distinction of "you might want to upgrade on account of this" vs "mostly of use to the maintainer" is worth noting.
A week or so back I came across some kind of XML format for changelogs. I have no recollection as to what it was, just that I hated it for its non-human-readability. You might want to investigate and see what it includes.
Random things that you might want to be able to capture in your YAML format:
And please, make the YAML format be in reverse chronological order. This is much better for human readability because hte most recent changes are most readily apparent.
Kirrily "Skud" Robert perl@infotrope.net http://infotrope.net/
Maybe something more along the TAP philosophy?
(Score:1)( http://gwolf.org/ )
Maybe we should take a step back...
(Score:1)( Last Journal: 2007.09.07 6:17 )
Come to think of, the process is in two steps:
With each release, a new specification is created. After the release, the original specification is retroactively changed by reported but previously unknown "features" that we normally call "bugs". During bug-fixing, these "features" are removed and the change is documented in the specification of the next release.
I don't know what I will make of all this, it's rather late and I'm going to bed now.
Does this make any sense for you others that are not me?