[Qgis-developer] Python Plugin as user interface for make and install automation

Tim Sutton lists at linfiniti.com
Tue Apr 23 14:39:42 PDT 2013


On Tue, Apr 23, 2013 at 11:16 PM, Johan Ballot <j.johan.ballot at gmail.com> wrote:
> Greetings,
> Firstly, not sure if this post should go here or to qgis-release-team;
> If my coin flip directed me to the wrong place, my apologies:
> Before stating the question, some background:
> The question pertains to the Q-Rap Radio Planning Tool
> (http://www.qrap.org.za/) that is a plugin for QGis. The project works
> nicely and the core functionality is quite mature. The plugin is however not
> in a state to be submitted for distribution through the QGis plugin
> machinery yet. The install procedure seems to be a stumbling block for most
> users. Work to get the plugin in a QGis distributable state is on the cards,
> but there is a lot of work to be done and few hands. In the mean time, we
> would like to relieve the users of having to jump through hoops.
> Please critique and/or give guidance on what we think would be a good
> interim compromise.
> Q-Rap Install Plugin:
> We are playing with the idea to build a Python plugin as per guidelines
> given for QGis Python plugins.
> The idea is that this pure QGis compliant Python plugin can be distributed
> through the QGis plugin machine, giving exposure and easy access.
> The Q-Rap Install plugging job will be to automate the build and
> installation of the currently non-QGis compliant C++ code. (The stuff
> current and prospective users are required to do)
> The build process under the plugin will be standard CMake approach.
> What the Q-Rap Install Plugin will be doing:
> -Check and advice user if current OS platform is supported
> -Checkout the required source code
> -Check/install required application (Posgresql, PostGis)
> -Check/install required libraries.
> -Kick of CMake build process and check results.
> -Create Posgresql users and database
> -Kick of second CMake build process to compile app, that will create
> database structure
> -Kick of app to create the database structure
> -Kick of process to populate database with sample/test database.
> After the Install plugin has done its job, the actual Q-Rap plugin will be
> available in QGis ready for use.
> The rationale is that we can get Q-Rap setup for the user in a semi QGis
> way, without breaking QGis requirements.  As stated, we need to do a lot of
> work to get Q-Rap into a native distributable state. We also think that it
> will take us significantly longer to get Q-Rap in a native QGis state than
> this interim solution.

Yes you have the correct list!

Don't you think it would be easier to just have your python plugin
fetch pre built binaries for the supported platforms and then extract
them into a convenient place? Some time ago I added support for
loading C++ plugins form user defined locations - though this is not
well tested. So your workflow might be:

* user installs python bootstrapping plugin
* bootstrapper fetches a binary zip and extracts it on ~/.qgis or ~/.qgis2
* bootstrapper manipulates qsettings for QGIS to include the extract
dir for the binary bundle
* bootstrapper uninstalls itself and prompts user to restart QGIS
* QGIS starts and discovers and loads QRAP from the user c++ plugin folder
* go home and enjoy a lekker cup of rooibos tea

If you are targetting linux platform, you may also consider just
making binary packages e.g. deb / rpm.



> Thank you kindly,
> Johan Ballot
> j.johan.ballot[at]gmail.com
> Q-Rap: http://www.qrap.org.za
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer

Tim Sutton - QGIS Project Steering Committee Member (Release  Manager)
Please do not email me off-list with technical
support questions. Using the lists will gain
more exposure for your issues and the knowledge
surrounding your issue will be shared with all.

Visit http://linfiniti.com to find out about:
 * QGIS programming and support services
 * Mapserver and PostGIS based hosting plans
 * FOSS Consulting Services
Skype: timlinux
Irc: timlinux on #qgis at freenode.net

More information about the Qgis-developer mailing list