Review Request 109315: Automatically put the version number in the plugin's desktop files

Aleix Pol Gonzalez aleixpol at gmail.com
Wed Mar 6 23:35:48 UTC 2013



> On March 6, 2013, 9:29 p.m., Andreas Pakulat wrote:
> > CMakeLists.txt, line 12
> > <http://git.reviewboard.kde.org/r/109315/diff/2/?file=117411#file117411line12>
> >
> >     This will have to be included in the KDevPlatform config module so that plugins outside of kdevplatform can use it.

agreed, I planned to do that in a next patch.


> On March 6, 2013, 9:29 p.m., Andreas Pakulat wrote:
> > interfaces/iplugin.h, line 45
> > <http://git.reviewboard.kde.org/r/109315/diff/2/?file=117413#file117413line45>
> >
> >     Is there a particular reason for breaking the source-compatibility here? You could just #include "ipluginversion.h" here and drop the change in iplugincontroller.cpp and have any code that actually uses the define keep on working.
> >     
> >     Or do you want users to explicitly include the version-header and catch them this way?

Well, basically nobody is using this header besides the I/PluginController, I'm actually unsure if we should expose this number at all (the file is being installed, here).

But no, there's no reason. I can put the include if you think that maintaining this would be benefitial.


- Aleix


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/109315/#review28721
-----------------------------------------------------------


