Review Request 119988: Package structure cleanups

2014-08-29 Thread Aaron J. Seigo

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/
---

Review request for KDE Frameworks and Plasma.


Repository: plasma-framework


Description
---

This patch set does the following:

* tidy up the data engine plugin loading code
* make PackageStructure plugins use the json method as with DataEngines
* remove ShellPackage; it moves to live with plasmashell (review #119989)

The goal here is to get rid of the plasmaquick library as much as possible. It 
was unnecessary in the first place since PackageStructure supports plugins. The 
only potentially controversial change here is to move PackageStructure to use 
the json-based plugin loading. That seems to be the more modern approach, but 
plugin loading in libplasma is currently a mix of the old and the new. As 
PackageStructure changed API in plasma-framework, meaning any existing plugins 
from 4.x would need updating anyways, this seems a safe enough change to make 
as it should impact exactly zero plugins out there currently.


Diffs
-

  src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
  src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
  src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
  src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
  src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
  src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
  src/plasmaquick/private/packages.cpp 52758482230d271712e4bb3b6d33f8fdeaa848a8 
  src/plasmaquick/shellpluginloader.h 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
  src/plasmaquick/shellpluginloader.cpp 
2824760e6f64a694bd14b46d2f80151304e3e4d3 
  src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
  src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 

Diff: https://git.reviewboard.kde.org/r/119988/diff/


Testing
---

Ran a full Plasma Desktop session.


Thanks,

Aaron J. Seigo

___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread David Edmundson

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65481
---



src/plasma/packagestructure.h
https://git.reviewboard.kde.org/r/119988/#comment45738

would removing a #define count as a SIC?


- David Edmundson


On Aug. 29, 2014, 11:51 a.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 11:51 a.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 Description
 ---
 
 This patch set does the following:
 
 * tidy up the data engine plugin loading code
 * make PackageStructure plugins use the json method as with DataEngines
 * remove ShellPackage; it moves to live with plasmashell (review #119989)
 
 The goal here is to get rid of the plasmaquick library as much as possible. 
 It was unnecessary in the first place since PackageStructure supports 
 plugins. The only potentially controversial change here is to move 
 PackageStructure to use the json-based plugin loading. That seems to be the 
 more modern approach, but plugin loading in libplasma is currently a mix of 
 the old and the new. As PackageStructure changed API in plasma-framework, 
 meaning any existing plugins from 4.x would need updating anyways, this seems 
 a safe enough change to make as it should impact exactly zero plugins out 
 there currently.
 
 
 Diffs
 -
 
   src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
   src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
   src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
   src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
   src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
   src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
   src/plasmaquick/private/packages.cpp 
 52758482230d271712e4bb3b6d33f8fdeaa848a8 
   src/plasmaquick/shellpluginloader.h 
 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
   src/plasmaquick/shellpluginloader.cpp 
 2824760e6f64a694bd14b46d2f80151304e3e4d3 
   src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
   src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 
 
 Diff: https://git.reviewboard.kde.org/r/119988/diff/
 
 
 Testing
 ---
 
 Ran a full Plasma Desktop session.
 
 
 Thanks,
 
 Aaron J. Seigo
 


___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Marco Martin

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65482
---

Ship it!


+1 for removing shellpackage.
good for plugin-ification

- Marco Martin


On Aug. 29, 2014, 11:51 a.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 11:51 a.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 Description
 ---
 
 This patch set does the following:
 
 * tidy up the data engine plugin loading code
 * make PackageStructure plugins use the json method as with DataEngines
 * remove ShellPackage; it moves to live with plasmashell (review #119989)
 
 The goal here is to get rid of the plasmaquick library as much as possible. 
 It was unnecessary in the first place since PackageStructure supports 
 plugins. The only potentially controversial change here is to move 
 PackageStructure to use the json-based plugin loading. That seems to be the 
 more modern approach, but plugin loading in libplasma is currently a mix of 
 the old and the new. As PackageStructure changed API in plasma-framework, 
 meaning any existing plugins from 4.x would need updating anyways, this seems 
 a safe enough change to make as it should impact exactly zero plugins out 
 there currently.
 
 
 Diffs
 -
 
   src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
   src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
   src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
   src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
   src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
   src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
   src/plasmaquick/private/packages.cpp 
 52758482230d271712e4bb3b6d33f8fdeaa848a8 
   src/plasmaquick/shellpluginloader.h 
 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
   src/plasmaquick/shellpluginloader.cpp 
 2824760e6f64a694bd14b46d2f80151304e3e4d3 
   src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
   src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 
 
 Diff: https://git.reviewboard.kde.org/r/119988/diff/
 
 
 Testing
 ---
 
 Ran a full Plasma Desktop session.
 
 
 Thanks,
 
 Aaron J. Seigo
 


___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Aaron J. Seigo


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?

Yes, but I don't think it maters for two reasons:

1) DataEngine also had both forms but only one actually currently works; so it 
is on the face of it *broken* .. removing that is the same as this change at 
the end of the day
2) There are no Plasma 5 PackageStructure plugins out there except the share 
dataengine in plasma-workspace (which itself was done in a very odd manner)

Neither reason is particularly *good* from the perspective of strict policy 
adherence, but they demonstrate that it is a harmless violation. May as well 
get it right imho.

I'd add a third consideration as well: It is quite evident that 
plasma-framework was release before it was ready. The plugin loading is 
entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading an 
the rest of the plugins not. Some of the plugins are obviously not being used 
at all due to changes brought about with QML2 and that probably contributed to 
the lack of attention. However, PluginLoader quite obviously went through a 
partial refactoring that was never completed. It's a little brash to commit to 
source and binary compatibility when things are in that shape.


- Aaron J.


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65481
---


On Aug. 29, 2014, 11:51 a.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 11:51 a.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 Description
 ---
 
 This patch set does the following:
 
 * tidy up the data engine plugin loading code
 * make PackageStructure plugins use the json method as with DataEngines
 * remove ShellPackage; it moves to live with plasmashell (review #119989)
 
 The goal here is to get rid of the plasmaquick library as much as possible. 
 It was unnecessary in the first place since PackageStructure supports 
 plugins. The only potentially controversial change here is to move 
 PackageStructure to use the json-based plugin loading. That seems to be the 
 more modern approach, but plugin loading in libplasma is currently a mix of 
 the old and the new. As PackageStructure changed API in plasma-framework, 
 meaning any existing plugins from 4.x would need updating anyways, this seems 
 a safe enough change to make as it should impact exactly zero plugins out 
 there currently.
 
 
 Diffs
 -
 
   src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
   src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
   src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
   src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
   src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
   src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
   src/plasmaquick/private/packages.cpp 
 52758482230d271712e4bb3b6d33f8fdeaa848a8 
   src/plasmaquick/shellpluginloader.h 
 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
   src/plasmaquick/shellpluginloader.cpp 
 2824760e6f64a694bd14b46d2f80151304e3e4d3 
   src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
   src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 
 
 Diff: https://git.reviewboard.kde.org/r/119988/diff/
 
 
 Testing
 ---
 
 Ran a full Plasma Desktop session.
 
 
 Thanks,
 
 Aaron J. Seigo
 


___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Hrvoje Senjan


 On Aug. 29, 2014, 2 p.m., David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.

Yes, but I don't think it maters for two reasons

Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out (if 
this patch goes in)?


- Hrvoje


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65481
---


On Aug. 29, 2014, 1:51 p.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 1:51 p.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 Description
 ---
 
 This patch set does the following:
 
 * tidy up the data engine plugin loading code
 * make PackageStructure plugins use the json method as with DataEngines
 * remove ShellPackage; it moves to live with plasmashell (review #119989)
 
 The goal here is to get rid of the plasmaquick library as much as possible. 
 It was unnecessary in the first place since PackageStructure supports 
 plugins. The only potentially controversial change here is to move 
 PackageStructure to use the json-based plugin loading. That seems to be the 
 more modern approach, but plugin loading in libplasma is currently a mix of 
 the old and the new. As PackageStructure changed API in plasma-framework, 
 meaning any existing plugins from 4.x would need updating anyways, this seems 
 a safe enough change to make as it should impact exactly zero plugins out 
 there currently.
 
 
 Diffs
 -
 
   src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
   src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
   src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
   src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
   src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
   src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
   src/plasmaquick/private/packages.cpp 
 52758482230d271712e4bb3b6d33f8fdeaa848a8 
   src/plasmaquick/shellpluginloader.h 
 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
   src/plasmaquick/shellpluginloader.cpp 
 2824760e6f64a694bd14b46d2f80151304e3e4d3 
   src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
   src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 
 
 Diff: https://git.reviewboard.kde.org/r/119988/diff/
 
 
 Testing
 ---
 
 Ran a full Plasma Desktop session.
 
 
 Thanks,
 
 Aaron J. Seigo
 


___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread David Edmundson


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?

Whilst I agree that the frameworks situation sucks, I'm not sure we have a 
choice.

Frameworks 5.2 releases independently of plasma-workspace. At which point there 
is a point in time where one can't compile plasma-workspace.
We could make it go via a no-op that does nothing.


- David


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65481
---


On Aug. 29, 2014, 11:51 a.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 11:51 a.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 Description
 ---
 
 This patch set does the following:
 
 * tidy up the data engine plugin loading code
 * make PackageStructure plugins use the json method as with DataEngines
 * remove ShellPackage; it moves to live with plasmashell (review #119989)
 
 The goal here is to get rid of the plasmaquick library as much as possible. 
 It was unnecessary in the first place since PackageStructure supports 
 plugins. The only potentially controversial change here is to move 
 PackageStructure to use the json-based plugin loading. That seems to be the 
 more modern approach, but plugin loading in libplasma is currently a mix of 
 the old and the new. As PackageStructure changed API in plasma-framework, 
 meaning any existing plugins from 4.x would need updating anyways, this seems 
 a safe enough change to make as it should impact exactly zero plugins out 
 there currently.
 
 
 Diffs
 -
 
   src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
   src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
   src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
   src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
   src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
   src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
   src/plasmaquick/private/packages.cpp 
 52758482230d271712e4bb3b6d33f8fdeaa848a8 
   src/plasmaquick/shellpluginloader.h 
 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
   src/plasmaquick/shellpluginloader.cpp 
 2824760e6f64a694bd14b46d2f80151304e3e4d3 
   src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
   src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 
 
 Diff: https://git.reviewboard.kde.org/r/119988/diff/
 
 
 Testing
 ---
 
 Ran a full Plasma Desktop session.
 
 
 Thanks,
 
 Aaron J. Seigo
 


___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Martin Gräßlin


 On Aug. 29, 2014, 2 p.m., David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?
 
 David Edmundson wrote:
 Whilst I agree that the frameworks situation sucks, I'm not sure we have 
 a choice.
 
 Frameworks 5.2 releases independently of plasma-workspace. At which point 
 there is a point in time where one can't compile plasma-workspace.
 We could make it go via a no-op that does nothing.

if one doesn't recompile it should still work, shouldn't it? Otherwise I'd 
suggest to wrap the define in a ifndef NO_DEPRECATED block to keep SIC (even if 
it means that we carry deprecated stuff for the time being, but after all 
that's the point of deprecation).


- Martin


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65481
---


On Aug. 29, 2014, 1:51 p.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 1:51 p.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 Description
 ---
 
 This patch set does the following:
 
 * tidy up the data engine plugin loading code
 * make PackageStructure plugins use the json method as with DataEngines
 * remove ShellPackage; it moves to live with plasmashell (review #119989)
 
 The goal here is to get rid of the plasmaquick library as much as possible. 
 It was unnecessary in the first place since PackageStructure supports 
 plugins. The only potentially controversial change here is to move 
 PackageStructure to use the json-based plugin loading. That seems to be the 
 more modern approach, but plugin loading in libplasma is currently a mix of 
 the old and the new. As PackageStructure changed API in plasma-framework, 
 meaning any existing plugins from 4.x would need updating anyways, this seems 
 a safe enough change to make as it should impact exactly zero plugins out 
 there currently.
 
 
 Diffs
 -
 
   src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
   src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
   src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
   src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
   src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
   src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
   src/plasmaquick/private/packages.cpp 
 52758482230d271712e4bb3b6d33f8fdeaa848a8 
   src/plasmaquick/shellpluginloader.h 
 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
   src/plasmaquick/shellpluginloader.cpp 
 2824760e6f64a694bd14b46d2f80151304e3e4d3 
   src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
   src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 
 
 Diff: https://git.reviewboard.kde.org/r/119988/diff/
 
 
 Testing
 ---
 
 Ran a full Plasma Desktop session.
 
 
 Thanks,
 
 Aaron J. Seigo
 


___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Aaron J. Seigo


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?
 
 David Edmundson wrote:
 Whilst I agree that the frameworks situation sucks, I'm not sure we have 
 a choice.
 
 Frameworks 5.2 releases independently of plasma-workspace. At which point 
 there is a point in time where one can't compile plasma-workspace.
 We could make it go via a no-op that does nothing.
 
 Martin Gräßlin wrote:
 if one doesn't recompile it should still work, shouldn't it? Otherwise 
 I'd suggest to wrap the define in a ifndef NO_DEPRECATED block to keep SIC 
 (even if it means that we carry deprecated stuff for the time being, but 
 after all that's the point of deprecation).

Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out (if 
this patch goes in)?

Not due to the issue you are responding to, no.

The real issue for breakeage is the use of plasmaquick in Workspaces which 
violates the contract between Frameworks and Workspaces (due to being differnet 
products) by using a library in workspaces from framweorks that does not have a 
binary compatibility guarantee and which has no installed headers. I am at a 
loss as to how this could have shipped in this fashion.

One possibility is to ship libplasmaquick as-is (with the PackageStructures 
duplicated and ShellPluginLoader) and simply remove its usage from Plasma 
Workspace (as already done in 119989), and then at some later point remove it 
from libplasmaquick and simply require a certain version # of Frameworks for 
Plasma Desktop. Requiring a minium v# of libraries would be a pretty normal 
state of affairs.

If the intention is to allow Frameworks 5.2 to be used with Plasma Desktop 5.0, 
then that is probably the only realistic option. In which case the Plasma team 
ought to just install the headers for libplasmaquick and make it official. 
There is no point to requiring binary compatibility and trying to pretend a 
library is private.

At which point there is a point in time where one can't compile 
plasma-workspace.

An alternative is to state compatible versions of Frameworks with 
plasma-workspace. Either way, it doesn't resolve the DataEngine situation where 
it may be SC but certainly is not functional.

Currently relatively few people are using Plasma 5; I would urge the Plasma 
team to come up with a long-term solution before that changes. Carrying the 
impact of these decisions for 5+ years after Plasma 5 actually has users is .. 
well .. it's up to you.

If it is decided not to merge this patchset, that's fine by me. I can probably 
re-work the related plasma-workspace patch set to use the older KService based 
plugin loading. It would just be nice to know *which* path (JSON or .desktop 
files) is being taken.


- Aaron J.


---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/#review65481
---


On Aug. 29, 2014, 11:51 a.m., Aaron J. Seigo wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://git.reviewboard.kde.org/r/119988/
 ---
 
 (Updated Aug. 29, 2014, 11:51 a.m.)
 
 
 Review request for KDE Frameworks and Plasma.
 
 
 Repository: plasma-framework
 
 
 

Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Aaron J. Seigo


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?
 
 David Edmundson wrote:
 Whilst I agree that the frameworks situation sucks, I'm not sure we have 
 a choice.
 
 Frameworks 5.2 releases independently of plasma-workspace. At which point 
 there is a point in time where one can't compile plasma-workspace.
 We could make it go via a no-op that does nothing.
 
 Martin Gräßlin wrote:
 if one doesn't recompile it should still work, shouldn't it? Otherwise 
 I'd suggest to wrap the define in a ifndef NO_DEPRECATED block to keep SIC 
 (even if it means that we carry deprecated stuff for the time being, but 
 after all that's the point of deprecation).
 
 Aaron J. Seigo wrote:
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is 
 out (if this patch goes in)?
 
 Not due to the issue you are responding to, no.
 
 The real issue for breakeage is the use of plasmaquick in Workspaces 
 which violates the contract between Frameworks and Workspaces (due to being 
 differnet products) by using a library in workspaces from framweorks that 
 does not have a binary compatibility guarantee and which has no installed 
 headers. I am at a loss as to how this could have shipped in this fashion.
 
 One possibility is to ship libplasmaquick as-is (with the 
 PackageStructures duplicated and ShellPluginLoader) and simply remove its 
 usage from Plasma Workspace (as already done in 119989), and then at some 
 later point remove it from libplasmaquick and simply require a certain 
 version # of Frameworks for Plasma Desktop. Requiring a minium v# of 
 libraries would be a pretty normal state of affairs.
 
 If the intention is to allow Frameworks 5.2 to be used with Plasma 
 Desktop 5.0, then that is probably the only realistic option. In which case 
 the Plasma team ought to just install the headers for libplasmaquick and make 
 it official. There is no point to requiring binary compatibility and trying 
 to pretend a library is private.
 
 At which point there is a point in time where one can't compile 
 plasma-workspace.
 
 An alternative is to state compatible versions of Frameworks with 
 plasma-workspace. Either way, it doesn't resolve the DataEngine situation 
 where it may be SC but certainly is not functional.
 
 Currently relatively few people are using Plasma 5; I would urge the 
 Plasma team to come up with a long-term solution before that changes. 
 Carrying the impact of these decisions for 5+ years after Plasma 5 actually 
 has users is .. well .. it's up to you.
 
 If it is decided not to merge this patchset, that's fine by me. I can 
 probably re-work the related plasma-workspace patch set to use the older 
 KService based plugin loading. It would just be nice to know *which* path 
 (JSON or .desktop files) is being taken.

Otherwise I'd suggest to wrap the define in a ifndef NO_DEPRECATED block to 
keep SIC

This will ensure things still compile, but the result will be plugins that do 
not get loaded. If the old defines are desired to be kept, then PluginLoader 
should probably be extended to try to load with KPluginTrader first and then if 
that fails try KServiceTypeTrader. Or vice versa (KServiceTypeTrader first and 
then KPluginTrader). Which is tried first should reflect the long-term plan for 
plugin loading as that will be the common 

Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Marco Martin


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?
 
 David Edmundson wrote:
 Whilst I agree that the frameworks situation sucks, I'm not sure we have 
 a choice.
 
 Frameworks 5.2 releases independently of plasma-workspace. At which point 
 there is a point in time where one can't compile plasma-workspace.
 We could make it go via a no-op that does nothing.
 
 Martin Gräßlin wrote:
 if one doesn't recompile it should still work, shouldn't it? Otherwise 
 I'd suggest to wrap the define in a ifndef NO_DEPRECATED block to keep SIC 
 (even if it means that we carry deprecated stuff for the time being, but 
 after all that's the point of deprecation).
 
 Aaron J. Seigo wrote:
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is 
 out (if this patch goes in)?
 
 Not due to the issue you are responding to, no.
 
 The real issue for breakeage is the use of plasmaquick in Workspaces 
 which violates the contract between Frameworks and Workspaces (due to being 
 differnet products) by using a library in workspaces from framweorks that 
 does not have a binary compatibility guarantee and which has no installed 
 headers. I am at a loss as to how this could have shipped in this fashion.
 
 One possibility is to ship libplasmaquick as-is (with the 
 PackageStructures duplicated and ShellPluginLoader) and simply remove its 
 usage from Plasma Workspace (as already done in 119989), and then at some 
 later point remove it from libplasmaquick and simply require a certain 
 version # of Frameworks for Plasma Desktop. Requiring a minium v# of 
 libraries would be a pretty normal state of affairs.
 
 If the intention is to allow Frameworks 5.2 to be used with Plasma 
 Desktop 5.0, then that is probably the only realistic option. In which case 
 the Plasma team ought to just install the headers for libplasmaquick and make 
 it official. There is no point to requiring binary compatibility and trying 
 to pretend a library is private.
 
 At which point there is a point in time where one can't compile 
 plasma-workspace.
 
 An alternative is to state compatible versions of Frameworks with 
 plasma-workspace. Either way, it doesn't resolve the DataEngine situation 
 where it may be SC but certainly is not functional.
 
 Currently relatively few people are using Plasma 5; I would urge the 
 Plasma team to come up with a long-term solution before that changes. 
 Carrying the impact of these decisions for 5+ years after Plasma 5 actually 
 has users is .. well .. it's up to you.
 
 If it is decided not to merge this patchset, that's fine by me. I can 
 probably re-work the related plasma-workspace patch set to use the older 
 KService based plugin loading. It would just be nice to know *which* path 
 (JSON or .desktop files) is being taken.
 
 Aaron J. Seigo wrote:
 Otherwise I'd suggest to wrap the define in a ifndef NO_DEPRECATED block 
 to keep SIC
 
 This will ensure things still compile, but the result will be plugins 
 that do not get loaded. If the old defines are desired to be kept, then 
 PluginLoader should probably be extended to try to load with KPluginTrader 
 first and then if that fails try KServiceTypeTrader. Or vice versa 
 (KServiceTypeTrader first and then KPluginTrader). Which is tried first 
 should reflect the long-term plan for 

Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Aaron J. Seigo

---
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119988/
---

(Updated Aug. 29, 2014, 2:20 p.m.)


Status
--

This change has been discarded.


Review request for KDE Frameworks and Plasma.


Repository: plasma-framework


Description
---

This patch set does the following:

* tidy up the data engine plugin loading code
* make PackageStructure plugins use the json method as with DataEngines
* remove ShellPackage; it moves to live with plasmashell (review #119989)

The goal here is to get rid of the plasmaquick library as much as possible. It 
was unnecessary in the first place since PackageStructure supports plugins. The 
only potentially controversial change here is to move PackageStructure to use 
the json-based plugin loading. That seems to be the more modern approach, but 
plugin loading in libplasma is currently a mix of the old and the new. As 
PackageStructure changed API in plasma-framework, meaning any existing plugins 
from 4.x would need updating anyways, this seems a safe enough change to make 
as it should impact exactly zero plugins out there currently.


Diffs
-

  src/plasma/packagestructure.h fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3 
  src/plasma/pluginloader.cpp d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df 
  src/plasma/private/packages.cpp 5eb6f0021392257634dfd958c940b2945989e48b 
  src/plasma/private/packages_p.h 0833a4ed1b5704efffccade5e52589878e8b4957 
  src/plasmaquick/CMakeLists.txt 1ed7c67efcba0e6dbef1ff929b176090786503de 
  src/plasmaquick/private/packages.h 7498832d0537611903c13e544db6486bab163dd3 
  src/plasmaquick/private/packages.cpp 52758482230d271712e4bb3b6d33f8fdeaa848a8 
  src/plasmaquick/shellpluginloader.h 6c56e5f7b269c3af7587a58cbe104468a2c679c4 
  src/plasmaquick/shellpluginloader.cpp 
2824760e6f64a694bd14b46d2f80151304e3e4d3 
  src/plasma/dataengine.h d87a6f8361c892a249374a5c9da7e84836195156 
  src/plasma/package.cpp 6ad332167bb83c2f794f9f5d059e9f369ad33841 

Diff: https://git.reviewboard.kde.org/r/119988/diff/


Testing
---

Ran a full Plasma Desktop session.


Thanks,

Aaron J. Seigo

___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread Marco Martin


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?
 
 David Edmundson wrote:
 Whilst I agree that the frameworks situation sucks, I'm not sure we have 
 a choice.
 
 Frameworks 5.2 releases independently of plasma-workspace. At which point 
 there is a point in time where one can't compile plasma-workspace.
 We could make it go via a no-op that does nothing.
 
 Martin Gräßlin wrote:
 if one doesn't recompile it should still work, shouldn't it? Otherwise 
 I'd suggest to wrap the define in a ifndef NO_DEPRECATED block to keep SIC 
 (even if it means that we carry deprecated stuff for the time being, but 
 after all that's the point of deprecation).
 
 Aaron J. Seigo wrote:
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is 
 out (if this patch goes in)?
 
 Not due to the issue you are responding to, no.
 
 The real issue for breakeage is the use of plasmaquick in Workspaces 
 which violates the contract between Frameworks and Workspaces (due to being 
 differnet products) by using a library in workspaces from framweorks that 
 does not have a binary compatibility guarantee and which has no installed 
 headers. I am at a loss as to how this could have shipped in this fashion.
 
 One possibility is to ship libplasmaquick as-is (with the 
 PackageStructures duplicated and ShellPluginLoader) and simply remove its 
 usage from Plasma Workspace (as already done in 119989), and then at some 
 later point remove it from libplasmaquick and simply require a certain 
 version # of Frameworks for Plasma Desktop. Requiring a minium v# of 
 libraries would be a pretty normal state of affairs.
 
 If the intention is to allow Frameworks 5.2 to be used with Plasma 
 Desktop 5.0, then that is probably the only realistic option. In which case 
 the Plasma team ought to just install the headers for libplasmaquick and make 
 it official. There is no point to requiring binary compatibility and trying 
 to pretend a library is private.
 
 At which point there is a point in time where one can't compile 
 plasma-workspace.
 
 An alternative is to state compatible versions of Frameworks with 
 plasma-workspace. Either way, it doesn't resolve the DataEngine situation 
 where it may be SC but certainly is not functional.
 
 Currently relatively few people are using Plasma 5; I would urge the 
 Plasma team to come up with a long-term solution before that changes. 
 Carrying the impact of these decisions for 5+ years after Plasma 5 actually 
 has users is .. well .. it's up to you.
 
 If it is decided not to merge this patchset, that's fine by me. I can 
 probably re-work the related plasma-workspace patch set to use the older 
 KService based plugin loading. It would just be nice to know *which* path 
 (JSON or .desktop files) is being taken.
 
 Aaron J. Seigo wrote:
 Otherwise I'd suggest to wrap the define in a ifndef NO_DEPRECATED block 
 to keep SIC
 
 This will ensure things still compile, but the result will be plugins 
 that do not get loaded. If the old defines are desired to be kept, then 
 PluginLoader should probably be extended to try to load with KPluginTrader 
 first and then if that fails try KServiceTypeTrader. Or vice versa 
 (KServiceTypeTrader first and then KPluginTrader). Which is tried first 
 should reflect the long-term plan for 

Re: Review Request 119988: Package structure cleanups

2014-08-29 Thread David Edmundson


 On Aug. 29, 2014, noon, David Edmundson wrote:
  src/plasma/packagestructure.h, line 99
  https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99
 
  would removing a #define count as a SIC?
 
 Aaron J. Seigo wrote:
 Yes, but I don't think it maters for two reasons:
 
 1) DataEngine also had both forms but only one actually currently works; 
 so it is on the face of it *broken* .. removing that is the same as this 
 change at the end of the day
 2) There are no Plasma 5 PackageStructure plugins out there except the 
 share dataengine in plasma-workspace (which itself was done in a very odd 
 manner)
 
 Neither reason is particularly *good* from the perspective of strict 
 policy adherence, but they demonstrate that it is a harmless violation. May 
 as well get it right imho.
 
 I'd add a third consideration as well: It is quite evident that 
 plasma-framework was release before it was ready. The plugin loading is 
 entirely inconsistent with DataEngines using JSON and the Qt5 plugin loading 
 an the rest of the plugins not. Some of the plugins are obviously not being 
 used at all due to changes brought about with QML2 and that probably 
 contributed to the lack of attention. However, PluginLoader quite obviously 
 went through a partial refactoring that was never completed. It's a little 
 brash to commit to source and binary compatibility when things are in that 
 shape.
 
 Hrvoje Senjan wrote:
 Yes, but I don't think it maters for two reasons
 
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out 
 (if this patch goes in)?
 
 David Edmundson wrote:
 Whilst I agree that the frameworks situation sucks, I'm not sure we have 
 a choice.
 
 Frameworks 5.2 releases independently of plasma-workspace. At which point 
 there is a point in time where one can't compile plasma-workspace.
 We could make it go via a no-op that does nothing.
 
 Martin Gräßlin wrote:
 if one doesn't recompile it should still work, shouldn't it? Otherwise 
 I'd suggest to wrap the define in a ifndef NO_DEPRECATED block to keep SIC 
 (even if it means that we carry deprecated stuff for the time being, but 
 after all that's the point of deprecation).
 
 Aaron J. Seigo wrote:
 Can users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is 
 out (if this patch goes in)?
 
 Not due to the issue you are responding to, no.
 
 The real issue for breakeage is the use of plasmaquick in Workspaces 
 which violates the contract between Frameworks and Workspaces (due to being 
 differnet products) by using a library in workspaces from framweorks that 
 does not have a binary compatibility guarantee and which has no installed 
 headers. I am at a loss as to how this could have shipped in this fashion.
 
 One possibility is to ship libplasmaquick as-is (with the 
 PackageStructures duplicated and ShellPluginLoader) and simply remove its 
 usage from Plasma Workspace (as already done in 119989), and then at some 
 later point remove it from libplasmaquick and simply require a certain 
 version # of Frameworks for Plasma Desktop. Requiring a minium v# of 
 libraries would be a pretty normal state of affairs.
 
 If the intention is to allow Frameworks 5.2 to be used with Plasma 
 Desktop 5.0, then that is probably the only realistic option. In which case 
 the Plasma team ought to just install the headers for libplasmaquick and make 
 it official. There is no point to requiring binary compatibility and trying 
 to pretend a library is private.
 
 At which point there is a point in time where one can't compile 
 plasma-workspace.
 
 An alternative is to state compatible versions of Frameworks with 
 plasma-workspace. Either way, it doesn't resolve the DataEngine situation 
 where it may be SC but certainly is not functional.
 
 Currently relatively few people are using Plasma 5; I would urge the 
 Plasma team to come up with a long-term solution before that changes. 
 Carrying the impact of these decisions for 5+ years after Plasma 5 actually 
 has users is .. well .. it's up to you.
 
 If it is decided not to merge this patchset, that's fine by me. I can 
 probably re-work the related plasma-workspace patch set to use the older 
 KService based plugin loading. It would just be nice to know *which* path 
 (JSON or .desktop files) is being taken.
 
 Aaron J. Seigo wrote:
 Otherwise I'd suggest to wrap the define in a ifndef NO_DEPRECATED block 
 to keep SIC
 
 This will ensure things still compile, but the result will be plugins 
 that do not get loaded. If the old defines are desired to be kept, then 
 PluginLoader should probably be extended to try to load with KPluginTrader 
 first and then if that fails try KServiceTypeTrader. Or vice versa 
 (KServiceTypeTrader first and then KPluginTrader). Which is tried first 
 should reflect the long-term plan for