For submission into the 2020 round of QGIS Grants proposals.
- Your name: Sebastian M. Ernst
- Your email: ernst@pleiszenburg.de
- Grant request in Euros: 10k Euro
- Proposal title: Turning Plugin Management into Actual Package Management
- Proposal details: See QEP's Abstract
- QEP link: qgis/QGIS-Enhancement-Proposals#179 / https://github.com/qgist/pluginmanager-qep
- History:
- I explored options by developing a proof-of-concept QGIS plugin - see Github repo.
- I tried and studied every bit of proposed technology in terms of figuring out the overall feasibility of the proposed changes.
- I explored, debugged and documented all relevant sections of QGIS source code (as documented in the QEP).
- I got in touch with developers through the developer mailing list, exploring design issues and asking questions for gaining a deeper understanding of the subject matter (as documented in the QEP).
- How are you qualified to do this:
- I have built (i.e. compiled) QGIS from scratch many times and successfully applied changes.
- I have intensely studied QGIS code base (as documented in the QEP).
- I develop and maintain QGIS plugins (some open source, some proprietary).
- I develop and maintain established open source Python packages.
- 15 years of Python experience, for the past 6 years on a daily & professional basis
- 7 years of experience in using Qt
- While I am confident that I can handle the proposed C++ cleanups myself, I would be happy to collaborate with an experienced QGIS C++ developer in this particular matter.
- Implementation schedule / plan:
- Most of this work will be carried out in July and August of 2020.
- It is supposed to be finished and tested before the feature freeze of QGIS 3.16 on 2020-09-11.
- Step 1 (as described in QEP) has mostly been implemented. Open points:
- Transplant existing work on step 1 into QGIS code base.
- Finish the unfinished pieces (dependency mechanism cleanup and plugin loading sequence) of step 1. Required time: 2 to 3 days.
- Implement step 2 (as described in QEP). Required time: Roughly 2 full weeks.
- Implement tests for new plugin manager module and fix bugs along the way. Required time: Roughly 1 to 2 full weeks.
- Write documentation. Required time: Roughly 2 to 3 days.
- Total allocated time for project: 5 weeks full time, including buffers.
- I am planning to maintain this code long-term.