Skip to content

Get rid of the dependency on Kotlin IDE plugins #2889

@IgnatBeresnev

Description

@IgnatBeresnev

Dokka depends on some parts of the Kotlin IDE plugin for analyzing KDoc comments.

Problems

  • The plugin's API is public, but it's not expected that there are external users who need backward compatibility guarantees. For this reason, the API sometimes changes or is deprecated/refactored without preserving compatibility and/or providing an alternative.
  • IDEA has its own interests when it comes to supported Java versions, Kotlin language/API version, refactorings and so on. This does not always align with our needs. For instance, beginning with platform 221, Kotlin IDE plugin is compiled by a more recent version of Java, while Dokka has to preserve compatibility with Java 8 - this makes it impossible for us to update the dependency, so we are stuck with platform 213.

The problems make it very difficult to keep Dokka stable, and every new major version update takes a lot of time - both aspects are virtually unpredictable at the moment.

Possible solutions

  • Copy-paste used classes from the Kotlin IDE plugin into Dokka. Might be used as a temporary measure until a better option is implemented
  • Extract the parts that Dokka uses from the IDE plugin into a separate artifact that both Dokka and the IDE plugin will depend on. This artifact can have stricter compatibility rules, with a fixed Java/Kotlin version and an established deprecation cycle.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementAn issue for a feature or an overall improvement

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions