-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Do you own your Build Tool or does your Build Tool own you? – readme of cbt
Chris' build tool (cbt) is a build tool for Scala, written in Scala and super easily extendable. Its main advantages over sbt include:
-
Speed
Startup time is faster than sbt on the first run, and cbt uses nailgun to stay in memory so that subsequent startups are immediate. It also uses Zinc for incremental compilation. -
Command-line integration
cbt does not require the use of an interactive shell for reasonable performance. It also plays nicely with stdio, making redirection and piping to other tools trivial. -
Extensibility
Plugins can be written as plain Scala files. Settings simply override definitions in parent "build" traits.
There are however also some points that may hold adoption back:
-
External plugins
cbt's approach to plugins is to "include them all" in its source code. Aside from forking cbt itself, we would need determine if there is a way to port our in-house plugins in such a way that they may be maintained separately from the cbt sources. -
Stability, versioning and deployment
cbt's API has officially reached a stable point and there are ways to ensure reproducible builds (see the project's readme), however we would need to further investigate ways to best deploy cbt to developers.
It may be a bit too early to consider cbt as a replacement for sbt, however I think it could be worthwhile in the long term. I'm not hoping for an immediate decision or even discussion, however I do think it is important to keep exploring ways to make our lives easier as developers and hence I'm putting this idea out there.