Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get rid of the dependency on Kotlin IDE plugins #2889

Closed
IgnatBeresnev opened this issue Feb 24, 2023 · 1 comment
Closed

Get rid of the dependency on Kotlin IDE plugins #2889

IgnatBeresnev opened this issue Feb 24, 2023 · 1 comment
Labels
enhancement An issue for a feature or an overall improvement
Milestone

Comments

@IgnatBeresnev
Copy link
Member

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.
@IgnatBeresnev IgnatBeresnev added the enhancement An issue for a feature or an overall improvement label Feb 24, 2023
@IgnatBeresnev IgnatBeresnev added this to the Stable milestone Feb 24, 2023
aSemy added a commit to aSemy/dokka that referenced this issue Mar 16, 2023
@IgnatBeresnev
Copy link
Member Author

Addressed in #3073

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement An issue for a feature or an overall improvement
Projects
None yet
Development

No branches or pull requests

1 participant