A radical proposal for re-structuring the KDE software projects in our version 5 release cycle. This is only a proposal from a KDE community member to prompt a discussion, and should not be taken as real. In particular, app and community status may not fairly or accurately reflect the real status! If you know something is wrong, please edit as appropriate.
Mostly the proposal is a re-branding exercise to break down the walls between Modules and Extragear, and a QA exercise to prepare a smaller, higher quality Generation 5 Applications release.
The primary points of the proposal are:
The eventual organisation may look something like:
KDE - Frameworks - Tier 1 - Tier 2 - Tier 3 - Bindings - etc - SDK - Utils - Scripts - Templates - Examples - Workspaces - Plasma - Desktop - Netbook - Active - Add-ons - Razor - Applications - Essentials - Accessibility - Office - Edu - PIM - etc - KIO Slaves - Strigi Analyzers - Dolphin Plugins - Thumbnailers
A new file in every KDE repository storing the key metadata about the repo, from which the projects.xml, AppData and other metadata files can be automatically generated. Changes in the projects.xml would also be reflected back here. It is important that the metadata resides in the code repo so that people with clones and packagers know what the metadata is rather than having to know to look in projects.xml. It is important to have a central file to enable easy coordination, especially for the release process.
group=[frameworks|workspaces|applications] categories=[games|education|multimedia|graphics|...] maturity=[experimental|incubator|released|essential|deprecated|unmaintained] release-cycle=[official|independent|unreleased] stable-release= stable-release-branch= stable-release-date= unstable-release= unstable-release-branch= unstable-release-date= dev-branch= maintainers=<git id> name= short-description= description= website= forum= user-mailing-list= dev-mailing-list= irc= bugzilla-product= bugzilla-component= reviewboard-group=
Essentials - Released apps that are deemed to be essential for everyday use and are guaranteed by the KDE community as a whole to be maintained to a high quality. (Is this a Group or Maturity level?).
Experimental - What was Playground: experiments, new apps, WIP, etc. Has a fixed life-span, if no active work after 12 months then admins will move to unmaintained and contact the creator to discuss possible deletion.
Incubator - Similar to Review, but wider in scope. Covers those apps moving from Experimental to Released, but also covers mature apps coming from outside the KDE infrastructure that need to be reviewed for meeting KDE standards before going to Stable
Released / Stable / Maintained - Apps judged to be mature enough to move from Experimental or from outside, must have had a stable release, and that are being actively maintained in a releasable and usable state by a named individual or a community group.
Essential - Released apps that are deemed to be essential for everyday use and are guaranteed by the KDE community as a whole to be maintained to a high quality. (Is this a Group or Maturity level?).
Deprecated - Apps that are Released but may no longer be needing active maintenance or development due to decreased relevance, but that are still needing to be kept available for some part of the user base (e.g. KPPP). Best efforts will be made to keep compiling, but not guaranteed that will remain functional. May be stepping stone on way to Unmaintained.
Unmaintained - Apps that are no longer maintained or functional, and may no longer even compile.
Official - Included in the official KDE Applications Release. Only Released maturity apps that are actively maintained and whose maintainers have guaranteed to abide by the release schedule and other KDE release standards may be included. The decision to include the app is made by concensus of the relevant community, or the wider KDE community, but is at the discretion of the KDE Release Team should they determine that the required KDE standards are not met.
Independent - A KDE Application that is not part of the official release. Note that apps in Experimental or Incubator may make alpha and beta releases and so may have this status, as may Unmaintained apps.
Unreleased - Apps that have never released.
These statuses are highly speculative, I don't know the real status for most things and would appreciate people in the know to fill them in. Please check git logs and community mailing lists, if in any doubt leave as a question mark.
Where a Group, Maturity or Release box has been left blank it means no change to the app status, I've only filled in where I think they should change to make it easier to see. Default value is thus Applications / Released / Official.
Status: Fairly actively maintained, and a must-have collection of apps. Need to consider if these should stay as apps, or if some are better replaced with plasmoids, or integrated into the workspace or frameworks?
Extragear has other useful tools like Simon.
Status: Not much activity, apps appear stable and semi-useful, but not really a must have in the main release? Close module and remove from main release, but keep as released. Investigate working closer with distro's like Kubuntu to produce system admin tools inside KDE repos?
Status: Very well maintained, will form basis of Essential Apps. Need to split up kde-baseapps repo, make Dolphin separate, deprecate Konqueror, maybe move other bits to Frameworks?
|kde-baseapps||?||active||Essential / Deprecated||Official / Independent||Utilities||Needs to be split up into Dolphin, Konqi, etc|
Status: Fairly active? Depends on binding? Move to Frameworks / SDK / ???. Will we need to split the bindings up, e.g. by Framework library, otherwise is a monolithic dependency again?
Status: Very well maintained, has strong community identity. All to Applications, Released, Official, Educational.
Status: Actively maintained, contains examples for all KDE software offerings, not just Frameworks. Make part of proper SDK?
Status: Very well maintained, has strong community identity. All to Applications, Released, Official, Games.
Status: Not sure how active is as a community? Has some very well maintained apps, move some to Essentials, some to Frameworks, some to Utilities, System, etc?
Extragear has Digikam and a number of other useful apps that share libraries.
|kdegraphics-mobipocket||?||active||Graphics||Maybe split into library, Okular, strigi, thumbnailer?|
|kamera||?||active?||KIOSlaves / System||Split over kioslaves and config?|
Status: Doesn't seem very active as a module or community, close module and move to other areas?
Status: No apparent community, not sure how well maintained or if many still useful? Close module and move most apps to Deprecated?
|kopete||?||active||Deprecated||Independent||Communication||Replaced by KTP|
Status: Very well maintained, has strong community identity. Some to Frameworks, some to Applications, Released, Official, PIM.
Status: No apparent community? Close module and move apps under different areas, mostly Essentials or Utilities.
|kcalc||?||active?||Workspace or Essential?||Utilities|
|ktimer||?||active?||Deprecated?||Independent?||Utilities||replace with plasmoid?|
|kfloppy||?||inactive||Deprecated or Unmaintained?||Independent||Utilities|
|kwallet||?||active||Deprecated or Unmaintained?||Independent||Utilities||To be replaced with SecretsService in Essentials|
|superkaramba||?||inactive?||Deprecated or Unmaintained?||Independent||Utilities|
Change concept, develop a proper SDK containing utils, scripts, templates, examples etc that are released with Frameworks? Apps can move to Developer Apps?
|kde-dev-utils||?||active||Frameworks||SDK||Merge utils, scripts, templates as one SDK repo?|
|kde-dev-scripts||?||active||Frameworks||SDK||Merge utils, scripts, templates as one SDK repo?|
|kapptemplate||?||active||Frameworks||SDK||Merge utils, scripts, templates as one SDK repo?|
|cervisia||?||inactive?||Deprecated?||Independent?||Development||A good Git replacement would be nice|
Status: Almost empty, no real activity? Close module entirely. Do we keep in official release or move to independent release? Or deprecate entirely?
|kteatime||?||?||Released?||Official?||Utilities||Could replace with a plasmoid or KAlarm?|
Status: Actively maintained as part of Plasma community. Very monolithic build? Not sure what to do with? Assume will be released as part of Workspaces/Plasma release cycle rather than Applications release cycle? Would these be better downloaded via Bodega rather than installed via packages?