GSoC 2019: Plugin Manager (Week 4)
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
indeed https://musescore.org/en/project/musescore-command-parser and https://musescore.org/en/project/plugin-utilities are not plugins themself, so should get ignored. Way to detect might be that it .js files in it, not .qml?
I've just fixed the broken links in https://musescore.org/en/project/reset-dialog-positions
In reply to indeed https://musescore.org… by Jojo-Schmitz
Way to detect might be that it .js files in it, not .qml?
Yeah, I've just implemented that way. If the downloaded archive contains no qml files, the installation will abort.