Welcome on board, Graal!

Almost a year ago, Graal was presented as a potential component of GrimoireLab. Today we are happy to announce Graal as a new GrimoireLab integration. Let’s go back in time and explain how we got to this point.

Graal beginnings

Graal was born as a personal side project with the intent of empowering GrimoireLab users with information extracted from source code (e.g., lines of code or LOC, and licenses). Its design turned around two main ideas: leveraging on existing tools to get source code information, and providing results in a flexible JSON format, similar to the one produced by Perceval.

The development around Graal has been moving forward since then. The codebase has become more stable and new plugins have been included. For instance:

  • CoCom: Gathers data about code complexity (e.g., cyclomatic complexity, LOC) from repositories written in popular programming languages such as: C/C++, Java, Scala, JavaScript, Ruby, Python, Lua and Golang. CoCom builds on Cloc and Lizard.
  • CoLic: Scans the code to extract license & copyright information. CoLic currently supports Nomos and ScanCode.
  • CoLang: Gathers insights about code language distribution of a repository. CoLang relies on Linguist and Cloc tools.

Graal integration and Google Summer of Code

At the beginning of the year, Jesus and I started thinking about how to integrate Graal to the GrimoireLab toolchain. This ended up with a Google Summer of Code (GSoC) project proposal under the CHAOSS organization. Several candidates applied and finally Nishchith Shetty was selected to work on it during the 12-week GSoC program.

With Nishchith on board and the support of Aswani Pranjal as additional mentor, we kickstarted the discussion and decided to focus on integrating the  CoCom and CoLic plugins because they are able to scan a large spectrum of programming languages.

The project moved forward, step-by-step, every day a little:

  • End of week 4: A preliminary integration between CoCom and the platform was operational.
  • End of week 8: CoLic was integrated and the first version of dashboards were created.
  • Last 4 weeks: Code was polished, dashboards refined, and integration and scalability tests were performed.

The video below showcases the work done, while full details of the GSoC project can be found at Nishchith’s blog.

A big THANK YOU to Nishchith, Jesus and Aswani for your work, time and interest in this project, and big thank you also to CHAOSS and GSoC for supporting it.

What’s next?

The integration between Graal and GrimoireLab is now completed and ready to be used since the latest GrimoireLab release. I’d like to remind the GrimoireLab community that all releases can be downloaded from dockerhub too. Just go ahead check out the last one.

Future plans are up to GrimoireLab community and CHAOSS working groups. Indeed, feedback and comments are always more than welcome!

Leave a Reply

Up ↑