[KPM] Implement initial IdeaKotlinProjectModelBuilder

- Introduce `kotlin-gradle-plugin-idea` module that allows
to share models between the IDE and KGP

- Add `kotlin-gradle-plugin-idea` to the RuntimePublicAPITest to
ensure binary compatibility

^KT-51262
This commit is contained in:
sebastian.sellmair
2022-02-11 15:54:26 +01:00
committed by Space
parent faf0cbea5d
commit e91785ba39
29 changed files with 353 additions and 7 deletions
@@ -0,0 +1,13 @@
# Kotlin Gradle Plugin Models shared between IDEA import and KGP
The classes defined in this module will be available inside the Kotlin Gradle Plugin (KGP)
as well as in the IDE import (GradleProject).
## Binary Compatibility:
Binary compatibility can be tested by
`./gradlew :tools:binary-compatibility-validator:clean :tools:binary-compatibility-validator:test`
Binary incompatible changes have to go through a proper deprecation cycle after releases
### Unstable APIs / KotlinGradlePluginApi
Some APIs are marked with 'KotlinGradlePluginApi' which means, that those are not kept binary compatible and are considered 'unstable'
from the IDEA perspective. Typically constructors for models are marked like this