substrait-io / substrait-java

Apache License 2.0
72 stars 70 forks source link

Split isthmus into CLI and library components #248

Closed bestbeforetoday closed 1 month ago

bestbeforetoday commented 2 months ago

The isthmus component currently contains both library code that is useful to other components, and a CLI command implementation. This means that code that depends on the isthmus component as a library is forced to pull in CLI-specific dependencies, which includes a concrete logging provider (as described in issue #243).

I propose splitting the current content of the isthmus component into two: a library and CLI component. The library component could remain as isthmus since projects likely already depend on that component, or could be renamed to something like substrait-calcite. The CLI portion could be named isthmus-cli, or could remain as isthmus if the library component used a different name.

bestbeforetoday commented 2 months ago

If you agree with this approach, I would be happy to take on this change.

vbarua commented 2 months ago

I brought this up in the substrait sync yesterday and the response was generally positive.

In terms of your proposal, I think splitting out the CLI component into isthmus-cli and leaving the core package as isthmus makes the most sense, as this will minimize the amount of works our downstreams will need to do to migrate.

bestbeforetoday commented 1 month ago

Resolved by PR #249 and published in v0.31.0.