Documentation Engine for Kotlin

Related tags

Kotlin dokka
Overview

Dokka official JetBrains project TeamCity (build status)

Dokka is a documentation engine for Kotlin, performing the same function as javadoc for Java. Just like Kotlin itself, Dokka fully supports mixed-language Java/Kotlin projects. It understands standard Javadoc comments in Java files and KDoc comments in Kotlin files, and can generate documentation in multiple formats including standard Javadoc, HTML and Markdown.

Using Dokka

Full documentation is available at https://kotlin.github.io/dokka/1.6.10/

Using the Gradle plugin

Note: If you are upgrading from 0.10.x to a current release of Dokka, please have a look at our migration guide

The preferred way is to use plugins block.

build.gradle.kts:

plugins {
    id("org.jetbrains.dokka") version "1.6.10"
}

repositories {
    mavenCentral()
}

The plugin adds dokkaHtml, dokkaJavadoc, dokkaGfm and dokkaJekyll tasks to the project.

Applying plugins

Dokka plugin creates Gradle configuration for each output format in the form of dokka${format}Plugin:

dependencies {
    dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.6.10")
}

You can also create a custom Dokka task and add plugins directly inside:

val customDokkaTask by creating(DokkaTask::class) {
    dependencies {
        plugins("org.jetbrains.dokka:kotlin-as-java-plugin:1.6.10")
    }
}

Please note that dokkaJavadoc task will properly document only single jvm source set

To generate the documentation, use the appropriate dokka${format} Gradle task:

./gradlew dokkaHtml

Please see the Dokka Gradle example project for an example.

We encourage users to create their own plugins and share them with the community on official plugins list.

Android

Make sure you apply Dokka after com.android.library and kotlin-android.

buildscript {
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}")
        classpath("org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}")
    }
}
repositories {
    mavenCentral()
}
apply(plugin= "com.android.library")
apply(plugin= "kotlin-android")
apply(plugin= "org.jetbrains.dokka")
dokkaHtml.configure {
    dokkaSourceSets {
        named("main") {
            noAndroidSdkLink.set(false)
        }   
    }
}

Multi-module projects

For documenting Gradle multi-module projects, you can use dokka${format}Multimodule tasks.

tasks.dokkaHtmlMultiModule.configure {
    outputDirectory.set(buildDir.resolve("dokkaCustomMultiModuleOutput"))
}

DokkaMultiModule depends on all Dokka tasks in the subprojects, runs them, and creates a toplevel page with links to all generated (sub)documentations

Using the Maven plugin

The Maven plugin does not support multi-platform projects.

Documentation is by default generated in target/dokka.

The following goals are provided by the plugin:

  • dokka:dokka - generate HTML documentation in Dokka format (showing declarations in Kotlin syntax)
  • dokka:javadoc - generate HTML documentation in Javadoc format (showing declarations in Java syntax)
  • dokka:javadocJar - generate a .jar file with Javadoc format documentation

Applying plugins

You can add plugins inside the dokkaPlugins block:

<plugin>
    <groupId>org.jetbrains.dokka</groupId>
    <artifactId>dokka-maven-plugin</artifactId>
    <version>${dokka.version}</version>
    <executions>
        <execution>
            <phase>pre-site</phase>
            <goals>
                <goal>dokka</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <dokkaPlugins>
            <plugin>
                <groupId>org.jetbrains.dokka</groupId>
                <artifactId>kotlin-as-java-plugin</artifactId>
                <version>${dokka.version}</version>
            </plugin>
        </dokkaPlugins>
    </configuration>
</plugin>

Please see the Dokka Maven example project for an example.

Using the Command Line

To run Dokka from the command line, download the Dokka CLI runner. To generate documentation, run the following command:

java -jar dokka-cli.jar <arguments>

You can also use a JSON file with dokka configuration:

java -jar <dokka_cli.jar> <path_to_config.json>

Output formats

Dokka documents Java classes as seen in Kotlin by default, with javadoc format being the only exception.

  • html - HTML format used by default
  • javadoc - looks like JDK's Javadoc, Kotlin classes are translated to Java
  • gfm - GitHub flavored markdown
  • jekyll - Jekyll compatible markdown

If you want to generate the documentation as seen from Java perspective, you can add the kotlin-as-java plugin to the Dokka plugins classpath, eg. in Gradle:

dependencies{
    implementation("...")
    dokkaGfmPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:${dokka-version}")
}

FAQ

If you encounter any problems, please see the FAQ.

