Framework metadata

Aurélien Gâteau agateau at kde.org
Wed Dec 18 17:54:48 UTC 2013


Hi,

I'd like to gather opinions regarding the split task "Ensure all the necessary 
files are in place in each framework (README, license, apidox, etc. etc.)", 
especially defining the "etc. etc." part :)

## Intro

I think the information we want to provide for each framework is to define the 
following:

- The goal of the framework

- Its license

- How to use it

- Libraries it depends on

- How to report bugs

- How to contribute

- Anything else?

## DOAP

To avoid duplication as much as possible and to provide machine-readable 
information, I suggest we use a standard file format like DOAP to describe the 
framework. DOAP stands for Definition Of A Project, it is an RDF schema to 
describe a project. You can learn more about it from:

  https://github.com/edumbill/doap/wiki

DOAP is already used by the Apache and GNOME projects. The nice thing about 
using such a format is that it is easy to extend. For example GNOME is 
extending it to include the user id of the project maintainers:

  https://git.gnome.org/browse/glib/tree/glib.doap

This means we can extend it to include framework-specific information like its 
tier (1, 2, 3, 4) and type (solution, integration, functional). Then apidox 
can extract useful information from it to populate the framework home page and 
generate library dependency diagrams.

The information in the DOAP file can also be used to generate manifest files 
for Inqlude (http://inqlude.org/)

## What about traditional files?

We need to have at least a COPYING file in there, with the full content of the 
license.

Then there is the README file. Historically we haven't been very good at 
keeping them up to date, have a look at the current ones for a trip back 
memory lane.

I think the only way to make them relevant is to integrate them in the 
documentation through apidox. This way the README content would be visible in 
the home page of the framework on api.kde.org, similar to how github promotes 
README files (which is IMHO a nice idea). It makes even more sense to do this 
now that Doxygen supports Markdown, allowing us to write high-level 
documentation in README.md files rather than in a Mainpage.dox file which is 
just a big C comment.

I would avoid adding any Changelog file as this information is better provided 
by git history nowadays.

Same for NEWS file. There is value in having a more concise list of changes 
between versions, but I am quite sure those files would not get updated.

What about the INSTALL file? Most frameworks are going to have a 
straightforward "mkdir build ; cd build ; cmake .. ; make install" procedure. 
Do we want to document this as well? Does it need its own file or can it go in 
the README?

Thoughts?

Aurélien


More information about the Kde-frameworks-devel mailing list