[Qgis-developer] Plugins for 1.8 and 2.0 in one repository
Borys Jurgiel
lists at borysjurgiel.pl
Thu Jun 6 04:57:28 PDT 2013
With the new SIP API, we should find the best way to publish plugins for
various QGIS versions in one repository. It's no problem in small
repositories, where all multiple versions may exist side by side, because the
plugin installer (both: old and new) can filter the best availale version. But
the new central repository contains hundrets plugin versions, so for
performance reasons it only exposes the most recent version of each plugin in
the xml. If QGIS version is explicitly pass in the url (e.g.
http://blahblahblah.xml?qgis=1.9), the repository returns the most recent
*compatible* version. Otherwise - just the most recent. The new installer
includes current QGIS version to the URL, old one doesn't. So if there is an
old plugin version for QGIS 1.x, and a newer for QGIS 2.0+ , Qgis 1.8 won't
show it at all - because the repository will only return the latter, what will
incompatible.
There is a few solutions I see:
0. Don't change anything, just say to plugin maintainers to make all existing
plugins compatible with both API. IMHO unacceptable solution; it was possible
for small API improvements during 1.x API, but forcing people to maintain
completely old API in complex plugins can only discourage them from further
maintaining.
1. Release an update for the the old plugin_installer, with the current
version added to the url. Fast and easy, however I see some downsides:
- Generally I'm not very keen to mess user's dicertory with core plugin
updates unless it's really justified.
- Either 1.8 packages will be updated too or it will require immediate
plugin_manager upgrade right after installation.
- Unless the plugin_manager is upgraded, many plugins dissapear. Looks like a
nasty and surprising regression during using the stable 1.8. This is probably
disqualifying.
2. Change the new repository policy: let it returns plugins for QGIS 1.8 when
called without the ?qgis= url parameter. This means: the ?qgis= parameter is
required, and the lack of it is a depreciated exception, only designed for
QGIS 1.8. With this reservation it looks reasonable for me. Please note the
new pyplugin_installer (it's a part of the manager working usually under the
hood) adds this ?qgis=$CURRENT_VERSION parameter anyway.
3. Like 2, but return the full list of plugins when called without the
parameter. Advantage: more clear than 2. Disadvantage: more server load and
longer (maybe much longer?) repository fetching in QGIS 1.8
I vote for the solution 2.
More information about the Qgis-developer
mailing list