Comments
  •  Exception while loading package-list from ExternalDocumentationLinkImpl

    Exception while loading package-list from ExternalDocumentationLinkImpl

    Guice provision errors:

    1. Error injecting constructor, java.lang.RuntimeException: Exception while loading package-list from ExternalDocumentationLinkImpl(url=https://developer.android.com/reference/, packageListUrl=https://developer.android.com/reference/package-list) at org.jetbrains.dokka.ExternalDocumentationLinkResolver.(ExternalDocumentationLinkResolver.kt:25) at org.jetbrains.dokka.ExternalDocumentationLinkResolver.class(ExternalDocumentationLinkResolver.kt:25) while locating org.jetbrains.dokka.ExternalDocumentationLinkResolver for parameter 4 at org.jetbrains.dokka.DeclarationLinkResolver.(DeclarationLinkResolver.kt:9) while locating org.jetbrains.dokka.DeclarationLinkResolver for parameter 0 at org.jetbrains.dokka.PackageDocs.(PackageDocs.kt:13) at org.jetbrains.dokka.PackageDocs.class(PackageDocs.kt:12) while locating org.jetbrains.dokka.PackageDocs

    1 error

    This issus shown when i use ./gradlew dokka how can i fix this.

    opened by ChansEbm 34
  • Fail to generate Javadoc with Java 10 (Doclet missing?)

    Fail to generate Javadoc with Java 10 (Doclet missing?)

    When using Dokka 9.16 with JDK-10 the generation with outputFormat=javadoc fails with the following message:

    * What went wrong:
    Execution failed for task ':dokkaJavadoc'.
    > com/sun/tools/doclets/formats/html/HtmlDoclet
    

    I guess its due to the removal of the old HtmlDoclet in Java 10.

    bug 
    opened by knolleCC 31
  • Can't find node by signature spam

    Can't find node by signature spam

    I have a Java annotation that is imported in my class and I refer to it in the KDoc with [AnnotationName]. IntelliJ correctly links to the annotation but Dokka just spams Can't find node by signature foo.bar.AnnotationName. Additionally, the generated Javadoc does not link correctly to the annotation class.

    bug 
    opened by dumptruckman 28
  • DokkaJavadoc does not respect JVMName

    DokkaJavadoc does not respect JVMName

    Describe the bug When using dokkaJavadoc, the class names or method names are the Kotlin ones, instead of being the ones specified by @JvmName

    Expected behaviour Use names specified in @JvmName when rendering to Javadoc.

    To Reproduce Using this sample project https://github.com/bishiboosh/dokka-issue-sample call the dokkaJavadoc task and see the generated documentation

    Dokka configuration No specific configuration

    Installation

    • Operating system: Linux
    • Build tool: Gradle v6.1.1
    • Dokka version: 1.4.0-rc
    bug Google 
    opened by bishiboosh 27
  • Gradle plugin portal publishing can't find all dependencies?

    Gradle plugin portal publishing can't find all dependencies?

    There is a dokka plugin available on the Gradle plugin portal - https://plugins.gradle.org/plugin/org.jetbrains.dokka .

    Both usages on the documentation do not work:

    buildscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
      }
      dependencies {
        classpath "org.jetbrains.dokka:gradle-plugin:0.9.13"
      }
    }
    
    apply plugin: "org.jetbrains.dokka"
    

    and

    plugins {
      id "org.jetbrains.dokka" version "0.9.13"
    }
    

    Both of these fail with:

    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring root project 'dokka-plugin-portal'.
    > Could not resolve all dependencies for configuration ':classpath'.
       > Could not find org.jetbrains.dokka:integration:0.9.13.
         Searched in the following locations:
             https://plugins.gradle.org/m2/org/jetbrains/dokka/integration/0.9.13/integration-0.9.13.pom
             https://plugins.gradle.org/m2/org/jetbrains/dokka/integration/0.9.13/integration-0.9.13.jar
         Required by:
             project : > org.jetbrains.dokka:gradle-plugin:0.9.13
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    
    BUILD FAILED
    
    Total time: 1.247 secs
    

    The first example is different than that in the current Readme.

    buildscript {
        repositories {
            jcenter()
        }
    
        dependencies {
            classpath "org.jetbrains.dokka:dokka-gradle-plugin:${dokka_version}"
        }
    }
    
    apply plugin: 'org.jetbrains.dokka'
    

    The classpath dependency for the buildscript points to org.jetbrains.dokka:dokka-gradle-plugin instead of that from the plugin portal which is org.jetbrains.dokka:gradle-plugin.

    I wasn't sure if the plugin portal was supported because I don't see it in the documentation, but didn't see another issue for this.

    opened by mkobit 27
  • Possibility to configure Dokka 1.4  by other Gradle plugin

    Possibility to configure Dokka 1.4 by other Gradle plugin

    I have own Kotlin based Gradle plugin, which setup everything for all my projects (publishing, signing, documentation, etc.) Including Dokka. Now I'm migration from 0.10.1 to 1.4.0.

    And attempts to generate doc ends with this:

    > Task :sample-library:dokkaHtml
    Dokka 1.4.* is an alpha project
    Initializing plugins
    Creating documentation models
    Exiting Generation: Nothing to document
    

    I found that problem is in missing context.configuration.sourceSets in method createDocumentationModels. So it looks that for some reason automatic sourceRoots detection doesn't works in this case.

    Here is test project dokka-test.zip

    I found that the key difference is the place when I put your plugin to classpath. If I will do that inside of project gradle script by

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.4.0")
        }
    }
    

    It works correctly, but when I put it to the buildSrc/build.gradle.kts (to simulate plugin behavior)

    dependencies {
        implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.4.0")  
    }
    

    It still works, dokka task is running, but it ends with Exiting Generation: Nothing to document The automatic source roots setup is not working.

    bug 
    opened by tprochazka 20
  • Optional support for asciidoctor in dokka

    Optional support for asciidoctor in dokka

    Hi, I've tried to integrate Ascidoctor support in dokka with as less impact as I could. I'm very new to kotlin so please comment!

    Is it possible to accept this pull request as experimental status? (did not find any annotation for it)

    I've created a AsciidocFormatService that takes care of formatting text to HTML via asciidoctor. I also created a FormatDescriptor for html-as-asciidoc.

    I've also created (of which I'm using) a JavaAsciidocGenerator that generates asciidoc formatted Javadoc. This impacted all of the Javadoc adapters since I've needed to provide with a FormatService in each as well as TextTag. This FormatDescriptor is set as java-asciidoc.

    It supports asciidoctor markup as well as optional gems such as asciidoctor-diagram. It is a compileOnly dependency and thus when using it in maven the following dependency must be set:

    <plugin>
        <groupId>org.jetbrains.dokka</groupId>
        <artifactId>dokka-maven-plugin</artifactId>
        <version>${dokka.version}</version>
        <dependencies>
            <dependency>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctorj</artifactId>
                <version>${version.asciidoctorj}</version>
            </dependency>
        </dependencies>
        <executions>
                <execution>
                <phase>pre-site</phase>
                <goals>
                    <goal>dokka</goal>
                    <goal>javadoc</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <sourceLinks>
                <link>
                    <dir>${project.basedir}/src/main/java</dir>
                    <url>http://localhost-test</url>
                    <urlSuffix>#L</urlSuffix>
                </link>
            </sourceLinks>
            <outputFormat>java-asciidoc</outputFormat>
            <jdkVersion>8</jdkVersion>
            <skip>false</skip>
            <additionalParams>
            --base-dir ${project.basedir}
            --attribute project_name="${project.name}"
            --attribute project_version=${project.version}
            --attribute project_desc="${project.description}"
            --attribute imagesdir="${asciidoctor.configuration.images-dir}"
            --attribute data-uri="${asciidoctor.configuration.images-dir}"
            --gem-path "${project.build.directory}/gems-provided"
            --require asciidoctor-diagram
            </additionalParams>
        </configuration>
    </plugin>
    

    In order to not change the configuration object I've only added additionalParams : String? = null. I need to pass several parameters to asciidoc in order for it to properly generate documentation; e.g. --require etc.

    This implementation certainly needs updates. Especially around the ugly hack in DescriptorDocumentationParser where I've hardcoded:

    if (options.outputFormat == "html-as-asciidoc" ||
                options.outputFormat == "java-asciidoc") {
                val head = ContentParagraph()
                val descr = ContentParagraph()
                descr.append(ContentText(kdocText))
    
                val asciidoc = Content.of(head, descr)
                return asciidoc to { node -> };
            }
    

    I really hope that you can accept or will accept, after fixing your comments, so we can switch to port our huge java codebase to kotlin.

    Cheers, Mario

    opened by mariotoffia 19
  • Javadoc generation fails via dokka-gradle-plugin (v0.9.9)

    Javadoc generation fails via dokka-gradle-plugin (v0.9.9)

    Given the closure ...

    dokka {
        moduleName = 'data'
        outputFormat = 'javadoc'
        outputDirectory = "$buildDir/docs/ktdoc"
        linkMapping {
            dir = "src/main/kotlin"
            url = "https://internal/path/to/repo/src/main/kotlin"
        }
        sourceDirs = files('src/main/kotlin')
    }
    

    ... Receiving the following output when running ./gradlew dokka:

    generation completed successfully
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    null:-1:-1: Tag @see cannot be used in inline documentation.  It can only be used in the following types of documentation: overview, package, class/interface, constructor, field, method.
    com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: java.lang.StackOverflowError
    
    • I have no @see tags defined
    • Not all html files are created (causing broken links). e.g, index.html is never created
    • When outputFormat is not specified, default html files are created correctly

    Let me know if you need any more information. Thanks!

    bug 
    opened by codeprogression 18
  • Enum members should not reveal constructor calls

    Enum members should not reveal constructor calls

    Describe the bug I have a Kotlin project that includes several enum classes. There is a single source file astronomy.kt that contains all the code and documentation comments. I am using Dokka to generate "GitHub Flavored Markdown" (gfm). When Dokka encounters an enum declaration like this...

    /**
     * The enumeration of celestial bodies supported by Astronomy Engine.
     */
    enum class Body(
        internal val massProduct: Double?,
        internal val orbitalPeriod: Double?,
        internal val vsopModel: VsopModel?
    ) {
        /**
         * The planet Mercury.
         */
        Mercury(
            MERCURY_GM,
            87.969,
            VsopModel(vsopLonMercury, vsopLatMercury, vsopRadMercury)
        ),
    
        /**
         * The planet Venus.
         */
        Venus(
            VENUS_GM,
            224.701,
            VsopModel(vsopLonVenus, vsopLatVenus, vsopRadVenus)
        ),
    
        /*... etc ... */
    }
    

    ... it inappropriately generates markdown that includes internal implementation details. Specifically, the members are listed with the internal details of the constructor calls. Enum constructors are required to be private, and in my case, the properties I am initializing are all marked internal. Here is an example of how the above Kotlin declaration for Venus gets converted to Markdown:

    | [Venus](-venus/index.md) | [jvm]<br>[Venus](-venus/index.md)(VENUS_GM, 224.701, VsopModel(vsopLonVenus, vsopLatVenus, vsopRadVenus))<br>The planet Venus. |
    

    Expected behaviour The example for Venus above should look like this:

    | [Venus](-venus/index.md) | [jvm]<br>The planet Venus. |
    

    Outside users should not see internal implementation details of the enum member's construction. In general, I don't want source code leaking into my documentation; only the public parts of the interface should be exposed.

    Screenshots N/A

    To Reproduce

    1. Clone the Astronomy Engine repository and change into its directory.
    2. git checkout kotlin
    3. cd source/kotlin
    4. ./gradlew dokkaGfm
    5. Look at the file source/kotlin/build/dokka/gfm/astronomy/io.github.cosinekitty.astronomy/-body/index.md. All of the internal constructor parameters are visible in the documentation. The same thing occurs in the markdown files for each individual enum member, such as source/kotlin/build/dokka/gfm/astronomy/io.github.cosinekitty.astronomy/-body/-venus/index.md.

    Dokka configuration Configuration of dokka used to reproduce the bug:

    plugins {
        java
        kotlin("jvm") version "1.6.10"
        `maven-publish`
        id("org.jetbrains.dokka") version "1.6.10"
    }
    
    group = "io.github.cosinekitty"
    version = "0.0.1"
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.6.10")
        val junit5Version = "5.8.2"
        testImplementation("org.junit.jupiter:junit-jupiter-api:$junit5Version")
        testImplementation("org.junit.jupiter:junit-jupiter-params:$junit5Version")
        testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junit5Version")
        testImplementation(kotlin("test"))
    }
    
    tasks.test {
        useJUnitPlatform()
    }
    
    configure<JavaPluginExtension> {
        sourceCompatibility = JavaVersion.VERSION_1_8
    }
    
    val sourceJar by tasks.creating(Jar::class) {
        dependsOn(tasks["classes"])
        archiveClassifier.set("sources")
        from(sourceSets["main"].allSource)
    }
    
    task("fatJar", type = Jar::class) {
        from(configurations.runtimeClasspath.get().map(::zipTree))
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
        with(tasks.jar.get())
    }
    
    publishing {
        publications {
            register("mavenJava", MavenPublication::class) {
                from(components["kotlin"])
                artifact(sourceJar)
            }
        }
    }
    
    tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
        kotlinOptions {
            allWarningsAsErrors = true
        }
    }
    
    tasks.dokkaGfm.configure {
        dokkaSourceSets {
            named("main") {
                includeNonPublic.set(false)
                reportUndocumented.set(true)
            }
        }
    }
    
    

    Installation

    • Operating system: macOS/Windows/Linux: The bug happens in all 3: macOS, Windows 10, and multiple flavors of Debian Linux.
    • Build tool: Gradle v7.4.1
    • Dokka version: 1.6.10

    Additional context

    $ ./gradlew --version
    
    ------------------------------------------------------------
    Gradle 7.4.1
    ------------------------------------------------------------
    
    Build time:   2022-03-09 15:04:47 UTC
    Revision:     36dc52588e09b4b72f2010bc07599e0ee0434e2e
    
    Kotlin:       1.5.31
    Groovy:       3.0.9
    Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
    JVM:          11.0.13 (JetBrains s.r.o. 11.0.13+7-b1751.25)
    OS:           Linux 4.19.0-20-amd64 amd64
    

    Are you willing to provide a PR? I am happy to provide whatever help the maintainers could use to reproduce/diagnose this bug. Thank you!

    bug 
    opened by cosinekitty 17
  • `java.lang.NoSuchMethodError` on upgrade to Dokka 1.6.20

    `java.lang.NoSuchMethodError` on upgrade to Dokka 1.6.20

    Describe the bug Dokka crashes with java.lang.NoSuchMethodError:

    * What went wrong:
    Execution failed for task ':runtime:javaDocDebugGeneration'.
    > 'void org.jetbrains.dokka.DokkaSourceSetImpl.<init>(java.lang.String, org.jetbrains.dokka.DokkaSourceSetID, java.util.List, java.util.Set, java.util.Set, java.util.Set, java.util.Set, boolean, boolean, boolean, boolean, int, java.util.Set, java.util.List, java.util.Set, java.lang.String, java.lang.String, boolean, boolean, java.util.Set, org.jetbrains.dokka.Platform, int, kotlin.jvm.internal.DefaultConstructorMarker)'
    
    Stacktrace
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':runtime:javaDocDebugGeneration'.
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:147)
            at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:145)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:133)
            at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
            at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
            at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:333)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:320)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:313)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:299)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:143)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:227)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:218)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:140)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
            at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    Caused by: java.lang.NoSuchMethodError: 'void org.jetbrains.dokka.DokkaSourceSetImpl.<init>(java.lang.String, org.jetbrains.dokka.DokkaSourceSetID, java.util.List, java.util.Set, java.util.Set, java.util.Set, java.util.Set, boolean, boolean, boolean, boolean, int, java.util.Set, java.util.List, java.util.Set, java.lang.String, java.lang.String, boolean, boolean, java.util.Set, org.jetbrains.dokka.Platform, int, kotlin.jvm.internal.DefaultConstructorMarker)'
            at com.android.build.gradle.tasks.JavaDocGenerationTask.buildDokkaSourceSetImpl(JavaDocGenerationTask.kt:147)
            at com.android.build.gradle.tasks.JavaDocGenerationTask.buildDokkaConfiguration(JavaDocGenerationTask.kt:137)
            at com.android.build.gradle.tasks.JavaDocGenerationTask.doTaskAction(JavaDocGenerationTask.kt:84)
            at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:66)
            at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
            at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:98)
            at jdk.internal.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
            at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
            at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
            at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
            at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
            at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227)
            at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210)
            at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193)
            at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:171)
            at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
            at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
            at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
            at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
            at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
            at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
            at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
            at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
            at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
            at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
            at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
            at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
            at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
            at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
            at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:61)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:42)
            at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
            at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
            at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:180)
            at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)
            at org.gradle.internal.Either$Right.fold(Either.java:175)
            at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
            at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)
            at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)
            at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
            at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
            at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
            at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:110)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
            at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
            at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
            at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
            at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
            at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
            at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
            at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
            at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNoEmptySources(SkipEmptyWorkStep.java:249)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:54)
            at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
            at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
            at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
            at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
            at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
            at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
            at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
            at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
            at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
            at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:144)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:133)
            at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
            at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
            at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:333)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:320)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:313)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:299)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:143)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:227)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:218)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:140)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
            at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    

    Expected behaviour Dokka runs successfully.

    Screenshots N/A

    To Reproduce

    git clone https://github.com/JuulLabs/exercise.git
    git checkout renovate/org.jetbrains.dokka-1.x
    ./gradlew --stacktrace -PVERSION_NAME=unspecified -PRELEASE_SIGNING_ENABLED=false publishToMavenLocal
    

    Failure can also be seen on Dokka upgrade PR: https://github.com/JuulLabs/exercise/pull/99

    Dokka configuration No custom configuration, just applying Dokka plugin.

    Installation

    • Operating system: macOS 11, Ubuntu 20.04
    • Build tool: Gradle 7.4.2
    • Dokka version: 1.6.20

    Additional context Dokka 1.6.10 worked, it was only on upgrade to 1.6.20 that we saw this failure.

    Are you willing to provide a PR? I have limited time at the moment, but if I get a free moment then I'll try to investigate further and if I figure it out, I'd happily put up a PR.

    bug 
    opened by twyatt 17
  • suppressedFiles / perPackageOption: suppress do not work with Java sources

    suppressedFiles / perPackageOption: suppress do not work with Java sources

    Neither suppression option results in the specified package hierarchy or file path hierarchy being excluded from documentation when the project being documented is written in Java. Both options appear to have no effect.

    Expected behaviour Suppressed packages (and their subpackages), and suppressed file paths, are excluded from documentation.

    To Reproduce Apply the below configuration stanzas to a project written in Java. Configure Dokka with the kotlin-as-java-plugin.

    Dokka configuration

    // Tried this
    perPackageOption {
        prefix = "com.example.exampleapp.internal"
        suppress = true
    }
    
    // Also tried
    suppressedFiles = ["src/main/java/com/example/exampleapp/internal"]
    

    I also tried the newer syntax:

    // Tried this
    perPackageOption {
        prefix.set("com.example.exampleapp.internal")
        suppress.set(true)
    }
    
    // Also tried
    suppressedFiles.setFrom(files("src/main/java/com/example/exampleapp/internal"))
    

    Installation

    • Operating system: macOS
    • Build tool: Gradle v6.6
    • Dokka version: 1.4.0

    Additional context

    • I have not tested this with a Kotlin project yet, but I assume that this is Java specific or someone would have reported a general issue with these options not working by now.
    • I have tried dev builds in the 1.4.10 series and they exhibit the same problem (latest tested: dev-72).
    bug 
    opened by bsiegel 15
  • NoSuchMethodError with Gradle 8.0 RC1

    NoSuchMethodError with Gradle 8.0 RC1

    Describe the bug Using Gradle 8.0 RC1 I'm unable to run the dokkaHtmlMultiModule task because of a NoSuchMethodError:

    java.lang.NoSuchMethodError: org.gradle.api.internal.tasks.AbstractTaskDependency: method 'void <init>()' not found
            at org.jetbrains.dokka.gradle.TaskDependencyInternalWithAdditions.<init>(TaskDependencyInternalWithAdditions.kt:14)
            at org.jetbrains.dokka.gradle.TaskDependencyInternalWithAdditionsKt.plus(TaskDependencyInternalWithAdditions.kt:9)
            at org.jetbrains.dokka.gradle.DokkaMultiModuleTask.getTaskDependencies(DokkaMultiModuleTask.kt:45)
            at org.jetbrains.dokka.gradle.DokkaMultiModuleTask_Decorated.getTaskDependencies(Unknown Source)
            at org.jetbrains.dokka.gradle.DokkaMultiModuleTask.getTaskDependencies(DokkaMultiModuleTask.kt:18)
            at org.gradle.execution.plan.LocalTaskNode.getDependencies(LocalTaskNode.java:147)
            at org.gradle.execution.plan.LocalTaskNode.resolveDependencies(LocalTaskNode.java:121)
            at org.gradle.execution.plan.DefaultExecutionPlan.discoverNodeRelationships(DefaultExecutionPlan.java:184)
            at org.gradle.execution.plan.DefaultExecutionPlan.doAddEntryNodes(DefaultExecutionPlan.java:156)
            at org.gradle.execution.plan.DefaultExecutionPlan.addEntryTasks(DefaultExecutionPlan.java:131)
            at org.gradle.execution.plan.DefaultExecutionPlan.addEntryTasks(DefaultExecutionPlan.java:123)
            at org.gradle.execution.TaskNameResolvingBuildTaskScheduler.scheduleRequestedTasks(TaskNameResolvingBuildTaskScheduler.java:53)
            at org.gradle.execution.DefaultTasksBuildTaskScheduler.scheduleRequestedTasks(DefaultTasksBuildTaskScheduler.java:72)
            at org.gradle.initialization.DefaultTaskExecutionPreparer.lambda$scheduleRequestedTasks$0(DefaultTaskExecutionPreparer.java:46)
            at org.gradle.internal.Factories$1.create(Factories.java:31)
            at org.gradle.internal.work.DefaultWorkerLeaseService.withReplacedLocks(DefaultWorkerLeaseService.java:345)
            at org.gradle.api.internal.project.DefaultProjectStateRegistry$DefaultBuildProjectRegistry.withMutableStateOfAllProjects(DefaultProjectStateRegistry.java:227)
            at org.gradle.api.internal.project.DefaultProjectStateRegistry$DefaultBuildProjectRegistry.withMutableStateOfAllProjects(DefaultProjectStateRegistry.java:220)
            at org.gradle.initialization.DefaultTaskExecutionPreparer.scheduleRequestedTasks(DefaultTaskExecutionPreparer.java:45)
            at org.gradle.initialization.VintageBuildModelController.lambda$scheduleRequestedTasks$0(VintageBuildModelController.java:76)
            at org.gradle.internal.model.StateTransitionController.lambda$inState$2(StateTransitionController.java:121)
            at org.gradle.internal.model.StateTransitionController.lambda$inState$3(StateTransitionController.java:136)
            at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
            at org.gradle.internal.model.StateTransitionController.inState(StateTransitionController.java:132)
            at org.gradle.internal.model.StateTransitionController.inState(StateTransitionController.java:120)
            at org.gradle.initialization.VintageBuildModelController.scheduleRequestedTasks(VintageBuildModelController.java:76)
            at org.gradle.internal.build.DefaultBuildLifecycleController$DefaultWorkGraphBuilder.addRequestedTasks(DefaultBuildLifecycleController.java:260)
            at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.lambda$scheduleRequestedTasks$0(DefaultBuildTreeWorkPreparer.java:38)
            at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$populateWorkGraph$4(DefaultBuildLifecycleController.java:148)
            at org.gradle.internal.build.DefaultBuildWorkPreparer.populateWorkGraph(DefaultBuildWorkPreparer.java:42)
            at org.gradle.internal.build.BuildOperationFiringBuildWorkPreparer$PopulateWorkGraph.populateTaskGraph(BuildOperationFiringBuildWorkPreparer.java:120)
            at org.gradle.internal.build.BuildOperationFiringBuildWorkPreparer$PopulateWorkGraph.run(BuildOperationFiringBuildWorkPreparer.java:91)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
            at org.gradle.internal.build.BuildOperationFiringBuildWorkPreparer.populateWorkGraph(BuildOperationFiringBuildWorkPreparer.java:68)
            at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$populateWorkGraph$5(DefaultBuildLifecycleController.java:148)
            at org.gradle.internal.model.StateTransitionController.lambda$inState$2(StateTransitionController.java:121)
            at org.gradle.internal.model.StateTransitionController.lambda$inState$3(StateTransitionController.java:136)
            at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
            at org.gradle.internal.model.StateTransitionController.inState(StateTransitionController.java:132)
            at org.gradle.internal.model.StateTransitionController.inState(StateTransitionController.java:120)
            at org.gradle.internal.build.DefaultBuildLifecycleController.populateWorkGraph(DefaultBuildLifecycleController.java:148)
            at org.gradle.internal.build.DefaultBuildWorkGraphController$DefaultBuildWorkGraph.populateWorkGraph(DefaultBuildWorkGraphController.java:167)
            at org.gradle.composite.internal.DefaultBuildController.populateWorkGraph(DefaultBuildController.java:73)
            at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraphBuilder.withWorkGraph(DefaultIncludedBuildTaskGraph.java:150)
            at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.lambda$scheduleRequestedTasks$1(DefaultBuildTreeWorkPreparer.java:38)
            at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraph$1.run(DefaultIncludedBuildTaskGraph.java:197)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
            at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraph.scheduleWork(DefaultIncludedBuildTaskGraph.java:192)
            at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:37)
            at org.gradle.configurationcache.VintageBuildTreeWorkController$scheduleAndRunRequestedTasks$1.apply(VintageBuildTreeWorkController.kt:36)
            at org.gradle.configurationcache.VintageBuildTreeWorkController$scheduleAndRunRequestedTasks$1.apply(VintageBuildTreeWorkController.kt:35)
            at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewWorkGraph(DefaultIncludedBuildTaskGraph.java:109)
            at org.gradle.configurationcache.VintageBuildTreeWorkController.scheduleAndRunRequestedTasks(VintageBuildTreeWorkController.kt:35)
            at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$scheduleAndRunTasks$1(DefaultBuildTreeLifecycleController.java:68)
            at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:98)
            at org.gradle.internal.model.StateTransitionController.lambda$transition$6(StateTransitionController.java:177)
            at org.gradle.internal.model.StateTransitionController.doTransition(StateTransitionController.java:258)
            at org.gradle.internal.model.StateTransitionController.lambda$transition$7(StateTransitionController.java:177)
            at org.gradle.internal.work.DefaultSynchronizer.withLock(DefaultSynchronizer.java:44)
            at org.gradle.internal.model.StateTransitionController.transition(StateTransitionController.java:177)
            at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:95)
            at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:68)
            at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:63)
            at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
            at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
            at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
            at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:65)
            at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:140)
            at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
            at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
            at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:122)
            at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
            at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
            at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
            at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
            at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
            at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
            at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
            at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
            at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:36)
            at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249)
            at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109)
            at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:36)
            at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:110)
            at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
            at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
            at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100)
            at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88)
            at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
            at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
            at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
            at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
            at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
            at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:50)
            at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:38)
            at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
            at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
            at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
            at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:64)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
            at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
            at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
            at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
            at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
            at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
    

    The reason for this seems to be that org.gradle.api.internal.tasks.AbstractTaskDependency no longer has a no-arg constructor that org.jetbrains.dokka.gradle.TaskDependencyInternalWithAdditions tries to call.

    Expected behaviour I can run the dokkaHtmlMultiModule without any exceptions.

    To Reproduce Run the dokkaHtmlMultiModule task in a multi-module Gradle project using Gradle 8.0 RC1.

    Installation

    • Build tool: Gradle v8.0.0-RC1
    • Dokka version: 1.7.20
    bug 
    opened by Lukellmann 0
  • Bump com.github.node-gradle.node from 3.2.1 to 3.5.1

    Bump com.github.node-gradle.node from 3.2.1 to 3.5.1

    Bumps com.github.node-gradle.node from 3.2.1 to 3.5.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Inner java class miss the `inner` modifier in signature

    Inner java class miss the `inner` modifier in signature

    public class JavaClassWithNested {
        public class Inner{}
        public static class Nested{}
    }
    

    Will generate documentation like

    image

    The signature for class Inner should contain inner keyword.

    bug 
    opened by atyrin 0
  • Missing links to default properties

    Missing links to default properties

    When using the default properties in Kotlin, most of the time, they are values from the companion object. To see their value, you need to go manually to the companion object docs. It would be helpful to have it linked in the same way as property types are.

    Expected behaviour Link to the default value of the property

    Screenshots image image

    To Reproduce Add code as on the ss above and run ./gradlew dokkaHtmlMultiModule. On the generated page there are no links to default values.

    bug 
    opened by lukawitek000 0
  • How to save table of content after excluding html dirrectory from project dirrectory?

    How to save table of content after excluding html dirrectory from project dirrectory?

    Question I use dokka to generate documentation for my android project. After completing the gradle task, a directory with documentation is created in the build folder, in which there is a table of contents by sections. Opened with a browser through the index.html file. The point is that I need to keep the documentation separate from the code. I take the entire folder and put it in a zip archive. After extracting the folder with the dock from the android folder, the table of contents is lost. Is it possible to save it somehow?

    Screenshots 11 12

    Installation

    • Operating system: macOS
    • Build tool: Gradle v7.0.4
    • Dokka version: 1.7.10
    question 
    opened by Novikov 0
