GSoC 2019: Plugin Manager (Week 4)

Posted 5 years ago

Hi!

What I've done

Good news comes first: I'm pleased to say: after many manual tests, our auto-updater is now able to correctly fetch almost all 3.x-compatible plugins in the repository. However, 3 plugins still fail to be download and I believe it's the incorrect format of those plugins rather than the auto-updater's fault that causes the failure.

In addition to testing, I also did some pre-research on the multi-threading facilities in Qt.

Currently, analyzing, downloading plugins and checking for update are all time-consuming processes and are done one by one for each plugin. Especially when all installed plugins need to be checked for update. I want to make those routines asynchronous. That is, multiple plugins' download processes are able to occur at the same time. And checking for update, if running when the resource manager starts, shouldn't block so long before the window appears.

The way to achieve this is to move those routines into separate threads. I added a class named PluginWorker, and plan to relevant time-consuming codes there as methods. The objects of PluginWorker could live in other threads.

What to do next

Multi-threading support is appealing to me, but if you're not bothered to wait for multiple plugins to be downloaded one by one, I can also move on to other facilities like local plugin management.


Comments