TODO

Documentation

  • Go through docs to strip out deprecated info

  • Update docs to reflect changes to YAML spec

  • 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

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

  • Expand development section into contributing guide

  • Go through and update/prune interface documentation

Performance

  • Streamline normalization to speed it up

  • improve speed of validation

  • Wrap C API for serializing/deserializing obj/ply

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

New feature/example

  • Change “args” in drivers to more transparent wording (source_code, etc.)

  • Alias input/output keyword arguments for connections to from/to for clarity

  • 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

  • Add deprecation warnings to handling of old syntax

  • Add datatypes as components?

  • Improve support for different string encodings (i.e. add datatype property to string)

  • 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.

  • Changes ‘bytes’ type to ‘ascii’ since that is really what it means

  • Change name of C MetaschemaType to schema?

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

  • Add automated deprecation marker for schema options

  • Split ld off as its own linker

  • 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

  • Write C/C++ as extension to rapidjson and wrap in Python

  • Add alias key to schema that is then translated into valid JSON schema

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

Deprecation

  • Remove IOInfo test class as no longer used

Testing

  • Try to setup comm/connection testing at class level so that comms only created once

  • Update base test class for comm and connection drivers to use comm installation bool for generating unittest skip errors

  • testing for R native functions