I am really excited to give you first glimpse of a project I have been working on. It is an automatic dependency version checker. We are rolling it out internally to keep on top of our projects at Cake Solutions; I am hoping to have a small private beta release at the end of September. The ultimate goal is, of course, to roll it out publicly as after that as possible.
Let’s take a look at what it does first.
It also integrates with Flowdock, which we use for our team communication.
What is the goal?
The first version–the one coming out in September–will only work with SBT projects (
.sbt as well as full-fat Scala); it will expect to get read-only access to your GitHub repositories to download the necessary SBT files.
If configured with your Flowdock flow key, it will send notify you whenever it finds an update to the dependencies in your project; if you do not use Flowdock, you will have to keep coming back to check the status of your project.
In addition to the updates, it will attempt to gather as much news about each update as possible. You will be able to quickly find the relevant notes, blogs, articles, and so on. Furthermore, the system will analyse the mood of the news about the update. All of this is to help you with the question, “Should I update to the newer version?”
The next step are the automatic pull requests. We spend a lot of the time keeping up with minor version bumps, and it would make our lives a lot simpler if this were automated. Because we have configured continuous build on our pull requests, and because we are not usually too trigger-happy when pressing the Merge button, this feature is right for us.
The next big area of development is mentoring and training. A system that can tell you news that are relevant to your project, makes it much easier to keep your teams up to date. I would love to introduce integration with Typesafe Activator, which would be able to offer further guidance & learning opportunities.
Under the hood
Under the hood, the system is a combination of SBT plugin that sends information about the dependencies to an Akka application, which scans for the updates, collects the news, performs the analysis. As can probably guess, the data lives in Cassandra. To make the system talk to the rest of the world, we have RESTful API in Spray, and there is a simple webapp that consumes the API and shows
pretty web pages.
Where do you think the code in my Activator templates comes from, eh?
What to do now?
If you like what you see, and if you’d like to join in on the beta in September, get in touch; if you could tell me how complex your projects are, or give GitHub URLs, that would be even better!