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