[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Review Request 119988: Package structure cleanups
From:       "Marco Martin" <notmart () gmail ! com>
Date:       2014-08-29 15:25:48
Message-ID: 20140829152548.11205.80166 () probe ! kde ! org
[Download RAW message or body]

--===============1345080764530757542==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit



> 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 plugin \
> loading as that will be the common path (and so should be as fast as reasonably \
> possible). 
> Note that currently DataEngine is broken for plugins compiled with the old define, \
> so this is an issue that needs addressing with or without this patch set. 
> Marco Martin wrote:
> "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." 
> I am not sure about the current state, maybe ConfigView should be a bit different, \
> but I'm fine with officially release libpolasmaquick with at lease View and Dialog. \
> Maybe configview and its models, but not i'm not completely sure about it since i \
> don't like them too much to be there, but they are used/needed, may be moved to a \
> similar thing in workspace, or made more generic by making them not views but to \
> create windows from QML 
> Aaron J. Seigo wrote:
> That's kind of the problem, though: you may not be comfortable with the library, \
> but you've (the entire team) already committed to binary and source compatibility \
> by putting the library in a different product (Frameworks). 
> However it goes, my current work project's requirements dictate the need to pick \
> libplasmaquick out of plasma-workspace and I will continue to work on that so that \
> it eventually becomes a moot point. 
> Since this is an issues which the Plasma team apparently has no clear path in mind, \
> let's just assume for the same of argument that libplasmaquick remains exactly as \
> it is in plasma-framework. What I actually need your input on is what plugin \
> loading mechanism is to be used: 
> a) KServiceTypeTrader 
> b) KPluginTrader
> c) KPlugintTrader with a KServiceTypeTrade fallback
> d) KServiceTypeTrader with a KPluginTrader fallback
> 
> In fact, I'll open a new review request that reflects that more clearly.
> 
> David Edmundson wrote:
> > Either way, it doesn't resolve the DataEngine situation where it may be SC but \
> > certainly is not functional.
> 
> There's some crossed communication I think. I'm not asking for anyone to resolve \
> it, I'm wanting it to not break things. 
> I'm happy with your changes. If what we have doesn't work now, it can proceed to \
> not work, and we can add the additional new thing that fixes it. That's all great. 
> What concerns me is the idea that it would stop the rest of plasma-workspace stable \
> compiling for a whole month. That would have most packagers screaming at us. 
> We just need to keep the old #define till frameworks 5.4
> 
> > The real issue for breakeage is the use of plasmaquick 
> 
> That's a completely different topic and we should try not to get distracted by it.
> 
> Marco Martin wrote:
> "We just need to keep the old #define till frameworks 5.4"
> do you think it may be removed after 5.4 or better leaving it for the time being?
> dataengine already has both, so i would put as a policy
> c) KPlugintTrader with a KServiceTypeTrade fallback
> K_EXPORT_PLASMA_DATAENGINE K_EXPORT_PLASMA_PACKAGE etc, may be wrapped in an #idef \
> no_deprecated 
> David Edmundson wrote:
> Once we have Plasma 5.1.0 out, I think it will be OK to sneakily remove it.
> Your call.

if we do it, it may be worth to do in one go for dataengines, applets appletscripts \
as well


- Marco


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


On Aug. 29, 2014, 2:20 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, 2:20 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
> 
> 


--===============1345080764530757542==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit




<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 \
solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">  \
<tr>  <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/119988/">https://git.reviewboard.kde.org/r/119988/</a>
  </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <p style="margin-top: 0;">On August 29th, 2014, noon UTC, <b>David \
Edmundson</b> wrote:</p>  <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;">  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;">  <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;">  <a \
href="https://git.reviewboard.kde.org/r/119988/diff/1/?file=308188#file308188line99" \
style="color: black; font-weight: bold; text-decoration: \
underline;">src/plasma/packagestructure.h</a>  <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
">private:</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2">98</font></th>  <td bgcolor="#fdfebc" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cp">#define \
K_EXPORT_PLASMA_PACKAGE(libname, classname) \</span></pre></td>  <th \
bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">99</font></th>  <td bgcolor="#fdfebc" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>  \
</tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">would \
removing a #define count as a SIC?</p></pre>  </blockquote>



 <p>On August 29th, 2014, 12:12 p.m. UTC, <b>Aaron J. Seigo</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Yes, \