Releases(v1.7.20)
  • v1.7.20(Oct 11, 2022)

    This release focuses primarily on improving user experience and HTML format in particular.

    Improvements

    General

    • Display inherited extensions (can be disabled by setting suppressInheritedMembers configuration property) (#2625)
    • Display details for @Deprecated declarations such as deprecation message, level and proposed replacement (#2622)
    • Display and document Enum's synthetic values() and valueOf() functions (#2650)
    • Do not render constructors for annotation classes (#2642)
    • Display values of Java constants (#2609)
    • Trim spaces inside indented code blocks (#2661, #2232, #2233)
    • Replace package name on the cover of package pages with "Package-level declarations" (#2586)

    HTML format

    • Add IntelliJ icons to the navigation side menu (#2578)
    • Add auto-scrolling to selected navigation item (#2575)
    • Use OS color scheme to initialize light/dark mode, thanks to @pt2121! (#2611)
    • Update styling of all section tabs (including platform tabs) to match kotlinlang.org (#2589)
    • Format long signatures dynamically based on client width (#2659)
    • Add a horizontal divider between function overloads that are displayed on the same page (#2585)
    • Add Cmd + K / Ctrl + K hotkey for opening search dialog, thanks to @atyrin! (#2633)
    • Make current breadcrumb element not clickable and of default font color (#2588)
    • Update code highlighting colors (#2670)
    • Do not render platform tabs for common-only content (#2613)
    • Apply the same style to all KDoc tag headers, making it more consistent (#2587)
    • Move source links into signature, especially helpful on pages with many overloads (#2476)
    • Add inner/nested declarations to the navigation side menu (#2597)
    • Disable copy button for signatures (#2577)

    Javadoc format

    • Support var HTML tag, thanks to @atyrin (#2617)

    Kotlin-as-Java plugin

    • Render annotation blocks for transformed classes, previously ignored (#2549)

    Gradle runner

    • Remove kotlin-stdlib dependency, which should fix errors like Module was compiled with an incompatible version of Kotlin, thanks to @martinbonnin! (#2570)

    Bugfixes

    • Fixed missing spaces between adjacent Markdown elements, where _try_ *this* would be rendered as trythis (#2640)
    • Fixed dependency resolution errors when building documentation for multiplatform projects with enabled compatibility metadata variant (#2634)
    • Fixed a rare StackOverflowError related to type-aliased native references (#2664)
    • Fixed IllegalStateException that was caused by using JS's dynamic types (#2645)
    • Fixed a bug where certain private declarations were rendered as public (#2639)
    • Fixed incorrect handling of static declarations used within @see tag (#2627)
    • Fixed Java Enum types being rendered as Any (#2647)
    • Fixed incorrect signature generation that was caused by generic types caching (#2619)
    • Fixed incorrect parsing of static imports in Java annotation params (#2593)
    • Fixed sourceRoots configuration param not handling single .java files, thanks to @2017398956! (#2604)
    • Fixed unresponsive HTML anchor button (#2644)
    • Fixed dokka-customFormat-example project to use up-to-date logo styles (#2608)

    Developer experience

    • Enable Gradle Enterprise build scans, thanks to @Goooler! (#2641)
    • Use GitHub Actions artifacts to store generated documentation snapshots, thanks to @StefMa! (#2630)

    Other

    • Warn users that GFM, Javadoc and Jekyll formats are in early alpha stages by printing a build log message during execution (#2550)
    • Revise developer guides documentation that should help plugin authors and new contributors (#2523)
    • Bump Gradle to 7.5.1, thanks to @Goooler! (#2618)
    • Fix spelling errors, thanks to @FelixDombek! (#2594)
    Source code(tar.gz)
    Source code(zip)
  • v1.7.10(Jul 13, 2022)

    Bugfix release that addresses several blockers and regressions.

    General

    • Support Kotlin 1.7.10

    Gradle plugin

    • Do not expose Kotlin stdlib in plugin dependencies, this should fix errors like Module was compiled with an incompatible version of Kotlin when using Dokka. Thanks to @martinbonnin (#2543)

    Java sources

    • Fixed build failure caused by having configured source links for Java code (#2544)
    • Fixed several exotic problems that led to build failures, all related to using annotation in Java sources (#2509, #2551, #2350)
    • Fixed IntelliJ platform WARN: Attempt to load key messages that appeared when analyzing Java sources (#2559)
    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Jun 20, 2022)

    Improvements

    General

    • Update to Kotlin 1.7.0, IntelliJ Platform 213
    • Support definitely non-nullable types (https://github.com/Kotlin/dokka/pull/2520)
    • Don't expose enum entry constructor arguments, thanks to @ebraminio (https://github.com/Kotlin/dokka/pull/2497)
    • Preserve ordering of enum entries as in source code, previously reversed (https://github.com/Kotlin/dokka/pull/2469)
    • Improve support for inherited Java fields with accessors, now properly interpreted as val/var properties (https://github.com/Kotlin/dokka/pull/2481, https://github.com/Kotlin/dokka/pull/2532, https://github.com/Kotlin/dokka/pull/2540)
    • Skip @Deprecated members with HIDDEN level (https://github.com/Kotlin/dokka/pull/2486)
    • Make rendered default value dependent on source set for expect/actual declarations (https://github.com/Kotlin/dokka/pull/2449)

    HTML format

    • Render quotes as blockquotes instead of code blocks, thanks to @TheOnlyTails (https://github.com/Kotlin/dokka/pull/2496)

    Javadoc format

    • Make Javadoc pages generation deterministic (https://github.com/Kotlin/dokka/pull/2479)
    • Update shipped jQuery to avoid multiple CVEs, thanks to @ToppleTheNun (https://github.com/Kotlin/dokka/issues/1938)

    GFM format

    • Support rendering of code blocks and inline code used in KDocs, thanks to @cosinekitty (https://github.com/Kotlin/dokka/pull/2485)

    Kotlin-as-Java plugin

    • Include Java access modifiers into function signatures, thanks to @tripolkaandrey (https://github.com/Kotlin/dokka/pull/2510)

    Gradle runner

    • Make dokka-analysis dependency compileOnly, this should help avoid compatibility problems if different versions of Kotlin are bundled in Gradle and Dokka (https://github.com/Kotlin/dokka/pull/2521)
    • Enable stricter validation for cacheable Gradle tasks, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2500)
    • Remove unused & redundant dependencies for Gradle runner, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2502)
    • Remove outdated suppression in Gradle runner, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2501)

    Fixes

    General bugfixes

    • Fixed a compiler deadlock issue which led to stalling builds in some KMP projects (https://github.com/Kotlin/dokka/pull/2480)
    • Fixed incorrect argument names of functional type parameters (https://github.com/Kotlin/dokka/pull/2478)
    • Fixed missing external docs for AndroidX libraries, thanks to @EdricChan03 (https://github.com/Kotlin/dokka/pull/2456)
    • Fixed tests failing on Windows, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2507)

    Security

    • Get rid of bundled log4j 1.2 that came as a transitive dependency (https://github.com/Kotlin/dokka/issues/2488)
    • Update Jackson to avoid CVE-2020-36518, thanks to @1mt (https://github.com/Kotlin/dokka/pull/2525)

    Plugin API

    • Decompose base.ftl template: now header.ftl, footer.ftl and page_metadata.ftl can be overridden individually (https://github.com/Kotlin/dokka/pull/2432)

    Other

    • Add Kotlin stability & support badges, thanks to @etolstoy (https://github.com/Kotlin/dokka/pull/2511)
    • Remove an unused runner parameter, thanks to @3flex (https://github.com/Kotlin/dokka/pull/2498)
    • Correct typos, thanks to @PaladiRka (https://github.com/Kotlin/dokka/pull/2504) and @mahozad (https://github.com/Kotlin/dokka/pull/2506)!

    Thanks to all the contributors!

    Source code(tar.gz)
    Source code(zip)
  • v1.6.21(Apr 26, 2022)

    This is a bugfix release that mostly enables building documentation for multiplatform projects that utilize .klib libraries.

    Changes

    • Support Kotlin 1.6.21
    • Update jsoup dependency to avoid CVE-2021-37714 (#2448)

    Bugfixes

    • Support KLIB libraries for common platform, previously led to ERROR CLASS instead of references in documentation (#2441)
    • Fixed a maven plugin build problem related to coroutines which only occurred in multi-module builds (#2461)
    Source code(tar.gz)
    Source code(zip)
  • v1.6.20(Apr 15, 2022)

    Features

    • Introduce documentedVisibilities setting that allows including/excluding any visibility modifier in documentation. This is a more flexible replacement for includeNonPublic, which has now been deprecated (https://github.com/Kotlin/dokka/pull/2270)
    • Make HTML pages customizable through FreeMarker HTML templates (https://github.com/Kotlin/dokka/pull/2374)
    • Add global settings to JSON dokka CLI input (https://github.com/Kotlin/dokka/pull/2292), thanks to @BarkingBad!

    HTML format changes

    • Add vertical alignment (wrapping) of signatures when 3 and more parameters are present (https://github.com/Kotlin/dokka/pull/2309)
    • Enhance primary constructor signature, display val/var keywords and default values (https://github.com/Kotlin/dokka/pull/2313)
    • Add a level of indentation to childless items in navigation tree (https://github.com/Kotlin/dokka/pull/2291)
    • Add horizontal margin to breadcrumbs delimiter (https://github.com/Kotlin/dokka/pull/2285)
    • Fixed various CSS rendering issues (https://github.com/Kotlin/dokka/pull/2284, https://github.com/Kotlin/dokka/pull/2389)

    Bugfixes

    • Fixed OutOfMemoryError: Metaspace-related issues for the majority of cases (https://github.com/Kotlin/dokka/pull/2216)
    • Fixed classpath issues for HMPP libraries (https://github.com/Kotlin/dokka/pull/2431)
    • Using @ symbol within code blocks in .md files doesn't lead to cropped documents anymore (https://github.com/Kotlin/dokka/pull/2418)
    • Fixed incorrect placement of HTML head tags, which led to missing favicon in multi-module projects (https://github.com/Kotlin/dokka/pull/2365)
    • Fixed resolution of ultralight methods that led to flaky signature generation (https://github.com/Kotlin/dokka/pull/2400)
    • Coroutines dispatchers are now shut down after each module pass to avoid resource leaks (https://github.com/Kotlin/dokka/pull/2325)
    • Suppressed property setters are now excluded from documentation (https://github.com/Kotlin/dokka/pull/2220)
    • Suppressing extensions doesn't fail builds anymore (https://github.com/Kotlin/dokka/pull/2348), thanks to @BarkingBad!
    • Fixed java getter / setter name generation for kotlin-java interop, now isBoolean instead of getBoolean (https://github.com/Kotlin/dokka/pull/2356), thanks to @CharlesG-Branch!
    • Fixed MathJax plugin, previously completely broken (https://github.com/Kotlin/dokka/pull/2342), thanks to @wyskoj!
    • Fixed Input/Output streams to minimize resource leaks (https://github.com/Kotlin/dokka/pull/2312, https://github.com/Kotlin/dokka/pull/2319)

    Plugin API Changes

    • Add an extension point for rendering custom documentation tags (https://github.com/Kotlin/dokka/pull/2343)
    • Add an extension point for an external documentable provider (https://github.com/Kotlin/dokka/pull/2307), thanks to @Kordyjan!
    • Add filtering stategies extension point and fix constructors in Kotlin-as-Java (https://github.com/Kotlin/dokka/pull/2277), thanks to @BarkingBad!
    • Expose Kotlin-as-Java methods that could be used not only as part of transformers (https://github.com/Kotlin/dokka/pull/2351), thanks to @BarkingBad!
    • Refactor Ancestry Graphs (https://github.com/Kotlin/dokka/pull/2326), thanks to @BarkingBad!
    • Fixed resolving of DRIs for Enum Entries (https://github.com/Kotlin/dokka/pull/2305), thanks to @BarkingBad!

    General Improvements

    • Collect annotations from package-info.java (https://github.com/Kotlin/dokka/pull/2331), thanks to @ember-rose!
    • Add support for header tags (<h1> / <h2> / <h3>) in Javadoc (https://github.com/Kotlin/dokka/pull/2345), thanks to @asfalcone!
    • Add an option to merge implicit expect-actual declarations, enables merging of pages for related declarations which are not connected via expect-actual keywords (https://github.com/Kotlin/dokka/pull/2316)
    • Add a note about using Dokka in a precompiled script plugin (https://github.com/Kotlin/dokka/pull/2303), thanks to @chkpnt!
    • Fixed wrong Groovy DSL example (https://github.com/Kotlin/dokka/pull/2302), thanks to @chkpnt!
    • Various code cleanups (https://github.com/Kotlin/dokka/pull/2165, https://github.com/Kotlin/dokka/pull/2360, https://github.com/Kotlin/dokka/pull/2364, https://github.com/Kotlin/dokka/pull/2385), thanks to @Goooler!

    Known issues

    • Kotlin Multiplatform projects that use .klib libraries may experience problems. There will be a separate 1.6.21 release that will address this issue shortly.
    Source code(tar.gz)
    Source code(zip)
  • v1.6.10(Dec 27, 2021)

    Changes

    • Support Kotlin 1.6.10
    • Add a sample project for versioning multi-module (https://github.com/Kotlin/dokka/pull/2170)

    Bugfixes

    • Fix various java.util.zip.ZipException for JS dependencies (https://github.com/Kotlin/dokka/pull/2258)
    • Fix handling of Description Lists (<dl>) used in JavaDocs (https://github.com/Kotlin/dokka/pull/2259)
    • Fix for "repositories not defined" issue in versioning multimodule example (https://github.com/Kotlin/dokka/pull/2263), thanks @rajdeep1008!
    • Fix multiple rendering issues for "See Also" block for html format (https://github.com/Kotlin/dokka/pull/2267)
    • Fix sample body not being embedded to documentation (https://github.com/Kotlin/dokka/pull/2216)

    Maintenance

    • Update npm dependencies (https://github.com/Kotlin/dokka/pull/2251)
    • Bump de.undercouch.download to 4.1.2 (https://github.com/Kotlin/dokka/pull/2268)
    • Bump kotlinx.coroutines to 1.6.0 in integration tests (https://github.com/Kotlin/dokka/pull/2276)
    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Nov 23, 2021)

    Changes:

    • New UI
    • Support of version plugin for single module projects
    • Allow package-level suppression (#2209), thanks @owengray-google
    • GFM: Use Markdown syntax to render lists (#2098), thanks @sgilson
    • Fix names of nested inheritors
    • Fix adding new custom stylesheets in submodules
    • Add keywords expect and actual in signatures
    Source code(tar.gz)
    Source code(zip)
  • v1.5.31(Oct 4, 2021)

  • v1.5.30(Sep 15, 2021)

    Highlights of this release are:

    • Support kotlin 1.5.30
    • @literal is also supported without code tag, thanks @fsladkey
    • improvements in@link tag support. Now it supports line breaks!
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Jul 7, 2021)

    Kotlin compiler upgraded to 1.5.0

    Fixes:

    Make module name optional in CLI (#1850) Fix line separator issues (#1887) Fix preserving spaces in Javadoc comments (#1923) GFM renderer: sanitize line ends (#1936) Fix rendering html in briefs (#1931) Fix code blocks on Extension Points page (#1948) Remove extra dash (#1968) Don't use older dir from previous runs in versioning (#1963) Change jekyll links to be .html (#1990) Fix Gradle plugin application (#2000)

    Added features:

    Add a supertype for leaf dokka tasks that defines dokkaSourceSets (#1891) Add ability to specify older versions as a list of files (#1890) Cachable Gradle task (#1905) Multilanguage docs inheritance (#1951) Logging levels in CLI (#1976) Flatten multi-module structure (#1980)

    Special thanks to external contributors: @rnett, @msink, @zsmb13, @rachelcarmena and @hfhbd

    Source code(tar.gz)
    Source code(zip)
  • v1.4.32(Apr 22, 2021)

    Fixes:

    • Fix configuration for suppressing obvious functions (#1789)
    • Fix visibility on enum entry property (#1828)
    • Fix missing annotations in GFM and unresolved static imports (#1845)

    Added features:

    • Reintroduce multimodule documentation (#1804)
    • Compiler bump to 1.4.32 (#1818)
    • Suppress inherited members (#1814)
    • Bump kotlinx.html to 0.7.3 (#1819) (requires adding "https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven" repository)
    • Add ability to document generated files (#1832)
    • Handle html in KDoc (#1805)
    • Make anchors stable (#1851)

    Special thanks to external contributors: @AzimMuradov and @hfhbd

    Source code(tar.gz)
    Source code(zip)
  • v1.4.30(Mar 15, 2021)

    In this release we focused on improving multi-module experience that would allow links, search and navigation to be rendered for the whole project rather than independent modules. We have also updated the compiler to 1.4.30 and introduced the versioning plugin for the multi module, that lets users generate documentation for each version incrementally and switch between them on the main page.

    Breaking changes

    • Dokka multi module no longer uses generic dokka${format} task but rather dokka${format}Partial where format is the desired output format like html or gfm

    Improvements and bug fixes

    • JvmName support #1675
    • Use Maven directly to download additional dependencies #1644 thanks @adangel
    • Fix docs on DProperty #1671
    • Refactor ContentTable builder and fix GFM table rendering #1682
    • Versioning #1654
    • Footer customisation #1691
    • Resolve Trove issue #1715
    • Fix incorrect DRI conversion in KotlinAsJava modes for nested definitions #1701
    • JvmOverloads (#1712) and add detection of JvmSynthetic (#1718) thanks @bishiboosh
    • Annotations for parameters #1710
    • Fix links to method parameters from documentation #1713
    • Fix displaying default Java visibility #1738
    • Add legacy KotlinWebsite format to recognized link formats #1750
    • Fix parameters in CLI and bump kotlinx.cli #1755
    • Suppress tag support #1742
    • Add ability to suppress obvious functions like equals, toString #1758
    • Make Gradle plugin use api instead of implementation for dokka-core #1771
    Source code(tar.gz)
    Source code(zip)
  • v1.4.20(Dec 3, 2020)

    Breaking changes

    • prefix was replaced by matchingRegex #598, thanks @martinbonnin

    Improvements and bug fixes

    • Dokka is now build using Kotlin 1.4.20
    • javadoc now handles @inheritDoc annotation #1608
    • breadcrumbs improvements in html format #1590
    • functions and properties can be divided into inherited and declared #1535
    • argument order is now preserved #1619, thanks @gzoritchak
    • page navigation now has correct height on Safari #1633
    Source code(tar.gz)
    Source code(zip)
    dokka-analysis-1.4.20.jar(108.06 KB)
    dokka-base-1.4.20.jar(1.77 MB)
    dokka-cli-1.4.20.jar(11.38 MB)
    dokka-core-1.4.20.jar(727.13 KB)
    dokka-gradle-plugin-1.4.20.jar(135.50 KB)
    dokka-maven-plugin-1.4.20.jar(30.02 KB)
    dokka-test-api-1.4.20.jar(69.10 KB)
    gfm-plugin-1.4.20.jar(38.86 KB)
    javadoc-plugin-1.4.20.jar(633.01 KB)
    jekyll-plugin-1.4.20.jar(12.44 KB)
    kotlin-analysis-compiler-1.4.20.jar(49.32 MB)
    kotlin-analysis-intellij-1.4.20.jar(78.28 MB)
    kotlin-as-java-plugin-1.4.20.jar(75.93 KB)
    mathjax-plugin-1.4.20.jar(7.84 KB)
  • v1.4.10.2(Oct 20, 2020)

    This release is focused mainly on polishing features that were already present in Dokka

    Improvements:

    • Created "On this page" component in the HTML format to allow quicker navigation through long pages - #1504
    • Javadoc will now inform when it is misconfigured with multiple sourcesets - #1457
    • Created a Java-friendly API for plugins - #1495
    • CLI module name is now optional with default value - #1533
    • Added parsing of package-info in Java sources - #1528
    • Translators now run in parallel #1506
    • Added better handling of functional types in rendered output - #1483
    • Added default values for primitive properties. Added presenting default values in signatures - #1489
    • Types are now distinguished from functions in the navigation #1555
    • Multiple improvements to HTML format (shorter docs on list pages, signature placement) - #1529
    • Set aether authn when getting artifacts - #1512
    • Added separate pages for properties - #1494
    • Made logo replaceable - #1488
    • GFM now supports anchors - #1442

    Bugfixes:

    • Handling of multiple authors - #1539
    • Merging documentations of modules and packages - #1480
    • Parsing strikethrough - #1397
    • Escape special characters in file names - #1481
    • Fix multiline links in Javadoc and wrong linebreaking of <pre> bodies #1518
    • Fix vararg signatures - #1516
    • Fix rendering of comment tables - #1560
    • Escape urls in anchors - #1519
    • Hide derived members that are not public - #1459
    Source code(tar.gz)
    Source code(zip)
    dokka-analysis-1.4.10.2.jar(114.48 KB)
    dokka-base-1.4.10.2.jar(1.74 MB)
    dokka-cli-1.4.10.2.jar(11.31 MB)
    dokka-core-1.4.10.2.jar(720.34 KB)
    dokka-gradle-plugin-1.4.10.2.jar(135.53 KB)
    dokka-maven-plugin-1.4.10.2.jar(30.02 KB)
    dokka-test-api-1.4.10.2.jar(69.17 KB)
    gfm-plugin-1.4.10.2.jar(39.03 KB)
    javadoc-plugin-1.4.10.2.jar(634.20 KB)
    jekyll-plugin-1.4.10.2.jar(12.45 KB)
    kotlin-analysis-compiler-1.4.10.2.jar(47.08 MB)
    kotlin-analysis-intellij-1.4.10.2.jar(74.73 MB)
    kotlin-as-java-plugin-1.4.10.2.jar(70.02 KB)
    mathjax-plugin-1.4.10.2.jar(7.84 KB)
  • v1.4.10(Sep 22, 2020)

    Main features:

    • The New HTML format is much more mobile-friendly - #1279
    • Kotlin 1.4.10

    Improvements:

    Javadoc:

    • added subclasses page
    • added deprecated page

    Other:

    • added favicon in HTML format
    • simplified where documentation for modules is being searched for - #1265

    Bugs fixed:

    • Asterisks in KDoc cause the chunk of text to be ripped off - #1368
    • Missing variance in classlike signatures - #1384
    • NullPointerException on images - #1424
    • Javadoc version number is always 0.0.1 - #1406
    • Codeblocks from package markdown are not displayed in HTML - #1371
    • Change substituting typealiases with actual types - #1447
    • NotImplementedError after migrating from 0.10.1 to 1.4.0-rc-24 - #1255
    • Kotlin as Java should translate type aliases - #1115
    • Show fully qualified name for typealias target coming from different package - #950
    Source code(tar.gz)
    Source code(zip)
    dokka-analysis-1.4.10.jar(114.13 KB)
    dokka-base-1.4.10.jar(1.91 MB)
    dokka-cli-1.4.10.jar(7.67 MB)
    dokka-core-1.4.10.jar(610.80 KB)
    dokka-gradle-plugin-1.4.10.jar(133.50 KB)
    dokka-maven-plugin-1.4.10.jar(29.23 KB)
    dokka-test-api-1.4.10.jar(66.63 KB)
    gfm-plugin-1.4.10.jar(38.94 KB)
    javadoc-plugin-1.4.10.jar(628.46 KB)
    jekyll-plugin-1.4.10.jar(12.44 KB)
    kotlin-analysis-compiler-1.4.10.jar(47.08 MB)
    kotlin-as-java-plugin-1.4.10.jar(64.10 KB)
    mathjax-plugin-1.4.10.jar(7.84 KB)
  • 1.4.0(Sep 3, 2020)

    Main features:

    • Gradle plugin overhaul
    • Autoconfiguration for sourceset for Multiplatform projects
    • Kotlin 1.4.0

    Improvements:

    Html format:

    • added left navigation search component
    • improved intuitiveness of displayed cursor types (thanks to @hamza1311)
    • improved presentation of some generic parameters
    • made unresolved links render as text
    • improved overall UI experience

    Javadoc:

    • implemented generating both package-list and element-list
    • added index page

    Reporting

    • maturity warning
    • handling of missing sourceset for Javadoc
    • handling nothing to document
    • descriptions to all Dokka tasks

    Other:

    • improved parsing of generic typealiases
    • removed redundant type bounds from all formats

    Bugs fixed:

    • missing whitespace in class-like signatures - #1419
    • classpath issues in very specific conditions - #1415
    • missing resources on windows - #1399
    • top-level functions crashing Javadoc generation - #1393 #1385
    • unstable order of functions in generated documentation - #1333
    • anchors on android being broken in some cases - #1230
    • improperly formatted code blocks - #1346
    • source tabs not displayed on Windows in html format - #1361
    • stack overflow on documenting complex type constraints - #1342
    • symbols defined in companion objects not being linked correctly in rare cases - #1268
    • unresolved links in some cases - #1345
    • missing sourcesets on non-lazily configured Android projects - #1330
    • Couldn't get delegate for class error - #1341
    • to many sources set bubbles after running Dokka collector - #1294
    • empty packages listed in the sidebar - #1257
    • suppressed files still documented - #1245
    Source code(tar.gz)
    Source code(zip)
    dokka-analysis-1.4.0.jar(114.10 KB)
    dokka-base-1.4.0.jar(1.87 MB)
    dokka-cli-1.4.0.jar(7.66 MB)
    dokka-core-1.4.0.jar(598.36 KB)
    dokka-gradle-plugin-1.4.0.jar(131.14 KB)
    dokka-maven-plugin-1.4.0.jar(29.63 KB)
    dokka-test-api-1.4.0.jar(61.29 KB)
    gfm-plugin-1.4.0.jar(38.85 KB)
    javadoc-plugin-1.4.0.jar(617.45 KB)
    jekyll-plugin-1.4.0.jar(12.44 KB)
    kotlin-analysis-compiler-1.4.0.jar(47.07 MB)
    kotlin-analysis-intellij-1.4.0.jar(74.71 MB)
    kotlin-as-java-plugin-1.4.0.jar(63.23 KB)
    mathjax-plugin-1.4.0.jar(7.84 KB)
  • v1.4.0-rc(Aug 4, 2020)

    The first preview release of Dokka after a complete rewrite.

    Most important features:

    • Support for Kotlin 1.4.0-rc
    • Safe and extensible plugin system
    • New HTML format:
      • Search bar
      • Navigation tree
      • Runnable samples
      • Platform filtering
      • Linking to sources
    • GFM format
    • Jekyll format
    • Kotlin-as-java view for all formats
    • Rendering Javadoc (for all versions of JDK)
    • Documentation of multimodule projects with a common index

    For details see the blog post.

    Source code(tar.gz)
    Source code(zip)
    dokka-analysis-1.4.0-rc.jar(112.64 KB)
    dokka-base-1.4.0-rc.jar(3.18 MB)
    dokka-cli-1.4.0-rc.jar(7.62 MB)
    dokka-core-1.4.0-rc.jar(564.78 KB)
    dokka-gradle-plugin-1.4.0-rc.jar(104.22 KB)
    dokka-maven-plugin-1.4.0-rc.jar(30.41 KB)
    dokka-test-api-1.4.0-rc.jar(54.85 KB)
    gfm-plugin-1.4.0-rc.jar(38.69 KB)
    javadoc-plugin-1.4.0-rc.jar(543.24 KB)
    jekyll-plugin-1.4.0-rc.jar(12.37 KB)
    kotlin-analysis-compiler-1.4.0-rc.jar(47.06 MB)
    kotlin-analysis-intellij-1.4.0-rc.jar(86.61 MB)
    kotlin-as-java-plugin-1.4.0-rc.jar(62.38 KB)
  • 0.10.1(Feb 4, 2020)

    Changes:

    • Update bundled compiler version to 1.3.61 #531
    • Support Flavor-specific documentation #345
    • Links to stdlib on kotlinlang don't work for dokka-maven-plugin #551
    • Dokka 0.10.0 ignore unsuppresed packages in suppressed packages #521
    • packageListUrl must be specified even if in default location #514
    • Some API methods are private starting from 0.10.0 #534
    • Dokka 0.10.0 creates links to packages with no public declarations #510
    • Better error message than "List is empty" when no platform is specified in multiplatform project #511
    • Implement display of Java default constructors #542
    • Ignore samples. Sample import when generating runnable samples #530
    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar-0.10.1.jar(87.18 MB)
  • 0.10.0(Oct 7, 2019)

    Check out migration notes: here

    Thanks to our external contributors:

    Changes:

    • Experimental Multiplatform Support (#322, #491, #212, #307, #391)
    • Merged Android and non-Android Gradle plugin #458
    • Fixed Gradle plugin does not play well with gradle-kotlin-dsl #196
    • Added Include Non Public as global maven configuration option #435
    • Fixed Code blocks in included markdown aren't parsed correctly #433
    • Fixed NPE in Javadoc generation #450
    • Fixed Markdown underscore emphasis in outFormat html #182
    • Fixed Self-closing <p/> tag causing removal of link #369
    • Added documentation for the Gradle Kotlin DSL #359
    • Fixed problems with dokkaFatJar resolution (#332, #296, #462)
    • Fixed using sourceRoot results in empty index.html #496
    • Fixed incorrect parsing of https urls in KDoc links #405
    • Fixed +includeNonPublic in CLI #481
    • Fixed Dokka fails with Javadoc format and nested Java annotations #490
    • Fixed CCE in html-as-java mode #455
    • Fixed CCE in Javadoc output mode #477
    • Fixed rendering for parameter type in Javadoc #465
    • Fixed Javadoc fails when documenting annotations #464
    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar-0.10.0.jar(65.44 MB)
  • 0.9.18(Mar 19, 2019)

    Check out migration notes: here

    Experimental Kotlin Multiplatform support is scheduled for 0.9.19

    Thanks to our external contributors:

    Changes:

    • fixed fat JAR resolution in Gradle plugin #316

    • fixed constructor tag #300

    • fixed preserve newlines in javadoc code blocks #409

    • fixed visibility modifier for protected property getters and setters #342

    • fixed missing parameters on Javadoc output on Java classes #343

    • removed duplicate copies of parameters in generated docs for primary constructors #341

    • fixed nullable left off function type parameter with default value #328

    • fixed failing of Dokka plugin on Gradle 5.0 #388

    • added instructions for configuring Dokka in IDEA #386

    • fixed annotatedProperty test #426

    • added an ability to disable link to Java documentation #188

    • added type safe counterparts to Closure taking methods on Gradle DokkaTask #358

    • fixed "Can't find node by signature not implemented for value-parameter." #278

    • use canonicalPath instead of absolutePath for srcLink #289

    • updated readme.md #399, #441, #443

    • created FAQ

    • fixed nullability annotations in Javadoc #446

    • updated bundled kotlin-compiler to 1.3.20-dev-564 https://github.com/Kotlin/dokka/commit/f640397b6395d00783d476dfa5a082a02fc9d924

    • refactored maven-plugin build https://github.com/Kotlin/dokka/commit/b3b3058ca1958f0b34559143b73bd98ce53e9c11

    • fixed constant values for java https://github.com/Kotlin/dokka/commit/b0310f8f3e242ffc64c56e8fd95710b25b37dfff

    • formated javadoc: vararg arguments are represented as single arg #361

    • added type safe counterparts to Closure taking methods on Gradle DokkaTask #358

    • excluded internal visibility modifier from summary, fixed exclusion logic https://github.com/Kotlin/dokka/commit/a18952be525f9683b23fc05a489cefc86a0bd11f

    • fixed parameter rendering in asJava mode https://github.com/Kotlin/dokka/commit/0485472951134685c434d148b6fe5b6393217023

    • introduced option to enable/disable jdk linking https://github.com/Kotlin/dokka/commit/bf03146a10c601367d5401c7afa8ba7de759ebde https://github.com/Kotlin/dokka/commit/069caa29d344ace3237552e1d30b62cee7794bae https://github.com/Kotlin/dokka/commit/23861925232505dbd70344a1d690f2475bb022e8

    • added more detailed signature on class page https://github.com/Kotlin/dokka/commit/f5746c40cbb44204edd137b3183ef0d04958047b

    • added support for constants in as java mode https://github.com/Kotlin/dokka/commit/633fda36403e8c5483054737d285dd01b5c190bb

    • fixed local links resolved in incorrect context https://github.com/Kotlin/dokka/commit/4301503416ed45783a81250295adf4b5a86c4280

    • fixed inbound links to enum entries https://github.com/Kotlin/dokka/commit/e38d83905ff706b2d656f12896a6905f5a0729d7

    • fixed relative uri's generation https://github.com/Kotlin/dokka/commit/6361dd32aaf567c8e03e4aa63006193dc67cca7b

    • fixed resolution of inbound links to constructors in Javadoc [commit] (https://github.com/Kotlin/dokka/commit/3c6be4a1dbbcfec5e5438452f54857cce86d0d17)

    • added support for external link resolution in JavadocParser https://github.com/Kotlin/dokka/commit/b00dabc4c53a71f745c29a135541b02f8dd7d266

    • added type info to param and return section in javadoc https://github.com/Kotlin/dokka/commit/a50de81d3d0ce88d2fd8e91a55b203ba49e66eb1

    • added support for implicit sections inheritance https://github.com/Kotlin/dokka/commit/74b228108445a8a9024b6892f6562d77c658fc64

    • fixed resolution of package links https://github.com/Kotlin/dokka/commit/ee0b640ad5c4a8cc1b65403dc2c48e7723b8f53a

    • added support for {@inheritDoc} including grand inheritance and skip levels https://github.com/Kotlin/dokka/commit/a16ae6c02e1ec7270fb161c63908b5b3831bce8e

    • fixed resolution of links in Javadoc https://github.com/Kotlin/dokka/commit/6cfaf04a6a0a34299d3a39803322b2eea2afbaac

    • fixed structure of content paragraphs in Javadoc parser https://github.com/Kotlin/dokka/commit/57a6bb55ddafbde4eab7c1c4344fff3ad3f0fe1f

    • fixed generation of superclass sequence https://github.com/Kotlin/dokka/commit/9539284e5dd72e2676dc5d656b78f21c1c7035ee

    • added logic for inherited constants https://github.com/Kotlin/dokka/commit/54874733ff84998d26e21b57384ad3b2ca151fc2

    • fixed checking belonging to public API https://github.com/Kotlin/dokka/commit/27deff9e3f8bb2190115f2e5f68f859f46af11a3

    • stabilized signatures to fix linking from Java to Kotlin https://github.com/Kotlin/dokka/commit/a3f16fd75c200020465f79563ca58b2833236865

    • made possible to group extensions by receiver https://github.com/Kotlin/dokka/commit/3e8448bf5d3f00cfaa7d4d6b4fbbf678aebc37b7

    • added inbound links in java layout html https://github.com/Kotlin/dokka/commit/71ef970eacfab2fd948ab3fba9aa01808cb7b211 https://github.com/Kotlin/dokka/commit/87705bf24f6f7e541dbdb14c44e00d0b90a81f37

    • added support for constants from Java in Kotlin-as-Kotlin mode https://github.com/Kotlin/dokka/commit/85d2ea3a100001d3e5555786202e64ef3ea1679e

    • added support for propagating inherited extensions from libraries https://github.com/Kotlin/dokka/commit/1391dcca35a871881420c53755fed08bf47e4087

    • added support for deep inheritance with external classes https://github.com/Kotlin/dokka/commit/c776aaab9af80987e3c073a40f92de748dbd38ca

    • made possible to generate signatures on output format side https://github.com/Kotlin/dokka/commit/63ab561b66974c52a7d13e0823bf94329c0cd7f7

    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar-0.9.18.jar(50.46 MB)
  • 0.9.17(May 21, 2018)

    • Fix suppression of generated files for new Android Gradle Plugin #308
    • Fix the wrong URL for external elements in packages with upper case in Dokka format #285
    • Fix link resolution context for inherited Kdoc #229
    • Fix Dokka Maven Plugin to work on JDK9 #272
    • Fix CCE in getting sourcePsi while Javadoc generation #287, thanks to @Nexcius
    • Fix not found node for external enum items #274
    • Fix early resolution of classpath #282
    • Remove unnecessary report logging in Javadoc generator #291, thanks to @lukasniemeier-zalando

    Internals

    LocationService removed, and all logic of path calculations was moved to NodeLocationAwareGenerator which implemented by FileGenerator

    FormatDescriptor now can bind its own services, as it has access to output & analysis module Binder By default, there is a hierarchy of some abstract base format descriptors, which provides an interface of required services

    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar-0.9.17.jar(46.84 MB)
  • 0.9.16(Feb 22, 2018)

    • Bundled kotlin compiler updated to 1.2.40-dev-529
    • #251 Fixed suboptimal (non-incremental) input properties for Gradle tasks
    • #252 Fixed crash when class folders are on the classpath
    • #265 Fixed Gradle plugin compatibility with Kotlin 1.2
    • #243 Renamed reportNotDocumented to reportUndocumented in the Gradle plugin
    • #128 Added task option to suppress an entire package
    • #220 Fixed Dokka running under JDK9
    • #174 Fixed wrong link in the last breadcrumbs item
    • #205 Fixed links to Companion static methods with parameters do not work in javadoc format
    • #224 Filtered out Android generated classes from docs
    • #186 Fixed Gradle plugin task does not execute after source updates
    • #228 Fixed Multi-line indented code block rendering to HTML
    • #226 Fixed Gradle plugin includeNonPublic not working as documented
    • #218 Made classpath configuration option Iterable<File>
    • #219 Unbundled kotlin-stdlib & kotlin-reflect from Gradle plugin
    • #225 Fixed exception when using packageOptions in Gradle plugin

    Get artifacts at https://bintray.com/kotlin/dokka/dokka/0.9.16

    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar.jar(46.15 MB)
  • 0.9.16-eap-3(Feb 1, 2018)

    Fixed incompatibility with Gradle 4.5+ (#265)

    Dokka now not compatible with Gradle >= 3.2, < 3.5

    Artifacts

    https://bintray.com/kotlin/kotlin-eap/dokka/0.9.16-eap-3

    Source code(tar.gz)
    Source code(zip)
  • 0.9.16-eap-2(Jan 11, 2018)

  • 0.9.15(Jun 26, 2017)

    • Bundled Kotlin compiler updated to 1.1.3
    • (Gradle) processConfigurations now deprecated, new configuration mechanism kotlinTasks added.
    • (#168) Compatibility with Android Build Tools 3.0.0-alpha3+
    • When Gradle plugin dokka-android used Android Reference now linked by default.
    • (#171) Fixed parameters formatting is broken in 0.9.14
    • (#167, KT-18213) Fixed StringIndexOutOfRange for Markdown reference style links.
    • Added opt-in caching of package-list's, see cacheRoot in the docs.
    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar.jar(41.67 MB)
  • 0.9.14(May 29, 2017)

    • #96 Readme updated to match latest available parameters for all Dokka runners
    • Kotlin compiler updated to 1.1.2

    Features

    • #88, KT-16309 External documentation linking
    • KT-16797 Per-package options such as including deprecated members
    • #82 Indented code blocks
    • Platform tagging, see platforms section

    Bug-fixes

    • #141 javadoc contains org.jetbrains.dokka.ContentBlock@1 for line breaks
    • #135 Dokka 0.9.13 crashes JVM on build.
    • #137, #158 Blank lines inside code blocks are not preserved in HTML output
    • #136 Code blocks do not preserve newlines in Javadoc HTML output
    • #140, #138, #147 Android build tools compatibility problems
    • #131 Linking to Java static field generates many warnings, and creates dummy ("#") link
    • KT-16485 Dokka fails to resolve non-FQNs in included file properly
    • KT-16234 Tables in Markdown-based formats are broken
    • KT-16235 Dokka files generated with jekyll format have invalid links
    Source code(tar.gz)
    Source code(zip)
    dokka-fatjar.jar(41.05 MB)
  • 0.9.13(Jan 17, 2017)

  • 0.9.12(Jan 16, 2017)

Owner
Kotlin
Kotlin Tools and Libraries
Kotlin
Dokka plugin to provide the documentation model to AsciiDoxy

Dokka plugin template This repository provides a template for creating Dokka plugins (check the Creating a repository from a template article). TL;DR:

Rob van der Most 0 Dec 10, 2021
Run Kotlin/JS libraries in Kotlin/JVM and Kotlin/Native programs

Zipline This library streamlines using Kotlin/JS libraries from Kotlin/JVM and Kotlin/Native programs. It makes it possible to do continuous deploymen

Cash App 1.5k Dec 30, 2022
A somewhat copy past of Jetbrain's code from the kotlin plugin repo to make it humanly possible to test Intellij IDEA kotlin plugins that work on kotlin

A somewhat copy past of Jetbrain's code from the kotlin plugin repo to make it humanly possible to test Intellij IDEA kotlin plugins that work on kotlin

common sense OSS 0 Jan 20, 2022
Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in Kotlin with Jetpack Compose and a backed in Kotlin hosted on AppEngine.

Conferences4Hall Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in K

Gรฉrard Paligot 98 Dec 15, 2022
Android + Kotlin + Github Actions + ktlint + Detekt + Gradle Kotlin DSL + buildSrc = โค๏ธ

kotlin-android-template ?? A simple Github template that lets you create an Android/Kotlin project and be up and running in a few seconds. This templa

Nicola Corti 1.5k Jan 3, 2023
LifecycleMvp 1.2 0.0 Kotlin is MVP architecture implementation with Android Architecture Components and Kotlin language features

MinSDK 14+ Download Gradle Add to project level build.gradle allprojects { repositories { ... maven { url 'https://jitpack.io' }

Robert 20 Nov 9, 2021
Opinionated Redux-like implementation backed by Kotlin Coroutines and Kotlin Multiplatform Mobile

CoRed CoRed is Redux-like implementation that maintains the benefits of Redux's core idea without the boilerplate. No more action types, action creato

Kittinun Vantasin 28 Dec 10, 2022
๐Ÿ‘‹ A common toolkit (utils) โš’๏ธ built to help you further reduce Kotlin boilerplate code and improve development efficiency. Do you think 'kotlin-stdlib' or 'android-ktx' is not sweet enough? You need this! ๐Ÿญ

Toolkit [ ?? Work in progress โ› ?? ??๏ธ ?? ] Snapshot version: repositories { maven("https://s01.oss.sonatype.org/content/repositories/snapshots") }

ๅ‡› 35 Jul 23, 2022
An app architecture for Kotlin/Native on Android/iOS. Use Kotlin Multiplatform Mobile.

An app architecture for Kotlin/Native on Android/iOS. Use Kotlin Multiplatform Mobile. ้กน็›ฎๆžถๆž„ไธป่ฆๅˆ†ไธบๅŽŸ็”Ÿ็ณป็ปŸๅฑ‚ใ€Android/iOSไธšๅŠกSDKๅฑ‚ใ€KMM SDKๅฑ‚ใ€KMMไธšๅŠก้€ป่พ‘SDKๅฑ‚ใ€iOS sdkfra

libill 4 Nov 20, 2022
Provides Kotlin libs and some features for building Kotlin plugins

Kotlin Plugin Provides Kotlin libs and some features for building awesome Kotlin plugins. Can be used instead of CreeperFace's KotlinLib (don't use to

null 3 Dec 24, 2021
Notes-App-Kotlin - Notes App Built Using Kotlin

Notes-App-Kotlin Splash Screen Home Page Adding New Notes Filter Feature Search

Priyanka 4 Oct 2, 2022
Kotlin-client-dsl - A kotlin-based dsl project for a (Client) -> (Plugin) styled program

kotlin-client-dsl a kotlin-based dsl project for a (Client) -> (Plugin) styled p

jackson 3 Dec 10, 2022
A Kotlin Native program to show the time since a date, using Kotlin LibUI

TimeSince A Kotlin Native program to show the time since a date, using Kotlin LibUI Report Bug . Request Feature About The Project TimeSince is a Kotl

Russell Banks 2 May 6, 2022
RoomJetpackCompose is an app written in Kotlin and shows a simple solution to perform CRUD operations in the Room database using Kotlin Flow in clean architecture.

RoomJetpackCompose is an app written in Kotlin and shows a simple solution to perform CRUD operations in the Room database using Kotlin Flow in clean architecture.

Alex 27 Jan 1, 2023
Create an application with Kotlin/JVM and Kotlin/JS, and explore features around code sharing, serialization, server- and client

Practical Kotlin Multiplatform on the Web ๋ณธ ์ €์žฅ์†Œ๋Š” ์ฝ”ํ‹€๋ฆฐ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ๊ธฐ๋ฐ˜ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›Œํฌ์ˆ(๊ฐ•์ขŒ)์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ์›Œํฌ์ˆ ๊ณผ์ •์—์„œ ์ฝ”ํ‹€๋ฆฐ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋ก ํŠธ์—”๋“œ(front-end)๋Š” Ko

SpringRunner 14 Nov 5, 2022
Create an application with Kotlin/JVM and Kotlin/JS, and explore features around code sharing, serialization, server- and client

Building a Full Stack Web App with Kotlin Multiplatform ๋ณธ ์ €์žฅ์†Œ๋Š” INFCON 2022์—์„œ ์ฝ”ํ‹€๋ฆฐ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ๊ธฐ๋ฐ˜ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ธ์ฆˆ์˜จ๋žฉ์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ํ…œํ”Œ๋ฆฟ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ํ•ธ์ฆˆ์˜จ ๊ณผ์ •์—์„œ ์ฝ”ํ‹€๋ฆฐ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ์„

Arawn Park 19 Sep 8, 2022
Kotlin library for Android

KAndroid Kotlin library for Android providing useful extensions to eliminate boilerplate code in Android SDK and focus on productivity. Download Downl

Paweล‚ Gajda 890 Nov 13, 2022
Type-safe time calculations in Kotlin, powered by generics.

Time This library is made for you if you have ever written something like this: val duration = 10 * 1000 to represent a duration of 10 seconds(in mill

Kizito Nwose 958 Dec 10, 2022
๐Ÿ“’ NotyKT is a complete ๐Ÿ’ŽKotlin-stack (Backend + Android) ๐Ÿ“ฑ application built to demonstrate the use of Modern development tools with best practices implementation๐Ÿฆธ.

NotyKT ??๏ธ NotyKT is the complete Kotlin-stack note taking ??๏ธ application ?? built to demonstrate a use of Kotlin programming language in server-side

Shreyas Patil 1.4k Jan 4, 2023