Open timlinux opened 7 years ago
@timlinux is this about included plugins or all plugins (including repo ones)?
Hi @nyalldawson - sorry I was saving as I went along - perhaps reload the page to see a more complete transcript.
@timlinux is this about included plugins or all plugins (including repo ones)?
@nyalldawson I would say generally it applies mainly to those plugins shipped with QGIS - but we would also like to clarify the process of when and how a plugin can move out of a plugin repo and in to core.
@timlinux which Routing pluign do you mean? If you are talking about RoadGraph, it is already removed.
Also personaly I think that CSW support should be not a plugin, but a core feature like other OGC services. This even more important with ongoing work on metadata support in QGIS.
Each plugin should be under maintainership of a developer
Totally agreed, this seems so obvious to me that I'd not even though of writing it down, but if you want to, I wonder why the plugins should be treated differently from the rest of the code.
I mean, that if a developer develops and commits a cool new feature in core, shouldn't this be taken as an implicit commitment to maintain it? At least for a reasonable amount of time.
I don't see the need to make a distinction for the plugins, even if they are probably easier to isolate from the rest of the core contributions, that tend to spread over different areas of the code.
Python plugins which become popular features and are in core should be considered as candidates for being ported to C++ […] Legitimate reasons for maintaining the plugin as python code could include: […]
- any others?
@elpaso wrote:
Totally agreed, this seems so obvious to me that I'd not even though of writing it down, but if you want to, I wonder why the plugins should be treated differently from the rest of the code.
I mean, that if a developer develops and commits a cool new feature in core, shouldn't this be taken as an implicit commitment to maintain it? At least for a reasonable amount of time.
I don't see the need to make a distinction for the plugins, even if they are probably easier to isolate from the rest of the core contributions, that tend to spread over different areas of the code.
Yes you are right this should be an implicit requirement for any new code contributed to QGIS. I think it is always worthwhile to reinforce the message though.
@timlinux you mentioned the Plugin Manager. For a few years it's in core, not a plugin. Actually, do we really need to keep the 'core plugins' as plugins? I guess it's confusing for users some plugins are not deinstalable. I'd rather see them fully merged with the code base, like it's now with the PuginManager (c++ classes) and PyPluginInstaller (Python package). The main advantage of keeping them as plugins is the possibility to disable unwanted or crashing ones. But is it really so important? It's just my 2 cents, I believe you investigated it deeper during the meeting.
@timlinux you mentioned the Plugin Manager. For a few years it's in core, not a plugin.
@borysiasty ooops - I was aware of that :-P
Actually, do we really need to keep the 'core plugins' as plugins? I guess it's confusing for users some plugins are not deinstalable. I'd rather see them fully merged with the code base, like it's now with the PuginManager (c++ classes) and PyPluginInstaller (Python package).
Yeah this is one of the points I was trying to make - if we ship something as part of core, it should not be a 'plugin' but just 'enabled and working' as per any other feature of QGIS core.
@borysiasty following from your comments above, I added a section to the proposed way forward:
@tomchadwin wrote:
lack of C++ knowledge in the maintainer of the Python plugin, and no C++ able/prepared to take ownership
Yes good example, Ill add it to the QEP thanks.
@alexbruy wrote:
@timlinux which Routing pluign do you mean? If you are talking about RoadGraph, it is already removed.
Thanks I removed it from the list.
Also personaly I think that CSW support should be not a plugin, but a core feature like other OGC services. This even more important with ongoing work on metadata support in QGIS.
I agree 100%! Thanks for your comments.
@timlinux - great. The list is getting shorter :)
Btw. the split between c++ PluginManager and Python's PyPluginInstaller may be a good* example of porting most code to c++ and only leaving python-related stuff in Python (your fifth point).
*) maybe not good, but at least just an example ;)
This might be a good moment to send an update concerning globe: I've upstreamed patches to osgQt (https://github.com/openscenegraph/osgQt/pull/3) and osgEarth (https://github.com/gwaldron/osgearth/pull/890) to allow distributions to ship side-by-side installable packages for osgQt4/osgQt5 and osgEarthQt4/osgEarthQt5. This is a precondition for distros to even be able to ship osgEarthQt5, since there are still some osgQt4 users out there. I also did some initial work to get the globe compiling again (https://github.com/manisandro/QGIS/commit/3ad287b7c38e7c07ffd427b12d2952a29e28ffdb). Unfortunately the big blocker at the moment is that osgEarth simply seems to be broken when used with Mesa drivers (at least, Intel, which I tested against). I posted upstream [1] but got no reaction so far. I would not like to write off the globe plugin and still plan to invest some time to get it to work, but it won't happen immediately (though clearly I know the freeze is approaching).
And while I'm at it, I'm currently doing some heavy work on the geometry checker at the moment to support for checking multiple layers at once resp. for the topology checks to work on multiple layers.
[1] http://forum.osgearth.org/osgEarth-2-8-on-mesa-intel-td7590671.html
QGIS Enhancement: Policy and standards for plugins in QGIS 3.0
STATUS: DRAFT
Date 2017/04/02
Author Tim Sutton (@timlinux)
Contact tim@qgis.org
maintainer @timlinux
Version QGIS 3.x
Summary
In QGIS 3.0 we will 'clean house' and provide our users with a cleaner, more cohesive QGIS. This proposal ponders the future of plugins within QGIS 3.0.
Some proposed guidelines:
Cleaning house
Here follows a proposed list of eEssential plugins (Python):
And proposed essential plugins (c++) - should become core functionality:
Possible candidates for removal C++ plugins
*For the resource sharing plugins we should:
Moving forward
My proposal for progressing this QEP is this:
Backwards Compatibility
None
Issue Tracking ID(s)
None
Votes
None