Development of kdelibs 5.0 has begun in the framework branch of its git repository. The main goal for kdelibs 5.0 is that there will be no more kdelibs as it is now. kdelibs (and kde-runtime) will be split up into smaller pieces to lower the barrier for non-KDE developers to use part of the power we as a KDE development community provide. The rough idea is that there will be three groups of libraries/frameworks:
- Tier 1: components which only depend on Qt and no other lib/component from KDE.
- Tier 2: components which depend on Qt and other libraries from Tier 1.
- Tier 3: components which depend on anything.
This of course includes Nepomuk and is a great opportunity for us to reorganize code and get rid of deprecated junk we needed to keep around for binary compatibility.
To this end we had two meetings on IRC this week to discuss how we want to proceed for KDE frameworks. It was a lot of fun (at least for me), mostly because it was rather easy to reach good decisions and fun to radically kick stuff that has been bugging us for a long time. The result is documented in a wiki page but let me summarize the basics again:
We will have four new git repositories:
- nepomuk-core – The main Nepomuk repository which is required in any case and provides the basic Nepomuk functionality including storage, query, and the like. I already began work on this in a nepomuk-core scratch repo. This repository will contain:
- Extension ontologies
- Core services: Storage/DMS, Query service, Filewatch service, File indexer
- Core library: the current libnepomuk including Nepomuk::Resource and Nepomuk::Types, libnepomukquery, and libnepomukdatamanagement
- nepomuk-ui – A repository containing Nepomuk UI extensions. For starters this will contain:
- SearchLineEdit and SearchWidget
- KFileMetaDataWidget which is currently living in KIO
- nepomuk-kde-kio – A KIO Nepomuk extension repository which contains the KIO slaves we currently provide in kde-runtime:
- nepomuksearch – General purpose queries
- timeline – browse files by date
- nepomuk – a simple kio slave which allows browsing of Nepomuk resources via HTML pages
- nepomuk-kde-config-ui – The repository for Nepomuk configuration extensions based on KDE technology. It contains:
- Nepomuk KCM
We feel this gives a clean separation and will actually urge packagers to not split those repositories up any further.
Apart from that we decided a few more things – which API to drop, some internals, how to get rid of Soprano::Model in the Nepomuk API altogether, and so on. Actually I am very happy to soon have dedicated Nepomuk repositories as that will make development easier.
And BTW: kde-runtime/nepomuk master is frozen for commits. Development already moved to the new nepomuk-core repository.