Add a plugin metadata key for "supports_qt6". Plugins which can
safely be loaded in QGIS builds based on Qt6 can set
supportsQt6=yes
in their metadata.txt to advertise that they are safe to load
on Qt 6 builds
a new key
This change moves the old "app/plugin_installer/checkOnStart" setting
key to a new "plugins/automatically-check-for-updates" key, and
switches the default value to enable automatic checks
This is designed to switch all existing QGIS users to the new
default behavior of checking for plugin updates at startup (at
a maximum of once every 3 days).
It is intended to offer a better QGIS experience to our users,
by proactively informing all users when plugins should be
updated, ensuring that ALL users are more likely to upgrade
plugins and get the bug fixes for plugins promptly.
Enterprise users who have customised this setting in their
deployments will need to adapt their scripts for the new
setting key.
instead of manually
Too many QGIS users use outdated plugins without even realising it,
leading to an overall buggier QGIS experience then they should have...
manually in the plugin manager, then force a reload of the repositories
and don't rely on cached copies of the repo manifest
Otherwise it's not possible to force a refresh on certain types of
plugin repositories where it's not possible to modify the Cache-Control
attribute of the repo
Note that to avoid unnecessary server load, we still use cached
copies during startup and by default. It's only when a user explicitly
hits the "Reload all repositories" button that we force a non-cached
fetch.
Fixes#34351
Implementation of QEP 132:
Manage python cross-plugins dependencies
A new optional metadata entry will be added to metadata.txt: plugin_dependencies
The metadata will contain a comma separated list of plugin names, with a format similar
of the one used by pip, with optional version.
After a successful plugin installation, if the plugin has any unsatisfied dependency,
a dialog will pop-up with the list of unmet dependencies and the user
will be able to choose if she wants to install or upgrade the
dependencies or ignore them.
Example metadata:
plugin_dependencies = QuickMapServices==0.19.10.1,QuickWKT
Funded by GISCE-TI S.L.
And allow these to be retrieved from QgsNetworkRequestParameters.
This allows logging code to identify the area of code where a request
originated from, making debugging much easier!
Tag all requests created with appropriate class name and IDs
utils.findPlugins() checks for the existence of an __init__.py which
results in an attempt to enable a plugin without an __init__.py being
blocked with the only notification being a message in the Plugins log:
WARNING Plugin "<name>" is not compatible with this version of QGIS.
It will be disabled.
This is not very informative, especially because it is the same message
used for a metadata version mismatch.
Adding this check to Plugins.getInstalledPlugin(), which already
duplicates the metadata checks from utils.findPlugins(), results in the
plugin being marked as broken in the Plugins dialog.