Reduce inter-framework dependencies
Open, Needs TriagePublic

Description

Something that comes up quite often when talking to potential external frameworks users is the complex dependency tree some frameworks (and thus applications) have.

For a particularly horrible example look at KIO's dependency tree.

This is not much of an issue in our all-KDE bubble, but becomes relevant if you look beyond that (third party frameworks users, other platforms such as Android, Windows).

Build dependencies of Frameworks in 5.69 (additionally with porting aids):

  • arrows are only print for direct dependencies to the next tier.
  • the round shape indicates, that some later tier is depending on it
  • the diamond shape indicates, that nothing depend on it inside Frameworks
nicolasfella updated the task description. (Show Details)
ognarb added a subscriber: ognarb.Nov 16 2019, 9:44 PM

For KF5 we only managed to do this for part of the libraries (due to limited time/resources), that's mostly what is the tier 1 and 2 frameworks now. Going after the central dependency nodes in the tier 3 frameworks (eg. config widgets, icon themes, kio) would nicely continue that work.

I think the worst offender is KIO. That should be considerably reduced once we removed the KXmlGui dependency from KBookmarks as outlined in T12056.

Other pain points are:

  • KTextWidgets
  • Plasma Framework and KDeclarative (which will be split up anyway)
  • KWallet (required by KIO so contributing to that mess). To be retought
  • KRunner (fixed once we get rid of the Plasma dep T11638)
  • KService (needed by a lot of other frameworks)
  • Kinit (with cyclic dep on KIO)
nicolasfella moved this task from Backlog to Needs Input on the KF6 board.Nov 22 2019, 8:58 AM

A few other frameworks that could use breakdown:

  • KConfigWidgets
  • KService
  • KXMLGui
  • KTextWidgets
nicolasfella moved this task from Needs Input to Metatasks on the KF6 board.Nov 25 2019, 9:33 PM
knauss added a subscriber: knauss.May 2 2020, 12:23 AM

Build dependencies of Frameworks in 5.69 (additionally with porting aids):

  • arrows are only print for direct dependencies to the next tier.
  • the round shape indicates, that some later tier is depending on it
  • the diamond shape indicates, that nothing depend on it inside Frameworks
knauss updated the task description. (Show Details)May 2 2020, 12:26 AM