but I don't think it maters for two reasons:</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">1) DataEngine also had \
both forms but only one actually currently works; so it is on the face of it <em \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;">broken</em> .. removing that is the same as this change at the end of the \
day<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> 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)</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Neither reason is particularly <em \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;">good</em> from the perspective of strict policy adherence, but they \
demonstrate that it is a harmless violation. May as well get it right imho.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">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.</p></pre>  </blockquote>





 <p>On August 29th, 2014, 12:21 p.m. UTC, <b>Hrvoje Senjan</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><blockquote \
style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid \
#bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;"> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Yes, but I don't think it maters for two reasons</p> </blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Can users of Plasma 5.0.x can expect a broken desktop \
once KF5 5.2 is out (if this patch goes in)?</p></pre>  </blockquote>





 <p>On August 29th, 2014, 12:25 p.m. UTC, <b>David Edmundson</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Whilst I agree that the frameworks situation sucks, I'm not sure we have a \
choice.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Frameworks 5.2 releases independently of \
plasma-workspace. At which point there is a point in time where one can't compile \
plasma-workspace.<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> We could make it go via a no-op that does \
nothing.</p></pre>  </blockquote>





 <p>On August 29th, 2014, 12:32 p.m. UTC, <b>Martin Gräßlin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">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).</p></pre>  </blockquote>





 <p>On August 29th, 2014, 12:46 p.m. UTC, <b>Aaron J. Seigo</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"Can \
users of Plasma 5.0.x can expect a broken desktop once KF5 5.2 is out (if this patch \
goes in)?"</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Not due to the issue you are responding to, no.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">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.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">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.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">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.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">"At which point there is a point in time where one \
can't compile plasma-workspace."</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">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.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">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.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">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 <em style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;">which</em> path (JSON or .desktop files) \
is being taken.</p></pre>  </blockquote>





 <p>On August 29th, 2014, 12:50 p.m. UTC, <b>Aaron J. Seigo</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">"Otherwise I'd suggest to wrap the define in a ifndef NO_DEPRECATED block \
to keep SIC"</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">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 path (and so should be as fast as \
reasonably possible).</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Note that currently DataEngine is \
broken for plugins compiled with the old define, so this is an issue that needs \
addressing with or without this patch set.</p></pre>  </blockquote>





 <p>On August 29th, 2014, 1:04 p.m. UTC, <b>Marco Martin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"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."</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">I am not sure about the \
current state, maybe ConfigView should be a bit different, but I'm fine with \
officially release libpolasmaquick with at lease View and Dialog.<br style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />  \
Maybe configview and its models, but not i'm not completely sure about it since i \
don't like them too much to be there, but they are used/needed, may be moved to a \
similar thing in workspace, or made more generic by making them not views but to \
create windows from QML</p></pre>  </blockquote>





 <p>On August 29th, 2014, 2:10 p.m. UTC, <b>Aaron J. Seigo</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">That's kind of the problem, though: you may not be comfortable with the \
library, but you've (the entire team) already committed to binary and source \
compatibility by putting the library in a different product (Frameworks).</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">However it goes, my current work project's requirements dictate the need to \
pick libplasmaquick out of plasma-workspace and I will continue to work on that so \
that it eventually becomes a moot point.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">Since this is an issues \
which the Plasma team apparently has no clear path in mind, let's just assume for the \
same of argument that libplasmaquick remains exactly as it is in plasma-framework. \
What I actually need your input on is what plugin loading mechanism is to be \
used:</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">a) KServiceTypeTrader <br style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" /> b) \
KPluginTrader<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> c) KPlugintTrader with a KServiceTypeTrade \
fallback<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;" /> d) KServiceTypeTrader with a KPluginTrader \
fallback</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">In fact, I'll open a new review request that reflects \
that more clearly.</p></pre>  </blockquote>





 <p>On August 29th, 2014, 2:22 p.m. UTC, <b>David Edmundson</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><blockquote \
