After reading all the replies I'm left with one burning question:<br>Could anyone point me to applications/libraries that depend on the KDevPlatform??<br><br>With kind regards,<br>Jonathan<br><br><div class="gmail_quote">
On Tue, Jan 18, 2011 at 3:08 PM, Esben Mose Hansen <span dir="ltr"><<a href="mailto:kde@mosehansen.dk">kde@mosehansen.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div style="font-family: 'DejaVu Sans Mono'; font-size: 9pt; font-weight: 400; font-style: normal;"><div class="im">
<p style="margin: 0px; text-indent: 0px;">On Tuesday 18 January 2011 14:31:23 David Nolden wrote:</p>
<p style="margin: 0px; text-indent: 0px;">> Both of these points seem like they could be fixed by changed</p>
<p style="margin: 0px; text-indent: 0px;">> workflows on the packager/distribution side (packers wouldn't need to</p>
<p style="margin: 0px; text-indent: 0px;">> do more work, they would just need to have the right tools), and not</p>
<p style="margin: 0px; text-indent: 0px;">> like general arguments for binary compatibility.</p>
<p style="margin: 0px; text-indent: 0px;">> </p>
<p style="margin: 0px; text-indent: 0px;">> The fact that packagers don't seem to have the right tools makes this</p>
<p style="margin: 0px; text-indent: 0px;">> a purely philosophical discussion though.</p>
<p style="margin: 0px; text-indent: 0px;"></p>
</div><p style="margin: 0px; text-indent: 0px;">How, exactly? Every time a library changes its ABI, you have 2 choices: </p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">1. Rebuild /all/ packages that uses the library </p>
<p style="margin: 0px; text-indent: 0px;">2. Have 2 versions of the same package with different ABIs. (e.g. 4.2.0 and 4.2.1)</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Otherwise, those depending packages *will* break, and not in a pretty way.</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">The first is just not possible, unless all your packages comes from one single source, with no custom repositories, as it would require perfect coordination between those repositories. It would also mean that one small library change could cause the user to download 100s or even 1000s of packages (for fun, imagine libstdc++ or glibc having a ABI change.)</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">The 2nd is doable (see libboost), but leads to a pletora of dependencies on various versions of a package. As a (downstream) user, I am thankful that boost is the exception, rather than the rule. If we wanted to go this way, it is also *critical* that we informs our packagers that this is the road we are taking, so that they can add the proper conflicts and depends to their packages.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">All this is of course ignoring the bit I said about users, who needs to be able to point to a specific version of the library, preferably one that is packaged by distributors.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">In conclusion, I fear ABI stability is something we have to live with if kdevplatform is ever to be regarded as a proper library. As long as we only have a few users, changing every 4.x release is fine, though. It's not like someone would grab a new version of kdevplatform without rebuilding kdevelop and the php-ditto, too.</p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">-- </p><font color="#888888">
<p style="margin: 0px; text-indent: 0px;">Kind regards, Esben</p></font></div><br>--<br>
KDevelop-devel mailing list<br>
<a href="mailto:KDevelop-devel@kdevelop.org">KDevelop-devel@kdevelop.org</a><br>
<a href="https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel" target="_blank">https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel</a><br>
<br></blockquote></div><br>