At ScalaItaly I met with @dotta and we discussed a bit over SBT, at the end we decided that it will be worth to bring the attention of the community on the topic, and here I am.
What happened recently during the transition from 0.13 to 1.X was a great success and many things dramatically improved breaking minimally the end user API.
This resulted in having most of the ecosystem seamlessly following with a tiny effort and guidance.
Now, I would like to think ahead, and focus on the key pain points that anyone is facing while using Sbt (specially Sbt plugins maintainers), to pave the road to Sbt 2 maybe
We identified two major issue categories:
- performances
We still pay long waiting times while waiting for sbt to start and caching doesnât help in many cases. - API simplification
The most common reaction after teaching Sbt beginner stuffs to people has been so far: âNow I understand why I did X in the pastâ, I do believe that we can do better by analyzing the current situation and finding out a minimal subset that will make builds easier to understand (now we also have cbt and mill experience to teach us).
Into these categories I would at first try to collect in no particular order specific items from the community, I start:
-
performances
-
dependencies lookup looks to happen more frequently than expected even in presence of fully formed caches
-
ivy2 is used as default, but tools like âcoursierâ demonstrated the tech gap
-
API
-
Scopes on 3 axes, itâs extremely hard to identify a Key in a 3 axes space
-
Configurations / Projects they are both âfoldersâ for isolating Keys, files etc., (i.e. the root concept overlap) if we use a Occam razor only one has to survive (Iâm in favor of Projects since Configurations seems to be a direct translation of Ivy2 concepts)
-
TaskKey is both an axis and a value, this is extremely confusing
-
Static lookup instead of dynamic dispatch of â.valueâ, this is antithetic to what we normally use in a program workflow
Iâm not arguing to have answers to the point I listed and I respect and love the work done specially by @eed3si9n @dwijnand @jvican (and many more) Iâm just pushing for an even more awesome future, Sbt is still the first tool anyone coming into Scala has to touch, and we should take special care of it IMO.