In yesterday’s email I mentioned Daniel Ratiu’s effort to create a language for describing the architecture of MPS projects in terms of groups of modules and dependencies allowed between them. I also wrote that the project is not open-source. It turns out that I was wrong and the project is already available as part of mbeddr/mps-qa.

Here is what an architecture description in this language looks like:

And I will use this opportunity to tell you a bit more about MPS-QA. The project aims to be a collection of quality assurance tooling for JetBrains MPS projects. Besides the architecture language it provides an algorithm for clone detection (finding duplicated code) and a search utility for concepts that have no instances or concept features (properties, children, or references) that are never used. More features, such as JaCoCo code coverage integration and automatic model mutation, are in the works.

If you are interested in learning more about MPS-QS, check it out on GitHub. Daniel is one of the friendliest MPS enthusiasts I know and he would be happy to hear from you if you are interested in quality assurance of MPS projects.