On March 6, 2013, 4:55 p.m., Aleix Pol Gonzalez wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/109315/
> -----------------------------------------------------------
> 
> (Updated March 6, 2013, 4:55 p.m.)
> 
> 
> Review request for KDevelop, Andreas Pakulat and Milian Wolff.
> 
> 
> Description
> -------
> 
> One of the worst things when developing plugins in kdev is that we need to target an ABI version number. It makes sense to have it but it is possible to have an API-compatible plugin that isn't compatible due to the ABI version.
> 
> Also, every time we change kdevplatform version, we have to go through all plugins an change the version number in all projects.
> 
> In this patch, I'm using cmake to configure all the desktop files in runtime. If you guys like the idea, I'll implement it for KDevelop.
> There are other things we could do, since we're generating it, we could set the KDE-PluginInfo-Version to kdevplatform's, I think it would make sense.
> 
> In case somebody wonders, scripty already knows about .desktop.cmake files.
> 
> For reference, I used these bash commands for changing it to the new way:
> 
> find . -name kdev*.desktop | xargs -I @ git mv @ @.cmake
> find . -name *.desktop.cmake | xargs sed -i -e 's/X-KDevelop-Version=16/X-KDevelop-Version=@KDEV_PLUGIN_VERSION@/g'
> find . -name CMakeLists.txt | xargs sed -r -i -e "s/install\( *FILES kdev(.*).desktop/configure_file(kdev\1.desktop.cmake \${CMAKE_CURRENT_BINARY_DIR}\/kdev\1.desktop)\ninstall(FILES \${CMAKE_CURRENT_BINARY_DIR}\/kdev\1.desktop/g"
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt d0bcfa7 
>   interfaces/CMakeLists.txt 5e83497 
>   interfaces/iplugin.h 3a30eda 
>   interfaces/iplugincontroller.cpp d7e8764 
>   plugins/appwizard/CMakeLists.txt 26b0f4c 
>   plugins/appwizard/kdevappwizard.desktop.cmake 2ffcb12 
>   plugins/classbrowser/CMakeLists.txt bfb1688 
>   plugins/classbrowser/kdevclassbrowser.desktop.cmake 5983d4b 
>   plugins/codeutils/CMakeLists.txt 3694060 
>   plugins/codeutils/kdevcodeutils.desktop.cmake 70a6b88 
>   plugins/contextbrowser/CMakeLists.txt abf573a 
>   plugins/contextbrowser/kdevcontextbrowser.desktop.cmake b8a0386 
>   plugins/cvs/CMakeLists.txt 150ff18 
>   plugins/cvs/kdevcvs.desktop.cmake dd7939c 
>   plugins/dashboard/CMakeLists.txt 3ed5574 
>   plugins/dashboard/kdevprojectdashboard.desktop.cmake 28bf473 
>   plugins/dashboard/plasmoids/projectfileplasmoid/CMakeLists.txt d3016d7 
>   plugins/documentswitcher/CMakeLists.txt 9312337 
>   plugins/documentswitcher/kdevdocumentswitcher.desktop.cmake e45a9ef 
>   plugins/documentview/CMakeLists.txt 30fc272 
>   plugins/documentview/kdevdocumentview.desktop.cmake 5187c81 
>   plugins/execute/CMakeLists.txt 6c65936 
>   plugins/execute/kdevexecute.desktop.cmake a71f502 
>   plugins/executescript/CMakeLists.txt 2b90327 
>   plugins/executescript/kdevexecutescript.desktop.cmake 83fd95d 
>   plugins/externalscript/CMakeLists.txt c8f2f73 
>   plugins/externalscript/kdevexternalscript.desktop.cmake cd97a2f 
>   plugins/filemanager/CMakeLists.txt a6a6a9f 
>   plugins/filemanager/kdevfilemanager.desktop.cmake 6b94c5d 
>   plugins/filetemplates/CMakeLists.txt 77b3be7 
>   plugins/filetemplates/kdevfiletemplates.desktop.cmake 7d1434f 
>   plugins/genericprojectmanager/CMakeLists.txt b081a1b 
>   plugins/genericprojectmanager/kdevgenericmanager.desktop.cmake 8712aab 
>   plugins/git/CMakeLists.txt f2bf0f1 
>   plugins/git/kdevgit.desktop.cmake e1aceff 
>   plugins/grepview/CMakeLists.txt f9e87af 
>   plugins/grepview/kdevgrepview.desktop.cmake ec085ef 
>   plugins/konsole/CMakeLists.txt 034b4a2 
>   plugins/konsole/kdevkonsoleview.desktop.cmake 1778364 
>   plugins/openwith/CMakeLists.txt 3217702 
>   plugins/openwith/kdevopenwith.desktop.cmake b484570 
>   plugins/pastebin/CMakeLists.txt c9fe952 
>   plugins/pastebin/kdevpastebin.desktop.cmake a25f638 
>   plugins/patchreview/CMakeLists.txt 8bedb83 
>   plugins/patchreview/kdevpatchreview.desktop.cmake 3380d21 
>   plugins/problemreporter/CMakeLists.txt 89b197d 
>   plugins/problemreporter/kdevproblemreporter.desktop.cmake c20f0d2 
>   plugins/projectmanagerview/CMakeLists.txt aec8360 
>   plugins/projectmanagerview/kdevprojectmanagerview.desktop.cmake 542e088 
>   plugins/quickopen/CMakeLists.txt b2b3f30 
>   plugins/quickopen/kdevquickopen.desktop.cmake 8a4be70 
>   plugins/reviewboard/CMakeLists.txt 89892f7 
>   plugins/reviewboard/kdevreviewboard.desktop.cmake 7a83544 
>   plugins/snippet/CMakeLists.txt 04433b5 
>   plugins/snippet/kdevsnippet.desktop.cmake 5d2002a 
>   plugins/standardoutputview/CMakeLists.txt ba8d434 
>   plugins/standardoutputview/kdevstandardoutputview.desktop.cmake 8331422 
>   plugins/subversion/CMakeLists.txt f74a45f 
>   plugins/subversion/kdevsubversion.desktop.cmake e63068f 
>   plugins/switchtobuddy/CMakeLists.txt 795b5ed 
>   plugins/switchtobuddy/kdevswitchtobuddy.desktop.cmake 7d5f59f 
>   plugins/templatemanager/CMakeLists.txt cc3ea92 
>   plugins/testview/CMakeLists.txt 5307d7f 
>   plugins/testview/kdevtestview.desktop.cmake 5980536 
>   plugins/vcschangesview/CMakeLists.txt a284b28 
>   plugins/vcschangesview/kdevvcschangesview.desktop.cmake 41646c6 
>   shell/kross/kdevkrossplugin.desktop.cmake ddb8e9c 
>   shell/plugincontroller.cpp 009228b 
> 
> Diff: http://git.reviewboard.kde.org/r/109315/diff/
> 
> 
> Testing
> -------
> 
> The installed desktop files look the same as they used to.
> 
> 
> Thanks,
> 
> Aleix Pol Gonzalez
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20130306/6ac97e2e/attachment-0001.html>


More information about the KDevelop-devel mailing list