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

Dokka Gradle Plugin 2 #2839

Draft
wants to merge 174 commits into
base: master
Choose a base branch
from
Draft

Dokka Gradle Plugin 2 #2839

wants to merge 174 commits into from

Conversation

aSemy
Copy link
Contributor

@aSemy aSemy commented Jan 31, 2023

A draft re-write of the Dokka Gradle Plugin.

  • Uses Gradle Worker Daemon to run Dokka Generation in a separate process
  • Safe handling of multiple Gradle subprojects
  • Supports Build Cache and Configuration Cache
  • Functional tests using Gradle TestKit
  • Decouples the Dokka Generator from the Dokka Gradle Plugin

I've made lots of progress, and I have decided to split off this PR into a separate project.

https://github.com/adamko-dev/dokkatoo#readme

It's very experimental and unstable, but it's available for anyone who wants to try it out!

Under the hood it still uses Dokka, but not the Dokka Gradle Plugin.


This implements most of #2700

It's an early draft, so I'm not looking for specific feedback, I just wanted to share, because hopefully it provides a more clear goal when discussing #2700.

The new plugin doesn't directly compare to the existing plugin, as I haven't yet implemented the existing configuration DSL - but that is the plan! Once that's done, it will be easier to compare and contrast.

I've implemented the re-written plugin in a separate project, and I've added other Gradle Plugin improvement PRs, because it helps me during development to compare and contrast the code. But because the new plugin is in an 'included build', these other PRs aren't necessary - the plugin is completely independent.

TODO

  • Implement backwards compatibility utilities for the current Dokka Plugin API
  • Improve handling of sharing Plugin dependencies
  • More tests!
  • adapt the existing tests to use the new plugin

…tion configuration into DokkaPlugin. Use Gradle managed types to auto-configure some task properties
…ntion_plugins

# Conflicts:
#	build.gradle.kts
- create DokkaPublication to handle each Dokka output
- for each DokkaPublication, create format specific tasks/configurations/etc
- create specific plugins for each Dokka output format
- do a tonne of refactoring to get conventions working...
- add @nested to some task props
- group Gradle utils in a file
@aSemy
Copy link
Contributor Author

aSemy commented Feb 7, 2023

I've made lots of progress, and I have decided to split off this PR into a separate project.

https://github.com/adamko-dev/dokkatoo#readme

It's very experimental and unstable, but it's available for anyone who wants to try it out!

Under the hood it still uses Dokka, but not the Dokka Gradle Plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants