Replies: 2 comments 5 replies
-
@kilojoules @ptrbortolotti @bayc @madsmpedersen @SchmJo |
Beta Was this translation helpful? Give feedback.
-
Sorry I did not see this discussion post before. We have also discussed the structure of the main windIO at our Task 55 meetings. Currently, the main repo is a Python module that also includes schemas. That somewhat makes it unclear what windIO is - is it a Python module or the schema definition? I therefore think it would make sense to split the main repo into a main Regardless of splitting the schema and Python module, I fully agree with the proposed change. windIO should be the dependency of the other modules and not the other way around. |
Beta Was this translation helpful? Give feedback.
-
Acknowledging that I lack nearly all context for the background of windIO, I propose here an architecture and scope of use for this software repository along with a structure for managing dependencies.
Scope
As the definition of an ontology, a software repository is useful for various infrastructure and examples, but it is not required. However, the developers of windIO have created nice tools to make adoption of the ontology simpler. In that regard, I propose that windIO adopt the scope listed below. These are all already in place, but this intends to answer the question "What is windIO as a software repository?":
Architecture
The proposed architecture below closely follows the scope stated above. Note that the top-level
windIO
object in the diagram is intended to be a namespace that provides access to the objects beneath it.The ontology definition and it's YAML representation are defined in the
Plant
andTurbine
modules via YAML schemas (thewindIO.plant
andwindIO.turbine
modules in the software library). The module for loading and validating the input files is available throughwindIO.loader
, and it contains functionality similar to the existingLoader
,load_yaml
andvalidate_yaml
functions in yml_utils.Dependencies
Currently, windIO has dependencies as depicted below. Using windIO requires the user to install both windIO and the simulation software they'll use. Also, there will be missing dependencies in windIO unless all software that implement this ontology are installed since data structures from the calling-codes are used in the implementations. Lastly, this structure requires any software implementing windIO to make a change to the windIO library itself.
I propose to require that any software implementing windIO include it as a dependency, and that they include their windIO interface in their software projects.
There are currently components included in windIO that fall outside of this scope; specifically, the software-specific implementations of the windIO ontology (pywake and topfarm). I propose that all implementations of windIO be included in their host software repositories.
Beta Was this translation helpful? Give feedback.
All reactions