Both core InVEST and the Workbench keep track of currently installed plugins. While InVEST relies mainly on the plugin's model_id (e.g., using sample_plugin as a key in models.model_id_to_pyname), the Workbench also maintains version info (e.g., using sample_plugin@0_0_1 as a key in settingsStore.plugins). Although this difference sometimes requires converting a plugin ID from one form to the other, it's not a problem in and of itself. However, in the context of designing and building the plugin registry, it might be worth rethinking whether the model_id is enough for core InVEST's needs. If not, what additional information (version, tag, etc.) is needed, and what's the best way to represent that info? Should core InVEST adopt the Workbench's approach, or something different—and, if something different, should the Workbench be updated to match?
Both core InVEST and the Workbench keep track of currently installed plugins. While InVEST relies mainly on the plugin's
model_id(e.g., usingsample_pluginas a key inmodels.model_id_to_pyname), the Workbench also maintains version info (e.g., usingsample_plugin@0_0_1as a key insettingsStore.plugins). Although this difference sometimes requires converting a plugin ID from one form to the other, it's not a problem in and of itself. However, in the context of designing and building the plugin registry, it might be worth rethinking whether themodel_idis enough for core InVEST's needs. If not, what additional information (version, tag, etc.) is needed, and what's the best way to represent that info? Should core InVEST adopt the Workbench's approach, or something different—and, if something different, should the Workbench be updated to match?