diff options
14 files changed, 0 insertions, 960 deletions
diff --git a/.github/workflows/s3-snapshots.yml b/.github/workflows/s3-snapshots.yml index 912beaf3..43efbf63 100644 --- a/.github/workflows/s3-snapshots.yml +++ b/.github/workflows/s3-snapshots.yml @@ -7,36 +7,6 @@ env: bucket-name: 'dokka-snapshots' jobs: - stdlib: - runs-on: ubuntu-latest - if: github.repository == 'Kotlin/dokka' - steps: - - name: Checkout dokka - uses: actions/checkout@v3 - with: - submodules: true - - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: 12 - cache: 'maven' - - name: Document stdlib - uses: gradle/gradle-build-action@v2 - with: - arguments: :integration-tests:gradle:integrationTest --tests org.jetbrains.dokka.it.gradle.kotlin.StdlibGradleIntegrationTest --stacktrace - env: - DOKKA_TEST_OUTPUT_PATH: /home/runner/work/dokka/stdlib - - name: Configure AWS credentials for S3 access - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: eu-central-1 - - name: Copy files to dokka's S3 bucket - run: ./integration-tests/aws_sync.sh s3://${{ env.bucket-name }} stdlib ../stdlib - - name: Print link - run: echo https://dokka-snapshots.s3.eu-central-1.amazonaws.com/${{ env.branch-name }}/stdlib/${GITHUB_SHA::7}/index.html - coroutines: runs-on: ubuntu-latest if: github.repository == 'Kotlin/dokka' diff --git a/.gitmodules b/.gitmodules index 89cd6fb9..378d0ce6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "integration-tests/gradle/projects/stdlib/kotlin-dokka-stdlib"] - path = integration-tests/gradle/projects/stdlib/kotlin-dokka-stdlib - url = https://github.com/JetBrains/kotlin-dokka-stdlib [submodule "integration-tests/gradle/projects/coroutines/kotlinx-coroutines"] path = integration-tests/gradle/projects/coroutines/kotlinx-coroutines url = https://github.com/Kotlin/kotlinx.coroutines diff --git a/integration-tests/gradle/projects/stdlib/kotlin-dokka-stdlib b/integration-tests/gradle/projects/stdlib/kotlin-dokka-stdlib deleted file mode 160000 -Subproject 437898864a43a0d13b13bda2c04aa6de8231f54 diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle deleted file mode 100644 index fae54400..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' -} -description "Dokka Plugin to transform the samples from stdlib" - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - implementation "org.jetbrains.dokka:dokka-base:${dokka_it_version}" - compileOnly "org.jetbrains.dokka:dokka-core:${dokka_it_version}" - compileOnly "org.jetbrains.dokka:dokka-analysis:${dokka_it_version}" -} - -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) { - kotlinOptions.jvmTarget = "1.8" -} - diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/KotlinWebsiteSamplesTransformer.kt b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/KotlinWebsiteSamplesTransformer.kt deleted file mode 100644 index 9d5115cd..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/KotlinWebsiteSamplesTransformer.kt +++ /dev/null @@ -1,196 +0,0 @@ -package org.jetbrains.dokka.kotlinlang - -import com.intellij.psi.PsiDocumentManager -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiElementVisitor -import com.intellij.psi.PsiWhiteSpace -import com.intellij.psi.impl.source.tree.LeafPsiElement -import com.intellij.psi.util.PsiTreeUtil -import org.jetbrains.dokka.base.transformers.pages.samples.SamplesTransformer -import org.jetbrains.dokka.plugability.DokkaContext -import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.allChildren -import org.jetbrains.kotlin.psi.psiUtil.prevLeaf -import org.jetbrains.kotlin.psi.psiUtil.startOffset -import org.jetbrains.kotlin.resolve.ImportPath -import org.jetbrains.kotlin.utils.addToStdlib.safeAs -import java.io.PrintWriter -import java.io.StringWriter - -class KotlinWebsiteSamplesTransformer(context: DokkaContext): SamplesTransformer(context) { - - private class SampleBuilder : KtTreeVisitorVoid() { - val builder = StringBuilder() - val text: String - get() = builder.toString() - - val errors = mutableListOf<ConvertError>() - - data class ConvertError(val e: Exception, val text: String, val loc: String) - - fun KtValueArgument.extractStringArgumentValue() = - (getArgumentExpression() as KtStringTemplateExpression) - .entries.joinToString("") { it.text } - - - fun convertAssertPrints(expression: KtCallExpression) { - val (argument, commentArgument) = expression.valueArguments - builder.apply { - append("println(") - append(argument.text) - append(") // ") - append(commentArgument.extractStringArgumentValue()) - } - } - - fun convertAssertTrueFalse(expression: KtCallExpression, expectedResult: Boolean) { - val (argument) = expression.valueArguments - builder.apply { - expression.valueArguments.getOrNull(1)?.let { - append("// ${it.extractStringArgumentValue()}") - val ws = expression.prevLeaf { it is PsiWhiteSpace } - append(ws?.text ?: "\n") - } - append("println(\"") - append(argument.text) - append(" is \${") - append(argument.text) - append("}\") // $expectedResult") - } - } - - fun convertAssertFails(expression: KtCallExpression) { - val valueArguments = expression.valueArguments - - val funcArgument: KtValueArgument - val message: KtValueArgument? - - if (valueArguments.size == 1) { - message = null - funcArgument = valueArguments.first() - } else { - message = valueArguments.first() - funcArgument = valueArguments.last() - } - - builder.apply { - val argument = funcArgument.extractFunctionalArgumentText() - append(argument.lines().joinToString(separator = "\n") { "// $it" }) - append(" // ") - if (message != null) { - append(message.extractStringArgumentValue()) - } - append(" will fail") - } - } - - private fun KtValueArgument.extractFunctionalArgumentText(): String { - return if (getArgumentExpression() is KtLambdaExpression) - PsiTreeUtil.findChildOfType(this, KtBlockExpression::class.java)?.text ?: "" - else - text - } - - fun convertAssertFailsWith(expression: KtCallExpression) { - val (funcArgument) = expression.valueArguments - val (exceptionType) = expression.typeArguments - builder.apply { - val argument = funcArgument.extractFunctionalArgumentText() - append(argument.lines().joinToString(separator = "\n") { "// $it" }) - append(" // will fail with ") - append(exceptionType.text) - } - } - - override fun visitCallExpression(expression: KtCallExpression) { - when (expression.calleeExpression?.text) { - "assertPrints" -> convertAssertPrints(expression) - "assertTrue" -> convertAssertTrueFalse(expression, expectedResult = true) - "assertFalse" -> convertAssertTrueFalse(expression, expectedResult = false) - "assertFails" -> convertAssertFails(expression) - "assertFailsWith" -> convertAssertFailsWith(expression) - else -> super.visitCallExpression(expression) - } - } - - private fun reportProblemConvertingElement(element: PsiElement, e: Exception) { - val text = element.text - val document = PsiDocumentManager.getInstance(element.project).getDocument(element.containingFile) - - val lineInfo = if (document != null) { - val lineNumber = document.getLineNumber(element.startOffset) - "$lineNumber, ${element.startOffset - document.getLineStartOffset(lineNumber)}" - } else { - "offset: ${element.startOffset}" - } - errors += ConvertError(e, text, lineInfo) - } - - override fun visitElement(element: PsiElement) { - if (element is LeafPsiElement) - builder.append(element.text) - - element.acceptChildren(object : PsiElementVisitor() { - override fun visitElement(element: PsiElement) { - try { - element.accept(this@SampleBuilder) - } catch (e: Exception) { - try { - reportProblemConvertingElement(element, e) - } finally { - builder.append(element.text) //recover - } - } - } - }) - } - - } - - private fun PsiElement.buildSampleText(): String { - val sampleBuilder = SampleBuilder() - this.accept(sampleBuilder) - - sampleBuilder.errors.forEach { - val sw = StringWriter() - val pw = PrintWriter(sw) - it.e.printStackTrace(pw) - - this@KotlinWebsiteSamplesTransformer.context.logger.error("${containingFile.name}: (${it.loc}): Exception thrown while converting \n```\n${it.text}\n```\n$sw") - } - return sampleBuilder.text - } - - val importsToIgnore = arrayOf("samples.*", "samples.Sample").map { ImportPath.fromString(it) } - - override fun processImports(psiElement: PsiElement): String { - val psiFile = psiElement.containingFile - return when(val text = psiFile.safeAs<KtFile>()?.importList) { - is KtImportList -> text.let { - it.allChildren.filter { - it !is KtImportDirective || it.importPath !in importsToIgnore - }.joinToString(separator = "\n") { it.text } - } - else -> "" - } - } - - override fun processBody(psiElement: PsiElement): String { - val text = processSampleBody(psiElement).trim { it == '\n' || it == '\r' }.trimEnd() - val lines = text.split("\n") - val indent = lines.filter(String::isNotBlank).map { it.takeWhile(Char::isWhitespace).count() }.minOrNull() ?: 0 - return lines.joinToString("\n") { it.drop(indent) } - } - - private fun processSampleBody(psiElement: PsiElement) = when (psiElement) { - is KtDeclarationWithBody -> { - val bodyExpression = psiElement.bodyExpression - val bodyExpressionText = bodyExpression!!.buildSampleText() - when (bodyExpression) { - is KtBlockExpression -> bodyExpressionText.removeSurrounding("{", "}") - else -> bodyExpressionText - } - } - else -> psiElement.buildSampleText() - } -}
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt deleted file mode 100644 index e39a3cda..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/SamplesTransformerPlugin.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.jetbrains.dokka.kotlinlang - -import org.jetbrains.dokka.CoreExtensions -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.plugability.DokkaPlugin - -class SamplesTransformerPlugin : DokkaPlugin() { - private val dokkaBase by lazy { plugin<DokkaBase>() } - - val kotlinWebsiteSamplesTransformer by extending { - CoreExtensions.pageTransformer providing ::KotlinWebsiteSamplesTransformer override dokkaBase.defaultSamplesTransformer order { - before(dokkaBase.pageMerger) - } - } -}
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin b/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin deleted file mode 100644 index 2ac2cd5f..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-samples-transformer-plugin/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.dokka.kotlinlang.SamplesTransformerPlugin
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle b/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle deleted file mode 100644 index ddf84a2f..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - id 'org.jetbrains.kotlin.jvm' -} -description "Dokka Plugin to configure Dokka for stdlib" - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - implementation "org.jetbrains.dokka:dokka-base:${dokka_it_version}" - compileOnly "org.jetbrains.dokka:dokka-core:${dokka_it_version}" - compileOnly "org.jetbrains.dokka:dokka-analysis:${dokka_it_version}" -} - -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) { - kotlinOptions.jvmTarget = "1.8" -} - diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/StdLibConfigurationPlugin.kt b/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/StdLibConfigurationPlugin.kt deleted file mode 100644 index 9f450b64..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/src/main/kotlin/org/jetbrains/dokka/kotlinlang/StdLibConfigurationPlugin.kt +++ /dev/null @@ -1,22 +0,0 @@ -package org.jetbrains.dokka.kotlinlang - -import org.jetbrains.dokka.base.DokkaBase -import org.jetbrains.dokka.plugability.DokkaPlugin -//import org.jetbrains.dokka.analysis.DokkaAnalysisConfiguration -import org.jetbrains.dokka.analysis.KotlinAnalysis - -class StdLibConfigurationPlugin : DokkaPlugin() { - private val dokkaBase by lazy { plugin<DokkaBase>() } - /** - * Uncomment after updating of StdLib in tests - */ - /*val stdLibKotlinAnalysis by extending { - dokkaBase.kotlinAnalysis providing { ctx -> - KotlinAnalysis( - sourceSets = ctx.configuration.sourceSets, - logger = ctx.logger, - analysisConfiguration = DokkaAnalysisConfiguration(ignoreCommonBuiltIns = true) - ) - } override dokkaBase.defaultKotlinAnalysis - }*/ -}
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin b/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin deleted file mode 100644 index 98793eca..00000000 --- a/integration-tests/gradle/projects/stdlib/plugins/dokka-stdlib-configuration-plugin/src/main/resources/META-INF/services/org.jetbrains.dokka.plugability.DokkaPlugin +++ /dev/null @@ -1 +0,0 @@ -org.jetbrains.dokka.kotlinlang.StdLibConfigurationPlugin
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/stdlib.diff b/integration-tests/gradle/projects/stdlib/stdlib.diff deleted file mode 100644 index a2b951ec..00000000 --- a/integration-tests/gradle/projects/stdlib/stdlib.diff +++ /dev/null @@ -1,585 +0,0 @@ -diff --git a/ant/build.gradle b/ant/build.gradle -deleted file mode 100644 -index 4dcb55f..0000000 ---- a/ant/build.gradle -+++ /dev/null -@@ -1,29 +0,0 @@ --apply plugin: 'de.undercouch.download' -- --final String ext --if (System.getProperty('os.name', '').toLowerCase().contains('windows')) { -- ext = ".bat" --} else { -- ext = "" --} -- -- --final String antVersion = "1.10.8" --final String antURL = "https://cache-redirector.jetbrains.com/downloads.apache.org/ant/binaries/apache-ant-$antVersion-bin.zip" --final File antHome = new File(buildDir, "ant-home") --final File antZip = new File(buildDir, "apache-ant-$antVersion-bin.zip") --final File antExe = new File(antHome, "apache-ant-$antVersion/bin/ant$ext") -- --task downloadAnt(type: Download) { -- src antURL -- dest buildDir -- overwrite false --} -- --task extractAnt(type: Sync, dependsOn: downloadAnt) { -- from zipTree(antZip) -- into antHome --} -- --project.extensions.ant_exe = antExe -- -diff --git a/build.gradle b/build.gradle -index aa8f21b..dd6a2ae 100644 ---- a/build.gradle -+++ b/build.gradle -@@ -1,80 +1,445 @@ -+import org.jetbrains.dokka.Platform -+ - plugins { -- id "de.undercouch.download" version "3.4.3" -- id 'com.github.jk1.tcdeps' version '0.17' -+ id "de.undercouch.download" version "4.1.2" -+ id 'com.github.jk1.tcdeps' version '0.17' -+ id "java" -+ id "org.jetbrains.dokka" - } -- -+apply from: "../template.root.gradle.kts" - - configurations { -- dokka -- kotlin_sources -+ kotlin_sources - } - --final String dokka_build = "611" --final String dokka_version = "0.10.2-SNAPSHOT" -- - repositories { -- mavenLocal() -- maven { url = "https://dl.bintray.com/kotlin/kotlin-dev" } -- maven { url = "https://dl.bintray.com/kotlin/kotlin-eap" } -- maven { url = "https://teamcity.jetbrains.com/guestAuth/repository/download/Kotlin_Dokka_DokkaAntMavenGradle/$dokka_build/maven" } -- jcenter() -+ mavenLocal() -+ mavenCentral() -+ maven { url = "https://dl.bintray.com/kotlin/kotlin-eap" } -+ maven { url = "https://dl.bintray.com/kotlin/kotlin-dev" } -+ maven { url = "https://teamcity.jetbrains.com/guestAuth/repository/download/Kotlin_Dokka_DokkaAntMavenGradle/$dokka_build/maven" } -+ jcenter() - } - - dependencies { -- dokka "org.jetbrains.dokka:dokka-fatjar:$dokka_version" -+ dokkaPlugin project(":plugins:dokka-samples-transformer-plugin") -+ dokkaPlugin project(":plugins:dokka-stdlib-configuration-plugin") - } - --final File dokkaHome = new File(buildDir, "dokka-home") --task setupDokka(type: Sync) { -- from configurations.dokka -- into dokkaHome --} -- --task extractAll(dependsOn: [setupDokka]) -+task extractAll() - - extractAll.dependsOn ':kotlin_big:extractLibs' - extractAll.dependsOn ':kotlin_big:extractSources' - extractAll.dependsOn ':kotlin_big:extractKotlinSources' - extractAll.dependsOn ':kotlin_native:extractKotlinNative' --extractAll.dependsOn ':ant:extractAnt' - --def pAnt() { return project(':ant').extensions } - def pKotlinBig() { return project(':kotlin_big').extensions } -+ - def pKotlinNative() { return project(':kotlin_native').extensions } - - task cleanupSources(type: Delete) { -- dependsOn extractAll -- doFirst { -- def base = file("${pKotlinNative().kotlin_native_root}/runtime/src/main/kotlin") -- delete(files("$base/kotlin/Functions.kt", "$base/kotlin/coroutines/SuspendFunctions.kt", -- "$base/kotlin/reflect/KFunctions.kt")) -- } -+ dependsOn extractAll -+ doFirst { -+ def base = file("${pKotlinNative().kotlin_native_root}/runtime/src/main/kotlin") -+ delete(files("$base/kotlin/Functions.kt", "$base/kotlin/coroutines/SuspendFunctions.kt", -+ "$base/kotlin/reflect/KFunctions.kt")) -+ } - } - --task setupCallDokka() { } --task callDokka(type: Exec, dependsOn: [extractAll, setupCallDokka, cleanupSources]) { -- workingDir = projectDir -- // -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -- environment("ANT_OPTS", "-Xmx3G") -- environment("JAVA_HOME", System.getProperty("java.home")) -- doFirst { -- def logFile = file("$buildDir/dokka.log") -- standardOutput = new org.apache.tools.ant.util.TeeOutputStream(standardOutput, new FileOutputStream(logFile)) -- } -+def outputDir = "$buildDir/dokka" -+ -+ -+task callDokka() { -+ delete(outputDir) -+ dependsOn = [extractAll, cleanupSources] -+} -+ -+gradle.projectsEvaluated { -+ def kotlin_root = pKotlinBig().kotlin_root -+ def kotlin_sources = pKotlinBig().kotlin_sources -+ def kotlin_libs = pKotlinBig().kotlin_libs -+ def kotlin_native_root = pKotlinNative().kotlin_native_root -+ def kotlin_native_linux = pKotlinNative().kotlin_native_bin_linux -+ def kotlin_native_windows = pKotlinNative().kotlin_native_bin_windows -+ def kotlin_native_mac = pKotlinNative().kotlin_native_bin_mac -+ def stdlibIncludeMd = "$kotlin_root/libraries/stdlib/src/Module.md" -+ def stdlibSamples = "$kotlin_root/libraries/stdlib/samples/test" -+ def kotlinTestIncludeMd = "$kotlin_root/libraries/kotlin.test/Module.md" -+ -+ def stdlibCommonClasspath = ["$kotlin_libs/kotlin-stdlib-common/".toString(), "$kotlin_sources/kotlin-stdlib-common/".toString()] -+ def stdlibJvmClasspath = ["$kotlin_libs/kotlin-stdlib/".toString(), "$kotlin_sources/kotlin-stdlib-jdk7/".toString(), "$kotlin_libs/kotlin-stdlib-jdk8/".toString(), "$kotlin_sources/kotlin-stdlib/".toString(), "$kotlin_sources/kotlin-stdlib-common/".toString(), "$kotlin_root/core/reflection.jvm/src".toString()] -+ def stdlibNativeClasspath = ["$kotlin_native_linux/klib/common/stdlib".toString()] -+ def stdlibJsClasspath = ["$kotlin_libs/kotlin-stdlib-js/".toString()] -+ def kotlinTestCommonClasspath = ["$kotlin_libs/kotlin-test-common".toString()] -+ def kotlinTestJunitClasspath = ["$kotlin_libs/kotlin-test-junit".toString()] -+ def kotlinTestJunit5Classpath = ["$kotlin_libs/kotlin-test-junit5".toString()] -+ def kotlinTestTestngClasspath = ["$kotlin_libs/kotlin-test-testng".toString()] -+ def kotlinTestJsClasspath = ["$kotlin_libs/kotlin-test-js".toString()] -+ def kotlinTestJvmClasspath = ["$kotlin_libs/kotlin-test".toString()] -+ -+ -+ def stdlibPackageList = new URL("file:///$outputDir/kotlin-stdlib/kotlin-stdlib/package-list".toString()) -+ def junit5PackageList = new URL("https://junit.org/junit5/docs/current/api/element-list".toString()) -+ def kotlinLanguageVersion = "1.4" -+ -+ task dokkaStdlib(type: org.jetbrains.dokka.gradle.DokkaTask) { -+ outputDirectory.set(new File(outputDir, "/kotlin-stdlib")) -+ moduleName.set("kotlin-stdlib") -+ pluginsMapConfiguration.set(["org.jetbrains.dokka.base.DokkaBase": """{ "mergeImplicitExpectActualDeclarations": "true" }"""]) -+ dokkaSourceSets { -+ register("kotlin-stdlib-common") { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.common) -+ includes.from(stdlibIncludeMd.toString()) -+ noStdlibLink.set(true) -+ noJdkLink.set(true) -+ classpath.setFrom(stdlibCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ samples.from(stdlibSamples.toString()) -+ displayName.set("Common") -+ sourceRoots.from("$kotlin_root/core/builtins/native") -+ sourceRoots.from("$kotlin_root/core/builtins/src") -+ sourceRoots.from("$kotlin_sources/kotlin-stdlib-common") -+ sourceLink { -+ localDirectory.set(file("$kotlin_sources/kotlin-stdlib-common")) -+ remoteUrl.set(new URL("https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib/common/src")) -+ remoteLineSuffix.set("#L") -+ } -+ sourceLink { -+ localDirectory.set(file("$kotlin_root/core/builtins/src")) -+ remoteUrl.set(new URL("https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib/src")) -+ remoteLineSuffix.set("#L") -+ } -+ } -+ -+ register("kotlin-stdlib-java-common") { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(stdlibIncludeMd.toString()) -+ noStdlibLink.set(true) -+ classpath.setFrom(stdlibJvmClasspath + stdlibCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ samples.from(stdlibSamples.toString()) -+ displayName.set("JRE") -+ dependsOn("kotlin-stdlib-common") -+ sourceRoots.from("$kotlin_sources/kotlin-stdlib") -+ sourceRoots.from("$kotlin_root/core/reflection.jvm/src") -+ sourceRoots.from("$kotlin_root/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations") -+ sourceRoots.from("$kotlin_root/libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt") -+ sourceRoots.from("$kotlin_root/libraries/stdlib/jvm/runtime/kotlin/jvm/PurelyImplements.kt") -+ sourceRoots.from("$kotlin_root/libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt") -+ sourceRoots.from("$kotlin_root/libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt") -+ perPackageOption { -+ matchingRegex.set("kotlin.reflect.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.jvm.functions(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.coroutines.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.coroutines.experimental.migration(\$|\\.).*") -+ suppress.set(true) -+ } -+ sourceLink { -+ localDirectory.set(file("$kotlin_sources/kotlin-stdlib")) -+ remoteUrl.set(new URL("https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib/jvm/src")) -+ remoteLineSuffix.set("#L") -+ } -+ } -+ -+ -+ register("kotlin-stdlib-jdk8") { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(stdlibIncludeMd.toString()) -+ noStdlibLink.set(true) -+ classpath.setFrom(stdlibJvmClasspath + stdlibCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ samples.from(stdlibSamples.toString()) -+ displayName.set("JRE8") -+ dependsOn("kotlin-stdlib-java-common") -+ dependsOn("kotlin-stdlib-common") -+ sourceRoots.setFrom("$kotlin_sources/kotlin-stdlib-jdk8/") -+ perPackageOption { -+ matchingRegex.set("kotlin.reflect.jvm.internal") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.jvm.functions(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.coroutines.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.coroutines.experimental.migration(\$|\\.).*") -+ suppress.set(true) -+ } -+ } -+ -+ register("kotlin-stdlib-jdk7") { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(stdlibIncludeMd.toString()) -+ noStdlibLink.set(true) -+ classpath.setFrom(stdlibJvmClasspath + stdlibCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ -+ samples.from(stdlibSamples.toString()) -+ displayName.set("JRE7") -+ dependsOn("kotlin-stdlib-java-common") -+ dependsOn("kotlin-stdlib-common") -+ sourceRoots.from("$kotlin_sources/kotlin-stdlib-jdk7") -+ perPackageOption { -+ matchingRegex.set("kotlin.reflect.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.jvm.functions(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.coroutines.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.coroutines.experimental.migration(\$|\\.).*") -+ suppress.set(true) -+ } -+ } -+ -+ -+ register("kotlin-stdlib-js") { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.js) -+ includes.from(stdlibIncludeMd.toString()) -+ noStdlibLink.set(true) -+ noJdkLink.set(true) -+ classpath.setFrom(stdlibJsClasspath + stdlibCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ samples.from(stdlibSamples.toString()) -+ displayName.set("JS") -+ dependsOn("kotlin-stdlib-common") -+ -+ sourceRoots.from("$kotlin_sources/kotlin-stdlib-js") -+ perPackageOption { -+ matchingRegex.set("org.w3c(\$|\\.).*") -+ reportUndocumented.set(false) -+ } -+ perPackageOption { -+ matchingRegex.set("org.khronos(\$|\\.).*") -+ reportUndocumented.set(false) -+ } -+ perPackageOption { -+ matchingRegex.set("jquery(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.reflect.jvm.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.js.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ } -+ -+ register("kotlin-stdlib-native") { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.native) -+ includes.from(stdlibIncludeMd.toString()) -+ noStdlibLink.set(true) -+ noJdkLink.set(true) -+ classpath.setFrom(stdlibNativeClasspath + stdlibCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ samples.from(stdlibSamples.toString()) -+ displayName.set("Native") -+ dependsOn("kotlin-stdlib-common") -+ -+ sourceRoots.from("$kotlin_native_root/Interop/Runtime/src/main/kotlin") -+ sourceRoots.from("$kotlin_native_root/Interop/Runtime/src/native/kotlin") -+ sourceRoots.from("$kotlin_native_root/Interop/JsRuntime/src/main/kotlin") -+ sourceRoots.from("$kotlin_native_root/runtime/src/main/kotlin") -+ perPackageOption { -+ matchingRegex.set("kotlin.native.internal(\$|\\.).*") -+ suppress.set(true) -+ } -+ perPackageOption { -+ matchingRegex.set("kotlin.test(\$|\\.).*") -+ suppress.set(true) -+ } -+ } -+ } -+ } -+ -+ task dokkaKotlinTest(type: org.jetbrains.dokka.gradle.DokkaTask) { -+ outputDirectory.set(new File(outputDir, "kotlin.test")) -+ moduleName.set("kotlin.test") -+ dokkaSourceSets { -+ "kotlin-test-common" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.common) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestCommonClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("Common") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/common/src/main/kotlin") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/annotations-common/src/main/kotlin") -+ } -+ -+ "kotlin-test-jvm" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestJvmClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("JVM") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/jvm/src/main/kotlin") -+ perPackageOption { -+ matchingRegex.set("org.junit(\$|\\.).*") -+ skipDeprecated.set(true) -+ } -+ } -+ -+ "kotlin-test-JUnit" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestJunitClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("JUnit") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/junit/src/main/kotlin") -+ externalDocumentationLink { -+ url.set(new URL("https://kotlinlang.org/api/latest/jvm/stdlib/")) -+ packageListUrl.set(stdlibPackageList) -+ } -+ externalDocumentationLink { -+ url.set(new URL("http://junit.org/junit4/javadoc/latest/")) -+ packageListUrl.set(new URL("http://junit.org/junit4/javadoc/latest/package-list")) -+ } -+ } -+ -+ "kotlin-test-JUnit5" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestJunit5Classpath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("JUnit5") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/junit5/src/main/kotlin") -+ externalDocumentationLink { -+ url.set(new URL("https://kotlinlang.org/api/latest/jvm/stdlib/")) -+ packageListUrl.set(stdlibPackageList) -+ } -+ externalDocumentationLink { -+ url.set(new URL("https://junit.org/junit5/docs/current/api/")) -+ packageListUrl.set(junit5PackageList) -+ } -+ } -+ -+ "kotlin-test-TestNG" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.jvm) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestTestngClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("TestNG") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/testng/src/main/kotlin") -+ externalDocumentationLink { -+ url.set(new URL("https://kotlinlang.org/api/latest/jvm/stdlib/")) -+ packageListUrl.set(stdlibPackageList) -+ } -+ externalDocumentationLink { -+ url.set(new URL("https://jitpack.io/com/github/cbeust/testng/master/javadoc/")) -+ packageListUrl.set(new URL("https://jitpack.io/com/github/cbeust/testng/master/javadoc/package-list")) -+ } -+ } -+ -+ "kotlin-test-js" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.js) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestJsClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("JS") -+ sourceRoots.from("$kotlin_root/libraries/kotlin.test/js/src/main/kotlin") -+ perPackageOption { -+ matchingRegex.set("org.junit(\$|\\.).*") -+ skipDeprecated.set(true) -+ } -+ externalDocumentationLink { -+ url.set(new URL("https://kotlinlang.org/api/latest/jvm/stdlib/")) -+ packageListUrl.set(stdlibPackageList) -+ } -+ } -+ -+ "kotlin-test-native" { -+ skipDeprecated.set(false) -+ jdkVersion.set(8) -+ platform.set(Platform.native) -+ includes.from(kotlinTestIncludeMd.toString()) -+ classpath.setFrom(kotlinTestJsClasspath) -+ languageVersion.set(kotlinLanguageVersion) -+ -+ displayName.set("Native") -+ sourceRoots.from("$kotlin_native_root/runtime/src/main/kotlin/kotlin/test") -+ externalDocumentationLink { -+ url.set(new URL("https://kotlinlang.org/api/latest/jvm/stdlib/")) -+ packageListUrl.set(stdlibPackageList) -+ } -+ } -+ } -+ } -+ -+ -+ callDokka.finalizedBy dokkaStdlib -+ dokkaStdlib.finalizedBy dokkaKotlinTest - } - --setupCallDokka.doLast { -- -- callDokka.commandLine = [ -- pAnt().ant_exe.path, -- "-f", file("build-docs.xml").path, -- "v2", -- "-Dkotlin_root=${pKotlinBig().kotlin_root}", -- "-Dkotlin_sources=${pKotlinBig().kotlin_sources}", -- "-Dkotlin_libs=${pKotlinBig().kotlin_libs}", -- "-Dkotlin_native_root=${pKotlinNative().kotlin_native_root}", -- "-Dkotlin_native_linux=${pKotlinNative().kotlin_native_bin_linux}", -- "-Dkotlin_native_windows=${pKotlinNative().kotlin_native_bin_windows}", -- "-Dkotlin_native_mac=${pKotlinNative().kotlin_native_bin_mac}", -- ] -+tasks { -+ doLast { -+ println(" ##teamcity[publishArtifacts '${outputDir}/kotlin.test => kotlin.test.zip'] ") -+ } - } -diff --git a/gradle.properties b/gradle.properties -new file mode 100644 -index 0000000..76356e8 ---- /dev/null -+++ b/gradle.properties -@@ -0,0 +1,4 @@ -+dokka_build = 611 -+dokka_version = 1.4.20.2-SNAPSHOT -+org.gradle.jvmargs=-Xmx4096m -+systemProp.dokka.shouldDisplaySinceKotlin=true -diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties -index d76b502..5028f28 100644 ---- a/gradle/wrapper/gradle-wrapper.properties -+++ b/gradle/wrapper/gradle-wrapper.properties -@@ -1,5 +1,5 @@ - distributionBase=GRADLE_USER_HOME - distributionPath=wrapper/dists --distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip -+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip - zipStoreBase=GRADLE_USER_HOME - zipStorePath=wrapper/dists -diff --git a/settings.gradle b/settings.gradle -index 5209245..bd38b18 100644 ---- a/settings.gradle -+++ b/settings.gradle -@@ -1,5 +1,20 @@ -+pluginManagement { -+ resolutionStrategy { -+ eachPlugin { -+ if (requested.id.id == "org.jetbrains.dokka") { -+ useModule("org.jetbrains.dokka:dokka-gradle-plugin:${requested.version}") -+ } -+ } -+ } -+ repositories { -+ mavenLocal() -+ gradlePluginPortal() -+ } -+} -+apply from: "../template.settings.gradle.kts" - rootProject.name = 'kotlin-dokka-stdlib' - - include 'kotlin_native' - include 'kotlin_big' --include 'ant' -+include 'plugins:dokka-samples-transformer-plugin' -+include 'plugins:dokka-stdlib-configuration-plugin'
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/template.root.gradle.kts b/integration-tests/gradle/projects/stdlib/template.root.gradle.kts deleted file mode 120000 index 895ca83d..00000000 --- a/integration-tests/gradle/projects/stdlib/template.root.gradle.kts +++ /dev/null @@ -1 +0,0 @@ -../template.root.gradle.kts
\ No newline at end of file diff --git a/integration-tests/gradle/projects/stdlib/template.settings.gradle.kts b/integration-tests/gradle/projects/stdlib/template.settings.gradle.kts deleted file mode 120000 index 7b43b3e7..00000000 --- a/integration-tests/gradle/projects/stdlib/template.settings.gradle.kts +++ /dev/null @@ -1 +0,0 @@ -../template.settings.gradle.kts
\ No newline at end of file diff --git a/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt b/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt deleted file mode 100644 index fc3ed66f..00000000 --- a/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/kotlin/StdlibGradleIntegrationTest.kt +++ /dev/null @@ -1,65 +0,0 @@ -package org.jetbrains.dokka.it.gradle.kotlin - -import org.gradle.testkit.runner.TaskOutcome -import org.jetbrains.dokka.it.TestOutputCopier -import org.jetbrains.dokka.it.copyAndApplyGitDiff -import org.jetbrains.dokka.it.gradle.AbstractGradleIntegrationTest -import org.jetbrains.dokka.it.gradle.BuildVersions -import org.junit.runners.Parameterized -import java.io.File -import java.net.URL -import kotlin.test.* - -class StdlibGradleIntegrationTest(override val versions: BuildVersions) : AbstractGradleIntegrationTest(), - TestOutputCopier { - - companion object { - @get:JvmStatic - @get:Parameterized.Parameters(name = "{0}") - val versions = BuildVersions.permutations( - gradleVersions = listOf("5.6"), - kotlinVersions = listOf("1.4.10") - ) - } - - override val projectOutputLocation: File by lazy { File(projectDir, "build/dokka/kotlin-stdlib") } - - private val currentDokkaVersion: String = "1.5.0"//checkNotNull(System.getenv("DOKKA_VERSION")) // uncomment after updating of StdLib - - @BeforeTest - fun prepareProjectFiles() { - val templateProjectDir = File("projects", "stdlib/kotlin-dokka-stdlib") - templateProjectDir.listFiles().orEmpty() - .forEach { topLevelFile -> topLevelFile.copyRecursively(File(projectDir, topLevelFile.name)) } - - val pluginDir = File("projects", "stdlib/plugins") - pluginDir.listFiles().orEmpty() - .forEach { topLevelFile -> - topLevelFile.copyRecursively( - File( - projectDir.resolve("plugins").also { it.mkdir() }, topLevelFile.name - ) - ) - } - - copyAndApplyGitDiff(File("projects", "stdlib/stdlib.diff")) - } - - @Test - fun execute() { - val result = createGradleRunner("callDokka", "-Pdokka_it_version=$currentDokkaVersion", "-i", "-s").buildRelaxed() - - assertEquals(TaskOutcome.SUCCESS, assertNotNull(result.task(":callDokka")).outcome) - - assertTrue(projectOutputLocation.isDirectory, "Missing dokka output directory") - - projectOutputLocation.allHtmlFiles().forEach { file -> - assertContainsNoErrorClass(file) - assertNoUnresolvedLinks(file) - assertNoHrefToMissingLocalFileOrDirectory(file) - assertNoEmptyLinks(file) - assertNoEmptySpans(file) - assertNoUnsubstitutedTemplatesInHtml(file) - } - } -} |