Projects/AboutData
Requirements analysis
Stakeholders
- Coders
- Translators
- Packagers
- Website authors (http://kde.org/applications/)
- IDE developers
- Users
Domain
The description of and other data about a software module. This includes, but is not restricted to:
- Version:
- identifier ("2.3.2")
- Alias (2.3 Beta1)
- codename ("Bummer")
- release date
- Human-centered data:
- Authors/Contributors/Copyright holders
- License
- Provider
- Categories/Keywords
- TitleName, Logo, Icon
- Short and longer description
- Homepage
- Location of Additional Ressources (forum, irc channel, wiki)
- System-integration data:
- identifier
- catalog name (translated ui strings)
- ipc identifier (D-Bus name)
- manual location
Problem
Replicated data manually synchronized
Information about a program or plugin is found/used in many places:
- "About" dialog
- desktop file
- application launcher (e.g. KickOff, Lancelot, KRunner)
- Plugin selector
- manual
- homepage
- software package/stores
- bugzilla
On a change of some property all of these places have to be updated/synchronized manually. This at least is needed for the release of a new version of a program, but also once in a while on the change of the homepage, logo or the subtitle.
Data not easily found
Packagers reported they have to dig up the data they need for the package descriptions, like from somewhere in the code (KAboutData) or files like AUTHORS/README, as there is no official place. Same is true for the project coordinator or others who want to know who is the current official maintainer of a program/plugin. Or the website maintainers who want to update the data on a new release.
Wrong data
Packagers also often might happen to be no experts in the area of the program, so end up guessing most of the description.
Inconsistent data
Due to the original data not easily found/available it might get recreated. So the program's website might have a different description than the package of the distribution, and the application launcher might have yet another one. Or the homepage given in the package description is outdated, same for the icon/logo. This might happen because the package still can be built with these outdated data, and most packagers have better to do than actively pull information about changed metadata (as there exist no official way to report such changes downstream). So a user of a software might be irritated if the version numbers or the names don't match.
More work done than needed
If the website has a different text for the description of a program than used in the code (KAboutData), it needs to be translated another time. These translations might not even be done, due to lack of infrastructure and menpower.
Automated checks on the metadata impossible
If the metadata is available only implicitely in the code (KAboutData), automated tests like a check for an increased version number for a new release or for if there is an existing maintainer are hard to do.
Little support in IDEs
IDEs like KDevelop or QtCreator might want to integrate the internal project data with the official metadata of the software developed. Besides the initial code creation from a template the project's metadata used by the IDE and in the actual code has to be synchronized by the users. This may be because the IDE developers would have a hard time to track where the metadata is implicitely used in the user's code.
Goal
Wouldn't it be nice if all the data synchronisation was done automatically? From a single source? With consistent data? And consistent translations everywhere?
Not a goal
Functional requirements
Non-functional & other requirements
Context model
Top-level architecture
Design
Implementation
Ideas, Links
One idea might be to use DOAP. Its goals seem to fit the stated goals above and our use of KAboutData. KAboutData could load the DOAP file from disk on demand, when the user opens the about dialog of the application. --Cloose 12:09, 11 March 2010 (UTC)