TODO

Bugs

  • Fix bug where datatype parameters in communicators are not passed to the datatype during normalization (currently handled on python side)

  • Fix bug in timesync model driver when state variables have units and add units to OSR

Documentation

  • Go through docs to strip out deprecated info

  • Docs on datatypes w/ example of user defined data type

  • Docs on how nested data objects are represented in C/C++.

  • Regenerate metaschema with $schema entry

  • Refernce metaschema on website in $id or $schema?

  • Expand development section into contributing guide

  • Go through and update/prune interface documentation

Refactor

  • Move all specialized strings to a file that is read in and passed as definitions during compilation for C/C++ (or loaded at import in python/matlab)

  • Change C client/server use of direction/serializer info to be more transparent

  • Split drivers into separate directories for model drivers and connection drivers

  • Change how CLI arguments are added to the arg parser for the language installer to use subparsers

  • Use doxygen linter/parser for parsing functions

  • Add parameter to files/serializers to allow incremental or complete read on file types where that is valid

New feature/example

  • Add example of each supported language (missing LPy, cmake, make)

  • change gs_lesson/formatted_io series to have more descriptive names

  • Consider passing input/output to/from Matlab function models directly through the matlab engine

  • Create a set of fundamental tests that every language implementation needs to pass including files containing serialized data that needs to be deserialized and then serialized.

  • Allow use of different ‘default’ communication mechanisms on different connections based on the languages involved

  • Add comm for using files as temporary storage in passing information between models

  • Assign meanings to error codes and implement across languages (e.g. missing comm class)

  • Add parameters constraining valid values for inputs/outputs (e.g. range) using JSON paramaters

  • Allow users to select from list of multiple possiblities when locating libraries to avoid conflict

  • Add ‘shell’ option for executable models on Windows to allow calling different shell types.

  • Move communication to C++

  • Allow models to be embedded natively

Testing

  • testing for R native functions

  • Identify tests that can only run in serial and update GHA jobs to run tests in parallel