Hi Mickael. Thanks for your input. Addressing the point you mentioned below.
> 1) Can you explain how this would work with the GET > /{pluginName}/config endpoint? How do you specify a version for a > connector? This API returns the set of configurations for a given connector. Since between versions the configurations can change its allow a user given version to return the correct configs. The version is added as a query parameter, for example - /S3SinkConnector/config?version=v1.1.1. > 2) Some connectors come bundled with transformations (for example > Debezium). How would multiple versions of a transformation be handled? The version of transformations bundled with a particular connector version will be used when the connector is run with the corresponding version number. There will be implicit isolation between the two transformation as they are part of two separate plugins and will be loaded using different plugin classloaders during connector creation. > 3) You mention the latest version will be picked by default if not > specified. The version() method returns a string and currently > enforces no semantics on the value it returns. Can you clarify the new > expected semantics and explain how versions will be compared > (alphabetical, semantics versioning, something else?) The plugin loading mechanism already compares connector versions (new connectors are created with only the latest version though). The comparison between version will remain the same as it is currently and is done using maven artefact versioning plugin. It is a generic versioning scheme that supports semantic, alphabetical and combinations with support additional modifiers (like alpha, beta, release and snapshot build versions). Please refer to this javadoc for the full comparison method. https://maven.apache.org/ref/3.5.2/maven-artifact/apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html . I do not think its necessary to enforce a new semantic with the version. IMO the existing versioning scheme is appropriate and flexible enough for all code versioning methods.