style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid \
#bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;"> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Either way, it doesn't resolve the DataEngine situation where it may be SC \
but certainly is not functional.</p> </blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">There's some crossed communication I think. I'm not \
asking for anyone to resolve it, I'm wanting it to not break things.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">I'm happy with your changes. If what we have doesn't work now, it can \
proceed to not work, and we can add the additional new thing that fixes it. That's \
all great.</p> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">What concerns me is the idea that it would stop the \
rest of plasma-workspace stable compiling for a whole month. That would have most \
packagers screaming at us.</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">We just need to keep the old #define \
till frameworks 5.4</p> <blockquote style="text-rendering: inherit;padding: 0 0 0 \
1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: \
inherit;"> <p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">The real issue for breakeage is the use of plasmaquick \
</p> </blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">That's a completely different topic and we should try \
not to get distracted by it.</p></pre>  </blockquote>





 <p>On August 29th, 2014, 3:05 p.m. UTC, <b>Marco Martin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"We \
just need to keep the old #define till frameworks 5.4"<br style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" /> do \
you think it may be removed after 5.4 or better leaving it for the time being?<br \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;" /> dataengine already has both, so i would put as a policy<br \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;" /> c) KPlugintTrader with a KServiceTypeTrade fallback<br style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" /> \
K_EXPORT_PLASMA_DATAENGINE K_EXPORT_PLASMA_PACKAGE etc, may be wrapped in an #idef \
no_deprecated</p></pre>  </blockquote>





 <p>On August 29th, 2014, 3:12 p.m. UTC, <b>David Edmundson</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;">  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Once \
we have Plasma 5.1.0 out, I think it will be OK to sneakily remove it.<br \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
normal;" /> Your call.</p></pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">if we do it, it may be worth to do in one go for dataengines, applets \
appletscripts as well</p></pre> <br />




<p>- Marco</p>


<br />
<p>On August 29th, 2014, 2:20 p.m. UTC, Aaron J. Seigo wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: \
1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;">  <tr>
  <td>

<div>Review request for KDE Frameworks and Plasma.</div>
<div>By Aaron J. Seigo.</div>


<p style="color: grey;"><i>Updated Aug. 29, 2014, 2:20 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-framework
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">This patch set does the following:</p> <ul \
style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: \
inherit;white-space: normal;"> <li style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;">tidy up the data engine plugin loading \
code</li> <li style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: normal;">make PackageStructure plugins use the json method as \
with DataEngines</li> <li style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: normal;">remove ShellPackage; it moves to live \
with plasmashell (review #119989)</li> </ul>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">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.</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Ran a full Plasma Desktop session.</p></pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>src/plasma/packagestructure.h <span style="color: \
grey">(fb32c22a6e7df1528b3d7a5b30b94c60a85a93e3)</span></li>

 <li>src/plasma/pluginloader.cpp <span style="color: \
grey">(d2ba5ca2d3a96fe6f1ce26be41df3b0954b924df)</span></li>

 <li>src/plasma/private/packages.cpp <span style="color: \
grey">(5eb6f0021392257634dfd958c940b2945989e48b)</span></li>

 <li>src/plasma/private/packages_p.h <span style="color: \
grey">(0833a4ed1b5704efffccade5e52589878e8b4957)</span></li>

 <li>src/plasmaquick/CMakeLists.txt <span style="color: \
grey">(1ed7c67efcba0e6dbef1ff929b176090786503de)</span></li>

 <li>src/plasmaquick/private/packages.h <span style="color: \
grey">(7498832d0537611903c13e544db6486bab163dd3)</span></li>

 <li>src/plasmaquick/private/packages.cpp <span style="color: \
grey">(52758482230d271712e4bb3b6d33f8fdeaa848a8)</span></li>

 <li>src/plasmaquick/shellpluginloader.h <span style="color: \
grey">(6c56e5f7b269c3af7587a58cbe104468a2c679c4)</span></li>

 <li>src/plasmaquick/shellpluginloader.cpp <span style="color: \
grey">(2824760e6f64a694bd14b46d2f80151304e3e4d3)</span></li>

 <li>src/plasma/dataengine.h <span style="color: \
grey">(d87a6f8361c892a249374a5c9da7e84836195156)</span></li>

 <li>src/plasma/package.cpp <span style="color: \
grey">(6ad332167bb83c2f794f9f5d059e9f369ad33841)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/119988/diff/" style="margin-left: \
3em;">View Diff</a></p>






  </td>
 </tr>
</table>








  </div>
 </body>
</html>


--===============1345080764530757542==--



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic