* SDK - Components - Replaced Kubernetes options with generic launcher options
This reduces the schema size and makes the task launcher options more flexible.
* Removed the launcherOptions for now
* SDK/Components - Added JsonSchema spec for the component format
Added the schema outline
* Fixed missing "required"
* Replaced PrimitiveTypes with just string
* Renamed CommandlineArgumentType to StringOrPlaceholder
Made more ContainerSpec properties support placeholders
* Removed support for type inheritance and generic types as requested by Ning and Ajay
* Some people are scared of graphs/pipelines - removing them
* Some people do not like optional inputs and conditionals - removing them
Sorry, Yasser and Bradley.
* Some people might be scared of predicates or conditional execution - removing them
Sure, Argo and DSL supports it, but some people care more about the spec file size even when that means dropping already supported features.
Sorry, Bradley and Riley.
* Reverting the last 4 commits
Making those big compromises did not have any noticeable effect on people asking for them.
* Removed list-style type specifications
We've standardized on the map-style specification.
* Renamed TypeType to TypeSpecType
* Updated the structure of graphInput
* Added the type attribute to taskOutput and graphInput
* Updated the execution options structure
* Using the official Kubernetes PodSpec schema instead of Argo's subset
* Reworked the Component structures.
Rewrote parsing, type checking and serialization code.
Improved the graph component structures.
Added most of the needed k8s structures.
Added model validation (input/output existence etc).
Added task cycle detection and topological sorting to GraphSpec.
All container component tests now work.
Added some graph component tests.
* Fixed incompatibilities with python <3.7
* Added __init__.py to make the Travis tests work.
* Adding kubernetes structures to setup.py
* Addressed PR feedback: Renamed _original_names to _serialized_names
* Addressed PR feedback: Reduced indentation.
* Added descriptions for all component structures.
* Fixed a bug in ComponentSpec._post_init()
* Added documentation for ModelBase class and functions.
* Added __eq__/__ne__ and improved __repr__
* Added ModelBase tests