cafejojo / schaapi

🐑 Safe Changes for APIs

Home Page:https://cafejojo.org/schaapi

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Interfaces for languages and modules

JSAbrahams opened this issue · comments

I would prefer that build tools and languages each have their own interfaces, as it allows use to combine arbitrary languages/projects with aribitrary build tools. For instance, I can imagine that the GradleProject interface has different properties, such as the location of the properties and settings files, or another language needing completely different terminology in the interface. C has no classes for instance.

See comment for original discussion.

However, these interfaces need to be placed somewhere. It was mentioned that it slightly weird to place these in common, but they should the very least be placed one lever higher than the java-maven-project module so other modules could potentially use these interfaces.

We could place MavenProject in a maven-project module (and similarly for JavaProject), and then have java-maven-project depend on both those modules. However, in earlier discussions we agreed that this would result in an excessive amount of modules (and thus significantly longer compilation times). I think that our current solution is fine for now.

I agree with @FWDekker. Let's refactor/move once we encounter those scenarios.

@FWDekker @gandreadis I agree, lets leave it as is.