Add Konsist Existing To Project (Baseline)
Last updated
Last updated
Retrofitting Konsist into a project that hasn't followed strict structural guidelines can pose initial challenges, necessitating a thoughtful approach to smoothly transition without disrupting ongoing development. Unlike most linters, which provide a baseline file, Konsist follows a different methodology (for now).
The baseline file will be added in the future.
There are two approaches that can be employed when retrofitting Konsist into an existing project#create-more-granular-scopes and Suppress Annotation.
Scope represents a set of Kotlin files. The scope allows to verification of all Kotlin files in the project or only a subset of the project code base.
See Create The Scope.
When refactoring an existing application, you can either choose to first refactor a module and then add a Konsist test or initially add the Konsist test to identify errors, followed by the necessary refactor. Both strategies aim to ensure modules align with Konsist's structural guidelines.
Consider this The MyDiet
application with feature 3 modules:
At first, the Konsist test can be applied to a single module:
To review the content of a given scope see Debug Konsist Test.
As refactoring proceeds and code gets aligned, the Konsist scope can be extended to another feature module (featureGroceryListGenerator
):
When entire code base (all modules) are aligned with the Konsist tests, the scope can be retrieved from the entire project:
Usage of project scope (scopeFromProject
) is a recommended approach because it helps to guard future modules without modifying the existing Konsist test.
Konsist provides a flexible API to create scopes from modules, source sets, packages, files, etc., and combine these scopes together. See Create The Scope.
The second approach, Suppress Annotation, may be helpful when to Konsist swiftly without making substantial alterations to the existing kotlin files. See #suppress.