Infrastructure/Project Metadata
KDE Project Metadata
Metadata describing the Git repositories that make up KDE software, and the relationships between those repositories, are contained in two different sources.
- A KDE Projects Management website, where various data about individual repos can be altered by git repository maintainers, including which branches are considered 'stable' and 'development' branches for i18n purposes.
- Metadata about the relationships between individual repositories are kept in a separate git repository,
kde-build-metadata
.
kde-build-metadata
The kde-build-metadata
repository contains several files which can be used by scripts and automated programs to properly handle the KDE git repositories. As of this writing there are several files that make up this repository:
- build-script-ignore: This file contains a list of git repositories that should be ignored by scripts used to build the KDE source repositories. Empty lines and comments (prefixed by a
#
) are permitted. Each other line should be the full kde-project path of a module to ignore. Most examples are for modules that simply have nothing to build and install, but other uses include convenience modules that duplicate functionality handled in other source code modules. - dependency-data: This file contains a list of dependencies between KDE git repositories. It is used by the kdesrc-build build script, and the continuous integration infrastructure.
Logical module grouping
In order to make it easy for the various groups building KDE software to get the version they wish, there is a proposal to add the concept of logical module groups so that scripts may automatically select the most appropriate branch for a given individual git repository.
The current proposal is to use a JSON file, with the following structure:
A top-level object, with the following key-value pairs:
version
- Will be set to the version supported by conforming scripts. This documentation documents version
0
(the number, not a string). It is intended that the version is only increased for changes that cannot be made in a backward-compatible fashion. Scripts should check that the version is set to a supported version and fail if not.
layers
- Will be set to an array of the logical module groupings that are available for use. Currently this is
stable-qt4
,latest-qt4
,kf5-qt5
, but this can change as needed. Scripts should allow groupings only from this array.
groups
- This is set to an object describing the group layout of the layers described above. TODO: Increase detail.
dependencies
- This contains and supersedes the information defined in dependency-data.