cosmoscout / cosmoscout-vr

:milky_way: A virtual universe which lets you explore, analyze and present huge planetary datasets and large simulation data in real-time.
Other
351 stars 27 forks source link

Simple dependency management between plugins #301

Closed JonasGilg closed 1 year ago

JonasGilg commented 1 year ago

The Problem

We want to create a new plugin, that combines data from WMS, WCS and WFS sources that also implements some analysis tools ontop. We currently have a plugin to load WMS data and a WCS plugin is also in the vestec branch.

Currently it is not easily possible to have dependencies between plugins, which initially was also by design, but it would also be code smell to duplicate all this plugin code.

The Solution

Create a small dependency system, that would allow plugins to depend on other plugins.

Things to consider:

The Alternatives

JonasGilg commented 1 year ago

Current idea is, to create a new system for "plugin-libraries" short csl. They will also be situated in the plugins folder. Plugin libraries will have no subclass of Plugin, but can have their own logger. They can just be linked against from other plugins.

Schneegans commented 1 year ago

I think we could move the measurement tools base classes to such a "plugin-library". They are currently only used in plugins.