In QGIS 3.8, we've introduced a long-sought-after feature for QGIS plugin developers: the ability to specify dependencies for your plugins.
To add a plugin dependancy, you can use the new metadata "plugin_dependencies". The format is a comma-separated list of PIP-like plugin names (with optional version). E.g:
plugin_dependencies=GeoCoding,IPyConsole==1.9
The example above will require:
When a plugin is installed, the metadata is parsed and a user will be prompted with a dialog listing the dependencies. The user can then decide what to do with the dependencies: