>
> Andrew>My biggest pain point when working with calcite is the size of the
> core

Andrew>project. Individual tests are mostly fast, but just building core
> takes 100
> Andrew>seconds. It would also be easier to run just the relevant tests if
> there
> Andrew> were several smaller maven projects.
>

Let's pick an example.
Current core contains "MaterializationTest 160sec" and "LatticeTest
212sec", and I doubt that functionality changes often.
Suppose we move the features to calcite-materialization and calcite-lattice
submodules (just pretend there's no circular dependencies, etc, etc)

Will it make "core" build faster? Of course it will.
Will it make testing "hacking Calcite core" faster? I doubt so.
Changes to "core" might ripple to other submodules. For instance, a change
in some rule might defeat calcite-materialization.
That means you would still need to run calcite-materialization tests even
though you alter core.
One can cut corners by building "core" only, however it is effectively the
same as marking certain tests as "to be executed with -Dlong.tests=true
only".

On top of that, Maven builds modules sequentially, so moving materialiation
and lattice to separate modules would even hurt end-to-end build and test
time.

Gradle might help there as it can build modules concurrently.

Vladimir

Reply via email to