Extract non-essential declarations and logic out of dokka-core #2933
Labels
enhancement
An issue for a feature or an overall improvement
tech-debt
A technical issue that is not observable by the users, but improves maintainers quality of life
Is your feature request related to a problem? Please describe
Dokkatoo uses a Gradle Worker with classpath isolation to execute the Dokka Generator in Dokka Core.
Dokka Generator is configured via some Kotlin interfaces, that are defined in the same module.
dokka/core/src/main/kotlin/configuration.kt
Lines 133 to 264 in 7753776
Because Dokka Generator and the configuration classes are defined the same module, this tightly couples Dokkatoo to a specific Dokka version. This dependency also drags along Dokka Generator, even though it is not required during Gradle project configuration.
Since Dokkatoo uses classpath isolation to run Dokka Generator, the version of Dokka Generator can be set on the fly.
Describe the solution you'd like
Split the interfaces for Dokka Core configuration into a separate artifact.
org.jetbrains.dokka:dokka-core
- contains Dokka Generator, and depends onorg.jetbrains.dokka:dokka-core-api
org.jetbrains.dokka:dokka-core-api
- contains pure configuration classes and interfaces, without logicDeclaring a feature-variant might be a possible way of doing this https://docs.gradle.org/current/userguide/feature_variants.html, but a more straight-forward way would be do create a separate subproject
Describe alternatives you've considered
Keep on using dokka-core.
Additional context
Related:
Are you willing to provide a PR?
Yes
The text was updated successfully, but these errors were encountered: