@curoli There currently is only a small tutorial. Most things are not documented including "task scoping", which is just a pattern in CBT, not a building block. I am planning to write proper documentation in the next few months.
The declared goal of CBT is to shine in both simple and in advanced setups. And I believe it delivers on that.
It's nice about SBT that you can have a fairly simple setup with a single
project and then use commands like "run", "test" or "package" in the
You can do the exact same thing with CBT. Just straight from bash.
cbt test.run. If you don't like typing
cbt every time, we have spun off a separate project to allow custom shells for any program: https://github.com/mchav/with, but I personally prefer the convenience of my ordinary shell, e.g. piping things into unix tools, etc.
The things where CBT starts to shine is on the one hand performance and development turnaround. Try it out, it speaks for itself.
It also shines where sbt projects usually copy and paste or have to deal with the complexities of dependently resolving or compiling things, e.g. for compiler plugins or code-generation. Re-using build code across your projects is very easy with CBT so copy and pasting is not necessary. And downloading or building modules dependently is very easy as well, e.g. for compiler plugins or code-generation.
@olafurpg may have something to add, given how much time he had to invest developing the recent sbt plugins and how quick we were writing the Scala fix plugin at NEScala. sbt is not going anywhere any time soon, but CBT shows how simple things can be. But basically you don't need to become an expert to make many things happen with CBT and there are not a lot of things to learn in order to become an expert. CBT is made from fairly simple and straight forward Scala code, no monads, no shapeless, no macros.
My work over the next months is focused on further improving the already comparatively friendly learning curve.