DOAP CHANGESETS FORMAT

\s-1DOAP\s0 Changesets are written in \s-1RDF\s0 - normally serialised as Turtle, though other serialisations are fine. (The Module::Install::DOAPChangeSets module supports any input format recognised by RDF::Trine.)

This document assumes a good working knowledge of \s-1RDF\s0 and Turtle.

You would normally describe your project in a file called \*(L"meta/changes.ttl\*(R" from which a changelog called \*(L"Changes\*(R" will be automatically built at packaging time.

Namespaces

You will want to define at least the following namespaces:

  @prefix :     <http://usefulinc.com/ns/doap#> .
  @prefix dc:   <http://purl.org/dc/terms/> .
  @prefix dcs:  <http://ontologi.es/doap-changeset#> .
  @prefix foaf: <http://xmlns.com/foaf/0.1/> .
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
  @prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

And you should define a namespace specific for your distribution:

@prefix my: <http://purl.org/NET/cpan-uri/dist/Example-Example/> .

Describing the Changeset Document

You should now give the Changeset document itself a description. At a minimum, you must set the dc:subject.

<> dc:title "Changes for Example-Example" ; dc:subject my:project ; dc:creator my:developer .

Describing the First Release of the Distribution

Use \s-1DOAP\s0 to describe the first version of the distribution. At the very least you need to include its revision (version number):

my:v_0-01 a :Version ; dc:issued "2007-12-20"^^xsd:date ; :revision "0.01"^^xsd:string .

You would not normally list any changes against the first release, as nothing has been changed.

Describing Subsequent Releases

For subsequent releases, you add a changeset to a release description:

my:v_0-02 a :Version ; dc:issued "2007-12-29"^^xsd:date ; :revision "0.02"^^xsd:string ; rdfs:label "The 0.02nd Coming" ; ## a "title" for the release dcs:changeset [ dcs:item [ rdfs:label "Example change." ] , [ rdfs:label "Example bugfix." ; a dcs:Bugfix ] , [ rdfs:label "Example new feature." ; a dcs:Addition ] , [ rdfs:label "Example removal." ; a dcs:Removal ] ] .

Describing the Distribution

Use \s-1DOAP\s0 to describe the distribution. At the very least you need to assert that the project is a Project and provide a name for it. You must also list all the releases you wish to appear in the human-readable Changes file generated by the Module::Install::DOAPChangeSets module. There are plenty of other properties in \s-1DOAP\s0 which you can also use.

my:project a :Project ; :name "Example-Example" ; :shortdesc "Just an example!" ; :programming-language "Perl" ; :created "2007-12-18"^^xsd:date ; :maintainer my:developer ; :homepage <http://search.cpan.example.org/dist/Example-Example/> ; :bug-database <http://rt.cpan.example.org/Dist/Display.html?Queue=Example-Example> ; :release my:v_0-01 , my:v_0-02 .

Describing a Developer

Developers should be described using \s-1FOAF\s0. At the very least, include a name. A \s-1CPAN\s0 e-mail address is also a good idea.

my:developer a foaf:Person ; foaf:name "Joe Bloggs" ; foaf:mbox <mailto:[email protected]> ; foaf:page <http://search.cpan.example.org/~joebloggs/> .

Legacy Support

The module has legacy support for Aaron Cope's \*(L"changefile\*(R" vocab, but this is not thoroughly tested. Changelogs written in this vocab tend to use \s-1DOAP\s0 incorrectly, so I discourage using this vocab.

RELATED TO Module::Install::DOAPChangeSets::Format…

Module::Install, Module::Install::DOAPChangeSets .

<http://www.perlrdf.org/>, http://purl.org/NET/cpan-uri/ <http://purl.org/NET/cpan-uri/>.

AUTHOR

Toby Inkster <[email protected]>.

COPYRIGHT AND LICENSE

Copyright (C) 2010-2011 by Toby Inkster

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.