From 7503402e8b9c885ecaf27a927b66d327aea5bb14 Mon Sep 17 00:00:00 2001 From: IgnatBeresnev Date: Mon, 9 Oct 2023 16:45:27 +0200 Subject: [PATCH 01/72] Prepare for the next development iteration --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8f23dc5df4..e1bbd2bb07 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ # # Project Settings -dokka_version=1.9.10-SNAPSHOT +dokka_version=1.9.20-SNAPSHOT org.jetbrains.dokka.javaToolchain.mainCompiler=8 org.jetbrains.dokka.javaToolchain.testLauncher=8 org.jetbrains.dokka.kotlinLanguageLevel=1.4 From 562a5951ca942c0bd26d839f2ebf509b43ca3c59 Mon Sep 17 00:00:00 2001 From: Vadim Mishenev Date: Tue, 10 Oct 2023 12:36:34 +0300 Subject: [PATCH 02/72] [K2] Display enum entry members (#3180) --- .../src/test/kotlin/enums/KotlinEnumsTest.kt | 44 +++++++++++++++- ...ntriesDocumentableFilterTransfromerTest.kt | 5 +- ...rgeImplicitExpectActualDeclarationsTest.kt | 15 ++---- .../src/test/kotlin/utils/contentUtils.kt | 25 +++++++-- .../DefaultSymbolToDocumentableTranslator.kt | 52 +++++++++++++------ 5 files changed, 103 insertions(+), 38 deletions(-) diff --git a/plugins/base/src/test/kotlin/enums/KotlinEnumsTest.kt b/plugins/base/src/test/kotlin/enums/KotlinEnumsTest.kt index 94a6b932f5..c32a5cc288 100644 --- a/plugins/base/src/test/kotlin/enums/KotlinEnumsTest.kt +++ b/plugins/base/src/test/kotlin/enums/KotlinEnumsTest.kt @@ -15,8 +15,7 @@ import org.jetbrains.dokka.pages.ContentGroup import org.jsoup.Jsoup import org.jsoup.nodes.Element import signatures.renderedContent -import utils.TestOutputWriter -import utils.TestOutputWriterPlugin +import utils.* import java.net.URL import kotlin.test.Test import kotlin.test.assertEquals @@ -328,6 +327,47 @@ class KotlinEnumsTest : BaseAbstractTest() { } } + @Test + @OnlyDescriptors("K2 has `compareTo`, that should be suppressed, due to #3196") + fun `enum should have functions on page`() { + val configuration = dokkaConfiguration { + sourceSets { + sourceSet { + sourceRoots = listOf("src/") + } + } + } + + testInline( + """ + |/src/main/kotlin/basic/TestEnum.kt + |package testpackage + | + | + |interface Sample { + | fun toBeImplemented(): String + |} + | + |enum class TestEnum: Sample { + | E1 { + | override fun toBeImplemented(): String = "e1" + | } + |} + """.trimMargin(), + configuration + ) { + pagesTransformationStage = { root -> + root.contentPage("E1") { + assertHasFunctions("toBeImplemented") + } + + root.contentPage("TestEnum") { + assertHasFunctions("toBeImplemented", "valueOf", "values") + } + } + } + } + @Test fun enumWithAnnotationsOnEntries() { val configuration = dokkaConfiguration { diff --git a/plugins/base/src/test/kotlin/transformers/InheritedEntriesDocumentableFilterTransfromerTest.kt b/plugins/base/src/test/kotlin/transformers/InheritedEntriesDocumentableFilterTransfromerTest.kt index 831d2680cd..c07dd5b813 100644 --- a/plugins/base/src/test/kotlin/transformers/InheritedEntriesDocumentableFilterTransfromerTest.kt +++ b/plugins/base/src/test/kotlin/transformers/InheritedEntriesDocumentableFilterTransfromerTest.kt @@ -9,7 +9,6 @@ import org.jetbrains.dokka.model.DEnum import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertTrue -import utils.OnlyDescriptors class InheritedEntriesDocumentableFilterTransformerTest : BaseAbstractTest() { val suppressingInheritedConfiguration = dokkaConfiguration { @@ -138,7 +137,6 @@ class InheritedEntriesDocumentableFilterTransformerTest : BaseAbstractTest() { } } - @OnlyDescriptors("Entry does not have `name` and `ordinal`") // TODO @Test fun `should work with enum entries when not suppressing`(){ testInline( @@ -146,7 +144,8 @@ class InheritedEntriesDocumentableFilterTransformerTest : BaseAbstractTest() { /src/suppressed/Suppressed.kt package suppressed enum class Suppressed { - ENTRY_SUPPRESSED + ENTRY_SUPPRESSED; + class A } """.trimIndent(), nonSuppressingInheritedConfiguration diff --git a/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt b/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt index f7118f335a..18e42e477d 100644 --- a/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt +++ b/plugins/base/src/test/kotlin/transformers/MergeImplicitExpectActualDeclarationsTest.kt @@ -13,10 +13,10 @@ import org.jetbrains.dokka.model.dfs import org.jetbrains.dokka.model.firstChildOfType import org.jetbrains.dokka.pages.* import utils.assertNotNull +import utils.findSectionWithName import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNotNull -import utils.OnlyDescriptors class MergeImplicitExpectActualDeclarationsTest : BaseAbstractTest() { @@ -52,15 +52,6 @@ class MergeImplicitExpectActualDeclarationsTest : BaseAbstractTest() { ) } - private fun ClasslikePageNode.findSectionWithName(name: String) : ContentNode? { - var sectionHeader: ContentHeader? = null - return content.dfs { node -> - node.children.filterIsInstance().any { header -> - header.children.firstOrNull { it is ContentText && it.text == name }?.also { sectionHeader = header } != null - } - }?.children?.dropWhile { child -> child != sectionHeader }?.drop(1)?.firstOrNull() - } - private fun ContentNode.findTabWithType(type: TabbedContentType): ContentNode? = dfs { node -> node.children.filterIsInstance().any { gr -> gr.extra[TabbedContentTypeExtra]?.value == type @@ -274,7 +265,6 @@ class MergeImplicitExpectActualDeclarationsTest : BaseAbstractTest() { fun PageNode.childrenRec(): List = listOf(this) + children.flatMap { it.childrenRec() } - @OnlyDescriptors("Enum entry [SMTH] does not have functions") // TODO @Test fun `should merge enum entries`() { testInline( @@ -304,7 +294,8 @@ class MergeImplicitExpectActualDeclarationsTest : BaseAbstractTest() { assertNotNull(classPage, "Tested class not found!") val functions = classPage.findSectionWithName("Functions").assertNotNull("Functions") - val method1 = functions.children.singleOrNull().assertNotNull("method1") + val method1 = functions.children.single { it.sourceSets.size == 2 && it.dci.dri.singleOrNull()?.callable?.name == "method1" } + .assertNotNull("method1") assertEquals( 2, diff --git a/plugins/base/src/test/kotlin/utils/contentUtils.kt b/plugins/base/src/test/kotlin/utils/contentUtils.kt index b83d8697bb..3ca0bd2d6c 100644 --- a/plugins/base/src/test/kotlin/utils/contentUtils.kt +++ b/plugins/base/src/test/kotlin/utils/contentUtils.kt @@ -5,10 +5,9 @@ package utils import matchers.content.* -import org.jetbrains.dokka.pages.BasicTabbedContentType -import org.jetbrains.dokka.pages.ContentGroup -import org.jetbrains.dokka.pages.ContentPage -import org.jetbrains.dokka.pages.RootPageNode +import org.jetbrains.dokka.model.dfs +import org.jetbrains.dokka.pages.* +import kotlin.test.assertEquals //TODO: Try to unify those functions after update to 1.4 fun ContentMatcherBuilder<*>.functionSignature( @@ -327,6 +326,24 @@ fun ContentMatcherBuilder<*>.unwrapAnnotation(elem: Map.Entry PageNode.contentPage(name: String, block: T.() -> Unit) { + (dfs { it.name == name } as? T).assertNotNull("The page `$name` is not found").block() +} + +fun ClasslikePageNode.assertHasFunctions(vararg expectedFunctionName: String) { + val functions = this.findSectionWithName("Functions").assertNotNull("Functions") + val functionsName = functions.children.map { (it.dfs { it is ContentText } as ContentText).text } + assertEquals(expectedFunctionName.toList(), functionsName) +} + +fun ClasslikePageNode.findSectionWithName(name: String) : ContentNode? { + var sectionHeader: ContentHeader? = null + return content.dfs { node -> + node.children.filterIsInstance().any { header -> + header.children.firstOrNull { it is ContentText && it.text == name }?.also { sectionHeader = header } != null + } + }?.children?.dropWhile { child -> child != sectionHeader }?.drop(1)?.firstOrNull() +} data class ParamAttributes( val annotations: Map>, diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt index 4e741d09e1..f217c88f9f 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt @@ -343,7 +343,30 @@ internal class DokkaSymbolVisitor( KtClassKind.ANONYMOUS_OBJECT -> throw NotImplementedError("ANONYMOUS_OBJECT does not support") KtClassKind.ENUM_CLASS -> { - val entries = namedClassOrObjectSymbol.getEnumEntries().map { visitEnumEntrySymbol(it) } + /** + * See https://github.com/Kotlin/dokka/issues/3129 + * + * e.g. the `A` enum entry in the `enum E` is + * ``` + * static val A: E = object : E() { + * val x: Int = 5 + * } + * ``` + * it needs to exclude all static members like `values` and `valueOf` from the enum class's scope + */ + val enumEntryScope = lazy { + getDokkaScopeFrom(namedClassOrObjectSymbol, dri, includeStaticScope = false).let { + it.copy( + functions = it.functions.map { it.withNewExtras( it.extra + InheritedMember(dri.copy(callable = null).toSourceSetDependent())) }, + properties = it.properties.map { it.withNewExtras( it.extra + InheritedMember(dri.copy(callable = null).toSourceSetDependent())) } + ) + } + } + + val entries = + namedClassOrObjectSymbol.getEnumEntries().map { + visitEnumEntrySymbol(it, enumEntryScope.value) + } DEnum( dri = dri, @@ -383,12 +406,17 @@ internal class DokkaSymbolVisitor( val properties: List, val classlikes: List ) + + /** + * @param includeStaticScope flag to add static members, e.g. `valueOf`, `values` and `entries` members for Enum + */ private fun KtAnalysisSession.getDokkaScopeFrom( namedClassOrObjectSymbol: KtNamedClassOrObjectSymbol, - dri: DRI + dri: DRI, + includeStaticScope: Boolean = true ): DokkaScope { // e.g. getStaticMemberScope contains `valueOf`, `values` and `entries` members for Enum - val scope = listOf(namedClassOrObjectSymbol.getMemberScope(), namedClassOrObjectSymbol.getStaticMemberScope()).asCompositeScope() + val scope = if(includeStaticScope) listOf(namedClassOrObjectSymbol.getMemberScope(), namedClassOrObjectSymbol.getStaticMemberScope()).asCompositeScope() else namedClassOrObjectSymbol.getMemberScope() val constructors = scope.getConstructors().map { visitConstructorSymbol(it) }.toList() val callables = scope.getCallableSymbols().toList() @@ -453,28 +481,18 @@ internal class DokkaSymbolVisitor( } private fun KtAnalysisSession.visitEnumEntrySymbol( - enumEntrySymbol: KtEnumEntrySymbol + enumEntrySymbol: KtEnumEntrySymbol, scope: DokkaScope ): DEnumEntry = withExceptionCatcher(enumEntrySymbol) { val dri = getDRIFromEnumEntry(enumEntrySymbol) val isExpect = false - val scope = enumEntrySymbol.getMemberScope() - val callables = scope.getCallableSymbols().toList() - val classifiers = scope.getClassifierSymbols().toList() - - val functions = callables.filterIsInstance().map { visitFunctionSymbol(it, dri) } - val properties = callables.filterIsInstance().map { visitPropertySymbol(it, dri) } - val classlikes = - classifiers.filterIsInstance() - .map { visitNamedClassOrObjectSymbol(it, dri) } - return DEnumEntry( dri = dri, name = enumEntrySymbol.name.asString(), documentation = getDocumentation(enumEntrySymbol)?.toSourceSetDependent() ?: emptyMap(), - functions = functions, - properties = properties, - classlikes = classlikes, + functions = scope.functions, + properties = scope.properties, + classlikes = emptyList(), // always empty, see https://github.com/Kotlin/dokka/issues/3129 sourceSets = setOf(sourceSet), expectPresentInSet = sourceSet.takeIf { isExpect }, extra = PropertyContainer.withAll( From edd51958c657e0aa226a584b6c7b8d0749641b9f Mon Sep 17 00:00:00 2001 From: Vadim Mishenev Date: Wed, 11 Oct 2023 20:00:09 +0300 Subject: [PATCH 03/72] Avoid calling analyze on built-ins (#3200) Otherwise, `Caused by: org.jetbrains.kotlin.utils.exceptions.KotlinIllegalArgumentExceptionWithAttachments: Unexpected class org.jetbrains.kotlin.analysis.project.structure.KtBuiltinsModule at org.jetbrains.kotlin.analysis.low.level.api.fir.util.ExceptionUtilsKt.errorWithFirSpecificEntries(exceptionUtils.kt:50)` --- .../kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt | 2 +- .../services/SymbolFullClassHierarchyBuilder.kt | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt index 43435a55ca..ef79514567 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/SymbolsAnalysisPlugin.kt @@ -93,7 +93,7 @@ public class SymbolsAnalysisPlugin : DokkaPlugin() { plugin().documentableSourceLanguageParser providing { KotlinDocumentableSourceLanguageParser() } } internal val symbolFullClassHierarchyBuilder by extending { - plugin().fullClassHierarchyBuilder providing { SymbolFullClassHierarchyBuilder() } + plugin().fullClassHierarchyBuilder providing ::SymbolFullClassHierarchyBuilder } internal val symbolSyntheticDocumentableDetector by extending { diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt index 375aee9065..0e90bec8e8 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolFullClassHierarchyBuilder.kt @@ -16,12 +16,18 @@ import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.dokka.analysis.kotlin.internal.ClassHierarchy import org.jetbrains.dokka.analysis.kotlin.internal.FullClassHierarchyBuilder import org.jetbrains.dokka.analysis.kotlin.internal.Supertypes +import org.jetbrains.dokka.analysis.kotlin.symbols.plugin.SymbolsAnalysisPlugin +import org.jetbrains.dokka.plugability.DokkaContext +import org.jetbrains.dokka.plugability.plugin +import org.jetbrains.dokka.plugability.querySingle import org.jetbrains.kotlin.psi.KtClassOrObject import java.util.concurrent.ConcurrentHashMap -internal class SymbolFullClassHierarchyBuilder : FullClassHierarchyBuilder { - override suspend fun build(module: DModule): ClassHierarchy { +internal class SymbolFullClassHierarchyBuilder(val context: DokkaContext) : FullClassHierarchyBuilder { + private val kotlinAnalysis = context.plugin().querySingle { kotlinAnalysis } + + override suspend fun build(module: DModule): ClassHierarchy { val map = module.sourceSets.associateWith { ConcurrentHashMap>() } module.packages.forEach { visitDocumentable(it, map) } return map @@ -41,7 +47,7 @@ internal class SymbolFullClassHierarchyBuilder : FullClassHierarchyBuilder { if (supersMap[dri] == null) { supersMap[dri] = supertypesDriWithKType.map { it.first } - supertypesDriWithKType.forEach{ collectSupertypesFromKtType(it, supersMap) } + supertypesDriWithKType.forEach { collectSupertypesFromKtType(it, supersMap) } } } @@ -73,7 +79,7 @@ internal class SymbolFullClassHierarchyBuilder : FullClassHierarchyBuilder { documentable.sources.forEach { (sourceSet, source) -> if (source is KtPsiDocumentableSource) { (source.psi as? KtClassOrObject)?.let { psi -> - analyze(psi) { + analyze(kotlinAnalysis[sourceSet].mainModule) { val type = psi.getNamedClassOrObjectSymbol()?.buildSelfClassType() ?: return@analyze hierarchy[sourceSet]?.let { collectSupertypesFromKtType(documentable.dri to type, it) } } From 33210a46c7f92f868af98efa04c31295c7a224bf Mon Sep 17 00:00:00 2001 From: Vadim Mishenev Date: Wed, 11 Oct 2023 20:01:55 +0300 Subject: [PATCH 04/72] [K2] Migrate to new standalone API (#3201) * Migrate K2-Based dokka to use the new standalone mode API see https://youtrack.jetbrains.com/issue/KT-60884 * Do not use copy-n-pasted code from Analysis API in K2-Based Dokka see https://youtrack.jetbrains.com/issue/KT-60884 * Remove copy-n-pasted API from Analysis API in K2-Based Dokka as it's now unused see https://youtrack.jetbrains.com/issue/KT-60884 * Update version Analysis API to 1.9.30-dev-3330 --------- Co-authored-by: Ilya Kirillov --- gradle/libs.versions.toml | 2 +- .../analysis-kotlin-symbols/build.gradle.kts | 3 +- .../kotlin/symbols/plugin/AnalysisContext.kt | 3 +- .../kotlin/symbols/plugin/KotlinAnalysis.kt | 194 +++--------------- .../DefaultSymbolToDocumentableTranslator.kt | 5 +- 5 files changed, 34 insertions(+), 173 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6acd2a57a1..83bfe621f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ kotlinx-bcv = "0.12.1" ## Analysis kotlin-compiler = "1.9.10" -kotlin-compiler-k2 = "1.9.0-release-358" +kotlin-compiler-k2 = "1.9.30-dev-3330" # MUST match the version of the intellij platform used in the kotlin compiler, # otherwise this will lead to different versions of psi API and implementations diff --git a/subprojects/analysis-kotlin-symbols/build.gradle.kts b/subprojects/analysis-kotlin-symbols/build.gradle.kts index c1705e9f3a..6733b7788a 100644 --- a/subprojects/analysis-kotlin-symbols/build.gradle.kts +++ b/subprojects/analysis-kotlin-symbols/build.gradle.kts @@ -54,7 +54,6 @@ dependencies { listOf( libs.kotlin.high.level.api.api, libs.kotlin.analysis.api.standalone, - libs.kotlin.high.level.api.impl // for Standalone prototype ).forEach { implementation(it) { isTransitive = false // see KTIJ-19820 @@ -67,7 +66,7 @@ dependencies { libs.kotlin.low.level.api.fir, libs.kotlin.analysis.project.structure, libs.kotlin.analysis.api.providers, - libs.kotlin.symbol.light.classes + libs.kotlin.symbol.light.classes, ).forEach { runtimeOnly(it) { isTransitive = false // see KTIJ-19820 diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt index 9ccd52b297..cf57e81539 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/AnalysisContext.kt @@ -125,11 +125,12 @@ internal open class EnvironmentKotlinAnalysis( internal interface AnalysisContext: Closeable { val project: Project val mainModule: KtSourceModule + val analysisSession: StandaloneAnalysisAPISession } private class AnalysisContextImpl( override val mainModule: KtSourceModule, - private val analysisSession: StandaloneAnalysisAPISession, + override val analysisSession: StandaloneAnalysisAPISession, private val applicationDisposable: Disposable, private val projectDisposable: Disposable ) : AnalysisContext { diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis.kt index 9419ec651c..a6155fb028 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis.kt @@ -4,19 +4,11 @@ package org.jetbrains.dokka.analysis.kotlin.symbols.plugin -import com.intellij.core.CoreApplicationEnvironment import com.intellij.openapi.Disposable -import com.intellij.openapi.project.Project -import com.intellij.openapi.vfs.StandardFileSystems -import com.intellij.openapi.vfs.VirtualFileManager -import com.intellij.psi.PsiFileSystemItem -import com.intellij.psi.PsiManager -import com.intellij.psi.search.GlobalSearchScope -import com.intellij.psi.search.ProjectScope -import com.intellij.util.io.URLUtil import org.jetbrains.dokka.Platform -import org.jetbrains.kotlin.analysis.api.impl.base.util.LibraryUtils -import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider +import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals +import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenProvider +import org.jetbrains.kotlin.analysis.api.standalone.KtAlwaysAccessibleLifetimeTokenProvider import org.jetbrains.kotlin.analysis.api.standalone.StandaloneAnalysisAPISession import org.jetbrains.kotlin.analysis.api.standalone.buildStandaloneAnalysisAPISession import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule @@ -24,18 +16,12 @@ import org.jetbrains.kotlin.analysis.project.structure.builder.KtModuleBuilder import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtLibraryModule import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSdkModule import org.jetbrains.kotlin.analysis.project.structure.builder.buildKtSourceModule -import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.config.* -import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.platform.CommonPlatforms import org.jetbrains.kotlin.platform.js.JsPlatforms import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.platform.konan.NativePlatforms -import org.jetbrains.kotlin.psi.KtFile import java.io.File -import java.io.IOException -import java.nio.file.* -import java.nio.file.attribute.BasicFileAttributes internal fun Platform.toTargetPlatform() = when (this) { Platform.js, Platform.wasm -> JsPlatforms.defaultJsPlatform @@ -71,6 +57,7 @@ internal fun getLanguageVersionSettings( } // it should be changed after https://github.com/Kotlin/dokka/issues/3114 +@OptIn(KtAnalysisApiInternals::class) internal fun createAnalysisSession( classpath: List, sourceRoots: Set, @@ -87,163 +74,40 @@ internal fun createAnalysisSession( projectDisposable = projectDisposable, withPsiDeclarationFromBinaryModuleProvider = false ) { - val project = project + registerProjectService(KtLifetimeTokenProvider::class.java, KtAlwaysAccessibleLifetimeTokenProvider()) val targetPlatform = analysisPlatform.toTargetPlatform() - fun KtModuleBuilder.addModuleDependencies(moduleName: String) { + + buildKtModuleProvider { val libraryRoots = classpath - addRegularDependency( - buildKtLibraryModule { - contentScope = ProjectScope.getLibrariesScope(project) - this.platform = targetPlatform - this.project = project - binaryRoots = libraryRoots.map { it.toPath() } - libraryName = "Library for $moduleName" - } - ) - getJdkHomeFromSystemProperty()?.let { jdkHome -> - val vfm = VirtualFileManager.getInstance() - val jdkHomePath = jdkHome.toPath() - val jdkHomeVirtualFile = vfm.findFileByNioPath(jdkHome.toPath())//vfm.findFileByPath(jdkHomePath) - val binaryRoots = LibraryUtils.findClassesFromJdkHome(jdkHomePath).map { - Paths.get(URLUtil.extractPath(it)) - } + fun KtModuleBuilder.addModuleDependencies(moduleName: String) { addRegularDependency( - buildKtSdkModule { - contentScope = GlobalSearchScope.fileScope(project, jdkHomeVirtualFile) + buildKtLibraryModule { this.platform = targetPlatform - this.project = project - this.binaryRoots = binaryRoots - sdkName = "JDK for $moduleName" + addBinaryRoots(libraryRoots.map { it.toPath() }) + libraryName = "Library for $moduleName" } ) + getJdkHomeFromSystemProperty()?.let { jdkHome -> + addRegularDependency( + buildKtSdkModule { + this.platform = targetPlatform + addBinaryRootsFromJdkHome(jdkHome.toPath(), isJre = true) + sdkName = "JDK for $moduleName" + } + ) + } + } + sourceModule = buildKtSourceModule { + languageVersionSettings = getLanguageVersionSettings(languageVersion, apiVersion) + platform = targetPlatform + moduleName = "" + // TODO: We should handle (virtual) file changes announced via LSP with the VFS + addSourceRoots(sourceRoots.map { it.toPath() }) + addModuleDependencies(moduleName) } - } - sourceModule = buildKtSourceModule { - this.languageVersionSettings = getLanguageVersionSettings(languageVersion, apiVersion) - - //val fs = StandardFileSystems.local() - //val psiManager = PsiManager.getInstance(project) - // TODO: We should handle (virtual) file changes announced via LSP with the VFS - /*val ktFiles = sources - .flatMap { Files.walk(it).toList() } - .mapNotNull { fs.findFileByPath(it.toString()) } - .mapNotNull { psiManager.findFile(it) } - .map { it as KtFile }*/ - val sourcePaths = sourceRoots.map { it.absolutePath } - val (ktFilePath, javaFilePath) = getSourceFilePaths(sourcePaths).partition { it.endsWith(KotlinFileType.EXTENSION) } - val javaFiles: List = getPsiFilesFromPaths(project, javaFilePath) - val ktFiles: List = getPsiFilesFromPaths(project, getSourceFilePaths(ktFilePath)) - addSourceRoots(ktFiles + javaFiles) - contentScope = TopDownAnalyzerFacadeForJVM.newModuleSearchScope(project, ktFiles) - platform = targetPlatform - moduleName = "" - this.project = project - addModuleDependencies(moduleName) - } - - buildKtModuleProvider { platform = targetPlatform - this.project = project addModule(sourceModule!!) } } - // TODO remove further - CoreApplicationEnvironment.registerExtensionPoint( - analysisSession.project.extensionArea, - KtResolveExtensionProvider.EP_NAME.name, - KtResolveExtensionProvider::class.java - ) return Pair(analysisSession, sourceModule ?: throw IllegalStateException()) -} - -// ----------- copy-paste from Analysis API ---------------------------------------------------------------------------- -/** - * Collect source file path from the given [root] store them in [result]. - * - * E.g., for `project/app/src` as a [root], this will walk the file tree and - * collect all `.kt` and `.java` files under that folder. - * - * Note that this util gracefully skips [IOException] during file tree traversal. - */ -internal fun collectSourceFilePaths( - root: Path, - result: MutableSet -) { - // NB: [Files#walk] throws an exception if there is an issue during IO. - // With [Files#walkFileTree] with a custom visitor, we can take control of exception handling. - Files.walkFileTree( - root, - object : SimpleFileVisitor() { - override fun preVisitDirectory(dir: Path, attrs: BasicFileAttributes): FileVisitResult { - return if (Files.isReadable(dir)) - FileVisitResult.CONTINUE - else - FileVisitResult.SKIP_SUBTREE - } - - override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult { - if (!Files.isRegularFile(file) || !Files.isReadable(file)) - return FileVisitResult.CONTINUE - val ext = file.toFile().extension - if (ext == KotlinFileType.EXTENSION || ext == "java"/*JavaFileType.DEFAULT_EXTENSION*/) { - result.add(file.toString()) - } - return FileVisitResult.CONTINUE - } - - override fun visitFileFailed(file: Path, exc: IOException?): FileVisitResult { - // TODO: report or log [IOException]? - // NB: this intentionally swallows the exception, hence fail-safe. - // Skipping subtree doesn't make any sense, since this is not a directory. - // Skipping sibling may drop valid file paths afterward, so we just continue. - return FileVisitResult.CONTINUE - } - } - ) -} - -/** - * Collect source file path as [String] from the given source roots in [sourceRoot]. - * - * this util collects all `.kt` and `.java` files under source roots. - */ -internal fun getSourceFilePaths( - sourceRoot: Collection, - includeDirectoryRoot: Boolean = false, -): Set { - val result = mutableSetOf() - sourceRoot.forEach { srcRoot -> - val path = Paths.get(srcRoot) - if (Files.isDirectory(path)) { - // E.g., project/app/src - collectSourceFilePaths(path, result) - if (includeDirectoryRoot) { - result.add(srcRoot) - } - } else { - // E.g., project/app/src/some/pkg/main.kt - result.add(srcRoot) - } - } - - return result -} - -internal inline fun getPsiFilesFromPaths( - project: Project, - paths: Collection, -): List { - val fs = StandardFileSystems.local() - val psiManager = PsiManager.getInstance(project) - val result = mutableListOf() - for (path in paths) { - val vFile = fs.findFileByPath(path) ?: continue - val psiFileSystemItem = - if (vFile.isDirectory) - psiManager.findDirectory(vFile) as? T - else - psiManager.findFile(vFile) as? T - psiFileSystemItem?.let { result.add(it) } - } - return result -} +} \ No newline at end of file diff --git a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt index f217c88f9f..74d312690f 100644 --- a/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt +++ b/subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt @@ -118,10 +118,7 @@ internal class DokkaSymbolVisitor( } fun visitModule(): DModule { - val ktFiles: List = getPsiFilesFromPaths( - analysisContext.project, - getSourceFilePaths(sourceSet.sourceRoots.map { it.canonicalPath }) - ) + val ktFiles = analysisContext.analysisSession.modulesWithFiles.entries.single().value.filterIsInstance() val processedPackages: MutableSet = mutableSetOf() return analyze(analysisContext.mainModule) { val packageSymbols: List = ktFiles From 514cbb11962ba77abf5b35f7698b84f1aef1e813 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 12 Oct 2023 11:40:43 +1300 Subject: [PATCH 05/72] Fix Maven plugin help task (#3036) Fixes #3035 --- .../conventions/maven-cli-setup.gradle.kts | 3 - .../dokka/it/maven/MavenIntegrationTest.kt | 50 +++++++++- .../jetbrains/dokka/it/TestOutputCopier.kt | 2 +- runners/maven-plugin/api/maven-plugin.api | 5 + runners/maven-plugin/build.gradle.kts | 93 +++++++++++-------- runners/maven-plugin/pom.template.xml | 26 ++++++ 6 files changed, 133 insertions(+), 46 deletions(-) diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/maven-cli-setup.gradle.kts b/build-logic/src/main/kotlin/org/jetbrains/conventions/maven-cli-setup.gradle.kts index 8d228bc355..f07ff98d6b 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/maven-cli-setup.gradle.kts +++ b/build-logic/src/main/kotlin/org/jetbrains/conventions/maven-cli-setup.gradle.kts @@ -22,7 +22,6 @@ plugins { abstract class MavenCliSetupExtension { abstract val mavenVersion: Property abstract val mavenPluginToolsVersion: Property - abstract val mavenBuildDir: DirectoryProperty /** Directory that will contain the unpacked Apache Maven dependency */ abstract val mavenInstallDir: DirectoryProperty @@ -43,7 +42,6 @@ val mavenCliSetupExtension = mavenVersion.convention(libs.versions.apacheMaven.core) mavenPluginToolsVersion.convention(libs.versions.apacheMaven.pluginTools) - mavenBuildDir.convention(layout.buildDirectory.dir("maven")) mavenInstallDir.convention(layout.buildDirectory.dir("apache-maven")) val isWindowsProvider = @@ -81,7 +79,6 @@ val mavenBinary by configurations.registering { } tasks.clean { - delete(mavenCliSetupExtension.mavenBuildDir) delete(mavenCliSetupExtension.mavenInstallDir) } diff --git a/integration-tests/maven/src/integrationTest/kotlin/org/jetbrains/dokka/it/maven/MavenIntegrationTest.kt b/integration-tests/maven/src/integrationTest/kotlin/org/jetbrains/dokka/it/maven/MavenIntegrationTest.kt index 92bdc45ecd..7606072c80 100644 --- a/integration-tests/maven/src/integrationTest/kotlin/org/jetbrains/dokka/it/maven/MavenIntegrationTest.kt +++ b/integration-tests/maven/src/integrationTest/kotlin/org/jetbrains/dokka/it/maven/MavenIntegrationTest.kt @@ -4,9 +4,10 @@ package org.jetbrains.dokka.it.maven +import org.intellij.lang.annotations.Language import org.jetbrains.dokka.it.AbstractIntegrationTest -import org.jetbrains.dokka.it.awaitProcessResult import org.jetbrains.dokka.it.ProcessResult +import org.jetbrains.dokka.it.awaitProcessResult import java.io.File import kotlin.test.* @@ -26,11 +27,33 @@ class MavenIntegrationTest : AbstractIntegrationTest() { writeText(readText().replace("\$dokka_version", currentDokkaVersion)) } val customResourcesDir = File(templateProjectDir, "customResources") - if(customResourcesDir.exists() && customResourcesDir.isDirectory) { + if (customResourcesDir.exists() && customResourcesDir.isDirectory) { customResourcesDir.copyRecursively(File(projectDir, "customResources"), overwrite = true) } } + @Test + fun `dokka help`() { + val result = ProcessBuilder().directory(projectDir) + .command(mavenBinaryFile.absolutePath, "dokka:help", "-U", "-e") + .start() + .awaitProcessResult() + + // format the output to remove blank lines and make newlines system-independent + val output = result.output.lines().filter { it.isNotBlank() }.joinToString("\n") + + assertContains( + output, + """ + |This plugin has 4 goals: + |dokka:dokka + |dokka:help + |dokka:javadoc + |dokka:javadocJar + """.trimMargin() + ) + } + @Test fun `dokka dokka`() { val result = ProcessBuilder().directory(projectDir) @@ -67,7 +90,12 @@ class MavenIntegrationTest : AbstractIntegrationTest() { ) assertTrue(stylesDir.resolve("custom-style-to-add.css").isFile) projectDir.allHtmlFiles().forEach { file -> - if(file.name != "navigation.html") assertTrue("custom-style-to-add.css" in file.readText(), "custom styles not added to html file ${file.name}") + if (file.name != "navigation.html") { + assertTrue( + "custom-style-to-add.css" in file.readText(), + "custom styles not added to html file ${file.name}" + ) + } } assertTrue(stylesDir.resolve("custom-style-to-add.css").readText().contains("""/* custom stylesheet */""")) assertTrue(imagesDir.resolve("custom-resource.svg").isFile) @@ -172,4 +200,20 @@ class MavenIntegrationTest : AbstractIntegrationTest() { ) ) } + + companion object { + /* + * TODO replace with kotlin.test.assertContains after migrating to Kotlin language version 1.5+ + */ + fun assertContains( + charSequence: CharSequence, + @Language("TEXT") other: CharSequence, + ignoreCase: Boolean = false + ) { + asserter.assertTrue( + { "Expected the char sequence to contain the substring.\nCharSequence <$charSequence>, substring <$other>, ignoreCase <$ignoreCase>." }, + charSequence.contains(other, ignoreCase) + ) + } + } } diff --git a/integration-tests/src/main/kotlin/org/jetbrains/dokka/it/TestOutputCopier.kt b/integration-tests/src/main/kotlin/org/jetbrains/dokka/it/TestOutputCopier.kt index 681c9d539f..2e2113a910 100644 --- a/integration-tests/src/main/kotlin/org/jetbrains/dokka/it/TestOutputCopier.kt +++ b/integration-tests/src/main/kotlin/org/jetbrains/dokka/it/TestOutputCopier.kt @@ -15,6 +15,6 @@ public interface TestOutputCopier { System.getenv("DOKKA_TEST_OUTPUT_PATH")?.also { location -> println("Copying to ${File(location).absolutePath}") projectOutputLocation.copyRecursively(File(location)) - } ?: println("No path via env. varbiable 'DOKKA_TEST_OUTPUT_PATH' provided, skipping copying") + } ?: println("No path via env. variable 'DOKKA_TEST_OUTPUT_PATH' provided, skipping copying") } } diff --git a/runners/maven-plugin/api/maven-plugin.api b/runners/maven-plugin/api/maven-plugin.api index 28d96bd3b6..069e7744ee 100644 --- a/runners/maven-plugin/api/maven-plugin.api +++ b/runners/maven-plugin/api/maven-plugin.api @@ -94,6 +94,11 @@ public final class org/jetbrains/dokka/maven/ExternalDocumentationLinkBuilder { public final fun setUrl (Ljava/net/URL;)V } +public class org/jetbrains/dokka/maven/HelpMojo : org/apache/maven/plugin/AbstractMojo { + public fun ()V + public fun execute ()V +} + public final class org/jetbrains/dokka/maven/MavenDokkaLogger : org/jetbrains/dokka/utilities/DokkaLogger { public fun (Lorg/apache/maven/plugin/logging/Log;)V public fun debug (Ljava/lang/String;)V diff --git a/runners/maven-plugin/build.gradle.kts b/runners/maven-plugin/build.gradle.kts index 5e27929835..825493ad27 100644 --- a/runners/maven-plugin/build.gradle.kts +++ b/runners/maven-plugin/build.gradle.kts @@ -2,7 +2,6 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -import org.gradle.kotlin.dsl.support.appendReproducibleNewLine import org.jetbrains.registerDokkaArtifactPublication plugins { @@ -47,77 +46,93 @@ val generatePom by tasks.registering(Sync::class) { into(temporaryDir) } -val prepareMavenPluginBuildDir by tasks.registering(Sync::class) { - description = "Prepares all files for Maven Plugin task execution" +val prepareHelpMojoDir by tasks.registering(Sync::class) { + description = "Prepare files for generating the Maven Plugin HelpMojo" group = mavenPluginTaskGroup - from(tasks.compileKotlin.flatMap { it.destinationDirectory }) { into("classes/java/main") } - from(tasks.compileJava.flatMap { it.destinationDirectory }) { into("classes/java/main") } - + into(layout.buildDirectory.dir("maven-help-mojo")) from(generatePom) - - into(mavenCliSetup.mavenBuildDir) } val helpMojo by tasks.registering(Exec::class) { + description = "Generate the Maven Plugin HelpMojo" group = mavenPluginTaskGroup - dependsOn(tasks.installMavenBinary, prepareMavenPluginBuildDir) + dependsOn(tasks.installMavenBinary, prepareHelpMojoDir) - workingDir(mavenCliSetup.mavenBuildDir) + workingDir(prepareHelpMojoDir.map { it.destinationDir }) executable(mavenCliSetup.mvn.get()) args("-e", "-B", "org.apache.maven.plugins:maven-plugin-plugin:helpmojo") - outputs.dir(mavenCliSetup.mavenBuildDir) - - doLast("normalize maven-plugin-help.properties") { - // The maven-plugin-help.properties file contains a timestamp by default. - // It should be removed as it is not reproducible and impacts Gradle caching - val pluginHelpProperties = workingDir.resolve("maven-plugin-help.properties") - pluginHelpProperties.writeText( - buildString { - val lines = pluginHelpProperties.readText().lines().iterator() - // the first line is a descriptive comment - appendReproducibleNewLine(lines.next()) - // the second line is the timestamp, which should be ignored - lines.next() - // the remaining lines are properties - lines.forEach { appendReproducibleNewLine(it) } - } - ) + outputs.dir(workingDir) +} + +val helpMojoSources by tasks.registering(Sync::class) { + description = "Sync the HelpMojo source files into a SourceSet SrcDir" + group = mavenPluginTaskGroup + from(helpMojo) { + eachFile { + // drop 2 leading directories + relativePath = RelativePath(true, *relativePath.segments.drop(2).toTypedArray()) + } } + includeEmptyDirs = false + into(temporaryDir) + include("**/*.java") +} + +val helpMojoResources by tasks.registering(Sync::class) { + description = "Sync the HelpMojo resource files into a SourceSet SrcDir" + group = mavenPluginTaskGroup + from(helpMojo) + into(temporaryDir) + include("**/**") + exclude("**/*.java") +} + +sourceSets.main { + // use the generated HelpMojo as compilation input, so Gradle will automatically generate the mojo + java.srcDirs(helpMojoSources) + resources.srcDirs(helpMojoResources) +} + +val preparePluginDescriptorDir by tasks.registering(Sync::class) { + description = "Prepare files for generating the Maven Plugin descriptor" + group = mavenPluginTaskGroup + + into(layout.buildDirectory.dir("maven-plugin-descriptor")) + + from(tasks.compileKotlin) { into("classes/java/main") } + from(tasks.compileJava) { into("classes/java/main") } + from(helpMojoResources) } val pluginDescriptor by tasks.registering(Exec::class) { + description = "Generate the Maven Plugin descriptor" group = mavenPluginTaskGroup - dependsOn(tasks.installMavenBinary, prepareMavenPluginBuildDir) + dependsOn(tasks.installMavenBinary, preparePluginDescriptorDir) - workingDir(mavenCliSetup.mavenBuildDir) + workingDir(preparePluginDescriptorDir.map { it.destinationDir }) executable(mavenCliSetup.mvn.get()) - args( - "-e", - "-B", - "org.apache.maven.plugins:maven-plugin-plugin:descriptor" - ) + args("-e", "-B", "org.apache.maven.plugins:maven-plugin-plugin:descriptor") - outputs.dir(layout.buildDirectory.dir("maven/classes/java/main/META-INF/maven")) + outputs.dir("$workingDir/classes/java/main/META-INF/maven") } tasks.jar { - dependsOn(pluginDescriptor, helpMojo) metaInf { - from(mavenCliSetup.mavenBuildDir.map { it.dir("classes/java/main/META-INF") }) + from(pluginDescriptor) { + into("maven") + } } manifest { attributes("Class-Path" to configurations.runtimeClasspath.map { configuration -> configuration.resolve().joinToString(" ") { it.name } }) } - duplicatesStrategy = DuplicatesStrategy.WARN } - registerDokkaArtifactPublication("dokkaMavenPlugin") { artifactId = "dokka-maven-plugin" } diff --git a/runners/maven-plugin/pom.template.xml b/runners/maven-plugin/pom.template.xml index 01ad60d268..b47951125d 100644 --- a/runners/maven-plugin/pom.template.xml +++ b/runners/maven-plugin/pom.template.xml @@ -12,6 +12,7 @@ maven-plugin ${mavenVersion} + UTF-8 @@ -21,10 +22,35 @@ ${mavenPluginToolsVersion} org.jetbrains.dokka.maven + true + + + default-descriptor + + descriptor + + process-classes + + + help-descriptor + + helpmojo + + process-classes + + ./ ./classes/java/main + + + org.apache.maven.plugin-tools + maven-plugin-annotations + ${mavenPluginToolsVersion} + provided + + From 6a55173f0e2c66488aa264d02363db41fb0e1213 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Mon, 16 Oct 2023 18:24:35 +0200 Subject: [PATCH 06/72] Bump kotlinx.html to 0.9.1 (#3206) --- gradle/libs.versions.toml | 2 +- plugins/base/api/base.api | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 83bfe621f7..75e0e305be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ intellij-platform = "213.7172.25" jsoup = "1.15.3" freemarker = "2.3.31" soywiz-korte = "2.7.0" -kotlinx-html = "0.7.5" +kotlinx-html = "0.9.1" ## Markdown jetbrains-markdown = "0.3.1" diff --git a/plugins/base/api/base.api b/plugins/base/api/base.api index 360073fe10..788444b93c 100644 --- a/plugins/base/api/base.api +++ b/plugins/base/api/base.api @@ -549,7 +549,6 @@ public final class org/jetbrains/dokka/base/renderers/html/command/consumers/Imm public fun onTagContentEntity (Lkotlinx/html/Entities;)V public fun onTagContentUnsafe (Lkotlin/jvm/functions/Function1;)V public fun onTagEnd (Lkotlinx/html/Tag;)V - public fun onTagError (Lkotlinx/html/Tag;Ljava/lang/Throwable;)V public fun onTagEvent (Lkotlinx/html/Tag;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V public fun onTagStart (Lkotlinx/html/Tag;)V public final fun processCommand (Lorg/jetbrains/dokka/base/templating/Command;Lkotlin/jvm/functions/Function1;)V From 9bbcc21affe7a2b787c5a8cfb64f416cf226a0fd Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Mon, 16 Oct 2023 18:36:42 +0200 Subject: [PATCH 07/72] Update Dokka's references to 1.9.10 (#3210) --- CONTRIBUTING.md | 12 ++++----- README.md | 14 +++++----- .../src/doc/docs/developer_guide/workflow.md | 4 +-- docs/v.list | 4 +-- .../build.gradle.kts | 6 ++--- .../dokka-gradle-example/build.gradle.kts | 4 +-- .../build.gradle.kts | 10 +++---- .../build.gradle.kts | 4 +-- .../gradle.properties | 4 +-- .../build.gradle.kts | 4 +-- .../build.gradle.kts | 6 ++--- .../parentProject/build.gradle.kts | 2 +- examples/maven/pom.xml | 4 +-- examples/plugin/hide-internal-api/README.md | 4 +-- .../plugin/hide-internal-api/build.gradle.kts | 4 +-- .../hide-internal-api/gradle.properties | 2 +- gradle/libs.versions.toml | 2 +- .../gradle/projects/it-basic/build.gradle.kts | 2 +- .../it-configuration/build.gradle.kts | 2 +- .../it/gradle/BasicGradleIntegrationTest.kt | 2 +- plugins/kotlin-as-java/README.md | 2 +- plugins/mathjax/README.md | 2 +- plugins/versioning/README.md | 26 +++++++++---------- 23 files changed, 63 insertions(+), 63 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f5b60bc1de..1dba67f59e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,9 +23,9 @@ Bug reports, feature requests and questions are welcome. Submit issues [here](ht ## Submitting PRs -Dokka has extensive [Developer Guides](https://kotlin.github.io/dokka/1.9.0/developer_guide/introduction/) documentation -which goes over the development [Workflow](https://kotlin.github.io/dokka/1.9.0/developer_guide/workflow/) and -[Dokka's architecture](https://kotlin.github.io/dokka/1.9.0/developer_guide/architecture/architecture_overview/), +Dokka has extensive [Developer Guides](https://kotlin.github.io/dokka/1.9.10/developer_guide/introduction/) documentation +which goes over the development [Workflow](https://kotlin.github.io/dokka/1.9.10/developer_guide/workflow/) and +[Dokka's architecture](https://kotlin.github.io/dokka/1.9.10/developer_guide/architecture/architecture_overview/), which can help you understand how to achieve what you want and where to look. All development (both new features and bugfixes) takes place in the `master` branch, it contains sources for the next @@ -61,10 +61,10 @@ Unit tests which are run as part of `build` should not take much time, but you c ### Use/test locally built Dokka Below you will find a bare-bones instruction on how to use and test locally built Dokka. For more details and examples, -visit [Workflow](https://kotlin.github.io/dokka/1.9.0/developer_guide/workflow/) topic. +visit [Workflow](https://kotlin.github.io/dokka/1.9.10/developer_guide/workflow/) topic. 1. Change `dokka_version` in `gradle.properties` to something that you will use later on as the dependency version. - For instance, you can set it to something like `1.9.0-my-fix-SNAPSHOT`. + For instance, you can set it to something like `1.9.10-my-fix-SNAPSHOT`. 2. Publish it to Maven Local (`./gradlew publishToMavenLocal`) 3. In the project for which you want to generate documentation add Maven Local as a buildscript/dependency repository (`mavenLocal()`) @@ -72,7 +72,7 @@ visit [Workflow](https://kotlin.github.io/dokka/1.9.0/developer_guide/workflow/) ```kotlin plugins { - id("org.jetbrains.dokka") version "1.9.0-my-fix-SNAPSHOT" + id("org.jetbrains.dokka") version "1.9.10-my-fix-SNAPSHOT" } ``` diff --git a/README.md b/README.md index ff16e45d52..cc51bf8115 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Apply the Gradle plugin for Dokka in the root build script of your project: ```kotlin plugins { - id("org.jetbrains.dokka") version "1.9.0" + id("org.jetbrains.dokka") version "1.9.10" } ``` @@ -65,7 +65,7 @@ Apply Gradle plugin for Dokka in the root project: ```groovy plugins { - id 'org.jetbrains.dokka' version '1.9.0' + id 'org.jetbrains.dokka' version '1.9.10' } ``` @@ -99,7 +99,7 @@ Add the Dokka Maven plugin to the `plugins` section of your POM file: org.jetbrains.dokka dokka-maven-plugin - 1.9.0 + 1.9.10 pre-site @@ -138,7 +138,7 @@ Android platform: ```kotlin dependencies { - dokkaPlugin("org.jetbrains.dokka:android-documentation-plugin:1.9.0") + dokkaPlugin("org.jetbrains.dokka:android-documentation-plugin:1.9.10") } ``` @@ -149,7 +149,7 @@ dependencies { ```groovy dependencies { - dokkaPlugin 'org.jetbrains.dokka:android-documentation-plugin:1.9.0' + dokkaPlugin 'org.jetbrains.dokka:android-documentation-plugin:1.9.10' } ``` @@ -168,7 +168,7 @@ dependencies { org.jetbrains.dokka android-documentation-plugin - 1.9.0 + 1.9.10 @@ -215,7 +215,7 @@ implement plugins for missing or very specific features that are not provided ou Learn more about Dokka plugins and their configuration in [Dokka plugins](https://kotlinlang.org/docs/dokka-plugins.html). If you want to learn how to develop Dokka plugins, see -[Developer guides](https://kotlin.github.io/dokka/1.9.0/developer_guide/introduction/). +[Developer guides](https://kotlin.github.io/dokka/1.9.10/developer_guide/introduction/). ## Community diff --git a/docs-developer/src/doc/docs/developer_guide/workflow.md b/docs-developer/src/doc/docs/developer_guide/workflow.md index 26452281bb..4b08d44fae 100644 --- a/docs-developer/src/doc/docs/developer_guide/workflow.md +++ b/docs-developer/src/doc/docs/developer_guide/workflow.md @@ -42,7 +42,7 @@ Having built Dokka locally, you can publish it to `mavenLocal()`. This will allo project as well as debug code remotely. 1. Change `dokka_version` in `gradle.properties` to something that you will use later on as the dependency version. - For instance, you can set it to something like `1.9.0-my-fix-SNAPSHOT`. This version will be propagated to plugins + For instance, you can set it to something like `1.9.10-my-fix-SNAPSHOT`. This version will be propagated to plugins that reside inside Dokka's project (such as `mathjax`, `kotlin-as-java`, etc). 2. Publish it to Maven Local (`./gradlew publishToMavenLocal`). Corresponding artifacts should appear in `~/.m2` 3. In the project you want to generate documentation for or debug on, add maven local as a plugin/dependency @@ -55,7 +55,7 @@ repositories { 4. Update your Dokka dependency to the version you've just published: ```kotlin plugins { - id("org.jetbrains.dokka") version "1.9.0-my-fix-SNAPSHOT" + id("org.jetbrains.dokka") version "1.9.10-my-fix-SNAPSHOT" } ``` diff --git a/docs/v.list b/docs/v.list index c17d5c7fbf..34141810d4 100644 --- a/docs/v.list +++ b/docs/v.list @@ -4,9 +4,9 @@ diff --git a/examples/gradle/dokka-customFormat-example/build.gradle.kts b/examples/gradle/dokka-customFormat-example/build.gradle.kts index 280b8edbd0..eb647a7e20 100644 --- a/examples/gradle/dokka-customFormat-example/build.gradle.kts +++ b/examples/gradle/dokka-customFormat-example/build.gradle.kts @@ -7,13 +7,13 @@ import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.DokkaBaseConfiguration plugins { - kotlin("jvm") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" + kotlin("jvm") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" } buildscript { dependencies { - classpath("org.jetbrains.dokka:dokka-base:1.9.0") + classpath("org.jetbrains.dokka:dokka-base:1.9.10") } } diff --git a/examples/gradle/dokka-gradle-example/build.gradle.kts b/examples/gradle/dokka-gradle-example/build.gradle.kts index 0d09f96fe8..330e01046f 100644 --- a/examples/gradle/dokka-gradle-example/build.gradle.kts +++ b/examples/gradle/dokka-gradle-example/build.gradle.kts @@ -6,8 +6,8 @@ import org.jetbrains.dokka.gradle.DokkaTask import java.net.URL plugins { - kotlin("jvm") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" + kotlin("jvm") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" } repositories { diff --git a/examples/gradle/dokka-kotlinAsJava-example/build.gradle.kts b/examples/gradle/dokka-kotlinAsJava-example/build.gradle.kts index f971188355..83673de772 100644 --- a/examples/gradle/dokka-kotlinAsJava-example/build.gradle.kts +++ b/examples/gradle/dokka-kotlinAsJava-example/build.gradle.kts @@ -3,8 +3,8 @@ */ plugins { - kotlin("jvm") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" + kotlin("jvm") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" } repositories { @@ -15,11 +15,11 @@ dependencies { testImplementation(kotlin("test-junit")) // Will apply the plugin to all Dokka tasks - dokkaPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") + dokkaPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.10") // Will apply the plugin only to the `:dokkaHtml` task - //dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") + //dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.10") // Will apply the plugin only to the `:dokkaGfm` task - //dokkaGfmPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") + //dokkaGfmPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.10") } diff --git a/examples/gradle/dokka-library-publishing-example/build.gradle.kts b/examples/gradle/dokka-library-publishing-example/build.gradle.kts index 003aa04f46..ac6678e338 100644 --- a/examples/gradle/dokka-library-publishing-example/build.gradle.kts +++ b/examples/gradle/dokka-library-publishing-example/build.gradle.kts @@ -3,8 +3,8 @@ */ plugins { - kotlin("jvm") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" + kotlin("jvm") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" `java-library` `maven-publish` } diff --git a/examples/gradle/dokka-multimodule-example/gradle.properties b/examples/gradle/dokka-multimodule-example/gradle.properties index fda31413f2..18c74db645 100644 --- a/examples/gradle/dokka-multimodule-example/gradle.properties +++ b/examples/gradle/dokka-multimodule-example/gradle.properties @@ -2,5 +2,5 @@ # Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. # -kotlinVersion=1.9.0 -dokkaVersion=1.9.0 +kotlinVersion=1.9.10 +dokkaVersion=1.9.10 diff --git a/examples/gradle/dokka-multiplatform-example/build.gradle.kts b/examples/gradle/dokka-multiplatform-example/build.gradle.kts index 56c03564c4..df4ea0147f 100644 --- a/examples/gradle/dokka-multiplatform-example/build.gradle.kts +++ b/examples/gradle/dokka-multiplatform-example/build.gradle.kts @@ -8,8 +8,8 @@ import org.jetbrains.dokka.gradle.DokkaTask import org.jetbrains.dokka.Platform plugins { - kotlin("multiplatform") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" + kotlin("multiplatform") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" } repositories { diff --git a/examples/gradle/dokka-versioning-multimodule-example/build.gradle.kts b/examples/gradle/dokka-versioning-multimodule-example/build.gradle.kts index 3984caa598..88a78e376c 100644 --- a/examples/gradle/dokka-versioning-multimodule-example/build.gradle.kts +++ b/examples/gradle/dokka-versioning-multimodule-example/build.gradle.kts @@ -3,8 +3,8 @@ */ plugins { - kotlin("jvm") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" apply false + kotlin("jvm") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" apply false } // The versioning plugin must be applied in all submodules @@ -18,6 +18,6 @@ subprojects { } val dokkaPlugin by configurations dependencies { - dokkaPlugin("org.jetbrains.dokka:versioning-plugin:1.9.0") + dokkaPlugin("org.jetbrains.dokka:versioning-plugin:1.9.10") } } diff --git a/examples/gradle/dokka-versioning-multimodule-example/parentProject/build.gradle.kts b/examples/gradle/dokka-versioning-multimodule-example/parentProject/build.gradle.kts index 4bcee1609d..9fc84cbaac 100644 --- a/examples/gradle/dokka-versioning-multimodule-example/parentProject/build.gradle.kts +++ b/examples/gradle/dokka-versioning-multimodule-example/parentProject/build.gradle.kts @@ -8,7 +8,7 @@ import org.jetbrains.dokka.versioning.VersioningConfiguration buildscript { dependencies { - classpath("org.jetbrains.dokka:versioning-plugin:1.9.0") + classpath("org.jetbrains.dokka:versioning-plugin:1.9.10") } repositories { diff --git a/examples/maven/pom.xml b/examples/maven/pom.xml index 811e490236..11a6428b2d 100644 --- a/examples/maven/pom.xml +++ b/examples/maven/pom.xml @@ -12,8 +12,8 @@ kotlin-maven-example 1.0-SNAPSHOT - 1.9.0 - 1.9.0 + 1.9.10 + 1.9.10 diff --git a/examples/plugin/hide-internal-api/README.md b/examples/plugin/hide-internal-api/README.md index f186d2e0c9..d06e97b58b 100644 --- a/examples/plugin/hide-internal-api/README.md +++ b/examples/plugin/hide-internal-api/README.md @@ -1,7 +1,7 @@ # Hide Internal API plugin example This project represents a simple Dokka Plugin that was developed step-by-step in the -[Sample plugin](https://kotlin.github.io/dokka/1.9.0/developer_guide/plugin-development/sample-plugin-tutorial/) +[Sample plugin](https://kotlin.github.io/dokka/1.9.10/developer_guide/plugin-development/sample-plugin-tutorial/) tutorial. This is a frequent request with varying requirements. The plugin excludes any declaration that is marked with `org.jetbrains.dokka.internal.test.Internal` annotation. @@ -9,7 +9,7 @@ The annotation itself is not provided in this project and is instead matched by You can change it to your own internal annotation or to some other marker that suits you. To learn how to install and debug it locally, -[see documentation](https://kotlin.github.io/dokka/1.9.0/developer_guide/plugin-development/sample-plugin-tutorial/#debugging). +[see documentation](https://kotlin.github.io/dokka/1.9.10/developer_guide/plugin-development/sample-plugin-tutorial/#debugging). ___ diff --git a/examples/plugin/hide-internal-api/build.gradle.kts b/examples/plugin/hide-internal-api/build.gradle.kts index bdbf365814..2665101586 100644 --- a/examples/plugin/hide-internal-api/build.gradle.kts +++ b/examples/plugin/hide-internal-api/build.gradle.kts @@ -7,8 +7,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.net.URI plugins { - kotlin("jvm") version "1.9.0" - id("org.jetbrains.dokka") version "1.9.0" + kotlin("jvm") version "1.9.10" + id("org.jetbrains.dokka") version "1.9.10" `maven-publish` signing } diff --git a/examples/plugin/hide-internal-api/gradle.properties b/examples/plugin/hide-internal-api/gradle.properties index 40669a3870..a3f59a072e 100644 --- a/examples/plugin/hide-internal-api/gradle.properties +++ b/examples/plugin/hide-internal-api/gradle.properties @@ -2,4 +2,4 @@ # Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. # -dokkaVersion=1.9.0 +dokkaVersion=1.9.10 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 75e0e305be..ba848dc288 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ gradlePlugin-kotlin = "1.9.10" # See: https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin gradlePlugin-android = "4.2.2" -gradlePlugin-dokka = "1.9.0" +gradlePlugin-dokka = "1.9.10" kotlinx-coroutines = "1.6.3" kotlinx-collections-immutable = "0.3.4" diff --git a/integration-tests/gradle/projects/it-basic/build.gradle.kts b/integration-tests/gradle/projects/it-basic/build.gradle.kts index 4ec3b82500..5cb354f4a0 100644 --- a/integration-tests/gradle/projects/it-basic/build.gradle.kts +++ b/integration-tests/gradle/projects/it-basic/build.gradle.kts @@ -20,7 +20,7 @@ buildscript { } } -version = "1.9.0-SNAPSHOT" +version = "1.9.10-SNAPSHOT" apply(from = "../template.root.gradle.kts") diff --git a/integration-tests/gradle/projects/it-configuration/build.gradle.kts b/integration-tests/gradle/projects/it-configuration/build.gradle.kts index 02e99e9b44..76e3f6512a 100644 --- a/integration-tests/gradle/projects/it-configuration/build.gradle.kts +++ b/integration-tests/gradle/projects/it-configuration/build.gradle.kts @@ -16,7 +16,7 @@ buildscript { } } -version = "1.9.0-SNAPSHOT" +version = "1.9.10-SNAPSHOT" apply(from = "../template.root.gradle.kts") diff --git a/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/BasicGradleIntegrationTest.kt b/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/BasicGradleIntegrationTest.kt index f214710caf..a23fb41037 100644 --- a/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/BasicGradleIntegrationTest.kt +++ b/integration-tests/gradle/src/integrationTest/kotlin/org/jetbrains/dokka/it/gradle/BasicGradleIntegrationTest.kt @@ -158,7 +158,7 @@ class BasicGradleIntegrationTest : AbstractGradleIntegrationTest() { val indexFile = File(this, "index.html") assertTrue(indexFile.isFile, "Missing index.html") assertTrue( - """Basic Project 1.9.0-SNAPSHOT API """ in indexFile.readText(), + """Basic Project 1.9.10-SNAPSHOT API """ in indexFile.readText(), "Header with version number not present in index.html" ) diff --git a/plugins/kotlin-as-java/README.md b/plugins/kotlin-as-java/README.md index b0ec7c8e98..e33bd1bb6d 100644 --- a/plugins/kotlin-as-java/README.md +++ b/plugins/kotlin-as-java/README.md @@ -8,7 +8,7 @@ The Kotlin as Java plugin is published to maven central as a [separate artifact](https://mvnrepository.com/artifact/org.jetbrains.dokka/kotlin-as-java-plugin): ```text -org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0 +org.jetbrains.dokka:kotlin-as-java-plugin:1.9.10 ``` **This plugin is at its early stages**, so you may experience issues and encounter bugs. Feel free to diff --git a/plugins/mathjax/README.md b/plugins/mathjax/README.md index d9604084b5..a12095eeba 100644 --- a/plugins/mathjax/README.md +++ b/plugins/mathjax/README.md @@ -23,5 +23,5 @@ The MathJax plugin is published to Maven Central as a [separate artifact](https://mvnrepository.com/artifact/org.jetbrains.dokka/mathjax-plugin): ```text -org.jetbrains.dokka:mathjax-plugin:1.9.0 +org.jetbrains.dokka:mathjax-plugin:1.9.10 ``` diff --git a/plugins/versioning/README.md b/plugins/versioning/README.md index be36ef0ee7..d501a58fd1 100644 --- a/plugins/versioning/README.md +++ b/plugins/versioning/README.md @@ -19,7 +19,7 @@ You can apply the versioning plugin the same way as other Dokka plugins: ```kotlin dependencies { - dokkaHtmlPlugin("org.jetbrains.dokka:versioning-plugin:1.9.0") + dokkaHtmlPlugin("org.jetbrains.dokka:versioning-plugin:1.9.10") } ``` @@ -33,7 +33,7 @@ plugin within subprojects as well as in their parent project. ```groovy dependencies { - dokkaHtmlPlugin 'org.jetbrains.dokka:versioning-plugin:1.9.0' + dokkaHtmlPlugin 'org.jetbrains.dokka:versioning-plugin:1.9.10' } ``` @@ -55,7 +55,7 @@ plugin within subprojects as well as in their parent project. org.jetbrains.dokka versioning-plugin - 1.9.0 + 1.9.10 @@ -68,15 +68,15 @@ plugin within subprojects as well as in their parent project. CLI You can find the versioning plugin's artifact on -[mvnrepository](https://mvnrepository.com/artifact/org.jetbrains.dokka/versioning-plugin/1.9.0) or by browsing -[maven central repository](https://repo1.maven.org/maven2/org/jetbrains/dokka/versioning-plugin/1.9.0) +[mvnrepository](https://mvnrepository.com/artifact/org.jetbrains.dokka/versioning-plugin/1.9.10) or by browsing +[maven central repository](https://repo1.maven.org/maven2/org/jetbrains/dokka/versioning-plugin/1.9.10) directly, and pass it to `pluginsClasspath`. Via command line arguments: ```Bash -java -jar dokka-cli-1.9.0.jar \ - -pluginsClasspath "./dokka-base-1.9.0.jar;...;./versioning-plugin-1.9.0.jar" \ +java -jar dokka-cli-1.9.10.jar \ + -pluginsClasspath "./dokka-base-1.9.10.jar;...;./versioning-plugin-1.9.10.jar" \ ... ``` @@ -86,9 +86,9 @@ Via JSON configuration: { ... "pluginsClasspath": [ - "./dokka-base-1.9.0.jar", + "./dokka-base-1.9.10.jar", "...", - "./versioning-plugin-1.9.0.jar" + "./versioning-plugin-1.9.10.jar" ], ... } @@ -135,7 +135,7 @@ import org.jetbrains.dokka.versioning.VersioningConfiguration buildscript { dependencies { - classpath("org.jetbrains.dokka:versioning-plugin:1.9.0") + classpath("org.jetbrains.dokka:versioning-plugin:1.9.10") } } @@ -232,7 +232,7 @@ dokkaHtml { CLI ```Bash -java -jar dokka-cli-1.9.0.jar \ +java -jar dokka-cli-1.9.10.jar \ ... -pluginsConfiguration "org.jetbrains.dokka.versioning.VersioningPlugin={\"version\": \"1.5\", \"versionsOrdering\": [\"1.5\", \"1.4\", \"1.3\", \"1.2\", \"1.1\", \"alpha-2\", \"alpha-1\"], \"olderVersionsDir\": \"documentation/version\", \"olderVersions\": [\"documentation/alpha/alpha-2\", \"documentation/alpha/alpha-1\"], \"renderVersionsNavigationOnAllPages\": true}" @@ -290,12 +290,12 @@ import org.jetbrains.dokka.versioning.VersioningConfiguration buildscript { dependencies { - classpath("org.jetbrains.dokka:versioning-plugin:1.9.0") + classpath("org.jetbrains.dokka:versioning-plugin:1.9.10") } } dependencies { - dokkaPlugin("org.jetbrains.dokka:versioning-plugin:1.9.0") + dokkaPlugin("org.jetbrains.dokka:versioning-plugin:1.9.10") } tasks.dokkaHtml { From 73b81ac375c927176205543dec813faa32abe811 Mon Sep 17 00:00:00 2001 From: Subhrajyoti Sen Date: Tue, 17 Oct 2023 14:44:51 +0530 Subject: [PATCH 08/72] Fix docs link for OkHttp (#3213) The documentation for OkHttp has been moved to https://square.github.io/okhttp/5.x/okhttp/okhttp3/ As per https://github.com/square/okhttp/commit/05718b4d87b591820a178b3fb6a4325c83c55d7a, they are currently using HTML for docs and not markdown --- README.md | 2 +- docs/topics/dokka-introduction.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cc51bf8115..ed09a9502c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Some libraries that use Dokka for their API reference documentation: * [Bitmovin](https://cdn.bitmovin.com/player/android/3/docs/index.html) * [Hexagon](https://hexagonkt.com/api/index.html) * [Ktor](https://api.ktor.io/) -* [OkHttp](https://square.github.io/okhttp/4.x/okhttp/okhttp3/) (Markdown) +* [OkHttp](https://square.github.io/okhttp/5.x/okhttp/okhttp3/) * [Gradle](https://docs.gradle.org/current/kotlin-dsl/index.html) You can run Dokka using [Gradle](https://kotlinlang.org/docs/dokka-gradle.html), diff --git a/docs/topics/dokka-introduction.md b/docs/topics/dokka-introduction.md index fd33a3cbff..e4bff95ad3 100644 --- a/docs/topics/dokka-introduction.md +++ b/docs/topics/dokka-introduction.md @@ -15,7 +15,7 @@ Here are some libraries that use Dokka for their API reference documentation: * [Bitmovin](https://cdn.bitmovin.com/player/android/3/docs/index.html) * [Hexagon](https://hexagonkt.com/api/index.html) * [Ktor](https://api.ktor.io/) -* [OkHttp](https://square.github.io/okhttp/4.x/okhttp/okhttp3/) (Markdown) +* [OkHttp](https://square.github.io/okhttp/5.x/okhttp/okhttp3/) You can run Dokka using [Gradle](dokka-gradle.md), [Maven](dokka-maven.md) or from the [command line](dokka-cli.md). It is also [highly pluggable](dokka-plugins.md). From fca686c5cb62bd8aeb2390763280bb4dd00bdd43 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Tue, 17 Oct 2023 14:43:00 +0200 Subject: [PATCH 09/72] Bump korte aka korlibs-template to 4.0.10 (#3205) --- gradle/libs.versions.toml | 7 +++++-- plugins/javadoc/build.gradle.kts | 2 +- .../dokka/javadoc/renderer/KorteJavadocRenderer.kt | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba848dc288..0060b6519c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,7 @@ intellij-platform = "213.7172.25" ## HTML jsoup = "1.15.3" freemarker = "2.3.31" -soywiz-korte = "2.7.0" +korlibs-template = "4.0.10" kotlinx-html = "0.9.1" ## Markdown @@ -94,7 +94,10 @@ intellij-platform-util-rt = { module = "com.jetbrains.intellij.platform:util-rt" jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } freemarker = { module = "org.freemarker:freemarker", version.ref = "freemarker" } kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html-jvm", version.ref = "kotlinx-html" } -soywiz-korte = { module = "com.soywiz.korlibs.korte:korte-jvm", version.ref = "soywiz-korte" } + +# for korlibs-template: the package was renamed and the library's source was moved, but the artifact name is still old, +# so there's a mismatch. might change in the future, follow https://github.com/korlibs/korge/issues/1836 for updates +korlibs-template = { module = "com.soywiz.korlibs.korte:korte-jvm", version.ref = "korlibs-template" } #### Markdown #### jetbrains-markdown = { module = "org.jetbrains:markdown", version.ref = "jetbrains-markdown" } diff --git a/plugins/javadoc/build.gradle.kts b/plugins/javadoc/build.gradle.kts index e7bdc67e8d..2a04366b95 100644 --- a/plugins/javadoc/build.gradle.kts +++ b/plugins/javadoc/build.gradle.kts @@ -17,7 +17,7 @@ dependencies { implementation(projects.plugins.kotlinAsJava) implementation(kotlin("reflect")) - implementation(libs.soywiz.korte) + implementation(libs.korlibs.template) implementation(libs.kotlinx.html) implementation(libs.kotlinx.coroutines.core) diff --git a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/KorteJavadocRenderer.kt b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/KorteJavadocRenderer.kt index 658e42ed0d..cfc4bb2a9a 100644 --- a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/KorteJavadocRenderer.kt +++ b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/renderer/KorteJavadocRenderer.kt @@ -4,7 +4,7 @@ package org.jetbrains.dokka.javadoc.renderer -import com.soywiz.korte.* +import korlibs.template.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch From 5a6fab535b68916a28d922d5d7a294fa432b7d6b Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Wed, 18 Oct 2023 00:23:32 +0200 Subject: [PATCH 10/72] Bump dependencies without visible API changes (#3204) --- gradle/libs.versions.toml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0060b6519c..9a25490b73 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,9 +5,9 @@ gradlePlugin-kotlin = "1.9.10" gradlePlugin-android = "4.2.2" gradlePlugin-dokka = "1.9.10" -kotlinx-coroutines = "1.6.3" -kotlinx-collections-immutable = "0.3.4" -kotlinx-bcv = "0.12.1" +kotlinx-coroutines = "1.7.3" +kotlinx-collections-immutable = "0.3.6" +kotlinx-bcv = "0.13.2" ## Analysis kotlin-compiler = "1.9.10" @@ -20,8 +20,8 @@ kotlin-compiler-k2 = "1.9.30-dev-3330" intellij-platform = "213.7172.25" ## HTML -jsoup = "1.15.3" -freemarker = "2.3.31" +jsoup = "1.16.1" +freemarker = "2.3.32" korlibs-template = "4.0.10" kotlinx-html = "0.9.1" @@ -39,7 +39,7 @@ apacheMaven-archiver = "2.5" apacheMaven-pluginTools = "3.5.2" ## CLI -kotlinx-cli = "0.3.4" +kotlinx-cli = "0.3.6" ## NPM | Frontend node = "16.13.0" @@ -51,8 +51,8 @@ gradlePlugin-gradlePluginPublish = "0.20.0" gradlePlugin-gradleNode = "3.5.1" ## Test -junit = "5.9.2" -eclipse-jgit = "5.12.0.202106070339-r" +junit = "5.9.3" +eclipse-jgit = "5.13.2.202306221912-r" # jgit 6.X requires Java 11 to run [libraries] From f225fafdf10f351d31e546b73eb511f46ffc6806 Mon Sep 17 00:00:00 2001 From: Oleg Yukhnevich Date: Wed, 18 Oct 2023 18:28:31 +0300 Subject: [PATCH 11/72] Fix active-tab selection for different page contexts (#3212) --- .../dokka/scripts/platform-content-handler.js | 45 ++++++++++--------- .../renderers/html/TabbedContentTest.kt | 3 ++ 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js b/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js index 8c4ca53830..811c478883 100644 --- a/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js +++ b/plugins/base/src/main/resources/dokka/scripts/platform-content-handler.js @@ -18,8 +18,6 @@ const samplesLightThemeName = 'idea' window.addEventListener('load', () => { document.querySelectorAll("div[data-platform-hinted]") .forEach(elem => elem.addEventListener('click', (event) => togglePlatformDependent(event, elem))) - document.querySelectorAll("div[tabs-section]") - .forEach(elem => elem.addEventListener('click', (event) => toggleSectionsEventHandler(event))) const filterSection = document.getElementById('filter-section') if (filterSection) { filterSection.addEventListener('click', (event) => filterButtonHandler(event)) @@ -177,19 +175,30 @@ function handleAnchor() { } function initTabs() { - document.querySelectorAll("div[tabs-section]") - .forEach(element => { - showCorrespondingTabBody(element) - element.addEventListener('click', (event) => toggleSectionsEventHandler(event)) - }) - let cached = localStorage.getItem("active-tab") - if (cached) { - let parsed = JSON.parse(cached) - let tab = document.querySelector('div[tabs-section] > button[data-togglable="' + parsed + '"]') - if (tab) { - toggleSections(tab) - } - } + // we could have only a single type of data - classlike or package + const mainContent = document.querySelector('.main-content'); + const type = mainContent ? mainContent.getAttribute("data-page-type") : null; + const localStorageKey = "active-tab-" + type; + document.querySelectorAll('div[tabs-section]').forEach(element => { + showCorrespondingTabBody(element); + element.addEventListener('click', ({target}) => { + const togglable = target ? target.getAttribute("data-togglable") : null; + if (!togglable) return; + + localStorage.setItem(localStorageKey, JSON.stringify(togglable)); + toggleSections(target); + }); + }); + + const cached = localStorage.getItem(localStorageKey); + if (!cached) return; + + const tab = document.querySelector( + 'div[tabs-section] > button[data-togglable="' + JSON.parse(cached) + '"]' + ); + if (!tab) return; + + toggleSections(tab); } function showCorrespondingTabBody(element) { @@ -293,12 +302,6 @@ function toggleSections(target) { activateTabsBody("tabs-section-body") } -function toggleSectionsEventHandler(evt) { - if (!evt.target.getAttribute("data-togglable")) return - localStorage.setItem('active-tab', JSON.stringify(evt.target.getAttribute("data-togglable"))) - toggleSections(evt.target) -} - function togglePlatformDependent(e, container) { let target = e.target if (target.tagName != 'BUTTON') return; diff --git a/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt b/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt index 0a748580a6..090127fd39 100644 --- a/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt +++ b/plugins/base/src/test/kotlin/renderers/html/TabbedContentTest.kt @@ -25,6 +25,7 @@ class TabbedContentTest : BaseAbstractTest() { private fun Element.getTabbedRow(type: String) = select(".table-row[data-togglable=$type]") private fun Element.getTabbedTable(type: String) = select("div[data-togglable=$type] .table") + private fun Element.getMainContentDataType() = selectFirst(".main-content")?.attr("data-page-type") @Test fun `should have correct tabbed content type`() { @@ -64,6 +65,7 @@ class TabbedContentTest : BaseAbstractTest() { assertEquals(1, classContent.getTabbedTable("TYPE").size) assertEquals(3, classContent.getTabbedRow("EXTENSION_FUNCTION").size) assertEquals(2, classContent.getTabbedRow("EXTENSION_PROPERTY").size) + assertEquals("classlike", classContent.getMainContentDataType()) val packagePage = writerPlugin.writer.renderedContent("root/example/index.html") assertEquals(1, packagePage.getTabbedTable("TYPE").size) @@ -71,6 +73,7 @@ class TabbedContentTest : BaseAbstractTest() { assertEquals(1, packagePage.getTabbedTable("FUNCTION").size) assertEquals(3, packagePage.getTabbedRow("EXTENSION_FUNCTION").size) assertEquals(2, packagePage.getTabbedRow("EXTENSION_PROPERTY").size) + assertEquals("package", packagePage.getMainContentDataType()) } } } From 8016c1face1283952e228aee348487bf0421ab90 Mon Sep 17 00:00:00 2001 From: freya02 <41875020+freya022@users.noreply.github.com> Date: Wed, 18 Oct 2023 22:33:01 +0200 Subject: [PATCH 12/72] Fix sources not being linked when using Maven (#3046) --- docs/topics/runners/dokka-maven.md | 5 ++++- runners/maven-plugin/src/main/kotlin/DokkaMojo.kt | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/topics/runners/dokka-maven.md b/docs/topics/runners/dokka-maven.md index 14551c91d3..bc51d5fee1 100644 --- a/docs/topics/runners/dokka-maven.md +++ b/docs/topics/runners/dokka-maven.md @@ -407,7 +407,7 @@ function in `kotlinx.coroutines`. - ${project.basedir}/src + src https://github.com/kotlin/dokka/tree/master/src #L @@ -422,6 +422,9 @@ function in `kotlinx.coroutines`. The path to the local source directory. The path must be relative to the root of the current module.

+

+ Note: Only Unix based paths are allowed, Windows-style paths will throw an error. +

diff --git a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt index ba95e7a70c..d14fea9c5b 100644 --- a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt +++ b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt @@ -389,7 +389,7 @@ public abstract class AbstractDokkaMojo( skipEmptyPackages = skipEmptyPackages, skipDeprecated = skipDeprecated, jdkVersion = jdkVersion, - sourceLinks = sourceLinks.map { SourceLinkDefinitionImpl(it.path, URL(it.url), it.lineSuffix) }.toSet(), + sourceLinks = sourceLinks.map { SourceLinkDefinitionImpl(File(it.path).canonicalPath, URL(it.url), it.lineSuffix) }.toSet(), perPackageOptions = perPackageOptions.map { @Suppress("DEPRECATION") // for includeNonPublic, preserve backwards compatibility PackageOptionsImpl( From 35d15601f2d129a7d3db67dd9e2f4c41c87ef083 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Fri, 20 Oct 2023 00:39:12 +1300 Subject: [PATCH 13/72] Contribute Dokkatoo (#3188) --- build-logic/build.gradle.kts | 2 +- dokka-runners/dokkatoo/.gitattributes | 51 ++ dokka-runners/dokkatoo/.gitignore | 71 +++ dokka-runners/dokkatoo/build.gradle.kts | 47 ++ .../dokkatoo/buildSrc/build.gradle.kts | 19 + .../dokkatoo/buildSrc/settings.gradle.kts | 25 + .../conventions/android-setup.gradle.kts | 78 +++ .../buildsrc/conventions/base.gradle.kts | 155 ++++++ .../dokka-source-downloader.gradle.kts | 68 +++ .../dokkatoo-example-projects-base.gradle.kts | 27 + .../dokkatoo-example-projects.gradle.kts | 160 ++++++ .../gradle-plugin-variants.gradle.kts | 44 ++ .../buildsrc/conventions/java-base.gradle.kts | 19 + .../kotlin-gradle-plugin.gradle.kts | 37 ++ .../conventions/maven-publish-test.gradle.kts | 93 ++++ .../conventions/maven-publishing.gradle.kts | 137 +++++ .../settings/DokkaSourceDownloaderSettings.kt | 13 + .../settings/DokkaTemplateProjectSettings.kt | 96 ++++ .../DokkatooExampleProjectsSettings.kt | 62 +++ .../settings/MavenPublishTestSettings.kt | 19 + .../settings/MavenPublishingSettings.kt | 68 +++ .../buildsrc/tasks/SetupDokkaProjects.kt | 73 +++ .../tasks/UpdateDokkatooExampleProjects.kt | 49 ++ .../src/main/kotlin/buildsrc/utils/gradle.kt | 118 +++++ .../main/kotlin/buildsrc/utils/intellij.kt | 45 ++ .../src/main/kotlin/buildsrc/utils/strings.kt | 26 + .../dokkatoo/devOps/release.main.kts | 415 ++++++++++++++++ dokka-runners/dokkatoo/examples/.gitignore | 10 + dokka-runners/dokkatoo/examples/README.md | 18 + .../dokkatoo/examples/build.gradle.kts | 48 ++ .../custom-format-example/dokka/README.md | 17 + .../dokka/build.gradle.kts | 35 ++ .../custom-format-example/dokka/demo.png | Bin 0 -> 77918 bytes .../custom-format-example/dokka/ktor-logo.png | Bin 0 -> 179624 bytes .../dokka/logo-styles.css | 20 + .../dokka/settings.gradle.kts | 1 + .../dokka/src/main/kotlin/demo/HelloWorld.kt | 20 + .../dokkatoo/build.gradle.kts | 18 + .../dokkatoo/ktor-logo.png | Bin 0 -> 179624 bytes .../dokkatoo/logo-styles.css | 20 + .../dokkatoo/settings.gradle.kts | 17 + .../src/main/kotlin/demo/HelloWorld.kt | 20 + .../examples/gradle-example/dokka/Module.md | 7 + .../examples/gradle-example/dokka/README.md | 22 + .../gradle-example/dokka/build.gradle.kts | 37 ++ .../examples/gradle-example/dokka/demo.png | Bin 0 -> 71039 bytes .../gradle-example/dokka/settings.gradle.kts | 1 + .../dokka/src/main/kotlin/demo/HelloWorld.kt | 20 + .../gradle-example/dokkatoo/Module.md | 7 + .../gradle-example/dokkatoo/build.gradle.kts | 23 + .../dokkatoo/settings.gradle.kts | 17 + .../src/main/kotlin/demo/HelloWorld.kt | 20 + .../kotlin-as-java-example/dokka/README.md | 19 + .../dokka/build.gradle.kts | 21 + .../kotlin-as-java-example/dokka/demo.png | Bin 0 -> 101974 bytes .../dokka/settings.gradle.kts | 1 + .../dokka/src/main/kotlin/demo/HelloWorld.kt | 20 + .../dokkatoo/settings.gradle.kts | 17 + .../dokka/README.md | 41 ++ .../dokka/build.gradle.kts | 39 ++ .../dokka/settings.gradle.kts | 1 + .../dokka/src/main/kotlin/demo/HelloWorld.kt | 20 + .../dokkatoo/settings.gradle.kts | 17 + .../multimodule-example/dokka/README.md | 25 + .../dokka/build.gradle.kts | 5 + .../multimodule-example/dokka/demo.png | Bin 0 -> 93395 bytes .../dokka/parentProject/build.gradle.kts | 38 ++ .../parentProject/childProjectA/ModuleA.md | 5 + .../childProjectA/build.gradle.kts | 16 + .../main/kotlin/demo/ChildProjectAClass.kt | 8 + .../parentProject/childProjectB/ModuleB.md | 5 + .../childProjectB/build.gradle.kts | 16 + .../main/kotlin/demo/ChildProjectBClass.kt | 8 + .../dokka/settings.gradle.kts | 15 + .../dokkatoo/buildSrc/build.gradle.kts | 8 + .../dokkatoo/buildSrc/settings.gradle.kts | 21 + .../main/kotlin/dokka-convention.gradle.kts | 17 + .../dokkatoo/parentProject/build.gradle.kts | 23 + .../parentProject/childProjectA/ModuleA.md | 5 + .../childProjectA/build.gradle.kts | 21 + .../main/kotlin/demo/ChildProjectAClass.kt | 8 + .../parentProject/childProjectB/ModuleB.md | 5 + .../childProjectB/build.gradle.kts | 21 + .../main/kotlin/demo/ChildProjectBClass.kt | 8 + .../dokkatoo/settings.gradle.kts | 21 + .../multiplatform-example/dokka/README.md | 29 ++ .../dokka/build.gradle.kts | 42 ++ .../multiplatform-example/dokka/demo.png | Bin 0 -> 183500 bytes .../dokka/settings.gradle.kts | 2 + .../CommonCoroutineExtensions.kt | 15 + .../org/kotlintestmpp/CommonDateUtils.kt | 14 + .../kotlin/org/kotlintestmpp/common/Foo.kt | 7 + .../kotlintest/jdk9/CustomSourceSetFile.kt | 11 + .../kotlintestmpp/JsCoroutineExtensions.kt | 11 + .../kotlin/org/kotlintestmpp/JsDateUtils.kt | 8 + .../kotlin/org/kotlintestmpp/JsFunctions.kt | 18 + .../org/kotlintestmpp/JavaAnnotation.java | 19 + .../kotlintestmpp/JvmCoroutineExtensions.kt | 11 + .../kotlin/org/kotlintestmpp/JvmDateUtils.kt | 8 + .../kotlin/org/kotlintestmpp/JvmFunctions.kt | 35 ++ .../kotlin/org/kotlintestmpp/CInterop.kt | 15 + .../kotlintestmpp/LinuxCoroutineExtensions.kt | 11 + .../org/kotlintestmpp/LinuxDateUtils.kt | 8 + .../kotlintestmpp/MacOsCoroutineExtensions.kt | 11 + .../org/kotlintestmpp/MacOsDateUtils.kt | 8 + .../dokkatoo/build.gradle.kts | 39 ++ .../dokkatoo/settings.gradle.kts | 17 + .../CommonCoroutineExtensions.kt | 15 + .../org/kotlintestmpp/CommonDateUtils.kt | 14 + .../kotlin/org/kotlintestmpp/common/Foo.kt | 7 + .../kotlintest/jdk9/CustomSourceSetFile.kt | 11 + .../kotlintestmpp/JsCoroutineExtensions.kt | 11 + .../kotlin/org/kotlintestmpp/JsDateUtils.kt | 8 + .../kotlin/org/kotlintestmpp/JsFunctions.kt | 18 + .../org/kotlintestmpp/JavaAnnotation.java | 19 + .../kotlintestmpp/JvmCoroutineExtensions.kt | 11 + .../kotlin/org/kotlintestmpp/JvmDateUtils.kt | 8 + .../kotlin/org/kotlintestmpp/JvmFunctions.kt | 35 ++ .../kotlin/org/kotlintestmpp/CInterop.kt | 15 + .../kotlintestmpp/LinuxCoroutineExtensions.kt | 11 + .../org/kotlintestmpp/LinuxDateUtils.kt | 8 + .../kotlintestmpp/MacOsCoroutineExtensions.kt | 11 + .../org/kotlintestmpp/MacOsDateUtils.kt | 8 + .../dokka/README.md | 25 + .../dokka/build.gradle.kts | 19 + .../dokka/demo.png | Bin 0 -> 35812 bytes .../dokka/parentProject/build.gradle.kts | 27 + .../childProjectA/build.gradle.kts | 1 + .../main/kotlin/demo/ChildProjectAClass.kt | 18 + .../src/main/kotlin/demo/FancyAPI.kt | 10 + .../childProjectB/build.gradle.kts | 1 + .../main/kotlin/demo/ChildProjectBClass.kt | 10 + .../src/main/kotlin/demo/Functions.kt | 8 + .../dokka/settings.gradle.kts | 5 + .../dokkatoo/settings.gradle.kts | 17 + dokka-runners/dokkatoo/gradle.properties | 12 + .../dokkatoo/gradle/libs.versions.toml | 48 ++ .../dokkatoo/modules/docs/build.gradle.kts | 58 +++ .../dokkatoo/modules/docs/images/banner.svg | 100 ++++ .../modules/docs/images/logo-icon.svg | 84 ++++ .../docs/images/social_preview_banner.png | Bin 0 -> 38562 bytes .../docs/images/social_preview_banner.svg | 106 ++++ .../modules/docs/style/logo-styles.css | 44 ++ .../build.gradle.kts | 281 +++++++++++ .../projects/.gitignore | 15 + .../licenses/android-googletv-license | 2 + .../licenses/android-sdk-arm-dbt-license | 2 + .../ANDROID_SDK/licenses/android-sdk-license | 2 + .../licenses/android-sdk-preview-license | 2 + .../ANDROID_SDK/licenses/google-gdk-license | 2 + .../licenses/intel-android-extra-license | 2 + .../licenses/mips-android-sysimage-license | 2 + .../it-android-0/dokka/build.gradle.kts | 18 + .../it-android-0/dokka/settings.gradle.kts | 5 + .../dokka/src/main/AndroidManifest.xml | 1 + .../java/it/android/AndroidSpecificClass.kt | 16 + .../it/android/IntegrationTestActivity.kt | 22 + .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../it-android-0/dokkatoo/build.gradle.kts | 32 ++ .../it-android-0/dokkatoo/settings.gradle.kts | 19 + .../dokkatoo/src/main/AndroidManifest.xml | 1 + .../java/it/android/AndroidSpecificClass.kt | 16 + .../it/android/IntegrationTestActivity.kt | 22 + .../it-basic-groovy/dokka/build.gradle | 54 ++ .../it-basic-groovy/dokka/settings.gradle.kts | 5 + .../java/it/basic/java/SampleJavaClass.java | 17 + .../src/main/kotlin/it/basic/PublicClass.kt | 48 ++ .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../it-basic-groovy/dokkatoo/settings.gradle | 16 + .../projects/it-basic/dokka/build.gradle.kts | 63 +++ .../dokka/customResources/custom-resource.svg | 3 + .../customResources/custom-style-to-add.css | 1 + .../dokka/customResources/logo-styles.css | 3 + .../it-basic/dokka/settings.gradle.kts | 5 + .../java/it/basic/java/SampleJavaClass.java | 17 + .../dokka/src/main/kotlin/RootPackageClass.kt | 8 + .../src/main/kotlin/it/basic/PublicClass.kt | 69 +++ .../main/kotlin/it/internal/InternalClass.kt | 7 + .../VisiblePrivateClass.kt | 12 + .../kotlin/it/protected/ProtectedClass.kt | 10 + .../SuppressedByPackage.kt | 7 + .../it/suppressedByPath/SuppressedByPath.kt | 7 + .../src/test/kotlin/it/basic/TestClass.kt | 17 + .../it-basic/dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../it-basic/dokkatoo/build.gradle.kts | 64 +++ .../customResources/custom-resource.svg | 3 + .../customResources/custom-style-to-add.css | 1 + .../dokkatoo/customResources/logo-styles.css | 3 + .../it-basic/dokkatoo/settings.gradle.kts | 17 + .../java/it/basic/java/SampleJavaClass.java | 17 + .../src/main/kotlin/RootPackageClass.kt | 8 + .../src/main/kotlin/it/basic/PublicClass.kt | 69 +++ .../main/kotlin/it/internal/InternalClass.kt | 7 + .../VisiblePrivateClass.kt | 12 + .../kotlin/it/protected/ProtectedClass.kt | 10 + .../SuppressedByPackage.kt | 7 + .../it/suppressedByPath/SuppressedByPath.kt | 7 + .../src/test/kotlin/it/basic/TestClass.kt | 17 + .../it-collector-0/dokka/build.gradle.kts | 1 + .../dokka/moduleA/build.gradle.kts | 6 + .../dokka/moduleA/moduleB/README.md | 2 + .../dokka/moduleA/moduleB/build.gradle.kts | 4 + .../org/jetbrains/dokka/it/moduleB/ModuleB.kt | 6 + .../dokka/moduleA/moduleC/README.md | 2 + .../dokka/moduleA/moduleC/build.gradle.kts | 4 + .../org/jetbrains/dokka/it/moduleC/ModuleC.kt | 6 + .../it-collector-0/dokka/settings.gradle.kts | 5 + .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../dokkatoo/settings.gradle.kts | 17 + .../it-js-ir-0/dokka/build.gradle.kts | 21 + .../it-js-ir-0/dokka/settings.gradle.kts | 5 + .../dokka/src/main/kotlin/RootPackageClass.kt | 26 + .../src/main/kotlin/it/basic/PublicClass.kt | 53 ++ .../main/kotlin/it/internal/InternalClass.kt | 7 + .../SuppressedByPackage.kt | 7 + .../it/suppressedByPath/SuppressedByPath.kt | 7 + .../it-js-ir-0/dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../it-js-ir-0/dokkatoo/settings.gradle.kts | 17 + .../it-multimodule-0/dokka/build.gradle.kts | 1 + .../dokka/moduleA/build.gradle.kts | 6 + .../dokka/moduleA/moduleB/Module.md | 6 + .../dokka/moduleA/moduleB/build.gradle.kts | 13 + .../org/jetbrains/dokka/it/moduleB/ModuleB.kt | 6 + .../dokka/moduleA/moduleC/Module.md | 2 + .../dokka/moduleA/moduleC/build.gradle.kts | 12 + .../org/jetbrains/dokka/it/moduleC/ModuleC.kt | 6 + .../dokka/moduleA/moduleD/build.gradle.kts | 6 + .../org/jetbrains/dokka/it/moduleD/ModuleC.kt | 6 + .../dokka/settings.gradle.kts | 6 + .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../dokkatoo/settings.gradle.kts | 17 + .../it-multimodule-1/dokka/build.gradle | 18 + .../it-multimodule-1/dokka/first/build.gradle | 0 .../first/src/main/kotlin/foo/FirstClass.kt | 11 + .../src/main/kotlin/foo/FirstSubclass.kt | 12 + .../dokka/first/src/main/kotlin/foo/Main.kt | 8 + .../dokka/first/src/main/kotlin/noPackage.kt | 3 + .../dokka/second/build.gradle | 14 + .../second/src/main/kotlin/NoPackageClass.kt | 1 + .../second/src/main/kotlin/bar/SecondClass.kt | 21 + .../second/src/main/kotlin/foo/ThirdClass.kt | 11 + .../dokka/settings.gradle.kts | 4 + .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../dokkatoo/settings.gradle.kts | 17 + .../dokka/build.gradle | 43 ++ .../dokka/first/build.gradle | 0 .../first/src/main/kotlin/foo/FirstClass.kt | 11 + .../dokka/second/build.gradle | 3 + .../second/src/main/kotlin/bar/SecondClass.kt | 21 + .../dokka/settings.gradle.kts | 4 + .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../dokkatoo/settings.gradle.kts | 17 + .../it-multiplatform-0/dokka/build.gradle.kts | 48 ++ .../dokka/settings.gradle.kts | 2 + .../kotlin/it/mpp0/CommonMainClass.kt | 8 + .../kotlin/it/mpp0/ExpectedClass.kt | 5 + .../commonMain/kotlin/it/mpp0/coroutines.kt | 5 + .../kotlin/it/mpp0/CPointerExtension.kt | 11 + .../kotlin/it/mpp0/ExpectedClass.kt | 5 + .../jsMain/kotlin/it/mpp0/ExpectedClass.kt | 5 + .../src/jsMain/kotlin/it/mpp0/runBlocking.kt | 7 + .../jvmMain/kotlin/it/mpp0/ExpectedClass.kt | 11 + .../jvmMain/kotlin/it/mpp0/JvmOnlyClass.kt | 13 + .../src/jvmMain/kotlin/it/mpp0/runBlocking.kt | 7 + .../kotlin/it/mpp0/CPointerExtension.kt | 11 + .../linuxMain/kotlin/it/mpp0/ExpectedClass.kt | 5 + .../linuxMain/kotlin/it/mpp0/runBlocking.kt | 13 + .../macosMain/kotlin/it/mpp0/ExpectedClass.kt | 5 + .../macosMain/kotlin/it/mpp0/runBlocking.kt | 7 + .../dokka/template.root.gradle.kts | 23 + .../dokka/template.settings.gradle.kts | 38 ++ .../dokkatoo/settings.gradle.kts | 17 + .../kotlin/CustomFormatExampleTest.kt | 197 ++++++++ .../testExamples/kotlin/GradleExampleTest.kt | 190 +++++++ .../kotlin/KotlinMultiplatformExampleTest.kt | 226 +++++++++ .../kotlin/MultimoduleExampleTest.kt | 244 +++++++++ .../kotlin/templateProjectUtils.kt | 17 + .../kotlin/AndroidProjectIntegrationTest.kt | 166 +++++++ .../kotlin/BasicProjectIntegrationTest.kt | 153 ++++++ .../dokka-multi-module/childProjectA.json | 83 ++++ .../dokka-multi-module/childProjectB.json | 83 ++++ .../dokka-multi-module/parentProject.json | 55 ++ .../it/example/dokka-multi-module/readme.md | 5 + .../dokkatoo-plugin/api/dokkatoo-plugin.api | 397 +++++++++++++++ .../modules/dokkatoo-plugin/build.gradle.kts | 254 ++++++++++ .../src/main/kotlin/DokkatooBasePlugin.kt | 355 +++++++++++++ .../src/main/kotlin/DokkatooExtension.kt | 130 +++++ .../src/main/kotlin/DokkatooPlugin.kt | 32 ++ .../kotlin/adapters/DokkatooAndroidAdapter.kt | 214 ++++++++ .../kotlin/adapters/DokkatooJavaAdapter.kt | 40 ++ .../kotlin/adapters/DokkatooKotlinAdapter.kt | 459 +++++++++++++++++ .../DokkatooConfigurationAttributes.kt | 59 +++ .../src/main/kotlin/dokka/DokkaPublication.kt | 122 +++++ .../DokkaExternalDocumentationLinkSpec.kt | 120 +++++ .../DokkaGeneratorParametersSpec.kt | 93 ++++ .../parameters/DokkaModuleDescriptionSpec.kt | 49 ++ .../parameters/DokkaPackageOptionsSpec.kt | 84 ++++ .../dokka/parameters/DokkaParametersKxs.kt | 78 +++ .../dokka/parameters/DokkaSourceLinkSpec.kt | 106 ++++ .../dokka/parameters/DokkaSourceSetIdSpec.kt | 61 +++ .../dokka/parameters/DokkaSourceSetSpec.kt | 366 ++++++++++++++ .../HasConfigurableVisibilityModifiers.kt | 14 + .../kotlin/dokka/parameters/KotlinPlatform.kt | 54 ++ .../dokka/parameters/VisibilityModifier.kt | 42 ++ .../builders/DokkaModuleDescriptionBuilder.kt | 33 ++ .../builders/DokkaParametersBuilder.kt | 77 +++ .../builders/DokkaSourceSetBuilder.kt | 112 +++++ .../plugins/DokkaHtmlPluginParameters.kt | 129 +++++ .../plugins/DokkaPluginParametersBaseSpec.kt | 32 ++ .../plugins/DokkaPluginParametersBuilder.kt | 232 +++++++++ .../DokkaVersioningPluginParameters.kt | 101 ++++ .../DokkatooFormatDependencyContainers.kt | 152 ++++++ .../kotlin/formats/DokkatooFormatPlugin.kt | 174 +++++++ .../kotlin/formats/DokkatooFormatTasks.kt | 105 ++++ .../main/kotlin/formats/DokkatooGfmPlugin.kt | 14 + .../main/kotlin/formats/DokkatooHtmlPlugin.kt | 72 +++ .../kotlin/formats/DokkatooJavadocPlugin.kt | 14 + .../kotlin/formats/DokkatooJekyllPlugin.kt | 14 + .../kotlin/internal/DokkatooInternalApi.kt | 37 ++ .../src/main/kotlin/internal/LoggerAdapter.kt | 65 +++ .../main/kotlin/internal/collectionsUtils.kt | 7 + .../internal/gradleExtensionAccessors.kt | 9 + .../main/kotlin/internal/gradleTypealiases.kt | 20 + .../src/main/kotlin/internal/gradleUtils.kt | 187 +++++++ .../internal/kotlinxSerializationUtils.kt | 36 ++ .../src/main/kotlin/internal/stringUtils.kt | 11 + .../src/main/kotlin/internal/uriUtils.kt | 9 + .../main/kotlin/tasks/DokkatooGenerateTask.kt | 187 +++++++ .../DokkatooPrepareModuleDescriptorTask.kt | 62 +++ .../src/main/kotlin/tasks/DokkatooTask.kt | 22 + .../tasks/LogHtmlPublicationLinkTask.kt | 156 ++++++ .../kotlin/workers/DokkaGeneratorWorker.kt | 77 +++ .../src/test/kotlin/DokkatooPluginTest.kt | 76 +++ .../DokkaExternalDocumentationLinkSpecTest.kt | 102 ++++ .../parameters/DokkaSourceLinkSpecTest.kt | 58 +++ .../dokka/parameters/KotlinPlatformTest.kt | 37 ++ .../parameters/VisibilityModifierTest.kt | 17 + .../DokkaModuleDescriptionBuilderTest.kt | 7 + .../builders/DokkaParametersBuilderTest.kt | 7 + .../builders/DokkaSourceSetBuilderTest.kt | 198 ++++++++ .../testFixtures/kotlin/GradleTestKitUtils.kt | 274 ++++++++++ .../kotlin/KotestProjectConfig.kt | 10 + .../src/testFixtures/kotlin/fileTree.kt | 61 +++ .../src/testFixtures/kotlin/files.kt | 6 + .../testFixtures/kotlin/gradleRunnerUtils.kt | 47 ++ .../kotlin/kotestCollectionMatchers.kt | 20 + .../testFixtures/kotlin/kotestConditions.kt | 10 + .../kotlin/kotestGradleAssertions.kt | 130 +++++ .../kotlin/kotestStringMatchers.kt | 65 +++ .../kotlin/samWithReceiverWorkarounds.kt | 77 +++ .../src/testFixtures/kotlin/stringUtils.kt | 21 + .../kotlin/systemVariableProviders.kt | 40 ++ .../src/testFixtures/kotlin/text.kt | 24 + .../kotlin/DokkatooPluginFunctionalTest.kt | 205 ++++++++ .../GradlePluginProjectIntegrationTest.kt | 110 ++++ .../KotlinMultiplatformFunctionalTest.kt | 247 +++++++++ .../kotlin/MultiModuleFunctionalTest.kt | 468 ++++++++++++++++++ dokka-runners/dokkatoo/settings.gradle.kts | 95 ++++ settings.gradle.kts | 4 +- 367 files changed, 15468 insertions(+), 3 deletions(-) create mode 100644 dokka-runners/dokkatoo/.gitattributes create mode 100644 dokka-runners/dokkatoo/.gitignore create mode 100644 dokka-runners/dokkatoo/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/android-setup.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokka-source-downloader.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects-base.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/gradle-plugin-variants.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/java-base.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/kotlin-gradle-plugin.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publish-test.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publishing.gradle.kts create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaSourceDownloaderSettings.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaTemplateProjectSettings.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkatooExampleProjectsSettings.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishTestSettings.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishingSettings.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/SetupDokkaProjects.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/UpdateDokkatooExampleProjects.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/gradle.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/intellij.kt create mode 100644 dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/strings.kt create mode 100644 dokka-runners/dokkatoo/devOps/release.main.kts create mode 100644 dokka-runners/dokkatoo/examples/.gitignore create mode 100644 dokka-runners/dokkatoo/examples/README.md create mode 100644 dokka-runners/dokkatoo/examples/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/demo.png create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/ktor-logo.png create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/logo-styles.css create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokka/src/main/kotlin/demo/HelloWorld.kt create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/ktor-logo.png create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/logo-styles.css create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/src/main/kotlin/demo/HelloWorld.kt create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokka/Module.md create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokka/demo.png create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokka/src/main/kotlin/demo/HelloWorld.kt create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/Module.md create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/src/main/kotlin/demo/HelloWorld.kt create mode 100644 dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/demo.png create mode 100644 dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/src/main/kotlin/demo/HelloWorld.kt create mode 100644 dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/library-publishing-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/library-publishing-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/library-publishing-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/library-publishing-example/dokka/src/main/kotlin/demo/HelloWorld.kt create mode 100644 dokka-runners/dokkatoo/examples/library-publishing-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/demo.png create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/childProjectA/ModuleA.md create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/childProjectA/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/childProjectA/src/main/kotlin/demo/ChildProjectAClass.kt create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/childProjectB/ModuleB.md create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/childProjectB/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/parentProject/childProjectB/src/main/kotlin/demo/ChildProjectBClass.kt create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/buildSrc/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/buildSrc/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/buildSrc/src/main/kotlin/dokka-convention.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/childProjectA/ModuleA.md create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/childProjectA/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/childProjectA/src/main/kotlin/demo/ChildProjectAClass.kt create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/childProjectB/ModuleB.md create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/childProjectB/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/parentProject/childProjectB/src/main/kotlin/demo/ChildProjectBClass.kt create mode 100644 dokka-runners/dokkatoo/examples/multimodule-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/demo.png create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/commonMain/kotlin/org/kotlintestmpp/CommonCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/commonMain/kotlin/org/kotlintestmpp/CommonDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/commonMain/kotlin/org/kotlintestmpp/common/Foo.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/customJdk9/kotlin/org/kotlintest/jdk9/CustomSourceSetFile.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jsMain/kotlin/org/kotlintestmpp/JsCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jsMain/kotlin/org/kotlintestmpp/JsDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jsMain/kotlin/org/kotlintestmpp/JsFunctions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jvmMain/kotlin/org/kotlintestmpp/JavaAnnotation.java create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jvmMain/kotlin/org/kotlintestmpp/JvmCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jvmMain/kotlin/org/kotlintestmpp/JvmDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/jvmMain/kotlin/org/kotlintestmpp/JvmFunctions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/linuxMain/kotlin/org/kotlintestmpp/CInterop.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/linuxMain/kotlin/org/kotlintestmpp/LinuxCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/linuxMain/kotlin/org/kotlintestmpp/LinuxDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/macosMain/kotlin/org/kotlintestmpp/MacOsCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokka/src/macosMain/kotlin/org/kotlintestmpp/MacOsDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/commonMain/kotlin/org/kotlintestmpp/CommonCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/commonMain/kotlin/org/kotlintestmpp/CommonDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/commonMain/kotlin/org/kotlintestmpp/common/Foo.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/customJdk9/kotlin/org/kotlintest/jdk9/CustomSourceSetFile.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jsMain/kotlin/org/kotlintestmpp/JsCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jsMain/kotlin/org/kotlintestmpp/JsDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jsMain/kotlin/org/kotlintestmpp/JsFunctions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jvmMain/kotlin/org/kotlintestmpp/JavaAnnotation.java create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jvmMain/kotlin/org/kotlintestmpp/JvmCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jvmMain/kotlin/org/kotlintestmpp/JvmDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/jvmMain/kotlin/org/kotlintestmpp/JvmFunctions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/linuxMain/kotlin/org/kotlintestmpp/CInterop.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/linuxMain/kotlin/org/kotlintestmpp/LinuxCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/linuxMain/kotlin/org/kotlintestmpp/LinuxDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/macosMain/kotlin/org/kotlintestmpp/MacOsCoroutineExtensions.kt create mode 100644 dokka-runners/dokkatoo/examples/multiplatform-example/dokkatoo/src/macosMain/kotlin/org/kotlintestmpp/MacOsDateUtils.kt create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/README.md create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/demo.png create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/childProjectA/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/childProjectA/src/main/kotlin/demo/ChildProjectAClass.kt create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/childProjectA/src/main/kotlin/demo/FancyAPI.kt create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/childProjectB/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/childProjectB/src/main/kotlin/demo/ChildProjectBClass.kt create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/parentProject/childProjectB/src/main/kotlin/demo/Functions.kt create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/examples/versioning-multimodule-example/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/gradle.properties create mode 100644 dokka-runners/dokkatoo/gradle/libs.versions.toml create mode 100644 dokka-runners/dokkatoo/modules/docs/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/docs/images/banner.svg create mode 100644 dokka-runners/dokkatoo/modules/docs/images/logo-icon.svg create mode 100644 dokka-runners/dokkatoo/modules/docs/images/social_preview_banner.png create mode 100644 dokka-runners/dokkatoo/modules/docs/images/social_preview_banner.svg create mode 100644 dokka-runners/dokkatoo/modules/docs/style/logo-styles.css create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/.gitignore create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/android-googletv-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/android-sdk-arm-dbt-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/android-sdk-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/android-sdk-preview-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/google-gdk-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/intel-android-extra-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/ANDROID_SDK/licenses/mips-android-sysimage-license create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/src/main/AndroidManifest.xml create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/src/main/java/it/android/AndroidSpecificClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/src/main/java/it/android/IntegrationTestActivity.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokkatoo/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokkatoo/src/main/AndroidManifest.xml create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokkatoo/src/main/java/it/android/AndroidSpecificClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-android-0/dokkatoo/src/main/java/it/android/IntegrationTestActivity.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokka/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokka/src/main/java/it/basic/java/SampleJavaClass.java create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokka/src/main/kotlin/it/basic/PublicClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic-groovy/dokkatoo/settings.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/customResources/custom-resource.svg create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/customResources/custom-style-to-add.css create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/customResources/logo-styles.css create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/java/it/basic/java/SampleJavaClass.java create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/RootPackageClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/it/basic/PublicClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/it/internal/InternalClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/it/overriddenVisibility/VisiblePrivateClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/it/protected/ProtectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/it/suppressedByPackage/SuppressedByPackage.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/main/kotlin/it/suppressedByPath/SuppressedByPath.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/src/test/kotlin/it/basic/TestClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/customResources/custom-resource.svg create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/customResources/custom-style-to-add.css create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/customResources/logo-styles.css create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/java/it/basic/java/SampleJavaClass.java create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/RootPackageClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/it/basic/PublicClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/it/internal/InternalClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/it/overriddenVisibility/VisiblePrivateClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/it/protected/ProtectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/it/suppressedByPackage/SuppressedByPackage.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/main/kotlin/it/suppressedByPath/SuppressedByPath.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-basic/dokkatoo/src/test/kotlin/it/basic/TestClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/moduleB/README.md create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/moduleB/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/moduleB/src/main/kotlin/org/jetbrains/dokka/it/moduleB/ModuleB.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/moduleC/README.md create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/moduleC/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/moduleA/moduleC/src/main/kotlin/org/jetbrains/dokka/it/moduleC/ModuleC.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-collector-0/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/src/main/kotlin/RootPackageClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/src/main/kotlin/it/basic/PublicClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/src/main/kotlin/it/internal/InternalClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/src/main/kotlin/it/suppressedByPackage/SuppressedByPackage.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/src/main/kotlin/it/suppressedByPath/SuppressedByPath.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-js-ir-0/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleB/Module.md create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleB/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleB/src/main/kotlin/org/jetbrains/dokka/it/moduleB/ModuleB.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleC/Module.md create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleC/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleC/src/main/kotlin/org/jetbrains/dokka/it/moduleC/ModuleC.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleD/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/moduleA/moduleD/src/main/kotlin/org/jetbrains/dokka/it/moduleD/ModuleC.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-0/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/first/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/first/src/main/kotlin/foo/FirstClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/first/src/main/kotlin/foo/FirstSubclass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/first/src/main/kotlin/foo/Main.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/first/src/main/kotlin/noPackage.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/second/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/second/src/main/kotlin/NoPackageClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/second/src/main/kotlin/bar/SecondClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/second/src/main/kotlin/foo/ThirdClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-1/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/first/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/first/src/main/kotlin/foo/FirstClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/second/build.gradle create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/second/src/main/kotlin/bar/SecondClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multimodule-versioning-0/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/commonMain/kotlin/it/mpp0/CommonMainClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/commonMain/kotlin/it/mpp0/ExpectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/commonMain/kotlin/it/mpp0/coroutines.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/desktopMain/kotlin/it/mpp0/CPointerExtension.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/desktopMain/kotlin/it/mpp0/ExpectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/jsMain/kotlin/it/mpp0/ExpectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/jsMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/jvmMain/kotlin/it/mpp0/ExpectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/jvmMain/kotlin/it/mpp0/JvmOnlyClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/jvmMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/linuxMain/kotlin/it/mpp0/CPointerExtension.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/linuxMain/kotlin/it/mpp0/ExpectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/linuxMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/macosMain/kotlin/it/mpp0/ExpectedClass.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/src/macosMain/kotlin/it/mpp0/runBlocking.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/template.root.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokka/template.settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/projects/it-multiplatform-0/dokkatoo/settings.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testExamples/kotlin/CustomFormatExampleTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testExamples/kotlin/GradleExampleTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testExamples/kotlin/KotlinMultiplatformExampleTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testExamples/kotlin/MultimoduleExampleTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testFixtures/kotlin/templateProjectUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testIntegration/kotlin/AndroidProjectIntegrationTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testIntegration/kotlin/BasicProjectIntegrationTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testIntegration/resources/it/example/dokka-multi-module/childProjectA.json create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testIntegration/resources/it/example/dokka-multi-module/childProjectB.json create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testIntegration/resources/it/example/dokka-multi-module/parentProject.json create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin-integration-tests/src/testIntegration/resources/it/example/dokka-multi-module/readme.md create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/api/dokkatoo-plugin.api create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/build.gradle.kts create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/DokkatooBasePlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/DokkatooExtension.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/DokkatooPlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/adapters/DokkatooAndroidAdapter.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/adapters/DokkatooJavaAdapter.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/adapters/DokkatooKotlinAdapter.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/distributions/DokkatooConfigurationAttributes.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/DokkaPublication.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaExternalDocumentationLinkSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaGeneratorParametersSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaModuleDescriptionSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaPackageOptionsSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaParametersKxs.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaSourceLinkSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaSourceSetIdSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/DokkaSourceSetSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/HasConfigurableVisibilityModifiers.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/KotlinPlatform.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/VisibilityModifier.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/builders/DokkaModuleDescriptionBuilder.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/builders/DokkaParametersBuilder.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/parameters/builders/DokkaSourceSetBuilder.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/plugins/DokkaHtmlPluginParameters.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/plugins/DokkaPluginParametersBaseSpec.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/plugins/DokkaPluginParametersBuilder.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/dokka/plugins/DokkaVersioningPluginParameters.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooFormatDependencyContainers.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooFormatPlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooFormatTasks.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooGfmPlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooHtmlPlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooJavadocPlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/formats/DokkatooJekyllPlugin.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/DokkatooInternalApi.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/LoggerAdapter.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/collectionsUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/gradleExtensionAccessors.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/gradleTypealiases.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/gradleUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/kotlinxSerializationUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/stringUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/internal/uriUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/tasks/DokkatooGenerateTask.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/tasks/DokkatooPrepareModuleDescriptorTask.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/tasks/DokkatooTask.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/tasks/LogHtmlPublicationLinkTask.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/main/kotlin/workers/DokkaGeneratorWorker.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/DokkatooPluginTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/DokkaExternalDocumentationLinkSpecTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/DokkaSourceLinkSpecTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/KotlinPlatformTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/VisibilityModifierTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/builders/DokkaModuleDescriptionBuilderTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/builders/DokkaParametersBuilderTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/test/kotlin/dokka/parameters/builders/DokkaSourceSetBuilderTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/GradleTestKitUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/KotestProjectConfig.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/fileTree.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/files.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/gradleRunnerUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/kotestCollectionMatchers.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/kotestConditions.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/kotestGradleAssertions.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/kotestStringMatchers.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/samWithReceiverWorkarounds.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/stringUtils.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/systemVariableProviders.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFixtures/kotlin/text.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFunctional/kotlin/DokkatooPluginFunctionalTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFunctional/kotlin/GradlePluginProjectIntegrationTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFunctional/kotlin/KotlinMultiplatformFunctionalTest.kt create mode 100644 dokka-runners/dokkatoo/modules/dokkatoo-plugin/src/testFunctional/kotlin/MultiModuleFunctionalTest.kt create mode 100644 dokka-runners/dokkatoo/settings.gradle.kts diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index c32bdd2547..fedf3403c3 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -10,7 +10,7 @@ plugins { kotlin { jvmToolchain { - languageVersion.set(JavaLanguageVersion.of(8)) + languageVersion.set(JavaLanguageVersion.of(11)) } } diff --git a/dokka-runners/dokkatoo/.gitattributes b/dokka-runners/dokkatoo/.gitattributes new file mode 100644 index 0000000000..2ba525d513 --- /dev/null +++ b/dokka-runners/dokkatoo/.gitattributes @@ -0,0 +1,51 @@ +# https://help.github.com/articles/dealing-with-line-endings/ +# https://github.com/alexkaratarakis/gitattributes + +* text=auto + +# The above will handle all files NOT found below + +*.json text +*.toml text +*.xml text +*.yaml text +*.yml text +.editorconfig text +.env text + +# Documentation +*.md text diff=markdown +*.txt text +LICENSE text + +# JVM +*.java text diff=java +*.kt text diff=kotlin +*.kts text diff=kotlin +*.properties text +*.jar binary + + +# Linux start script should use lf +gradlew text eol=lf +*.bash text eol=lf +*.sh text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf +*.cmd text eol=crlf + +# SVG treated as an asset (binary) by default. +*.svg text + +# Exclude external libs from GitHub language stats https://github.com/github/linguist/blob/v7.24.1/docs/overrides.md +examples/** linguist-documentation +examples/*/dokka linguist-vendored +modules/dokkatoo-plugin-integration-tests/projects/**dokka/ linguist-vendored +modules/dokkatoo-plugin-integration-tests/projects/**dokkatoo/ linguist-documentation + +# Exclude files from exporting + +.gitattributes export-ignore +.gitignore export-ignore +.gitkeep export-ignore diff --git a/dokka-runners/dokkatoo/.gitignore b/dokka-runners/dokkatoo/.gitignore new file mode 100644 index 0000000000..e733d08a6f --- /dev/null +++ b/dokka-runners/dokkatoo/.gitignore @@ -0,0 +1,71 @@ +### Gradle ### +.gradle +build/ + +!gradle/wrapper/gradle-wrapper.jar +!gradle/wrapper/gradle-wrapper.properties + + +### Kotlin/JVM ### +*.class +*.log + +hs_err_pid* +replay_pid* +*.hprof + +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + + +### IntelliJ ### +.idea/** +!.idea/codeStyles/ +!.idea/codeStyles/** + + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +.settings/ +.loadpath +.recommenders +.classpath + +.apt_generated/ +.apt_generated_test/ +.project + + +### Linux ### +*~ +.fuse_hidden* +.Trash-* +.nfs* + + +### Windows ### +[Dd]esktop.ini +$RECYCLE.BIN/ +*.lnk + + +### macOS ### +.DS_Store +._* + +# Icon must end with two \r +Icon + + +########################### diff --git a/dokka-runners/dokkatoo/build.gradle.kts b/dokka-runners/dokkatoo/build.gradle.kts new file mode 100644 index 0000000000..6718499894 --- /dev/null +++ b/dokka-runners/dokkatoo/build.gradle.kts @@ -0,0 +1,47 @@ +import buildsrc.utils.excludeGeneratedGradleDsl +import buildsrc.utils.initIdeProjectLogo + +plugins { + buildsrc.conventions.base + idea +} + +group = "org.jetbrains.dokka.dokkatoo" +version = "2.1.0-SNAPSHOT" + + +idea { + module { + excludeGeneratedGradleDsl(layout) + + excludeDirs.apply { + // exclude .gradle, IDE dirs from nested projects (e.g. example & template projects) + // so IntelliJ project-wide search isn't cluttered with irrelevant files + val excludedDirs = setOf( + ".idea", + ".gradle", + "build", + "gradle/wrapper", + "ANDROID_SDK", + ) + addAll( + projectDir.walk().filter { file -> + excludedDirs.any { + file.invariantSeparatorsPath.endsWith(it) + } + } + ) + } + } +} + +initIdeProjectLogo("modules/docs/images/logo-icon.svg") + +val dokkatooVersion by tasks.registering { + description = "prints the Dokkatoo project version (used during release to verify the version)" + group = "help" + val version = providers.provider { project.version } + doLast { + logger.quiet("${version.orNull}") + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/build.gradle.kts b/dokka-runners/dokkatoo/buildSrc/build.gradle.kts new file mode 100644 index 0000000000..832a98b95b --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/build.gradle.kts @@ -0,0 +1,19 @@ +import org.gradle.kotlin.dsl.support.expectedKotlinDslPluginsVersion + +plugins { + `kotlin-dsl` +} + +dependencies { + implementation("org.gradle.kotlin:gradle-kotlin-dsl-plugins:$expectedKotlinDslPluginsVersion") + implementation(libs.gradlePlugin.bcvMu) + implementation(libs.gradlePlugin.dokkatoo) + implementation(libs.gradlePlugin.gradlePublishPlugin) + implementation("org.jetbrains.kotlin:kotlin-serialization:$embeddedKotlinVersion") +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/settings.gradle.kts b/dokka-runners/dokkatoo/buildSrc/settings.gradle.kts new file mode 100644 index 0000000000..855fe5d957 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/settings.gradle.kts @@ -0,0 +1,25 @@ +rootProject.name = "buildSrc" + +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } +} + +@Suppress("UnstableApiUsage") +dependencyResolutionManagement { + + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + + repositories { + mavenCentral() + gradlePluginPortal() + } + + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/android-setup.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/android-setup.gradle.kts new file mode 100644 index 0000000000..ed22d79948 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/android-setup.gradle.kts @@ -0,0 +1,78 @@ +package buildsrc.conventions + +import org.jetbrains.kotlin.util.suffixIfNot + + +/** + * Utilities for preparing Android projects + */ + +plugins { + base + id("buildsrc.conventions.base") +} + + +val androidSdkDirPath: Provider = providers + // first try getting the SDK installed on via GitHub step setup-android + .environmentVariable("ANDROID_SDK_ROOT").map(::File) + // else get the project-local SDK + .orElse(layout.projectDirectory.file("projects/ANDROID_SDK").asFile) + .map { it.invariantSeparatorsPath } + + +val createAndroidLocalPropertiesFile by tasks.registering { + + val localPropertiesFile = temporaryDir.resolve("local.properties") + outputs.file(localPropertiesFile).withPropertyName("localPropertiesFile") + + val androidSdkDirPath = androidSdkDirPath + inputs.property("androidSdkDirPath", androidSdkDirPath) + + doLast { + localPropertiesFile.apply { + parentFile.mkdirs() + createNewFile() + writeText( + """ + |# DO NOT EDIT - Generated by $path + | + |sdk.dir=${androidSdkDirPath.get()} + | + """.trimMargin() + ) + } + } +} + + +val updateAndroidLocalProperties by tasks.registering { + + // find all local.properties files + val localPropertiesFiles = layout.projectDirectory.dir("projects") + .asFileTree + .matching { include("**/local.properties") } + .files + + outputs.files(localPropertiesFiles).withPropertyName("localPropertiesFiles") + + val androidSdkDirPath = androidSdkDirPath + inputs.property("androidSdkDirPath", androidSdkDirPath) + + doLast { + localPropertiesFiles + .filter { it.exists() } + .forEach { file -> + file.writeText( + file.useLines { lines -> + lines.joinToString("\n") { line -> + when { + line.startsWith("sdk.dir=") -> "sdk.dir=${androidSdkDirPath.get()}" + else -> line + } + }.suffixIfNot("\n") + } + ) + } + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts new file mode 100644 index 0000000000..60bfa2fe55 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/base.gradle.kts @@ -0,0 +1,155 @@ +package buildsrc.conventions + +import java.time.Duration +import org.gradle.api.tasks.testing.logging.TestLogEvent + +/** + * A convention plugin that sets up common config and sensible defaults for all subprojects. + */ + +plugins { + base +} + +if (project != rootProject) { + project.version = rootProject.version + project.group = rootProject.group +} + +tasks.withType().configureEach { + // https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives + isPreserveFileTimestamps = false + isReproducibleFileOrder = true +} + +tasks.withType().configureEach { + timeout.set(Duration.ofMinutes(60)) + + testLogging { + showCauses = true + showExceptions = true + showStackTraces = true + showStandardStreams = true + events( + TestLogEvent.PASSED, + TestLogEvent.FAILED, + TestLogEvent.SKIPPED, + TestLogEvent.STARTED, + TestLogEvent.STANDARD_ERROR, + TestLogEvent.STANDARD_OUT, + ) + } +} + +tasks.withType().configureEach { + includeEmptyDirs = false +} + +val updateTestReportCss by tasks.registering { + description = "Hack so the Gradle test reports have dark mode" + // the CSS is based on https://github.com/gradle/gradle/pull/12177 + + mustRunAfter(tasks.withType()) + mustRunAfter(tasks.withType()) + + val cssFiles = layout.buildDirectory.asFileTree.matching { + include("reports/**/css/base-style.css") + include("reports/**/css/style.css") + } + + outputs.files(cssFiles.files) + + doLast { + cssFiles.forEach { cssFile -> + val fileContent = cssFile.readText() + + if ("/* Dark mode */" in fileContent) { + return@forEach + } else { + when (cssFile.name) { + "base-style.css" -> cssFile.writeText( + fileContent + """ + + /* Dark mode */ + @media (prefers-color-scheme: dark) { + html { + background: black; + } + body, a, a:visited { + color: #E7E7E7FF; + } + #footer, #footer a { + color: #cacaca; + } + ul.tabLinks li { + border: solid 1px #cacaca; + background-color: #151515; + } + ul.tabLinks li:hover { + background-color: #383838; + } + ul.tabLinks li.selected { + background-color: #002d32; + border-color: #007987; + } + div.tab th, div.tab table { + border-bottom: solid #d0d0d0 1px; + } + span.code pre { + background-color: #0a0a0a; + border: solid 1px #5f5f5f; + } + } + """.trimIndent() + ) + + "style.css" -> cssFile.writeText( + fileContent + """ + + /* Dark mode */ + @media (prefers-color-scheme: dark) { + .breadcrumbs, .breadcrumbs a { + color: #9b9b9b; + } + #successRate, .summaryGroup { + border: solid 2px #d0d0d0; + } + .success, .success a { + color: #7fff7f; + } + div.success, #successRate.success { + background-color: #001c00; + border-color: #7fff7f; + } + .failures, .failures a { + color: #a30000; + } + .skipped, .skipped a { + color: #a26d13; + } + div.failures, #successRate.failures { + background-color: #170000; + border-color: #a30000; + } + } + """.trimIndent() + ) + } + } + } + } +} + +tasks.withType().configureEach { + finalizedBy(updateTestReportCss) +} + +tasks.withType().configureEach { + finalizedBy(updateTestReportCss) +} + +tasks.matching { it.name == "validatePlugins" }.configureEach { + // prevent warning + // Task ':validatePlugins' uses this output of task ':updateTestReportCss' without declaring an explicit or implicit dependency. + mustRunAfter(updateTestReportCss) +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokka-source-downloader.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokka-source-downloader.gradle.kts new file mode 100644 index 0000000000..69e384e109 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokka-source-downloader.gradle.kts @@ -0,0 +1,68 @@ +package buildsrc.conventions + +import buildsrc.settings.DokkaSourceDownloaderSettings +import buildsrc.utils.asConsumer +import buildsrc.utils.asProvider +import buildsrc.utils.dropDirectories +import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE +import org.gradle.kotlin.dsl.support.serviceOf + +plugins { + id("buildsrc.conventions.base") +} + +val dsdExt: DokkaSourceDownloaderSettings = extensions.create( + DokkaSourceDownloaderSettings.EXTENSION_NAME +) + +val kotlinDokkaSource by configurations.creating { + asConsumer() + attributes { + attribute(USAGE_ATTRIBUTE, objects.named("externals-dokka-src")) + } +} + +val kotlinDokkaSourceElements by configurations.registering { + asProvider() + attributes { + attribute(USAGE_ATTRIBUTE, objects.named("externals-dokka-src")) + } +} + +dependencies { + kotlinDokkaSource(dsdExt.dokkaVersion.map { "kotlin:dokka:$it@zip" }) +} + +val prepareDokkaSource by tasks.registering(Sync::class) { + group = "dokka setup" + description = "Download & unpack Kotlin Dokka source code" + + inputs.property("dokkaVersion", dsdExt.dokkaVersion).optional(false) + + val archives = serviceOf() + + from( + kotlinDokkaSource.incoming + .artifacts + .resolvedArtifacts + .map { artifacts -> + artifacts.map { archives.zipTree(it.file) } + } + ) { + // drop the first dir (dokka-$version) + eachFile { + relativePath = relativePath.dropDirectories(1) + } + } + + into(temporaryDir) + + exclude( + "*.github", + "*.gradle", + "**/gradlew", + "**/gradlew.bat", + "**/gradle/wrapper/gradle-wrapper.jar", + "**/gradle/wrapper/gradle-wrapper.properties", + ) +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects-base.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects-base.gradle.kts new file mode 100644 index 0000000000..5c2c45fa39 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects-base.gradle.kts @@ -0,0 +1,27 @@ +package buildsrc.conventions + +import buildsrc.utils.asConsumer +import buildsrc.utils.asProvider + +plugins { + id("buildsrc.conventions.base") +} + + +val exampleProjectsAttribute: Attribute = + Attribute.of("example-projects", String::class.java) + +dependencies.attributesSchema { + attribute(exampleProjectsAttribute) +} + + +val exampleProjects by configurations.registering { + asConsumer() + attributes { attribute(exampleProjectsAttribute, "dokka") } +} + +val exampleProjectsElements by configurations.registering { + asProvider() + attributes { attribute(exampleProjectsAttribute, "dokka") } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects.gradle.kts new file mode 100644 index 0000000000..c6994a8376 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/dokkatoo-example-projects.gradle.kts @@ -0,0 +1,160 @@ +package buildsrc.conventions + +import buildsrc.settings.* +import buildsrc.tasks.* +import buildsrc.utils.* + +plugins { + id("buildsrc.conventions.base") + id("buildsrc.conventions.dokka-source-downloader") + id("buildsrc.conventions.maven-publish-test") + id("buildsrc.conventions.dokkatoo-example-projects-base") +} + +val mavenPublishTestExtension = extensions.getByType() +val dokkaTemplateProjectSettings = + extensions.create( + DokkaTemplateProjectSettings.EXTENSION_NAME, + { project.copySpec() } + ).apply { + this.destinationBaseDir.convention(layout.projectDirectory) + } + +val prepareDokkaSource by tasks.existing(Sync::class) + +dokkaTemplateProjectSettings.dokkaSourceDir.convention( + prepareDokkaSource.flatMap { + layout.dir(providers.provider { + it.destinationDir + }) + } +) + +tasks.withType().configureEach { + dependsOn(prepareDokkaSource) + + dokkaSourceDir.convention(dokkaTemplateProjectSettings.dokkaSourceDir) + destinationBaseDir.convention(dokkaTemplateProjectSettings.destinationBaseDir) + + templateProjects.addAllLater(provider { + dokkaTemplateProjectSettings.templateProjects + }) +} + +val setupDokkaTemplateProjects by tasks.registering(SetupDokkaProjects::class) + +fun createDokkatooExampleProjectsSettings( + projectDir: Directory = project.layout.projectDirectory +): DokkatooExampleProjectsSettings { + return extensions.create( + DokkatooExampleProjectsSettings.EXTENSION_NAME + ).apply { + + // find all Gradle settings files + val settingsFiles = projectDir.asFileTree + .matching { + include( + "**/*dokkatoo*/**/settings.gradle.kts", + "**/*dokkatoo*/**/settings.gradle", + ) + }.files + + // for each settings file, create a DokkatooExampleProjectSpec + settingsFiles.forEach { + val destinationDir = it.parentFile + val name = destinationDir.toRelativeString(projectDir.asFile).toAlphaNumericCamelCase() + exampleProjects.register(name) { + this.exampleProjectDir.set(destinationDir) + } + } + + exampleProjects.configureEach { + gradlePropertiesContent.add( + mavenPublishTestExtension.testMavenRepoPath.map { testMavenRepoPath -> + "testMavenRepo=$testMavenRepoPath" + } + ) + } + } +} + +val dokkatooExampleProjectsSettings = createDokkatooExampleProjectsSettings() + +val updateDokkatooExamplesGradleProperties by tasks.registering( + UpdateDokkatooExampleProjects::class +) { + group = DokkatooExampleProjectsSettings.TASK_GROUP + + mustRunAfter(tasks.withType()) + + exampleProjects.addAllLater(providers.provider { + dokkatooExampleProjectsSettings.exampleProjects + }) +} + +val dokkatooVersion = provider { project.version.toString() } + +val updateDokkatooExamplesBuildFiles by tasks.registering { + group = DokkatooExampleProjectsSettings.TASK_GROUP + description = "Update the Gradle build files in the Dokkatoo examples" + + outputs.upToDateWhen { false } + + mustRunAfter(tasks.withType()) + shouldRunAfter(updateDokkatooExamplesGradleProperties) + + val dokkatooVersion = dokkatooVersion + + val dokkatooDependencyVersionMatcher = """ + \"dev\.adamko\.dokkatoo\:dokkatoo\-plugin\:([^"]+?)\" + """.trimIndent().toRegex() + + val dokkatooPluginVersionMatcher = """ + id[^"]+?"dev\.adamko\.dokkatoo".+?version "([^"]+?)" + """.trimIndent().toRegex() + + val gradleBuildFiles = + layout.projectDirectory.asFileTree + .matching { + include( + "**/*dokkatoo*/**/build.gradle.kts", + "**/*dokkatoo*/**/build.gradle", + ) + }.elements + outputs.files(gradleBuildFiles) + + doLast { + gradleBuildFiles.get().forEach { fileLocation -> + val file = fileLocation.asFile + if (file.exists()) { + file.writeText( + file.readText() + .replace(dokkatooPluginVersionMatcher) { + val oldVersion = it.groupValues[1] + it.value.replace(oldVersion, dokkatooVersion.get()) + } + .replace(dokkatooDependencyVersionMatcher) { + val oldVersion = it.groupValues[1] + it.value.replace(oldVersion, dokkatooVersion.get()) + } + ) + } + } + } +} + + +val updateDokkatooExamples by tasks.registering { + group = DokkatooExampleProjectsSettings.TASK_GROUP + description = "lifecycle task for all '${DokkatooExampleProjectsSettings.TASK_GROUP}' tasks" + dependsOn( + setupDokkaTemplateProjects, + updateDokkatooExamplesGradleProperties, + updateDokkatooExamplesBuildFiles, + ) +} + +tasks.assemble { + dependsOn(updateDokkatooExamples) + dependsOn(setupDokkaTemplateProjects) +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/gradle-plugin-variants.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/gradle-plugin-variants.gradle.kts new file mode 100644 index 0000000000..1d9fc43b01 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/gradle-plugin-variants.gradle.kts @@ -0,0 +1,44 @@ +package buildsrc.conventions + +import org.gradle.api.attributes.plugin.GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE + +plugins { + id("buildsrc.conventions.base") + `java-gradle-plugin` +} + +fun registerGradleVariant(name: String, gradleVersion: String) { + val variantSources = sourceSets.create(name) + + java { + registerFeature(variantSources.name) { + usingSourceSet(variantSources) + capability("${project.group}", "${project.name}", "${project.version}") + + withJavadocJar() + withSourcesJar() + } + } + + configurations + .matching { it.isCanBeConsumed && it.name.startsWith(variantSources.name) } + .configureEach { + attributes { + attribute(GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, objects.named(gradleVersion)) + } + } + + tasks.named(variantSources.processResourcesTaskName) { + val copyPluginDescriptors = rootSpec.addChild() + copyPluginDescriptors.into("META-INF/gradle-plugins") +// copyPluginDescriptors.into(tasks.pluginDescriptors.flatMap { it.outputDirectory }) + copyPluginDescriptors.from(tasks.pluginDescriptors) + } + + dependencies { + add(variantSources.compileOnlyConfigurationName, gradleApi()) + } +} + +registerGradleVariant("gradle7", "7.6") +registerGradleVariant("gradle8", "8.0") diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/java-base.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/java-base.gradle.kts new file mode 100644 index 0000000000..203b80f2b1 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/java-base.gradle.kts @@ -0,0 +1,19 @@ +package buildsrc.conventions + +import org.gradle.api.JavaVersion +import org.gradle.api.plugins.JavaPluginExtension +import org.gradle.jvm.toolchain.JavaLanguageVersion +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.`java-base` + +plugins { + id("buildsrc.conventions.base") + `java` +} + +extensions.getByType().apply { + toolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } + withSourcesJar() +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/kotlin-gradle-plugin.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/kotlin-gradle-plugin.gradle.kts new file mode 100644 index 0000000000..4174088ab9 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/kotlin-gradle-plugin.gradle.kts @@ -0,0 +1,37 @@ +package buildsrc.conventions + +plugins { + id("buildsrc.conventions.base") + id("buildsrc.conventions.java-base") + id("org.gradle.kotlin.kotlin-dsl") + id("com.gradle.plugin-publish") +} + +tasks.validatePlugins { + enableStricterValidation.set(true) +} + +val createJavadocJarReadme by tasks.registering(Sync::class) { + description = "generate a readme.txt for the Javadoc JAR" + from( + resources.text.fromString( + """ + This Javadoc JAR is intentionally empty. + + For documentation, see the sources JAR or https://github.com/adamko-dev/dokkatoo/ + + """.trimIndent() + ) + ) { + rename { "readme.txt" } + } + into(temporaryDir) +} + + +// The Gradle Publish Plugin enables the Javadoc JAR in afterEvaluate, so find it lazily +tasks.withType() + .matching { it.name == "javadocJar" } + .configureEach { + from(createJavadocJarReadme) + } diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publish-test.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publish-test.gradle.kts new file mode 100644 index 0000000000..38678b5bab --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publish-test.gradle.kts @@ -0,0 +1,93 @@ +package buildsrc.conventions + +import buildsrc.settings.MavenPublishTestSettings +import buildsrc.utils.* + + +/** Utility for publishing a project to a local Maven directory for use in integration tests. */ + +plugins { + base +} + +val Gradle.rootGradle: Gradle get() = generateSequence(gradle) { it.parent }.last() + +val mavenPublishTestExtension = extensions.create( + "mavenPublishTest", + gradle.rootGradle.rootProject.layout.buildDirectory.dir("test-maven-repo"), +) + + +val publishToTestMavenRepo by tasks.registering { + group = PublishingPlugin.PUBLISH_TASK_GROUP + description = "Publishes all Maven publications to the test Maven repository." +} + + +plugins.withType().all { + extensions + .getByType() + .publications + .withType().all publication@{ + val publicationName = this@publication.name + val installTaskName = "publish${publicationName.uppercaseFirstChar()}PublicationToTestMavenRepo" + + // Register a publication task for each publication. + // Use PublishToMavenLocal, because the PublishToMavenRepository task will *always* create + // a new jar, even if nothing has changed, and append a timestamp, which results in a large + // directory and tasks are never up-to-date. + // PublishToMavenLocal does not append a timestamp, so the target directory is smaller, and + // up-to-date checks work. + val installTask = tasks.register(installTaskName) { + description = "Publishes Maven publication '$publicationName' to the test Maven repository." + group = PublishingPlugin.PUBLISH_TASK_GROUP + outputs.cacheIf { true } + publication = this@publication + val destinationDir = mavenPublishTestExtension.testMavenRepo.get().asFile + inputs.property("testMavenRepoTempDir", destinationDir.invariantSeparatorsPath) + doFirst { + /** + * `maven.repo.local` will set the destination directory for this [PublishToMavenLocal] task. + * + * @see org.gradle.api.internal.artifacts.mvnsettings.DefaultLocalMavenRepositoryLocator.getLocalMavenRepository + */ + System.setProperty("maven.repo.local", destinationDir.absolutePath) + } + } + + publishToTestMavenRepo.configure { + dependsOn(installTask) + } + + tasks.check { + mustRunAfter(installTask) + } + } +} + + +val testMavenPublication by configurations.registering { + asConsumer() + attributes { + attribute(MavenPublishTestSettings.attribute, "testMavenRepo") + } +} + +val testMavenPublicationElements by configurations.registering { + asProvider() + extendsFrom(testMavenPublication.get()) + attributes { + attribute(MavenPublishTestSettings.attribute, "testMavenRepo") + } + outgoing { + artifact(mavenPublishTestExtension.testMavenRepo) { + builtBy(publishToTestMavenRepo) + } + } +} + +dependencies { + attributesSchema { + attribute(MavenPublishTestSettings.attribute) + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publishing.gradle.kts b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publishing.gradle.kts new file mode 100644 index 0000000000..7af7b69f91 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/conventions/maven-publishing.gradle.kts @@ -0,0 +1,137 @@ +package buildsrc.conventions + +import buildsrc.settings.MavenPublishingSettings + +plugins { + `maven-publish` + signing +} + +val mavenPublishing = + extensions.create(MavenPublishingSettings.EXTENSION_NAME, project) + + +//region POM convention +publishing { + publications.withType().configureEach { + pom { + name.convention("Dokkatoo") + description.convention("Dokkatoo is a Gradle plugin that generates documentation for your Kotlin projects") + url.convention("https://github.com/adamko-dev/dokkatoo") + + scm { + connection.convention("scm:git:https://github.com/adamko-dev/dokkatoo") + developerConnection.convention("scm:git:https://github.com/adamko-dev/dokkatoo") + url.convention("https://github.com/adamko-dev/dokkatoo") + } + + licenses { + license { + name.convention("Apache-2.0") + url.convention("https://www.apache.org/licenses/LICENSE-2.0.txt") + } + } + + developers { + developer { + email.set("adam@adamko.dev") + } + } + } + } +} +//endregion + + +//region GitHub branch publishing +publishing { + repositories { + maven(mavenPublishing.githubPublishDir) { + name = "GitHubPublish" + } + } +} +//endregion + + +//region Maven Central publishing/signing +publishing { + repositories { + val mavenCentralUsername = mavenPublishing.mavenCentralUsername.orNull + val mavenCentralPassword = mavenPublishing.mavenCentralPassword.orNull + if (!mavenCentralUsername.isNullOrBlank() && !mavenCentralPassword.isNullOrBlank()) { + maven(mavenPublishing.sonatypeReleaseUrl) { + name = "SonatypeRelease" + credentials { + username = mavenCentralUsername + password = mavenCentralPassword + } + } + } + } + + // com.gradle.plugin-publish automatically adds a Javadoc jar +} + +signing { + logger.info("maven-publishing.gradle.kts enabled signing for ${project.path}") + + val keyId = mavenPublishing.signingKeyId.orNull + val key = mavenPublishing.signingKey.orNull + val password = mavenPublishing.signingPassword.orNull + + if (!keyId.isNullOrBlank() && !key.isNullOrBlank() && !password.isNullOrBlank()) { + useInMemoryPgpKeys(keyId, key, password) + } + + setRequired({ + gradle.taskGraph.allTasks.filterIsInstance().any { + it.repository.name == "SonatypeRelease" + } + }) +} + +//afterEvaluate { +// com.gradle.plugin-publish automatically signs tasks in a weird way, that stops this from working: +// signing { +// sign(publishing.publications) +// } +//} +//endregion + + +//region Fix Gradle warning about signing tasks using publishing task outputs without explicit dependencies +// https://youtrack.jetbrains.com/issue/KT-46466 https://github.com/gradle/gradle/issues/26091 +tasks.withType().configureEach { + val signingTasks = tasks.withType() + mustRunAfter(signingTasks) +} +//endregion + + +//region publishing logging +tasks.withType().configureEach { + val publicationGAV = provider { publication?.run { "$group:$artifactId:$version" } } + doLast("log publication GAV") { + if (publicationGAV.isPresent) { + logger.lifecycle("[task: ${path}] ${publicationGAV.get()}") + } + } +} +//endregion + + +//region IJ workarounds +// manually define the Kotlin DSL accessors because IntelliJ _still_ doesn't load them properly +fun Project.publishing(configure: PublishingExtension.() -> Unit): Unit = + extensions.configure(configure) + +val Project.publishing: PublishingExtension + get() = extensions.getByType() + +fun Project.signing(configure: SigningExtension.() -> Unit): Unit = + extensions.configure(configure) + +val Project.signing: SigningExtension + get() = extensions.getByType() +//endregion diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaSourceDownloaderSettings.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaSourceDownloaderSettings.kt new file mode 100644 index 0000000000..c3f9906c79 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaSourceDownloaderSettings.kt @@ -0,0 +1,13 @@ +package buildsrc.settings + +import org.gradle.api.plugins.ExtensionAware +import org.gradle.api.provider.Property + +abstract class DokkaSourceDownloaderSettings : ExtensionAware { + + abstract val dokkaVersion: Property + + companion object { + const val EXTENSION_NAME = "dokkaSourceDownload" + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaTemplateProjectSettings.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaTemplateProjectSettings.kt new file mode 100644 index 0000000000..7bacafb9b2 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkaTemplateProjectSettings.kt @@ -0,0 +1,96 @@ +package buildsrc.settings + +import buildsrc.utils.adding +import buildsrc.utils.domainObjectContainer +import buildsrc.utils.toAlphaNumericCamelCase +import javax.inject.Inject +import org.gradle.api.Named +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.file.ConfigurableFileCollection +import org.gradle.api.file.CopySpec +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.model.ObjectFactory +import org.gradle.api.plugins.ExtensionAware +import org.gradle.api.provider.Property +import org.gradle.api.provider.SetProperty +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Optional +import org.gradle.kotlin.dsl.* + +private typealias TemplateProjectsContainer = NamedDomainObjectContainer + +abstract class DokkaTemplateProjectSettings @Inject constructor( + private val objects: ObjectFactory, + private val copySpecs: () -> CopySpec +) : ExtensionAware { + + /** Directory that will contain the projects downloaded from the Dokka source code. */ + abstract val dokkaSourceDir: DirectoryProperty + + abstract val destinationBaseDir: DirectoryProperty + + internal val templateProjects: TemplateProjectsContainer = + // create an extension so Gradle will generate DSL accessors + extensions.adding("templateProjects", objects.domainObjectContainer { name -> + objects.newInstance(name, copySpecs()) + }) + + /** + * Copy a directory from the Dokka source project into a local directory. + * + * @param[source] Source dir, relative to [templateProjectsDir] + * @param[destination] Destination dir, relative to [destinationBaseDir] + */ + fun register( + source: String, + destination: String, + configure: DokkaTemplateProjectSpec.() -> Unit = {}, + ) { + val name = source.toAlphaNumericCamelCase() + templateProjects.register(name) { + this.sourcePath.set(source) + this.destinationPath.set(destination) + configure() + } + } + + fun configureEach(configure: DokkaTemplateProjectSpec.() -> Unit) { + templateProjects.configureEach(configure) + } + + /** + * Details for how to copy a Dokka template project from the Dokka project to a local directory. + */ + abstract class DokkaTemplateProjectSpec @Inject constructor( + private val named: String, + @get:Internal + internal val copySpec: CopySpec, + ) : Named { + + @get:Input + abstract val sourcePath: Property + + @get:Input + @get:Optional + abstract val destinationPath: Property + + @get:Input + abstract val additionalPaths: SetProperty + + @get:InputFiles + abstract val additionalFiles: ConfigurableFileCollection + + fun configureCopy(configure: CopySpec.() -> Unit) { + copySpec.configure() + } + + @Input + override fun getName(): String = named + } + + companion object { + const val EXTENSION_NAME = "dokkaTemplateProjects" + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkatooExampleProjectsSettings.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkatooExampleProjectsSettings.kt new file mode 100644 index 0000000000..a312490475 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/DokkatooExampleProjectsSettings.kt @@ -0,0 +1,62 @@ +package buildsrc.settings + +import buildsrc.utils.adding +import buildsrc.utils.domainObjectContainer +import javax.inject.Inject +import org.gradle.api.Named +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.RegularFile +import org.gradle.api.model.ObjectFactory +import org.gradle.api.plugins.ExtensionAware +import org.gradle.api.provider.ListProperty +import org.gradle.api.provider.Provider +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Optional +import org.gradle.api.tasks.OutputFile + +/** + * Settings for the [buildsrc.conventions.Dokkatoo_example_projects_gradle] convention plugin + */ +abstract class DokkatooExampleProjectsSettings @Inject constructor( + objects: ObjectFactory, +) : ExtensionAware { + + val exampleProjects: NamedDomainObjectContainer = + // create an extension so Gradle will generate DSL accessors + extensions.adding("exampleProjects", objects.domainObjectContainer()) + + abstract class DokkatooExampleProjectSpec( + private val name: String + ): Named { + + /** The `gradle.properties` file of the example project */ + @get:OutputFile + val gradlePropertiesFile: Provider + get() = exampleProjectDir.file("gradle.properties") + + /** The directory that contains the example project */ + @get:Internal + abstract val exampleProjectDir: DirectoryProperty + + /** + * Content to add to the `gradle.properties` file. + * + * Elements may span multiple lines. + * + * Elements will be sorted before appending to the file (to improve caching & reproducibility). + */ + @get:Input + @get:Optional + abstract val gradlePropertiesContent: ListProperty + + @Input + override fun getName(): String = name + } + + companion object { + const val TASK_GROUP = "dokkatoo examples" + const val EXTENSION_NAME = "dokkatooExampleProjects" + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishTestSettings.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishTestSettings.kt new file mode 100644 index 0000000000..0a701986c8 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishTestSettings.kt @@ -0,0 +1,19 @@ +package buildsrc.settings + +import org.gradle.api.attributes.Attribute +import org.gradle.api.file.Directory +import org.gradle.api.plugins.ExtensionAware +import org.gradle.api.provider.Provider + +/** + * Settings for the [buildsrc.conventions.Maven_publish_test_gradle] convention plugin. + */ +abstract class MavenPublishTestSettings( + val testMavenRepo: Provider +) : ExtensionAware { + val testMavenRepoPath: Provider = testMavenRepo.map { it.asFile.invariantSeparatorsPath } + + companion object { + val attribute = Attribute.of("maven-publish-test", String::class.java) + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishingSettings.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishingSettings.kt new file mode 100644 index 0000000000..9ec28faaf5 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/settings/MavenPublishingSettings.kt @@ -0,0 +1,68 @@ +package buildsrc.settings + +import java.io.File +import javax.inject.Inject +import org.gradle.api.Project +import org.gradle.api.provider.Provider +import org.gradle.api.provider.ProviderFactory +import org.gradle.kotlin.dsl.* + + +/** + * Settings for the [buildsrc.conventions.Maven_publish_test_gradle] convention plugin. + */ +abstract class MavenPublishingSettings @Inject constructor( + private val project: Project, + private val providers: ProviderFactory, +) { + + private val isReleaseVersion: Provider = + providers.provider { !project.version.toString().endsWith("-SNAPSHOT") } + + val sonatypeReleaseUrl: Provider = + isReleaseVersion.map { isRelease -> + if (isRelease) { + "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" + } else { + "https://s01.oss.sonatype.org/content/repositories/snapshots/" + } + } + + val mavenCentralUsername: Provider = + d2Prop("mavenCentralUsername") + .orElse(providers.environmentVariable("MAVEN_SONATYPE_USERNAME")) + val mavenCentralPassword: Provider = + d2Prop("mavenCentralPassword") + .orElse(providers.environmentVariable("MAVEN_SONATYPE_PASSWORD")) + + val signingKeyId: Provider = + d2Prop("signing.keyId") + .orElse(providers.environmentVariable("MAVEN_SONATYPE_SIGNING_KEY_ID")) + val signingKey: Provider = + d2Prop("signing.key") + .orElse(providers.environmentVariable("MAVEN_SONATYPE_SIGNING_KEY")) + val signingPassword: Provider = + d2Prop("signing.password") + .orElse(providers.environmentVariable("MAVEN_SONATYPE_SIGNING_PASSWORD")) + + val githubPublishDir: Provider = + providers.environmentVariable("GITHUB_PUBLISH_DIR").map { File(it) } + + private fun d2Prop(name: String): Provider = + providers.gradleProperty("org.jetbrains.dokka.dokkatoo.$name") + + private fun d2Prop(name: String, convert: (String) -> T): Provider = + d2Prop(name).map(convert) + + companion object { + const val EXTENSION_NAME = "mavenPublishing" + + /** Retrieve the [KayrayBuildProperties] extension. */ + internal val Project.mavenPublishing: MavenPublishingSettings + get() = extensions.getByType() + + /** Configure the [KayrayBuildProperties] extension. */ + internal fun Project.mavenPublishing(configure: MavenPublishingSettings.() -> Unit) = + extensions.configure(configure) + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/SetupDokkaProjects.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/SetupDokkaProjects.kt new file mode 100644 index 0000000000..d473d28741 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/SetupDokkaProjects.kt @@ -0,0 +1,73 @@ +package buildsrc.tasks + +import buildsrc.settings.DokkaTemplateProjectSettings.DokkaTemplateProjectSpec +import javax.inject.Inject +import org.gradle.api.DefaultTask +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.FileCollection +import org.gradle.api.file.FileSystemOperations +import org.gradle.api.file.ProjectLayout +import org.gradle.api.provider.ProviderFactory +import org.gradle.api.tasks.* + +abstract class SetupDokkaProjects @Inject constructor( + private val fs: FileSystemOperations, + private val layout: ProjectLayout, + private val providers: ProviderFactory, +) : DefaultTask() { + + @get:OutputDirectories + val destinationDirs: FileCollection + get() = layout.files( + destinationBaseDir.map { base -> + templateProjects.map { spec -> base.dir(spec.destinationPath) } + } + ) + + @get:Internal // tracked by destinationDirs + abstract val destinationBaseDir: DirectoryProperty + + @get:Nested + abstract val templateProjects: NamedDomainObjectContainer + + @get:InputDirectory + abstract val dokkaSourceDir: DirectoryProperty + + @get:InputFiles + val additionalFiles: FileCollection + get() = layout.files( + providers.provider { + templateProjects.map { it.additionalFiles } + } + ) + + init { + group = "dokka examples" + } + + @TaskAction + internal fun action() { + val dokkaSourceDir = dokkaSourceDir.get() + val destinationBaseDir = destinationBaseDir.get() + val templateProjects = templateProjects.filter { it.destinationPath.isPresent } + + templateProjects.forEach { spec -> + fs.sync { + with(spec.copySpec) + + from(dokkaSourceDir.dir(spec.sourcePath)) + + from( + spec.additionalPaths.get().map { additionalPath -> + dokkaSourceDir.asFile.resolve(additionalPath) + } + ) + + from(spec.additionalFiles) + + into(destinationBaseDir.dir(spec.destinationPath)) + } + } + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/UpdateDokkatooExampleProjects.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/UpdateDokkatooExampleProjects.kt new file mode 100644 index 0000000000..7737e0988b --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/tasks/UpdateDokkatooExampleProjects.kt @@ -0,0 +1,49 @@ +package buildsrc.tasks + +import buildsrc.settings.DokkatooExampleProjectsSettings.DokkatooExampleProjectSpec +import javax.inject.Inject +import org.gradle.api.DefaultTask +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.model.ObjectFactory +import org.gradle.api.tasks.CacheableTask +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Nested +import org.gradle.api.tasks.TaskAction + +/** + * Utility for updating the `gradle.properties` of projects used in automated tests. + */ +@CacheableTask +abstract class UpdateDokkatooExampleProjects @Inject constructor( + @get:Internal + val objects: ObjectFactory +) : DefaultTask() { + + @get:Nested + abstract val exampleProjects: NamedDomainObjectContainer + + private val taskPath: String = path // renamed for clarity + + @TaskAction + fun update() { + exampleProjects.forEach { exampleProject -> + updateGradleProperties(exampleProject) + } + } + + private fun updateGradleProperties(exampleProject: DokkatooExampleProjectSpec) { + + val gradlePropertiesContent = exampleProject.gradlePropertiesContent.orNull?.sorted() ?: return + + val content = buildString { + appendLine("# DO NOT EDIT - Generated by $taskPath") + appendLine() + + gradlePropertiesContent.forEach { + appendLine(it) + } + } + + exampleProject.gradlePropertiesFile.get().asFile.writeText(content) + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/gradle.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/gradle.kt new file mode 100644 index 0000000000..0af662d496 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/gradle.kt @@ -0,0 +1,118 @@ +package buildsrc.utils + +import java.io.File +import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.NamedDomainObjectFactory +import org.gradle.api.Project +import org.gradle.api.artifacts.Configuration +import org.gradle.api.component.AdhocComponentWithVariants +import org.gradle.api.file.RelativePath +import org.gradle.api.model.ObjectFactory +import org.gradle.api.plugins.ExtensionContainer +import org.gradle.kotlin.dsl.* + +/** + * Mark this [Configuration] as one that will be consumed by other subprojects. + * + * ``` + * isCanBeResolved = false + * isCanBeConsumed = true + * ``` + */ +fun Configuration.asProvider( + visible: Boolean = true +) { + isVisible = visible + isCanBeResolved = false + isCanBeConsumed = true +} + +/** + * Mark this [Configuration] as one that will consume artifacts from other subprojects (also known as 'resolving') + * + * ``` + * isCanBeResolved = true + * isCanBeConsumed = false + * ``` + * */ +fun Configuration.asConsumer( + visible: Boolean = false +) { + isVisible = visible + isCanBeResolved = true + isCanBeConsumed = false +} + + +/** Drop the first [count] directories from the path */ +fun RelativePath.dropDirectories(count: Int): RelativePath = + RelativePath(true, *segments.drop(count).toTypedArray()) + + +/** Drop the first directory from the path */ +fun RelativePath.dropDirectory(): RelativePath = + dropDirectories(1) + + +/** Drop the first directory from the path */ +fun RelativePath.dropDirectoriesWhile( + segmentPrediate: (segment: String) -> Boolean +): RelativePath = + RelativePath( + true, + *segments.dropWhile(segmentPrediate).toTypedArray(), + ) + + +/** + * Don't publish test fixtures (which causes warnings when publishing) + * + * https://docs.gradle.org/current/userguide/java_testing.html#publishing_test_fixtures + */ +fun Project.skipTestFixturesPublications() { + val javaComponent = components["java"] as AdhocComponentWithVariants + javaComponent.withVariantsFromConfiguration(configurations["testFixturesApiElements"]) { skip() } + javaComponent.withVariantsFromConfiguration(configurations["testFixturesRuntimeElements"]) { skip() } +} + + +/** + * Add an extension to the [ExtensionContainer], and return the value. + * + * Adding an extension is especially useful for improving the DSL in build scripts when [T] is a + * [NamedDomainObjectContainer]. + * Using an extension will allow Gradle to generate + * [type-safe model accessors](https://docs.gradle.org/current/userguide/kotlin_dsl.html#kotdsl:accessor_applicability) + * for added types. + * + * ([name] should match the property name. This has to be done manually. I tried using a + * delegated-property provider but then Gradle can't introspect the types properly, so it fails to + * create accessors). + */ +internal inline fun ExtensionContainer.adding( + name: String, + value: T, +): T { + add(name, value) + return value +} + +/** + * Create a new [NamedDomainObjectContainer], using + * [org.gradle.kotlin.dsl.domainObjectContainer] + * (but [T] is `reified`). + * + * @param[factory] an optional factory for creating elements + * @see org.gradle.kotlin.dsl.domainObjectContainer + */ +internal inline fun ObjectFactory.domainObjectContainer( + factory: NamedDomainObjectFactory? = null +): NamedDomainObjectContainer = + if (factory == null) { + domainObjectContainer(T::class) + } else { + domainObjectContainer(T::class, factory) + } + +/** workaround for the overly verbose replacement for the deprecated [Project.getBuildDir] property */ +val Project.buildDir_: File get() = layout.buildDirectory.get().asFile diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/intellij.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/intellij.kt new file mode 100644 index 0000000000..f93e76837d --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/intellij.kt @@ -0,0 +1,45 @@ +package buildsrc.utils + +import org.gradle.api.Project +import org.gradle.api.file.ProjectLayout +import org.gradle.plugins.ide.idea.model.IdeaModule + + +/** exclude generated Gradle code, so it doesn't clog up search results */ +fun IdeaModule.excludeGeneratedGradleDsl(layout: ProjectLayout) { + + val generatedSrcDirs = listOf( + "kotlin-dsl-accessors", + "kotlin-dsl-external-plugin-spec-builders", + "kotlin-dsl-plugins", + ) + + excludeDirs.addAll( + layout.projectDirectory.asFile.walk() + .filter { it.isDirectory && it.parentFile.name in generatedSrcDirs } + .flatMap { file -> + file.walk().maxDepth(1).filter { it.isDirectory }.toList() + } + ) +} + + +/** Sets a logo for project IDEs */ +fun Project.initIdeProjectLogo( + svgLogoPath: String +) { + val logoSvg = rootProject.layout.projectDirectory.file(svgLogoPath) + val ideaDir = rootProject.layout.projectDirectory.dir(".idea") + + if ( + logoSvg.asFile.exists() + && ideaDir.asFile.exists() + && !ideaDir.file("icon.png").asFile.exists() + && !ideaDir.file("icon.svg").asFile.exists() + ) { + copy { + from(logoSvg) { rename { "icon.svg" } } + into(ideaDir) + } + } +} diff --git a/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/strings.kt b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/strings.kt new file mode 100644 index 0000000000..6a0749ceb7 --- /dev/null +++ b/dokka-runners/dokkatoo/buildSrc/src/main/kotlin/buildsrc/utils/strings.kt @@ -0,0 +1,26 @@ +package buildsrc.utils + + +/** Title case the first char of a string */ +internal fun String.uppercaseFirstChar(): String = mapFirstChar(Character::toTitleCase) + + +/** Lowercase the first char of a string */ +internal fun String.lowercaseFirstChar(): String = mapFirstChar(Character::toLowerCase) + + +private inline fun String.mapFirstChar( + transform: (Char) -> Char +): String = if (isNotEmpty()) transform(this[0]) + substring(1) else this + + +/** + * Exclude all non-alphanumeric characters and converts the result into a camelCase string. + */ +internal fun String.toAlphaNumericCamelCase(): String = + map { if (it.isLetterOrDigit()) it else ' ' } + .joinToString("") + .split(" ") + .filter { it.isNotBlank() } + .joinToString("") { it.uppercaseFirstChar() } + .lowercaseFirstChar() diff --git a/dokka-runners/dokkatoo/devOps/release.main.kts b/dokka-runners/dokkatoo/devOps/release.main.kts new file mode 100644 index 0000000000..a75557191c --- /dev/null +++ b/dokka-runners/dokkatoo/devOps/release.main.kts @@ -0,0 +1,415 @@ +#!/usr/bin/env kotlin +@file:DependsOn("com.github.ajalt.clikt:clikt-jvm:3.5.2") +@file:DependsOn("me.alllex.parsus:parsus-jvm:0.4.0") +@file:DependsOn("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3") + +import Release_main.SemVer.Companion.SemVer +import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.parameters.options.flag +import com.github.ajalt.clikt.parameters.options.option +import java.io.File +import java.util.concurrent.TimeUnit.MINUTES +import kotlin.system.exitProcess +import kotlin.time.Duration.Companion.seconds +import kotlinx.coroutines.delay +import kotlinx.coroutines.runBlocking +import me.alllex.parsus.parser.* +import me.alllex.parsus.token.literalToken +import me.alllex.parsus.token.regexToken + +try { + Release.main(args) + exitProcess(0) +} catch (ex: Exception) { + println("${ex::class.simpleName}: ${ex.message}") + exitProcess(1) +} + +/** + * Release a new version. + * + * Requires: + * * [gh cli](https://cli.github.com/manual/gh) + * * [kotlin](https://kotlinlang.org/docs/command-line.html) + * * [git](https://git-scm.com/) + */ +// based on https://github.com/apollographql/apollo-kotlin/blob/v4.0.0-dev.2/scripts/release.main.kts +object Release : CliktCommand() { + private val skipGitValidation by option( + "--skip-git-validation", + help = "skips git status validation" + ).flag(default = false) + + override fun run() { + echo("Current Dokkatoo version is $dokkatooVersion") + echo("git dir is ${Git.rootDir}") + + val startBranch = Git.currentBranch() + + validateGitStatus(startBranch) + + val releaseVersion = semverPrompt( + text = "version to release?", + default = dokkatooVersion.copy(snapshot = false), + ) { + if (it.snapshot) { + echo("versionToRelease must not be a snapshot version, but was $it") + } + !it.snapshot + } + val nextVersion = semverPrompt( + text = "post-release version?", + default = releaseVersion.incrementMinor(snapshot = true), + ) + updateVersionCreatePR(releaseVersion) + + // switch back to the main branch + Git.switch(startBranch) + Git.pull(startBranch) + + // Tag the release + createAndPushTag(releaseVersion) + + confirm("Publish plugins to Gradle Plugin Portal?", abort = true) + Gradle.publishPlugins() + + // Bump the version to the next snapshot + updateVersionCreatePR(nextVersion) + + // Go back and pull the changes + Git.switch(startBranch) + Git.pull(startBranch) + + echo("Released version $releaseVersion") + } + + private fun validateGitStatus(startBranch: String) { + if (skipGitValidation) { + echo("skipping git status validation") + return + } + check(Git.status().isEmpty()) { + "git repo is not clean. Stash or commit changes before making a release." + } + check(dokkatooVersion.snapshot) { + "Current version must be a SNAPSHOT, but was $dokkatooVersion" + } + check(startBranch == "main") { + "Must be on the main branch to make a release, but current branch is $startBranch" + } + } + + /** + * @param[validate] returns `null` if the provided SemVer is valid, or else an error message + * explaining why it is invalid. + */ + private tailrec fun semverPrompt( + text: String, + default: SemVer, + validate: (candidate: SemVer) -> Boolean = { true }, + ): SemVer { + val response = prompt( + text = text, + default = default.toString(), + requireConfirmation = true, + ) { + SemVer.of(it) + } + + return if (response == null || !validate(response)) { + if (response == null) echo("invalid SemVer") + semverPrompt(text, default, validate) + } else { + response + } + } + + private fun updateVersionCreatePR(version: SemVer) { + // checkout a release branch + val releaseBranch = "release/v$version" + echo("checkout out new branch...") + Git.switch(releaseBranch, create = true) + + // update the version & run tests + dokkatooVersion = version + echo("running Gradle check...") + Gradle.check() + + // commit and push + echo("committing...") + Git.commit("release $version") + echo("pushing...") + Git.push(releaseBranch) + + // create a new PR + echo("creating PR...") + GitHub.createPr(releaseBranch) + + confirm("Merge the PR for branch $releaseBranch?", abort = true) + mergeAndWait(releaseBranch) + echo("$releaseBranch PR merged") + } + + private fun createAndPushTag(version: SemVer) { + // Tag the release + require(dokkatooVersion == version) { + "tried to create a tag, but project version does not match provided version. Expected $version but got $dokkatooVersion" + } + val tagName = "v$version" + Git.tag(tagName) + confirm("Push tag $tagName?", abort = true) + Git.push(tagName) + echo("Tag pushed") + + confirm("Publish plugins to Gradle Plugin Portal?", abort = true) + Gradle.publishPlugins() + } + + private val buildGradleKts: File by lazy { + val rootDir = Git.rootDir + File("$rootDir/build.gradle.kts").apply { + require(exists()) { "could not find build.gradle.kts in $rootDir" } + } + } + + /** Read/write the version set in the root `build.gradle.kts` file */ + private var dokkatooVersion: SemVer + get() { + val rawVersion = Gradle.dokkatooVersion() + return SemVer(rawVersion) + } + set(value) { + val updatedFile = buildGradleKts.useLines { lines -> + lines.joinToString(separator = "\n", postfix = "\n") { line -> + if (line.startsWith("version = ")) { + "version = \"${value}\"" + } else { + line + } + } + } + buildGradleKts.writeText(updatedFile) + } + + private fun mergeAndWait(branchName: String): Unit = runBlocking { + GitHub.autoMergePr(branchName) + echo("Waiting for the PR to be merged...") + while (GitHub.prState(branchName) != "MERGED") { + delay(1.seconds) + echo(".", trailingNewline = false) + } + } +} + +private abstract class CliTool { + + protected fun runCommand( + cmd: String, + dir: File? = Git.rootDir, + logOutput: Boolean = true, + ): String { + val args = parseSpaceSeparatedArgs(cmd) + + val process = ProcessBuilder(args).apply { + redirectOutput(ProcessBuilder.Redirect.PIPE) + redirectInput(ProcessBuilder.Redirect.PIPE) + redirectErrorStream(true) + if (dir != null) directory(dir) + }.start() + + val processOutput = process.inputStream + .bufferedReader() + .lineSequence() + .onEach { if (logOutput) println("\t$it") } + .joinToString("\n") + .trim() + + process.waitFor(10, MINUTES) + + val exitCode = process.exitValue() + + if (exitCode != 0) { + error("command '$cmd' failed:\n${processOutput}") + } + + return processOutput + } + + private data class ProcessResult( + val exitCode: Int, + val output: String, + ) + + companion object { + private fun parseSpaceSeparatedArgs(argsString: String): List { + val parsedArgs = mutableListOf() + var inQuotes = false + var currentCharSequence = StringBuilder() + fun saveArg(wasInQuotes: Boolean) { + if (wasInQuotes || currentCharSequence.isNotBlank()) { + parsedArgs.add(currentCharSequence.toString()) + currentCharSequence = StringBuilder() + } + } + argsString.forEach { char -> + if (char == '"') { + inQuotes = !inQuotes + // Save value which was in quotes. + if (!inQuotes) { + saveArg(true) + } + } else if (char.isWhitespace() && !inQuotes) { + // Space is separator + saveArg(false) + } else { + currentCharSequence.append(char) + } + } + if (inQuotes) { + error("No close-quote was found in $currentCharSequence.") + } + saveArg(false) + return parsedArgs + } + } +} + +/** git commands */ +private object Git : CliTool() { + val rootDir = File(runCommand("git rev-parse --show-toplevel", dir = null)) + + init { + require(rootDir.exists()) { "could not determine root git directory" } + } + + fun switch(branch: String, create: Boolean = false): String { + return runCommand( + buildString { + append("git switch ") + if (create) append("--create ") + append(branch) + } + ) + } + + fun commit(message: String): String = runCommand("git commit -a -m \"$message\"") + fun currentBranch(): String = runCommand("git symbolic-ref --short HEAD") + fun pull(ref: String): String = runCommand("git pull origin $ref") + fun push(ref: String): String = runCommand("git push origin $ref") + fun status(): String { + runCommand("git fetch --all") + return runCommand("git status --porcelain=v2") + } + + fun tag(tag: String): String { + return runCommand("git tag $tag") + } +} + +/** GitHub commands */ +private object GitHub : CliTool() { + + init { + setRepo("adamko-dev/dokkatoo") + } + + fun setRepo(repo: String): String = + runCommand("gh repo set-default $repo") + + fun prState(branchName: String): String = + runCommand("gh pr view $branchName --json state --jq .state", logOutput = false) + + fun createPr(branch: String): String = + runCommand("gh pr create --head $branch --fill") + + fun autoMergePr(branch: String): String = + runCommand("gh pr merge $branch --squash --auto --delete-branch") + + fun waitForPrChecks(branch: String): String = + runCommand("gh pr checks $branch --watch --interval 30") +} + +/** GitHub commands */ +private object Gradle : CliTool() { + + val gradlew: String + + init { + val osName = System.getProperty("os.name").lowercase() + gradlew = if ("win" in osName) "./gradlew.bat" else "./gradlew" + } + + fun stopDaemons(): String = runCommand("$gradlew --stop") + + fun dokkatooVersion(): String { + stopDaemons() + return runCommand("$gradlew :dokkatooVersion --quiet --no-daemon") + } + + fun check(): String { + stopDaemons() + return runCommand("$gradlew check --no-daemon") + } + + fun publishPlugins(): String { + stopDaemons() + return runCommand("$gradlew publishPlugins --no-daemon --no-configuration-cache") + } +} + +private data class SemVer( + val major: Int, + val minor: Int, + val patch: Int, + val snapshot: Boolean, +) { + + fun incrementMinor(snapshot: Boolean): SemVer = + copy(minor = minor + 1, snapshot = snapshot) + + override fun toString(): String = + "$major.$minor.$patch" + if (snapshot) "-SNAPSHOT" else "" + + companion object { + fun SemVer(input: String): SemVer = + SemVerParser.parseEntire(input).getOrElse { error -> + error("provided version to release must be SemVer X.Y.Z, but got error while parsing: $error") + } + + fun of(input: String): SemVer? = + SemVerParser.parseEntire(input).getOrElse { return null } + + fun isValid(input: String): Boolean = + try { + SemVerParser.parseEntireOrThrow(input) + true + } catch (ex: ParseException) { + false + } + } + + private object SemVerParser : Grammar() { + private val dotSeparator by literalToken(".") + private val dashSeparator by literalToken("-") + + /** Non-negative number that is either 0, or does not start with 0 */ + private val number: Parser by regexToken("""0|[1-9]\d*""").map { it.text.toInt() } + + private val snapshot by -dashSeparator * literalToken("SNAPSHOT") + + override val root: Parser by parser { + val major = number() + dotSeparator() + val minor = number() + dotSeparator() + val patch = number() + val snapshot = checkPresent(snapshot) + SemVer( + major = major, + minor = minor, + patch = patch, + snapshot = snapshot, + ) + } + } +} diff --git a/dokka-runners/dokkatoo/examples/.gitignore b/dokka-runners/dokkatoo/examples/.gitignore new file mode 100644 index 0000000000..4a1da3f8cc --- /dev/null +++ b/dokka-runners/dokkatoo/examples/.gitignore @@ -0,0 +1,10 @@ +.idea +**/gradle/wrapper/** +gradlew.bat +gradlew +gradle.properties + +versioning-multimodule-example/dokka/previousDocVersions + +# these are test projects, so don't commit the lock file +**/kotlin-js-store/yarn.lock diff --git a/dokka-runners/dokkatoo/examples/README.md b/dokka-runners/dokkatoo/examples/README.md new file mode 100644 index 0000000000..f39abb5b44 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/README.md @@ -0,0 +1,18 @@ +# Dokkatoo Examples + +Examples of how to use Dokkatoo. + +The examples are copied from the Dokka project. + +### Set up + +The Dokka examples are synced automatically from the Dokka source code. + +### Tests + +The projects are tested in the +[`:modules:dokkatoo-plugin-integration-tests`](./../modules/dokkatoo-plugin-integration-tests/) +project. + +The Dokka Publications generated by the Dokka examples are compared against the Dokka +Publications generated by the Dokkatoo projects. diff --git a/dokka-runners/dokkatoo/examples/build.gradle.kts b/dokka-runners/dokkatoo/examples/build.gradle.kts new file mode 100644 index 0000000000..da366c88e1 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/build.gradle.kts @@ -0,0 +1,48 @@ +plugins { + buildsrc.conventions.`maven-publish-test` + buildsrc.conventions.`dokkatoo-example-projects` +} + +dokkaTemplateProjects { + register( + source = "examples/gradle/dokka-customFormat-example", + destination = "custom-format-example/dokka" + ) + register( + source = "examples/gradle/dokka-gradle-example", + destination = "gradle-example/dokka" + ) + register( + source = "examples/gradle/dokka-kotlinAsJava-example", + destination = "kotlin-as-java-example/dokka" + ) + register( + source = "examples/gradle/dokka-library-publishing-example", + destination = "library-publishing-example/dokka" + ) + register( + source = "examples/gradle/dokka-multimodule-example", + destination = "multimodule-example/dokka" + ) + register( + source = "examples/gradle/dokka-multiplatform-example", + destination = "multiplatform-example/dokka" + ) + register( + source = "examples/gradle/dokka-versioning-multimodule-example", + destination = "versioning-multimodule-example/dokka" + ) +} + +configurations.exampleProjectsElements.configure { + outgoing { + artifact(projectDir) { + builtBy(tasks.updateDokkatooExamples) + type = "directory" + } + } +} + +dokkaSourceDownload { + dokkaVersion.set(libs.versions.kotlin.dokka) +} diff --git a/dokka-runners/dokkatoo/examples/custom-format-example/dokka/README.md b/dokka-runners/dokkatoo/examples/custom-format-example/dokka/README.md new file mode 100644 index 0000000000..a25cd80e52 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/custom-format-example/dokka/README.md @@ -0,0 +1,17 @@ +## Dokka custom format example + +This example demonstrates how to override `.css` styles and add custom images as assets, allowing +you to change the logo used in the header. + +You can see up-to-date documentation generated for this example on +[GitHub Pages](https://kotlin.github.io/dokka/examples/dokka-customFormat-example/html/index.html). + +![screenshot demonstration of output](demo.png) + +### Running + +Run `dokkaHtml` task to generate documentation with the custom logo in place: + +```bash +./gradlew dokkaHtml +``` diff --git a/dokka-runners/dokkatoo/examples/custom-format-example/dokka/build.gradle.kts b/dokka-runners/dokkatoo/examples/custom-format-example/dokka/build.gradle.kts new file mode 100644 index 0000000000..27540ee637 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/custom-format-example/dokka/build.gradle.kts @@ -0,0 +1,35 @@ +import org.jetbrains.dokka.gradle.DokkaTask +import org.jetbrains.dokka.base.DokkaBase +import org.jetbrains.dokka.base.DokkaBaseConfiguration + +plugins { + kotlin("jvm") version "1.9.0" + id("org.jetbrains.dokka") version "1.9.0" +} + +buildscript { + dependencies { + classpath("org.jetbrains.dokka:dokka-base:1.9.0") + } +} + +repositories { + mavenCentral() +} + +tasks.dokkaHtml { + pluginConfiguration { + // Dokka's stylesheets and assets with conflicting names will be overriden. + // In this particular case, logo-styles.css will be overriden and ktor-logo.png will + // be added as an additional image asset + customStyleSheets = listOf(file("logo-styles.css")) + customAssets = listOf(file("ktor-logo.png")) + + // Text used in the footer + footerMessage = "(c) Custom Format Dokka example" + } +} + +dependencies { + testImplementation(kotlin("test-junit")) +} diff --git a/dokka-runners/dokkatoo/examples/custom-format-example/dokka/demo.png b/dokka-runners/dokkatoo/examples/custom-format-example/dokka/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..8f9b88b01c3d7a348b915e48eed88c3fbd72edc8 GIT binary patch literal 77918 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 Y{rbbcmrp4E`!MO^Iah~9*p+|(2d25IxBvhE literal 0 HcmV?d00001 diff --git a/dokka-runners/dokkatoo/examples/custom-format-example/dokka/ktor-logo.png b/dokka-runners/dokkatoo/examples/custom-format-example/dokka/ktor-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ef943896522ec6199dec5df5ce370a526e6a534b GIT binary patch literal 179624 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 { + Greeter(args[0]).greet() +} diff --git a/dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/build.gradle.kts b/dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/build.gradle.kts new file mode 100644 index 0000000000..7832a8f90c --- /dev/null +++ b/dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/build.gradle.kts @@ -0,0 +1,18 @@ +plugins { + kotlin("jvm") version "1.9.0" + id("org.jetbrains.dokka.dokkatoo") version "2.1.0-SNAPSHOT" +} + +dokkatoo { + moduleName.set("customFormat-example") + pluginsConfiguration.html { + // Dokka's stylesheets and assets with conflicting names will be overridden. + // In this particular case, logo-styles.css will be overridden + // and ktor-logo.png will be added as an additional image asset + customStyleSheets.from("logo-styles.css") + customAssets.from("ktor-logo.png") + + // Text used in the footer + footerMessage.set("(c) Custom Format Dokka example") + } +} diff --git a/dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/ktor-logo.png b/dokka-runners/dokkatoo/examples/custom-format-example/dokkatoo/ktor-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ef943896522ec6199dec5df5ce370a526e6a534b GIT binary patch literal 179624 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 { + Greeter(args[0]).greet() +} diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokka/Module.md b/dokka-runners/dokkatoo/examples/gradle-example/dokka/Module.md new file mode 100644 index 0000000000..0d051cb141 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokka/Module.md @@ -0,0 +1,7 @@ +# Module Dokka Gradle Example + +This is an example of how you can write module documentation with Dokka. + +# Package demo + +This package contains a few examples of Dokka usage. diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokka/README.md b/dokka-runners/dokkatoo/examples/gradle-example/dokka/README.md new file mode 100644 index 0000000000..3401e8e96c --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokka/README.md @@ -0,0 +1,22 @@ +# Dokka Gradle example + +This example demonstrates how to apply Dokka in a simple single-project Gradle build, as well as how to configure it. + +Configuration changes: + +* Custom project name used in the header, `Dokka Gradle Example`. +* Description for the project and the packages taken from [Module.md](Module.md). +* Documentation contains source links that lead to declarations in this GitHub repository. + +You can see up-to-date documentation generated for this example on +[GitHub Pages](https://kotlin.github.io/dokka/examples/dokka-gradle-example/html/index.html). + +![screenshot demonstration of output](demo.png) + +### Running + +Run `dokkaHtml` task to generate documentation for this example: + +```bash +./gradlew dokkaHtml +``` diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokka/build.gradle.kts b/dokka-runners/dokkatoo/examples/gradle-example/dokka/build.gradle.kts new file mode 100644 index 0000000000..5f54ad9ded --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokka/build.gradle.kts @@ -0,0 +1,37 @@ +import org.jetbrains.dokka.gradle.DokkaTask +import java.net.URL + +plugins { + kotlin("jvm") version "1.9.0" + id("org.jetbrains.dokka") version "1.9.0" +} + +repositories { + mavenCentral() +} + +dependencies { + testImplementation(kotlin("test-junit")) +} + +tasks.withType().configureEach { + dokkaSourceSets { + named("main") { + // used as project name in the header + moduleName.set("Dokka Gradle Example") + + // contains descriptions for the module and the packages + includes.from("Module.md") + + // adds source links that lead to this repository, allowing readers + // to easily find source code for inspected declarations + sourceLink { + localDirectory.set(file("src/main/kotlin")) + remoteUrl.set(URL("https://github.com/Kotlin/dokka/tree/master/" + + "examples/gradle/dokka-gradle-example/src/main/kotlin" + )) + remoteLineSuffix.set("#L") + } + } + } +} diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokka/demo.png b/dokka-runners/dokkatoo/examples/gradle-example/dokka/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..4462f3b50345a4a17ebc6315d9d476fb8920535a GIT binary patch literal 71039 zcmdSBby$;+-#?1|!9rr7fGCrZ1EfR3VAKHF*kH88=ukpRz(U3-snH-YV#KJ?p#l;k zq@@*MNK4Bk&XmvhIscvOcb)5b&iVbub-~TOUGLrRuGf8s=<29lI?sNdj*jk!)K z7n+DmOh1#{)F|N78<&I%ktHQ0iUvCeHM`*#;=4eXy3UyBzJ*-5670PCyA6DCybFDe zbNjcCpZ}*j^J#vRsXMnezk3C!)ifBopE$k*lY|Jp<0CpYwTl;y4~rwNvi|$_busYq zQMJ4!>iFofXG_WP(bq+c#W9`tLyXOTBuC?=;MSWz!lJzl{+kH8d#UEeEFI$YATUTS zHj^NaWXVc8`cg6ZG_)@VPgq3sUDNI!+*b}K;G6f`a&o(jS+e+Ru+e;)X_;gRWnC=> zH$ZB4c}{q(0%U_F)d$+~n_^fM8ePDz3h4l}=JD51ZY_pcE~;&?wDMzNEJzik3Ie&n z@|#cQ+FwTQ%GKP-H%F>4B2`q7+DDF41lB6h(HcdVAa^!fkdQ~|&AxWbIR26@YFy&XYg9|V-4-3rX&&2R& z3ev7369c4)1&aYnJ0qY~Sp2!xtuTIye+#v~CeGgP#l7TDw}x%COhY`)Tg$kQe(qgj zfv`XT5G0G0iOaBK$NXh$^yA=TMaHHNY?KV{D}a%t*H{D+;r=vkZ;iq!ge+aQoXj-Z zkvf8qMlH4D;hR+n5(KRV0Yc3!Mi{a+iOnV%g1%f}_{p9<(Z`&zRh*~wnRltRry&)A zY~_VQNlK1kWQi^vC9n67gT{{y?cIIZf}A?g8FK8;>{(Zm^}WQyVpJ7M@1542L>l=l zmhojlvJTc#yHqd%jYsW}cpNkiZ;^}l>YxGQanZ_e_MZtQ-Ww7$u?>44iMh!I&n(xpJO=*M!Qp(k{lla z3>cuoC7>oQ91v^tjtht3$2yFubr9d;jg~Azv=zYux(wtLt+@0qbPrx!S+vqe?~GeM z*wB2~U)Zyx#fX<28;hUK4GH<75(cdOWzyV|ZS};*Z~}R30syj{7ozHGG4mw9v@Tto`#ume0`rAtsG-idCYJaen1* zBYp}GcuBPtVND)POfnx-R1)=5|7bq(@c1iwzD{`3cMCkU6e$#`+|ES|u``Mjktn-R zdB0j*Yjk*=d4nlwIKGOr@{tZMGcPA0F_W+t_-W2YF?Ro)7t=B2O&Vo% zJ`CMyEzW0{ScO4{5(G5^8sh{EpoKA;Sc=1(tH75}Ow_Utd>QzjT{m7ZHa#vq9M22` z^d(+!6_AI84O8`TkCS{FGe8_r6&jZnu*(#lgXuZN3Dsla=**=kfRoQ0f{_L1hbzh? zg-qr;jg|zPR^#NX$WKFSrf^BqO&|a{#S2fMv=BblAaG4WXAW&fMU@@NDUs-b2@^xJ zFf6{aepUDB%n_dPU(0+f&sPk!GwbTDznLMpS8yqbvH_T|4ChW9Pli_`U@UsVMfl2U3df zVYz=SpU$tV^~FVT1Sh5>r}I|%L6s;2o(hq(c9-q*&tPkz-#qCrY`J!~h>tuoK(xZo znw2Kz+l4sfQxX!;LHAmto6yW(;DBVGAj(Rx8#ABz=!eNue+lc#rLZ&$K1F_bY1|dX zcgK@>-dRksqN+8?1}*#wtx?`T%F@+u2sGA=3KJe@M_K;Tu|VVO7U9ZKRFHvqg^L(lFWlLNCCLjwJ_S_- zXLVaYfFWRqJ$1j*3yiB>kBJG!xDSIQyJz*ZTJsA%iCRl6SUF#7opks{JP?5_9c~a; zw2y!SrYy%*oyIT(jAch2JS?YEAF^Z|l9!2^KfB1&^dpWiYipX18;QQba3{sf0{czP zh5cBLnv_DC4anMNXB;{W(}-BHkhtMYd0@m5lSK>e?q0UD4rb0@ysPrHDWJ zQ1AR95&&UL6(r0(gh3{w{gziabFLf*C6iM+M)9B7P0BtM#O~WVOXPN~4DFAhKqP^u zq3}ncKti-}$y5DYM!p%lbPXbvxb1$GFDeSaijJ z+@WSB_YNWGkRYT5!9f-ucqrEWn>-Eg8ViC{p$rrd7m8taN+k|Se0D{z(H#~2fQ~A` z`i(~~&i~xIz$<8;*F=;&{1AT3+v7`e0<>`FjYskB1HQmb;)DcpUa+8iN@j&MUz{|~ z8C%CX>GET@NipX(ft*%T#FhDn&b#uT%tH4CwzIV#|WT`@{Tae0AYbScQz$6D48F)6kPe& z(W-Y+VuJD5y(6vG0xgaUuBF4xovv0aNZSA%05UAo$g$km;Sr!H9PPp@eUMOIjDWxZ zNZTSOJik1Iq#*J$HeIPB@a&UZ=U(cuDg3(DSwuhk!x%7f(Bna8M zs&RybF&3k&lDkUr-K=_U@tIgcp5}{eu;Xf+b|W%iQfRzQ+LN?#^z7c=FN})2`>_tH z|MBA6cGMfyBnkVXndJpbJL4?vzvfBf<^)=8@b?Fv4h-H!ign+P{TR6D^yZOfedn5Y z?Rc;n%gKKWGLaUa?UELqM&!2?Ftgs?E=@o=JO!Br%t@I>xHFgWUq7%Q4Q8mX2&l4# z!TW7g;_u8`odPcZ7JKnCg`V`S(d_8t`^b{B`Y)379RlQphU_}R#0i<@!qIWlJ^{%m zw<}e`a0)_+v?O}nJ10|K3(xALw9-rLwhG%M}u?_@(bjK(7#z46WAWCJj6*9zj@cod%>zKy#C3iR%uKS3kJ)q3cSGUy0 zJ_Mbmjl(4v2qI_&IG zl*C{>4l&mmZG~s`9X4sxB<&*^k+xGV+Vz6E0P@(UDXUf!333HDj7|B27Yo~;#)yvY ztNcut0(f)rb&fW~y%6C}KxWWV$bea?VYjYW+;bU&*0NROk8}tz!5kk9mSlv>)2MBs zC*Al)`1gCwQ%o43u+1fd#B})PkwZ}!I-eFu-}leS=xTR&m7hRD7ycNHPbiELg510j zO3)K_zuGNln8~c+Q72ov(`@4Q_d=d8MM#W*z#@Ty%AL#xx#H~j9F$p(Lu`X)4MA&j2&1bMXw=Pk4Eb^$-mLGvrWziMQ}hs z_$(1cqynd5S~7EQ5R_^&f{K=0479RFWHz!SW!SsZ0DKB?390$Mx6Nb{V2&rc{^Ph8Agq1cCo;r zJ}_S@b0n`~a0T&u9&$Nts7_~Yl0RK?WOn#36BBo7b^vOfMdbsr#lPeYg9w&@cD&%* z51>qmhnf`&G>3eLCt&k&br=Gd`yJVlO}Ti5JuYqr9sm4D1C58dsgYy92a?d{PVy{) zuL8d9Ub?pNtD5nF-y16HZx8+DsqM9%gu3hy>G`x-MiX0)~VMM>@+GjqwMii?iChf`1i?9hG+LVe^2hkTB^<)tVbAOFj)c z+*_9~E=W;_q&W0@R;NFIe^a-)FCYHf>0qS1Eso_q6Jz8%RjG2gcg%6(vn__^31YR+ z>t{R@a!&=ry3Q1yFM`^2mzF79AzO`~wIq0=J8R4I+slTVsUrtplZT39==3!QhcO9Y z#wY@pnc0g=_c?}k#oLPN@4x9X)gL&BvK^V0-BX`3H8&}J?0pMrEg~d9{d)KSW*Z~I zk!>R^DmpEHuPW%ZG=0}p&6D{{X_#29y``y{`7jEkb?P=V{okm?FO%C+LW@^=--I^J zk)|&?^)2<5G(Gl&0IbEdH2qYv`?{pEz6uhVYAI5Qc5&S_7%)4kz5c9jEPII}pE9{a z83dI|bJQmXD=Y5p@yYLnV5;}Flh!HB!CZ!1{tqTR4qs8aN>7)R^|&7VjFT}~4i{!` zTR(qsLpJbLymn{kp+(Q^oXmu^#$R0srsz?aj9zMB`LPQx90HuCG6gdiH_`zRm}jOS z_DAf#zxE}M9NVHu2x+HK0#d?)gbkilLm*PiG8Q+Ms2{VhPwrEy)pA_QUds@w*bfj7 z*O=J-y!XzWq57B?&(8$iP)@LzMZ599oMtcQ(4^vAsg`3bpRr-6|c#$99 zD%2mGI;ijTUsb5zKY8kaP}h0z{TtiW*|oWE`q*_pHf3)Hh84cHW-{^F?l-B%n7@(~ z>5^MwO2U>FP@V}5RPKAyZzktwCUn*t3sw{Wu^?rrl&!%6xR)JCOMEMuAO1<91sH%{ zgLkT6R++g8%yYHLgM^-^!S7G%wx1AWV9H;M-0886@Jl1$di*rrZrcsr_g$v{E%bMQLt)H{{$&ZH9pW(_f!> zyDbE(-ma5b72J}8x$OtK)F=??8;5~eHtewKHM(wDTO(h4hnJTTS|+*oDvi^)ED`jY9-(z&jq za<`9qLWPOm0SsMxKWlXUu(9=koSt027-nFX{_T}tr6cng{|{E^Reqs`!HiT#Wz(`} zx!T1B2j6Z4%CBCoDvT-MQzjWv6{TF%(|3waHFWWPTZ)`URSF68X2H^*JXG$la@@S@ z$`I9+-HzD~Wn+;I=klMPkR+vAs}=eBZZOS*UyTR8hffoWcPFh)k<57P2Y3;wxa*v53uiYRK+Dznw9=HH03?N2<@U~;cZ`Vli`)G~v_m!I+BWe*+th6-?5;P_IzRt+&7Z@Tkz zOD(uu^G6YsV>4mE%Y}+(dBL?y@H~0)U>~wru`1>8VVPd>75Gf^qPo5lPOa)1{%W*& zFPlNVTz!-_B}(m4!8u-%;N;Ny(#FRbnRGiBze@`B9F;f3vpj=`MU|C2-JNQPfy-2g zE9V787HYPotmc%(98l!MvXsEqom=1?&&p-7$T2m^U+C1OY$?yn`Pf_*+%jZ|LexGEIcs9WFzEcys z@3~2Em0pvLa;a6i=WpAH;CZKS!q=T5|7S|Z&Gj#78o>WI2e#n zm2zWVX9%3zOUs$ElBrkt9%{#^F-}@~RJ&(`QKLPmyn}e2eQO3vq0`qls_mBASlgS(PJ_(v`J6sWtqHNlx22WHg>$`NsNYy@r$+QV z5Bx>m1fM93{c$~cm}t}_B;FyuoL`=1_c2%UkL%rS`P)dqXoE4xFsr1@ZBpm7W!>z% z?X{rtVy)f;_c|?i021awvBzTVMVFp3GUgYV9gU(w;s;b{exp!dUx2j^Iepn@XMH&5 ziWc=-WRBAAY7Ycz$VeZE_=cOR;}zZx4aW8_v>1{|)Jw;JC|{S7S2kcfP5Ci+a))%yVhBdrGdEoIK) zQ=P!oZ~)G~Ut_-@a3(@(Hclp(<%Z54vdvqy^@?r(za3R`C<{Ran9>s3@XGDmc{6bEA4DXg+? zeKMk+yG-kg(%!mR+fW@jl=0{0apIR#zC#rhOsc7}mCkRe&5y4pTIvq;L@y~8 zytFiI)9-rbnJgDCj9!|FzeJ8)8)Hs&S*h=PXLzIcJcAo^{?uWk*$Z+!pa-jYr`~dS zsi2BWDSeJIV$olBp^YSNp0<@oxs`gZz4KeIj#d-=@?7lyU^O1`u?pEA zA(PXKDwh!`crV9B+H0YLIRDBib= z!dRzH*FI|H(qoS>e$<>3VR>(L%4`a)$j7H2=KJ`gBYD_$vc_@g&Gwy4s02^sa6_%p zdAAi4NvlLqx3Glo_j)P64atc2S^hWNEvSVDj#H$bmaaQZJE27sf!EqbRr&A6W;K+% z16CaMesvTyhvCb$hH)HbG|%+L#tKu!^F*Ga#hgwyZz8U*#l3Wn%v&yRUjZUfZRgCdnoLqF~pN0%VB$ zy5;UFR?ufL{T26~wBxL+%e5Lu+iOC^I;r}s{CITUu98fF;i29TMJpNkP{sR?71p>KNxwxczKcy+A^X4qtBNeeC<_Wg#BA=mu*kCME%PBXg52g-R#teU`TnXXIVENoga`-9yQg%< zF5#05IB44dSRNKrT5TI{X%?s}Rdk;p{>#vP5K6MwdsLTsygf?b`i%{2tAEV69V|#D z7F?L^%kal|`i^{P2Q#k!Ea$zAHx*%d)p6$rM?5G;Jvi7)TSlYoU}LSXMB6X<kHz)qVD0dNYeka{aNQUuh7R8fW}b!eXFW~oRR z-r|>gJ8#>-$}|}8`Rz_CsiV^p$o)rPcT;LbG6V@g>ByY><6Y&g|gvEakSg$;5P!E>Ls}om$D?tAyl%4QKD$YWv3=T z%?ZU=qtUh@-Wbea{sJHTX6&~)*d){Yn&?;*zaMDnbD3ett@%sm-I$+T;N0jee9*>M zsA#mpueYcuW0dMa`r_{BYtlNvoltREK!VH^x&CuQSlUqQmC1uj&!$a3 zg99TICF9}JcCCC_GiR#+z5VGxZM?mX>BWECnjTx=8Ix5~+&Y}Fm_uddM-Vh?Nt0y9?Xs6{Aq z+`?<0zT6(`5PQvBTGGEjSQ+waP&B*tTl|Q1oK@TH#Q@>B8O*CfrFVYfI zT8;eJ#2}GeQS<%2_C1!}_cx&$0;S=)-e;(CA_Hk8+tH6jxCx=Po!(+p`PZ68?lU<} zdv83PucK<+bNtm4gP(Gi*6$bhHj1~iU)``9EQe;zM7J0E81Ffr(WJUItx5!U?EltD zo*E#A4eVCf%RcJ~`+4)vn5o>7B%n0cXZ>q=K~Y$=*x_xH_TFvBndszn^KQ**3uEQm zf=43f7mxOtSGxJ6+(tx}I>TC1J{9`k0Y+o%j)4p;lx$yAj)|cAn^=K1!e`vf4I$cE zQF&;;UbwWSOhpCZ&e1Vl%(97su?V054MZapM`yTX#!1*dXm#7qP{r(&X`EvZ@ z!ooZ+bE84up~1^$w5<0d${_c;uQlaitIhlDHN&498^h#JGP_sY-!J|ADYKI^mlhe$ zw$8-3&T)IGe6grX1;4QL+T+Ino`loY*{56^;5ZW?D^gL5!KgK-eV^avJkspX-<%&H zs?)F|s#SY)=`SXnv||o5#j>++=sU9qR@vXjn-k^Ck2Zc}yvpq_I7?dn+(}Hhs%hCj z2aZ|<&J1nm8}<$<1L|B`$C}EbrJwE3VV-_Z_Q7~dve!Ox4|P^{8fEhogVyiAe0g8K zVwdVXmJk^s$6je%z!spiaeqDDexyr;dDsT){W>iD4nCQPQ6KApNKBip`OA51XX|qT z@4d3=8uj}zdPxH~TDqHMm=6CYEl}@P*~C5m?dzFP;W2*7ZFdn1268+n8j3^yVlzl)8pg;#O;!^p#WC0O?bX4bTye9}S}u`n941JXf^K|WG_mp6h1u++O(rNr4|CziQBqz$96Fyza+3Ov8ODrJtPS^L=h4 z&+uE&KjoQK4R@ASij3}G^}%0-5BK;G{rh|~Xo~gzCFM9x=KRso*$H;z?)P$;Or9#L zi>IlM{>HRQzcl3N=SXE?Ve^_!B1grq)^m$~7>rkW+O6d6ib zmcK(&SzB5Trp^DbR{>&1T;u!s1gyhUF$Tt%HJ88t38x+lgLNP969fsKb%Z?H9tDQT zstLae(TeQuHR39ujcZB%mAGG3GH;Z>`o^3u?;nWiQC%6WpiZ)J)l{t|j9_WyvdW)& zjM|@^Y!cmAMZv2|J)s~*CQ-oG$nVe@G?jhG_m%-@vkARk#;T~U$y{Y{iF52)m z;pD@0se*Pl7266f>nfs4MaG-;iE}wR~7lF z`#NBe+fa=yJh|Rlt)e@qm)7Rn_vsy&e@U8|HI_!NjScx(NjP8LAEAzyiduo~>7KRNh`~$Pv z49pSEEcYqI@T(&Eg2wsb?-~+puCwl1r-dEuE}qN4GQ;E0YbfC>i&pKw>+C`9HGDY{`gSM}%^Tj;U+pLBpMEfZ}hr`%cSyn;LO`*PYa6 zMzTk*pO`YF?~4+fA4o}jKTE4B{mW@lk*6q-FfVjxVxK)o^8Cha9@QH{oPz`2?348` zlO!(^mR6#YaaRMCcAml6>5o^a7idHBH$j}VNYIuYMnOdvXQSer6`+V#y9gOT_+uJa zjC5}NpLh(~9M+;BQL5WT=4=+c+FQ%>#BWmC)vYd~8FhC~h_e|u^>-Ebm^XK@nW=UE zh}IRUhyfbQl&l0i@n4)O2byb4!+)&)mIidyytE~8!Pq`gTfMVFHA61b+Q>rJR`{ojVbEujEGP|v zMO)0Wn5615A`!F|=t8N(7;w*cgN>i1wf~h=8u~oZa6BPmS?F*j%pV!m{rb4grZb7G z+pN_GzzRqIWJf)4XC6P0phLr@rDhT=H45O^Vr9F|OmRMKfgHEhy-)zHWY$3;A;U)bQtOv+UpXxW+trZSXRR$N#E z!`AS}?HP8s+E-+20?JLnXUf5;37Rg3T+oa*AfZQ`p>Ghb;*n`&!%M&}p!PmU45{s} z!G9A}_o8mIepT1kT+YaXAt7bVz2+2;Kjur9(j_M~`5ADb7tX<$ zfo!zfS#PQpSAKr*Q<)F=(@8znO-HLl@uDy+CPA;5#a+w?S*m3s*;0T;2>i!b-)h8OR=L~9C2th+D6qsBS zj@07jM+%fUWMpFV@8j%6p;yThHTZB#uEZK+^X=if*%L@)037!u^e?M)Chk2&!D#`mgb9%wu?{-*OvoeG#OhF?xq4cG~5&iRLr2Sv-cCc%l-6)B6YiBEa*%+$@)biQ=JNF*4a?60&Ltu z&Bb79-s2)?ruA0}uuk0ns_XGewZUSamc)UU&{?BJ<3zHVVP%25dxu~t#ddVoLV(f* zhKk?>2~usEg@#51{!GFdX5vPqr3*1(Y}VGtkjm1*@FwI}-iZcuVO|*o^dGX$2pTwG z$x2T;7Ur~QAwUD0k&3~{Nn~rKw0=|<*fA##^8>M2cyGL+W&bYn&t`AbF2)bf+WlVK zfLx}9To$lGL>2wVsfvR-3Bl-16p}?RUkJh|CP;%EVecCbq=V)3DW-!jYY=-4i6fkn z56?<=(*k&bc#%h5Qs|TXVXcD98UrkgY>Mak%voET?buSw*do=B|H3@tx(|{#hY)q0 zdDu)0sS~N>DBHmqUzT{v&esg!zM~)D40aE|eW693aZh^T$=Rw>u9h9cA*Md@_)yWG z%MG=qgm&rwB1S$iy8b0L93+h_-T)-~p^MY;7?3Lz#zLw#5!Nde+B}KL*$0D^`N+Qe z``Zk{86rc{rwVin$^7lUE*}304sMEjg`zN@XIF)A{}0|S-RL8y6bKfm;(xf(R$OJvFUjJ zVH+I!inG2jSoc6v1>D_r4Yk)Ri1q1c;rhe+)Bj@q<3Up7dpHNVHv7@HxN{d2rHyEl zD>u^lLYUoTW&-8PnDryW^A3jYg&S4I4{R#uCWWKGtvRTAjGRP)UtDQs`;N(fXz6&Z zSfQeu;2D3yCJQtoj*uj1D1fy`-h--l#G1z4K>YC>)Kik7&*#`xw7`G}1;EgaFGUQA zua&efzJ}jCRqzN2-Yi+mm)Akgj&S~maF3_(k_8RwhsOX30&SiAnfwGxf3PJBqh3TD z{1M>3-kxA8OCAn{^LM7<0xlHZw!3U1fLjQojK0n>`e`Zf4>4hb1okn`IVhqH=Lneo zqD~ZYR_4FRdxS4pj4J5^Ku1JEx85+P5OmIS+!sZWy3}2lM@d3r(HRd&kBfwsSRpiE zB&4vefMSXyt7B~*g^(N}q(X-;-Bv05ovx$lk0p+cKsE&01)@P<^tlHGGO=Hj^m&@3 zaj5j}hfU&Y2^$h6T^BA82$rVLK8uq-+k`qljYB!ugh;j9$fYb8E_tYyp6*tO5<#{R zfOr0r^JIe^TT4{52L34$VoLh>FsH_!q8>|wzamMdLAt^T@6koR=<=r-1eBwdfV5P( zR-4p{wVpD$QV{oL*4?oG)5b15yC5Ki(B1?758r@ZkL(g+7#nUb zL)62a%1c#R%33l=;WbM2&a^-ki|%@FwhUkj|S-aks`RijV*peF%G(h_B0}q0<4qz|!KU7+uOkTx>5HOhu zZbd4z&PJGd50U(F5!;>gD(B@&C9<@Ok#I8KfbzPSh8d&b8_(N3np0*ampa*U8BxFl z!i4E}0VM3Oy7u*dA-1b66$|f2BHh;ohEVUQahaGusAmCvJPLQKB3lE1%Gc#-qQ>DH z>wM}gY1}7@+J%@Irgf)d?DB*0NdwIre7BPvZ9EH=bX5MMXT(1SMZw6~(tK=PrV;PD zp@Z3+Ei6P%nJhg|ctnlU_U@9d(#48^-IBoQW*5Zx(tZ(jMkxRjir* z&0_qbb2~QOa{nUR9;4-Tj%}09g!6xc`xyS)Z;a4GAm?ax7AH1DE;TXHr|o)1%AXrr z=;9(3{{O#gu@*kC$NX-6!ajVS#sEi7p%PY=)vuDz8 zYB|e&Ywnu{oY?7kC_kA!>FwiP@vC+cMJ(tdsE-J2{Jh<_d5q_K52`Vr&TN=FQk zhY%g=(eA->?Q7BAt@M04e1{fHZjh(?gG+8PC4K!Ln||>zSCJ{xroVOEVtiNd8nI3@ zw~n1Y-owAGB)d}59u&>HkO%~3#yCu6jzH@&q8UNTqPSc0#8+%EV*1t%Ue7H{^|vjj zJFfKkK~wdaCd|g9;=SfWzxh_PC~-5Hn2XPVa@+OZu-EtfQ6=5o8k2c3Fe9VJzM+y? z%#p$L6?+L?c~abm^6W8kSud#>^&zsO{e&eZ`cgXi#dqn4)f%aknV6^kr%Squ+k1OE zqBy7Y|5AGQa`O3h2|UyK_fpy7xsL6qsfW<(G9%XsjYV65cikA;u?82;(w2S?nHb0+ zS6z zje>8`Uyh!Tlry*=1onS-`WKd4XC@k=l8rq*Arf$62G923C8zSuYoIw$jmDR|>)lbp zWFFXq)o9z2!H$@Oa-dYU8OEEUzTXsWc{?&=%6Z1vc;XThn}Ap=KCR}r`s0MbeC{`= zFvPO0=HGf3+B~v^=AZ)MGbAyY#mIyp+-G0Z5uzeG7~5K z1m-64;hDHUhq|s+ezeGZgr=p@`W>ot{MSc)w$KTSkdP6{pZlf}tbvw)ReBfnSpTAs zB7`d)R2w}|e|aCsq2xgkB1gSq?9Xo;bOc$3SS%QKe0|d2lC$OAd1CbEig!GLR`HmWKg zX?~Gi;NBP#SrF4&9K6C9k|1CljXy%zkLJA(3L6(R4+IMM>>0ld);M}GV+;yJ)Q}*Y z$WR6@o`V}@qeAzdih#e7?5a6GJivQlmi-<`8=s7)R&IQe%zvtjYXHGV`Y!ZA*9<^k zV_SU2O+IkSl^Q+Gfv!ctd)vzTZk}T$pLGQIG;9Sx_AjeDnc6ctjVAETOLrQiL*JzC zs=j-Dl>S<(a~kC0_l@~D;RyzpTcT{UtXJ-Ad>))hS3Hc5p>1@5(M-3l0UJGAO?eDj z8lu8dc(;qyTh!cm;1j2KcueGjI+|n9qhJj%dqSS@fq5*eS=pxWs84;u;dYVrto6F~ zTOy@1M3RxQ84xlJsyoEB$aWNQpRnlvequok)}zQL1`$t~cm;Zg%}y89ZY{{!cwCYa z`d0Wz(*-H#Ws;4x=ILlOWn#W{%|PV_zr`y&M3g=<3aOmzMUc45#UXJECQgnf;nyatWt*qaA{JvhM-C)K$|| zz__m?_(@cV&%Mlkm1o&&vg_J7A}iD~O+D#58xWYL4LK?=G!|KZGILE(QB^&rEj#31 zW&nY>5ej-uCM!Q{qo?th_0&pRnCNvlzH=uJ5N4L$GQL3(97sh!@= zHTG^&qRK*qxd-rG?Wc_b;}1hH?LKl|sEg&zP>;n7ETPDnhgY(j62Tn&*E3fSb4)!I@Hy{F=!K602D8ILTVdo8doXeO-^ zvgSr#>Ap%k|6(RUb67OCT7fYttf)+rkGV~wu7?Q;pUB0&4i_mCyT^2k=aw3eS))1c zcRuKJpPNg@=|~*w6qA^7rj~8**B?O%oN+{4LQF1GFWI+2VY52hDUPUAW%6<}`Ws(X zGblTb^NY*CwnTm3mFPl$wK5@esp77~%qs6$y{|cMB<)3NjyfCl zq=ntAr+F6!5igBHeg`C@;FlH-GAjy%ezUgYW;E51HKtr?!0qDp+8U;~N3It&o&a5D z=8PxYX_0`+PLUK_QhhZyTkQvZ-em2~cJ;AVc2@j#zWlTFKXDGgvy8h}=y#%8wsCa0 zIevls9ZM9Yp)%j?ImHJt+jVlk?Q>jeD4_0;5u1ydznd6f{$a&s=e)W`T6UXy$|NVASqMG7(qCL;y&QLG znk_77)StVxvl};|kPo+WjL4EdpoJ)Jv+N>oDmF!!5=;Gs8GL&p6i-~)aR35WMe6%O ze_59i+|`u*^oF5zKrLxXz;QaN92U1bmQ)GYRS1#e2LfGaA4Z0{CK}&fX4*{UxfH{z zX#E~$xa$`+JnHt7qsFoRwF2*oPNz~bX>oBYnlY@PTg=Fm(|+aYAlAIhz;i8{v@(+&*tg5yUSIv7G9Z1>Xq;bNXx- z=KKQ-+2E0RsM0cNyoKaZmeU-+kgqP!7&YPK_u#;p(EHG|(Ub?njy%lh;-@FpxK>%Jq7vfr0m;e;Rc@X8dpp=i>H1M{=8qt1M24tSZL?cVhj_;41YVOnc>%Ed~9K8`U1? zqnZ6c)eT!Wz~tcswYi@`i0bE5;Movm^9gsk=%kx)gNuAX6J9mDdn0#3Ze?h+zC{ zc#pelrs;?us^VTJpHE-PPOADPg?m0`DJ!%@>0nHLxfDo@lICXG&kJ(_t3_ZlYEMrK z3$u6BAj^o=Os3ZuH}H{R?54LzJ5{?h_ofWadf|f8qtI)b*n2&xv2Q8jc1im+#{C8A zcirh7UA=zTm(6KENf)$OL3_B<@`R;j%Uiy*0Qme|lo)R}P%4=+YCuH*xd4`f5Mo^9{x z#dlcKCkvV>cT5LDRnxqw(4Q-A)=xSLHjr_+EPPt&Ps(5e(-YLhEA;2@naZF7eW**? zvN2HGEdJ?t5T%JJj_@rgRu8ZsueazF&uk01!Q;FdBR^V(jsvwM@(FYRKlGF0TUs;* zVH%@?R$Nf?RN(0pf1YFD3|HE1xsTc=^-E zZPtH%BWfzuT7>{M=4FJotR3-ywS0p^Fjp;kEb$fIgHvDKd&zH(Izt}Yk3beZqkU7m z#xK#k&72$EebvGF$#VJ1ZuzyIRNxQSR?0)vq112UBZk)97 zvurQjfaE++rXke*vl=D$q!n(RgM+MyU_U7Jat!Z5wubWNlC~U(uO6bw4hPux7bJAg zNAt{>FNkR@)^zN&;xgCPHx6vY1EROC^R2sTVBfI8Ma0TPAs?wB0@sDV$2yrgB-#oB z<;wg>rz2x%0$;9vrl7~<&NJgF78WZqnce119@U9SSkpAa9b2bt_(tc=Z5zMtRZq~n z%634=ou$}Eul=0q^MtRhM@Q>-UTFkA~K`0@g1v^(utiF@MBsb;4!F*j%AN zz0bTg`nFiJQ;YnWd5)zvcckasp{^(b5I{a-g(x`@>R^}%j z@R4g~#a9w|L+sJ=))Cn)>evHmpNR3R(V>BIPdeZl74>g7Op*{GP?8r`oT<}o>aU4B zFJF-T_jwYJpZwnso^bh8^SZibR-@~(MkMp8+`mhV=S!?&;E5k@JTs?yj<*^kG8Crc zqyNzdRQxY@-4G;_c4hA~5)uXy6BE5A7(4U-FsZxO{y+EhjQ{0}v;23@@c-`l9{Lt< zrspGl+-Axiq|pD>9G$_viv_ovLsklK#Ib;gf5*gM1^=I)88W|`)J&x$yK+|M!?IMp zy}cov-B$wnfivo1_ikM2FI6jYUZZ0B&dbO8Ome&eEV&-L1>2pXR7%Uso*jNuzpA>FFLvl-u@B zc}@H8jCZBTxzDyo$&5dG&hh?Bsa4?7f!Cc&ADf%!d(&NWKPc`_xUbJZ?p*TST|Joc zTYEw{@g+&xd5l4M|55IX$jIK+$vQb$-W3t{=JWsjQ%!r`%Ercqro(ODtsi)3y#D(r z9b!6lR^rA!yX)K3D-=ghT2V5ry?Kfr8E4JoGo^;MH%}=hSPrLW;$bIMSIh5}7RY|YRQbz3^ zVr)*A(a`}!`S|8(T?l9m-`|&o=JAWj$CtRz_c#t03M`B^`v2C~q7$;(9XzMjqkQ$Y+qWDH^OGlH z=cF5k3~q3k=XG}lyqa%&-97R6raTBFvKYS`OjQM6m2-O%=3J0aG_JRnUS)4!JyG-H z)RJxRZxw$z5wOPu<@pnGz@CKss>!Tqy3zoz*X}-FZsEhSWh+_PT=VI~rbRW836HNT zCR-oO^$)6o*D}zzerr#pw4@$e*V|smW{HY*`&;f%R$ z7$O$W36Iuq(d)Uy2L77GbJs*=3}kMM7pBM^*}ebKy=1f1ABy?4k^nfPjFs0Vp6KjdX}~mmr~{peUjup_HhA zAQIB8Qc9(A;gU)}kgD<0GA$$4ur zl0Uu(Bv@*7e(C6;L&}}?q8$(Uf*0+$|KuE;9H-eu7JizC$9|y9Uw%B_px8&}EVgV# zTbbNx)Twf2ul3Ef83F6g&{waNe3+7S3*1KQqObT;yxG(&a9d2$$s>(7e^!VRi;j*C zH_&e3)Xg8w_wr8vl#(n$W^0r~@#7>e&OacaC*7`F8&ls`OBdp$m z)rZ=AfT^>%*6eD_#F=plvYJDT#8F^ax|b?mE6chiNvHf7-GHsXNN<_#+~BX$r!-!x zV{z14JmNURxF}EjBP#a#n+9ydxJbA0K3`^>rV#5=gS;?Q zwVmwV-oEz}2aoiRjS1TIm-tOL$JrDytv;J#u4)fAPvhg{ugR1P*j4N?*t^EX_4L=5 zcgb7OVOTrY@yVeF4AO>%{mXv_ z!USvzJvZD;cBLe8>J^5+c=7EQX6C7fVrxi$yc|hY3R$)5w`}8_2$Z%@g z6?OFdV+GH!zWHGf2JYdGCrdue;d2Y`-+F|szI(*}umtcU{;{5K3dhbO$ zMJ@GeE!T7U%L#28?%90Xdfz?{2#CVT{CKoaJxRMQ&&5W5w>4SO*5+CorMsp z3EjO*f?qBB-`y>4f9N#MeW%}dm!Xm}+u-O-fK}jEr_CnTU6f4Rb|gw4Ca&bC%Z@L$ zoZRKN^-8^X@uDtHA!@8KZe)1ap5Im{Ox(+JX}T*}nvDJ2xfBGEHZaZ&MeEfBSx?3| zcUS!iUv9;?{cc;m`d$T(MFPb>Tx9T=eRp$WXEjer)UzkNj|04HQ=+O>#Fs98Zg@I4 zC=hng&Pk@vzo0vy(zWQ@ktqJ!vrp~}M=Xan+U;Dr*ITyfR-wP`p2ZE-#cF|`^{K3$ z--$OH-(A`+zdK1dgiFtJ{ZDz(+H{@;-#w}mQlpLnOUbg^$SyuQe(U)0<6_^BePQHp zSQDVIlks^S=Vj}lluY)Gda5fg%W2{_(c0CX!EUm><)zo=ipjTo+v0#geT?*pM*UA3 z>-OYiWOuRn>%HETOyZv5%J(NqpB!SHE?DaJ+pFLFN%4bB5L-;w#BqbCzL95%V!&6WIfhMU1=r?Q|%do zQ?_;{wUJY8X(QN!vUwlE!n8iCeaUs6YDcZqvMI<2estzuP((z;OX9Hm(_b1I8ag^U zia!Hc6{dTN#5p*=nA!x0%&j=@I$y@B`<_4nM^M)q33)S0|Et>?=9w z8KT5IR@I-PDl{-n4E_qF6kG1iwCYGu`%>}7w~~jJ9NAI)E-8_u<0#aHoe}9i_bYFv zu%n|R@8fON&uV;+(#Knpy;^i!Zf1Q>pr@wJz#c_rwd~GsTNqY4Y`i?%r%ln>%H%%# zy+zL}VjiC06XFzN>+o*4G5t?iBM-b3-&{7T2^S>(ig#;8E(ql|5<^CpKc)TqqjVqz zvshxP9g;bd*ZQ9`%CYCon?6-tRXNOZo;aEohTDt0wvZ(lXlPtItg`F`VU3g?$J5`k z$2vWhy0Cl2Y_LT2}V% zbk0b6y2|09M>M*vg&ubw?INC#6Ylr##gaxp1Z@5(XKo)6jlc~@%namzZ_Zzzt3+j` z2vdz$GTvBSw8{VD6Bfq63QDT2M}SjnXRG$~m5Jmc6ftN2sUBR*9}yPfQx;|J;KiR>=6Pp6lkD7$bho7#6bEx?t*)*0oMY`-_zM@trJGO7%p4UMXtY5_PC-FIPCmGqUl@+y zYl>G!F32nl11`8eb3#wAN62YB-LxJEdf;t9qv`pwk`nD~+hZIY9KynR@)1H=o!ARm zo&8f&IyI5CQQ}?zN(&1MKuNgjF8n{_hcBqX8E!EN36XfS-tXRf_Ut)x=1fAu&Ye5E zaoYFq-`~%`pQ!j@Co^OA^8;9jZrt;f#CmLH_6%fe63)fawbhx~w<>kA- z8drYz-h~=4bK>fAT*i0LD8Kg)eSDn9o5rT|W|%J6>Z261PaVWoW!3ym7b@&x9mJ-p zJ?oKW+4dE;=kS_}hDIwsUZ>&tE{dbAhzvci4Qe_%*Rh5eTr;k3d5t)FoLY1|Ru}f{ z+n098UP;wyYjZ=`dGdlixXFpD$4{J?D%vmk5%`Ev*f}3b_bzF&E&9qX)`%Ctmh0>D zwM4uEJ1HwE$(TE1Uy3gGdKddr+O#A^?9)~A{hF5Mf_!Jz80*g<5P8AwhkPX}3{l~y zyVk&KoF09<%5rxsCM5lJE^^MA4>_GudyRv=eIybzKH|c<``xLG7VDg$;8*nFLQdw` zu3lOnV`AE7>afx^!ZVYI1i*@!qAgFCB_2=Kjg6%qS-;-eFoEQcwSCLW%gIHXtDln# zh3?Gu0%1Na7@9_Lot>Sv?#eY|)^c-OCGeu#;&@k{OI&R15i45&P9I<5z&Ykw8hm)A zYlAXDq%p(f83bq{wsduv0FCfTs``mV+&ns-TR*o`irjd!W&fxC{#WH~WOe@t2@Q|d zd$CQ~YN}~G4G2h{9f%ZmNdn5%+}!3d65&$e{1|YTQzPXaaG>$Bx>j7{emqP8cimWc z0Xv_OsUH{8(%pw;I4}RreW}Yu$MsxhME>UL1Wwq+RVEU+UjFU*F02)iUCw8tqhuW|V9XSnS}cInb3(p_4fTh~_f zZYwD@pr91w=gZu!@qX~&2$ybnM1;)$mzG_*s@jqa~xBe znrMD}4Y`U{?(OThZ#7ey2TplEt% zE-LPjg0=eLAzw|#`n(3y;sISH~`ZI|N zoj6e(Kl2(9rd6qr%{}=wio>~Z9m>Ms@NhdnHuh7JOWn8o+pU&F-Ir%k0@J-}o8EhF ztRk@4x1@j8)OZrn5&n1d>58;kv5pv7nziaASMrI9Aa}YT@ z)JRB>596<<+hSw9V0%&4`gU!kC~APEOTKO25BB7ILspK@j6Qdut2i-&cyBHXTH}5am!y$M)**aXY})j^MaA+(uGnMYluzWJ^#7XtnL0|gU;l%=f3HmQ)w#Ce$D0My z{aydga-Z*s6DQd7M*s$1B}8|OLnK&SyS+XV<@NRJSEf6?_c^pOUz?ZbI!$P@KQhy{ zNf*hq?h-Qi@vvb!12~*hC%2@mOt*;U+EanB| z`c~t27piz`FIbZB?uCEK7%0LDAO)d5rgt?!?(&PctkHyGzKfi;H>E1SO!y;`Ey#vpnyc`Ve+tX-AMgYLOhf0dbFLYo_F z>?s{ku0ZPs2M4p;C%Uq1dQgj2M(=&L8#xTx`7^?$8=>^(s3-Kzo3WH3q&KXEtqystO-~_Wv!y}7l|T|@&*+#v78G}o zTqj$(eXR%$$)59@iJ3uc6-v>Mc6&1CLLt0@$)s25@X-4Qh>|p9WGWW# znx(hm^j@D)4tIMD(uO62YC;Oy8dpo!)k#ey4+Nlu=ti^F0HsaT zZQ*o$RgWxJ!C`7@<09X>y1G}fUqpe-nLU@I(`r!=J=c)xkUguKt;dL3N7uEvG7?2- zFHl)^rWTWKrp0<~Z31bHeAu4kjRZ{gC?_w^Wwg!!35XQd78Pwf_>;Xh8exf8>~!$I*pP#r0>3O7g{z*ZCf9(#yQQFn#X*u=!bOgqncN_Zx} zv8Sg9s0xu@Utf<3f?KCqv$8POnEdOP2!uvpfp9yTpoQ1K1tEH#Z8;7mYl6aHA?_eq z;Dz(=6{dg_H`iB4yL!jQasb!p`OFWmSt1nIH#R^HB0Svm01kbb+&+b8v?iYbe4Iu> zO>Fy+WQ4#5a7p^+m9sp0QIOzF?`X5S-98udJ0Hv--&ss7XB=sHWu*%Nh$Opv_wIAF zH!!8vI3-0L@&3cyW55~|#>z6d}M)c#$6|2^uM%WF~- zF6QBe3SG1Noyt3$gl6S#WL$1641~xdng{sLoH0ZC#p&i2TV^00IndLH2u^b6XOqDS z>)xH>^DR25kz+qJ+gH4=U<^Xx>heH<@VZ+OUeYLeSB7hDUe zl>0;Li_;)({HHA_$?E!J@pLBDW*}|hqZh&aWZQM_Mmz$#CrDdPPL8B7_`X)A<;{y1 z?~%NIhj3`!9+3<(Ir9zTjyc^$ef{1?`)Ja`4MOOz-@YBoH`WW#%E)`W3MKUXG=Uxw zZI$KaS1VtLh=}m;^0JR}BFDuQpOD8&lZ$q&?9}2X(vNg`gHnH7`t?%By{T%#&JGTF z@N$6S7^$dU1_lnyS`H2kO|_<8schqST^S0Qa#?OtRxq2a=;`so@|1E$8=t2qG~D~! zcbO}w#8)}(31AW(Klh=ey4nh8m9!>(?OGjA8>@&&zTwuMy04tkfhSp5+L*%#?ff4z zWY30%2AMU=35QzIk=en?&YZ^fLf83WEOl49nR2vI&`CBn^Y!IFj~-C4jJ0Qc-sqND zTstVK2>ChRwEjJ|PYcQ6f}o&lSFY309wt7UZg-RhZ1}IDdk8@jR2EF5Z#s$3;$tgi z($@mr2zdcOUzEz>p&{xiRz5x_Ab0w$wu3JLIKsufx@*3%+3Nh5*!bVjlEa4&dXw*V z(}s`IscZD)KHt7w^zU(E^n8SDH3wbp{N_8z2Umm{g9R-Ykf8u%s{0DDLpqAQipqE= zmAn;I7a@NzVToWLJl%NG6J1hLg1lv#BZZ9l`BPqc-7AAqH&D@vy0oX|DG4g^Jo?}6 zVU?#*o1iP9hN9-;{kDiI*aH>=Ca#-fZ(P3}#Xk`+1{GUZTU)zLei>jrV^Gj}y0dNb z%lo07M_!`j=@z=T^?f2Fb_n4XV<|jF8qmOPX>Vv`mnZZwU48OCEq}v4QD3qJp%wQ3OOHXXZGJ(DB|rD(aSQ8Mg!krs*lFj2&aRJzK5a zNC=f!*mdq>an>tR%5!N*0dOA-iaLJ&{CU|dn#HW{-TjTE^M&0YGe~KbeX0!c2wgoN9-Zk@Mmt@9iJ>?FdUnZYnJCG#EGWWh-jOl>qmVUbAb0 zKuKS29JkZe)wL;Hi6v1WleHmoW$v2j&=7doB+BErCxfag>>vje2SOLPdbPuB3}zUZ zvp-!4^?TTaAe>IEiR&Rw*v0MY!Vrn>4h5;FrxT<%(sR|!pVxI`eO+v0L79UCny^ky zOCC!8tMNZHxSOfYQ<}bi`c|uI|z%2sfEu^iY^rs`x30SiQhzB$tK7MGtHp z8R3s`x9eJ3S`5;NdIKi$zNQ!}<}%sZmqJ)JYzFlL$hWDuxcUqW^);(aNF;tj;lVuY zfEfa1T3>;)0pm~ux}2-8^4RrD_*%*2RwybeYE~3`K`NsUyp#xIF}*xLdHiz9e-)Q1AL`EW2if+S(Sc%ag?8Dgz>mP6OQlL8*QB01cIcOWB(|CLfc_F9KyL@!<@sd`hy42I|Fb+TH3pR zzti%7iu8C>d}Fd+5zu{`O(rn7ec?J(MkwZZ5?q_ja9`gaBuAn3gZ3x(mmT9^FJWP2 zRlg?5%28w=@bqckw(fu=URn78RZa({;P3KI zyQHM_s*I1Bt%T8~Guqf$!z{>|ek|K=06V#Vw&#)I*y1YAA;_6qO#KeKAVE-%W?~!I zy|iX8!Dd--EBLOT(s&9QJhai@Uzs?W8Ex7AWs=1Pa_ncON9qaYO`ees;v%wr0;Rop zhV99dCqse~^71vXcx$4>XHte({SCL+=2rupa@gqPWsrs@uP?;OOgOk9bWs zxEOu;LiqlZ#vJy8DP-C#tjY@$Ei=H(E{_~GVNpzWWGPgNYdwOuv`j@k*bd;L?vOs$Ho@<=&KH8VQkvm*P=#O-jlqScr?0Q&@Nn zTMh7b1yEQaLdZC`0%B6qw=1Th*C_waUt;3}X|@=;Vdc zkR|_o`P3U-t(J2iqSM*Gc3s0d@qk#U>v^aet$|CQ)lC2N*RB_@Ud>^hL2L+duSiWY zf~|s2n|hGGVNRARPJU|e!*=?AiCYRvouH)yG8oMUx4P`?r|?6MU=AwcTHurkTQxK` z?%#Q(&GS?vE$_jXs3ErC*zyGjTFlR38aLM?7RNONkp#h){k<4TVQW=c(K)Cm(bd@rCqkBk16>(0Lm!Hxp>e??qJWEl>cw);si5&-G248= z5sE+c+olMs@y0jk6oe?9(gt(usdW=ie8Rdh4Un#3(S7v$yqT~Dyl@2A)YQCfVj>Po zFCTGL?Tt5{_OlAW+k%S7L3O>Q9tDx3y4!tTuDkvCSENAL)^czn-l~Y#&n?claaH!u zHvWpYzV{|{=GEL;iKJ z(e+C1GTmQtmE89HaIv|)Hr;*o_&VShBdNXb$XKUOTW2>Bo{SC`_b-5u4EUp|3A69Q zhm*ELlt_0j=+XiJO(-^I(UF5DlW|@P?MxQI3klcZY>hU=RDvrdHIt>^x)HoJ-`Ac1 z(~mEaLK9(^TcWyVZ9UGk>^6sA{2 z6aBJ;`^+_;|1p)h|MeZ;=h1Ojwf%|H-JLDo%72q_vL8EUfV4*uwx3xnzjX>Q!!Fwf z{J>QzG%PHPkg((gjWnRM=%wA31MtXrovjPq8I2(DDh5BYEA0VkaRRZ2vene88`s!{ z-H7{a)|qW*YikSO4lFt}F)=YTq#7d=1e^%nCbnU^6>h@VqMI)(D;F1bmn$=Jr`+0a zu{*Q+Ap9BXR!fVE1+a_gQ6y1M?%gA6WFajsHcu?7Ca8=-IwfoxVIRD`@Y;OeTL%XR zRQ+J(ec~a65jYeT@1fIyR7co2{{9HzE|{4>93iCB@$vCk+$d6Lwr+A(VGz0oW+o;q z+ywroa{{X}4%FqztH;+8&2n!#pY{kdW8HIFHA%mMS8K|at3&-?lQ>6cx#DP_$Nr3b zSS9Sf$T-0>a)eB~9?6!`vvQF{@U;`tN1(;Hv)5LAo=veY-|GC+P1#(JCy&}(o;$S2M zMm}>DfF5EoN zA5A?xi5JT^Qo(_ID4CNyeDtw@k@hK>#kAXv|7LO>q~cgyM9(9DPZv6DC>VuWo`-0qfqt}x@uV4eIs^`2pf0)QPcw6#^d zK7#_BdFUG(FNdoJq_W5U{sl?3&MfZa?+<|W5S}CdlNm5&dU4T2Tpp0@sWmG|@(}wR zP;m)q9qkl3-63bPT}^M&#Mlj#0T91E;iJl3_*|O(ylY+I}q6lA?S9T56| z2FiskiH?JFrj4=P-W=#|Bd%mj!2S;tV;5>?Ze1e;DK?XdtZjU9MH7j&BKzpp+ z#q3@ezvCwUl`(kDx;3RQSF8_bVc$ATh`I6BmrcT;p#ch4rVI%5xX%+GZX-_QDl2$% zYapdx>pB)$`1lq9zA}4Gojh3*pHT}TTdE|5?OO}C*+|mhYv<%j!Lq1Yy}rq9_t**H z@!q!Wkct>H32hESpmZ$}ak8-+SD8IjGVN~PzU?_*EkNo3uK;~e`DqppG!CIJn)}!g z%yS3YGq&HqUkI0^J#b(a%|Cg|`$dc^4*PQmShX(@R=tWrB1BO@mv+xENUnkxE@U6v z`5|V#4#hud;*cjwk)UN7kUzx7u#r=a2}Jpa4$Uz?4NX$Wb3Hpa82W>r$70Y1KRRn@ zFWCM=Go<+>Ab_jmIb51wzwBl`GT|+|JAR`+P|TM6;ml3r-TF64d`IQZtgT-CQ{*MM zC4OR!G>Z{5*r^#-xAfw0 z#vbsM1b#7&s-O=9Qca!i&d;B)1Id}iM1+Mq3@VZLgvcFK+O_sj%gP?xVN#y5{On!Ks_8vL=<;La!HT8cawS=q322A9pQh5 zI>Xw;)8HLVY*TC&+B>Zw^R5DwCFBS5-tUc2{NEJfsp0&eDHTMOy~#+YDl~UD-Ukd41()3^;zoZkiq-%cd~CeVb^d0LM$tpYtQ6%}Ufl zMDkDyVS%Q*EQ0hQ{_;mh0 z^;GXC{{BwO-iwQKY4&IYA+*}5DIztXo8l}!i#+w!awn3DX%6mrj*(r;?GcUHnaK} z^YP&4Q=>Dwy@CaL*8+5{+_TS--FSe|hH_8zwwczw`|hLST8d&&77!)9|L*nYw)6*md(_bZ2FH!x? zZ*D&ZH4)mopkQ0j40A|K4Eb-ArYn~(OFg6QJ9qwF!njd@XmDt#Mom@&Vt2~Lke!!T zx$ zL5Jfhs(HcNr8ER|3&M{dZ#F+Ne|I2#vY|?U%cFapS^3JT+NicmvR?w5La%TiY&zAd zaPo}#(#s3+huULvikuXR$GSRPu9nfcdv`dFH?%4vYKT-^}K`;M~9oj%(_&90QeE5VSg$mwX zT`gy{7NYAm26EukTJ>5p1DX@0ppN)M%+%C;(8@R#?cfg*t8rn>l9EYeIX*6uuyiuc zqhz?D1&TizDEu=DLPxTf7mx;8B#QgoyTLlp z8Tr&X*fv8n3UC>fNe5O><(_B0uN^YOxCmwY$y>*yK$Sa{xgLlX!Q=;O~%m z0vGij;vX}eIlO#)&GKuId03;|8)|ZGG`nSBVL>rMxymc%c>s$OzHsPMFE{NtBos7C zWdei~wq{LSIojh`uZO;4Nq0nN52#Y}=2hQfdAP(IxF>V<_xHYge{`5pnr&6DhkL8V zrD}_MO+|W3r>3UyPRZkuD#%JH$ z$Y}Lmezn&#?SzsgDWl~dW3!?Me>gqLT@^K*&w5_#y!OrM*#F&+hAx8er|VbRfX<%M za0NTB$5cFlfl`LVPDrOfvFKDvNO&6-MtHAK%Rvd#(e_Ng_D0Ylc0(~jWGvgTpYZe= zrvDu)v-2(c-juAjg`SNh@zB-935&5lm|+C$1T9aEC@C$KixTUCS~zfr&|UJEaq7$%!Jy~RJG7YUJXFD8Up^Sg}xJ?|5Z4@p7 z1zZ)wXl-o1@DsKQp#hgV8=fcF%%{{NVUJ-km)E>tLXMq^OTvlc9kdaV@JsCN?NwCy zXvvYCTXFgD4;X_lX7WM2TpN**Tqj(Gp|4*o|=zLQePD8okK!59Q}cnFJ%_>~PDs zBA;|LGwbvGf?Xs2?4l@r?0G}OVakJnqEPhCN3Xb-TwGK2+3l(xVe-?*U*)@AzO|lKwsI3v;Y}<7yio~>xW<*`Wf-#NQEj&l zLY|wvX^H;FLck!LB|l-8-a;!riWCR;P!!EglKaQd=`w?O=JOOoI||VZ6#D{Sk{esQt65O? zKsT^4#i6I@e@KRN^PEvQ6Rs(05Ye=YXjV(qQ2g}9*S8!WCTLi)o1>hM-XE|FUYC0# zx^W4diF`yzNnoZ(PH4D964%t!ba!6|ufYb}dK>8PNcXhCD%;^dsl%Ba;Ua!p~vh5R; z<7%K_pcytiUg1=X=I{0zn*^O(=P)6Vw4PTP@2YW1Hu&rrRiEd|(4*U=D{P&aAZ=p_ zJ`aXiic`v}s`@W3vIQ55B=WE_M_jOb-%1fD7pAruVCZW_tomNBT{)IazhNUg3GFIc zDTHDFOvCdKULgvWY!DrI_O@pzoT_z0u7`& z-^GM(?D;gN>)fsSRPb)BpSrp-7j?VmnVQjAaVzElH#|}O$huB)cVo-t{($LjkCQd} z^G`)Ro-&E<{T=4FYNxDXeeI4{$KR(t;-(or>?tKA&CG8c^cOzDc#tgnFeFQW7=!7~ zoOXP3IGDB(6 z?tr!em(Qo|SFJKv9@ciJm^BV#XW6u;8*IM&r@R18Kdt?T;U4A#H@LQndhI5Z9VG4f z_)a_2lJ%}a;k^rccJIwWi(ju;3=9n98Lg0!(D9*`@Z-o(7J7*NhuBcnaX0%Q66H+l zLoxlT|NQ~OoIJeTVwlIxXi~Ab-~-iQ7UnJ-oV?7q{`#xTRy~CUvO0_|E=xq)NOH8A zAViyZyS9?cGONcEPFH}u_e};C0S2KKcfXi1)B>tT>pg|KWhmyZ0I+1-oPn~@F=l%w zk&w0_-AHB$m^Dbq7Fc!C-mVFc7kxpH`;fi^s3EXl*_atmQ;!=2$rjM7*65r$>bcjv zi*se+*Szl%OO%*u-lY>}n~59p39e^c9G#M>-?2n~nrULWUgWm6%9T|+U3W$Ax50#@ zgu9S`gm~_(ii^ijowxL_b4pHo}eb%=>c%zp5ivgp^nib(#IAzXPs zI6N?-f$n-P<=E>t(@hmwm~-K)p@_Qm-ruF&Cvw_v4mZ_ltbygki4X5r7f2*|Sy^@k zO0-3FfcpbSsw=XWfFf-npH0?9duQ~@(p?YZw}O8iBdUl^C?hAg_~*}=)z@Q2wjeFU zOi*A_a=j@rnpt_oBky@WsojF2Qh#x}t7Fsk#$jWS5)RGuY&6PlBoTvAL}~`Q;Yiu{>=v(dW0}NpD-xwd8Xlp+meTGiUBjwf4TyFQEOX8$eZj z_3*mQ4F)f{{S}?OWZAJk`xy$+d0HO8Ojz6OZ1;@&hlYr{i6-`fALU1n93kvUd|BHY z$EkKFh;Z}_*b!z>gp))K=J1Z6Kko=NVQ6fG zfP#~0wK93?*49Z8hJ9`Yp4euX1)75i*suu5X`?f8+rbBxRqb28O3yH08BVRtDg$*$ zK$>bVW##2PCsWJ)mE?xP9q4rx!9)kc+MJFa#@4Xj+Ud2H^Ngs?Ael%=lmIdeG{w__fOlZO5fBjl8iHe8 zDokiCnE}1n*r;68$^ex9qLFHdhy|i(&bANsz$7t->Bxr1Pc@gMG3Id0B4i2hqN&1$3;v7TFjF~@l7h)xlPkTDB%&G%_@AwCNUKvO6j z6*0KSi`b^6ziaoBlXqh4>9_=0yn2+Ew+8f$uv$V;iNiV-7|-~8i;OUhA$ zNkxowRs_F=gZBXeMNFit+!eg80)zIE;_t%n=h{4nbt39W;;O2FT!S0yPonF*gj;R} zErzO7o;`Xvk%r2{c8N-PxUguUF-ErMjp)$WC9CztRTeuNY?-OHn3RJPJJLOyxmeSuH2PnV zW#=-O>HNUf62s}EnYsGs&rekjp@D&E&_?FgSKG_WO#p1s3}(!5@zL2GrV~&V+P%i; z4<7~&9enGZN<2?u9HculY#jaX=~LzyGiBjRdg!!gsudIhNl>jlna)`S{10+_J3O^i z*=RwPJrf7p0k!Cb98KwTV{s=>1c)4DX119k2GLmfoU=I%6j5oM=-xMAlu8#=HaZDC zIAewk!rCEqzrigq6!^vCB!XX1P*Brt6Q(LEww9ux9TM0bYzrepLpG9CztF@%G~SuT z>o-FdP%8KaKiOi>dG&auA;M4@(@R&^b&auXNre;UwXqnI@fjwoxOkDF)>lr0c-`cp zqN0QZxK->|9ywt&5B+h$Tg9a1KLc3Vv(3>~Ha`E;xTm(`adzlUA6hj*%D48nx+YoO z9xitrE}h#meZjF}P3!%9@paN)QtBtfqYidgl{+sn)oMP_drSYxF3g0IhtGCt?2r7% zSjHy?+giR%aQdi1eMeBWp#2p%8=e0I69AePu;~s*dx2H$EoWyE2nM2DF;1S*KRE`l z6vYx0vKFpgrNii6N{09ZP!pjk8Ws_ePWoZn`0uTl6B$T zq--Vk=HW2K^z6J}uZJ__FtOj>eY)z4qQ;8FID^u_fRfVwe!2q(29Ryhl$Pq`*t75wM-xML?R`@AcV3>C`6!onP!brMr1#O z=*WFQZ|CuepzU6mn#0E_DJdJCx{%wBX~Q}b~#P?wsX2UA}lP92gR zL_oO~MMWrr=FMpK0CmI#5L02OZ56!L`@t9)cyB+8*txm6X=k^CtpKw!1nmV%5Jhc( zs)D?Q*Iu{j{`Tz~#ye3+LO9kmp5k5u0B_);ddl1|>z zt>HHBoM^f)LiNACtU;f-KG3hJv*kmfNl+S{;0UinKrC(g&&qqx52#EZ@KIAD>cK3fL zt9}(-PyZfC&xtt^;`l!~hZE>q{P*}jdBaY@9rCY(I0SQ!A6M-x{lGTz?}JRq-dR32 zP!-|h{B?(0T27jGSIYH-Z1%$LT&?xjWa9GwJ#*}0{DI1?ctpNotXb8UsZ!=<+X#1t69rr!Tb46@Xpi~l?|9&F#7Ko&`*>= z>-sY8SzN7!jg5$h7}wn4k^deJM+{j}f4ei6NPjmq{ce0JjX!H`HyKw?ipgdPP0Ll| z$B&N)!?)W_} z9Po;Lcz4=!>&s$%C*8kq_O3sL(;(-QbiBE_n{@5;b0N0l0bLz&M%U&K-n}NL9;ieu z9%ZpEBeJWyCpXDP``Vo)rKuxD=6`Z&i!ROk>EE}# zSPFqryXmR4bEK%}X87aQJ^E&29~+jl7|*}gd#n&odZM#5lpOz^@;OCqk6e#Y$vgck zB?&f0*`oiwT=E!R{)}3&TBbndtvpZv2YKE7ri_z;7LUb`P}!Z+Wj=iHcdCDpu7rfW zvJr*kT^_$}|u!r*g`E9-n9D`gq&Uzg7^?Eix&5pA=g zUweFvZ~R8d_fIMw-u$Au4_irZa-AF=emA+1ET6e?tz*`9Yo*e&^Qia=otO20A$Efb z@E&cVKJ{?7d>V- zc-1`wKYR!nOa3!)%8}mT)?loIY;l*QgrOK++Zf}gYLA!y)~joMUgg6tB{_FR99` z8dI&TheU~O4aIeBF>z?Amph*KS08mM~7Wh2l^r!qdh znCBsdZ`Hn!=W{7ieLm&V#JsA%@V7hVZ!&DAP7X*ur4Q2{nDH{9Jl7INax#CIP5Z=V?Av4N3+>iumN z^eQv=og>!s3nT~eHF?;)zZvgJq>5DqP*7 zC)1zk_7C(=GG3h-FkWlvec%xrd+RYYySQt+t6JjTUX%H?j~}HB$7>2#jiFw}QpsE( zsN?n-+5VaROYS-58>Giq@U>$714_zD1N-}LR&1v((A)c{MnYmR;gUqc82j|XzpuX+ zc9c8utMUSqQmKx;ePxFtwTt9T-{ALH>!{yGvkyY=>7LlN$RPUlQc6Jbq-V}dm3U=i zoNhAB6)72W>%O(0FJ2lRU@rLY*}h~dyJ5_~|2$=M)-F@`jF8>xMFq~VoY8kPt$Gyh zt;Me*j2|ztj}#m_aNu2tcl;SiLk+tpcKuA_6YC-W)dA~+O~q_9r9HKhLU#Y0;p9_a zST*MltI%`k691SQa7%(oM91{*^`?52KjajDMt1&Bta{U`<(zi1IKx-TXN)f(jc@ug zv~Zt)rvA*e_eTPbuJ?ak6t~nZa^EcJj)=A9d!5#jlJ{c)%HA&JeU^L@l1I5mI~>Uy z9lZa$A$~BwJ55p)pX{UfO(Izz)JU$%Q$JZd>&k9IX?`GUWs%!^ZHZCDK=(zsMg)NPQ&khQGvZ4D(ov0Sw^s)6fcZXAx<}qHQG;%A4 z)b^5gohw<)pHoW0_qwn6GzA^*hV>e7*+!-JrA@xj`FU|#6KTi z+YH)v#moL!nO)IE@?TuHS~LGHH+zw4$_L(sODDRFj|nC0{+2~G@b8yfWIxWP{Jf-d17%rpCvqY z@coA@>O^m8cu0HfsQ>rbpkx~l{z>y=0)XTyA3@zXN_f0=0o|%(#>g0uU7uH7{9GvuOCGH_QT@7Ulgu;L`lN?m$CBTpZJLrZ?1JZ|!Yk*6jIO7v9aWp~ zbyoN4ng7k0)=ptD$=Z5<^itqmuU{o*V~-AInaWzX%e|ekmkUowZKKFbuVFg-q25f` zJnhMMr@o}yI!;%u_(NK`HtYBGyeS+`sfu{<`X<%UqVobSk@dA)i$8kW=qq299?2`0 z2$B;1=fZ_5S{epshUlq`2&W&`!j=wZ(=E~9$e9Dh=}vjN z3jBz4ZHl-TzVB;a58oPY$(ESob&zSa_KUepwyODmvG>+rQSX1eukO&VEh1f86p$8a z5ZFq$(hQ~4Fbp9ry|+P!h;&Nh5CTIppi)%Z_CLl$w9sm{rGiD{igqKcRK=%m!ut+Ku@hsoQ#^;W0LfEhfd~b>sn47E!Iy z4SSKM2mzaILzDfgUE1GxTvKj}=6>YlvY4_cJRKWk<2piij!7@3Yi(jMZN~@S@KYOA zePq<#-?5GrZfV+l+soMXG`Ot3&4?n{;&zxxEV)Nh(W;C|R?Y93`JEQ(f_C?OJcUPug zzK)mF*2<8|t%;Z`HWl;eWyjec{MMh6_&_xzN@-d$Kw$jzsmV)Rg?>uKe;Duzjokmk zV4+9>L)dsN=xF>mJ>iFu|D#J^hxoFNy&CsU6Pt@i@2}-ET-Znp8w?TKpuQ#JsM|;U z@!+rjX?7;hk9^B5?c=bKH)s|pQq=zPU8})|76oM3J1dH;H#IkVNU1fnlNht+m2<< zga)rq3b>a|{9b(pGUOMDhw2I9j`MMhr9)yS^eNJ}nyw1^O})j;eftpM_r;YNZ|T^> zFY&m1cts>oJ5!j}F(}R1%z0|dYmM*AX^XzTw+8x{ZU(~?>be(hu?~hQ)ocx4ZCylc zw`3JtG&NEsZ|eEa4Sd`?Mg|1yjht5)_8!FvTONOnN=C}Aa%FVDH;)l_Bj*V|9&tPP z5n&EF@9-xx>T^xQ%4?~AR@xg^72Nq+w-EfS>r-;UP#Ld0Je9UBlRtb8R`j!qZ_K1hq1;Pgce#+Kb7^PU;%qYTbbmt zg;$4(nR`S93eGm4UD52qhNoC_=60osCA$k(jP9DXl_ZaU7RZ?i)KZfj8GfLM>Bboj zd-C$iVQD4qy7zh38Z;#|_&n;q5rtI?O}*nOBs^3<7&?Iu<`Q#oPxK6G&9E2OMjseq3j zbNt?1t;B`0=6&bSww}U*%cKXm!j}9#h9UvlRy83_(bg*xWx5=8@{aQ}s}-oo5j&A2 zZM@eD0fz@#?L5)*pWd~UT9(WX><(;VZdBA2bn?b#XyLjzN3bw*lsR2G73|MSmJ7K& zvCdb;Piyz*dPeYS@3&+WXvNtmu=8sOxoc5XgkOlGN)1x>yCJTSob703Jsb0l@!Gvx ze4bBK3bs3O^*ZQz4=MuwFWf+^zk!@F8&=zI&h*pvP z7F*B4&n^y=f>;fD|2S;sjtAaMak^+z5VTBY;3Gmxl~ZKt;)t^ zdxeip8B_Ui#9)vDi!({7f9CBB#y)OFv2|?)J5N*i`OTh+9+qlrh@mK4P+e0w_3>9F zGLx6^o7)lbhhd3&zeI{Xx9iciZ$k7wPz zC6kEfaV#%ve?u6x+V-i9=!lJrsb(W5aB6IQS0A7;$n+PS!RG`I-1v$sVG ze_KGMe^C5LCSTS===W3K1KU+bKfOpZPLGMnY0i@q5?CaF0^dEo!uE@ux9lFN=sb`acps3*xGG18Q*P2yh}DB4q) zoLA)XJ#=}M>qBknS{KQ?qx*Ey)+3u^S1hV;;%&{c-6zeMtVm)|kb7TEd;h#>KskG% ziX0j>So%UEE-TVuzV0DS(*DGrk!#Hzx1b;u20`hT)~y(6>C8OmA+6}hQzZ=o;;pL| zkLWW!BZe2G8bsLHS|?T%1#LL(_mESn7*dlX)jHW^EI+9D6S|B*65aSE&6-5r`c96t3ez`v^ecH+;0?0 zSyt8LvRD!JEIf$aFQ#kgjOYwItYTA^;p@gH3Z)#w{T%G!Aj`(PFax+kWcu~co5;eD zp`bkTzALWv4NL3&>h-J|T`vVqCTrRUy2}IDxx^2??S+=*K$N=AFx`6aO+GQGsX&&A zNrR}~7Zfy?6Q)vZA={o##FfAG>9IE0sWIec?L|jCC>+1xr+eRFN!?yVipO&(UxdNa zp?J`0&nNf2;&^Jse0Sv5+I9DM&dj{B7wY`(+eH=8u^I%CUj1C6jS%mp+PVW$d)Zy@ z{1(`Pr>Sq<17K!1f@!fW=A2XkwG6$#J~lJX13!t3@!EEpDPIwfjpahg=6Zo%px>6X z+_5)FqB`hx8nI_~tEFx|2ze?LfWfKId#&a5skUwt8>HzsS_EfL?sUz6*B&`=srB`m zlT{to6~JUOdBmD&yAzx9Sp(4N>xqcLSPLiYs+wTMYc z)#mk?dMxS4nq-$-4z=iFdS=~epX^D*h?}H3MJveRhd7E$-|CDkYoxp{8*RV9Ye=VA zFrqv3WV}d#u1GYS$25*$um1$&x%clI69&OIMnw;FTLzwMOJ68rNr|su<*v+&etz(@ z=AK2Jo*Z5@y8sR*iY80w>KpD_qdG|UM$RpFnI+!eZ!}7HiEYWYNvm<`tJmsv-Z}=xX;E)KRtsd?p?WV zEfeSCKIj|$WUHX1+w{ox;#y?Us4fZvgPUfyD3N8-OMW%xiCa19(Drb= z3Z+V@B0TXgbU8AXE(afuUhC=Bxfn)QhOaQB~cV_)lFxv zQ$?GyWrX+GRGa^r)_QUl$&*fe9@hUJ^&Gsbt==0GcRIXaDw_^#sU*K85JN6;ao+WzP;hnWjYh z`xV=@nT`giz+ldGzE;lFt9iE-OW?nST4m^KD$ZNUx_}GAu`r125r&tb;K_(^=xvLRl)u*K&T8yQNML-% zT7Tdcw;!O%wvrf|>Q`N@hv?WzQ98XV*aD%#>>F$jn|4Xtv2n$omIfw;)G`eIqJjmc z!@VZr^d5xC*@*Sxl2K54!uQEcNnXj_ zDH0#rud}lz#(SpvHl2w3V&}6ikAI9`J@t>H0O@Mxe6-<_MKn3AH%P3Ijo1=V@7-?5 z!P>XrEWF*4lbq)w9P))T4j0#+6Rcj-pGV<@Ds(45zjF84L>3wSiJ_2TXs%X{^5o}p zgUCQ(RxK@dOm=VViTmO(CcrQOmrDm>^ujS)HlO}tS~LxTJTQU3jm6Ye^s~y{VvFbv zsw&V+iuBFBvc|KvYw7Yb=u6BIVdA;aEl#I8g(h9U^s(BUuo9hs z85PkcwPnr`A#%6aBYR!3Snq#vkKN`J`Fay*c!k|89$!0}$=W?;ExLx=sr{gHCUaF6}oglp_tR&AU%Wr63NotaoE z<~Vy($3Nl4xb5pI^q06!Vmh_r7IL$5p50?B3{E+CSf^l2+*!9jX3X;*8?GJENOpwg z+LCIxnDB;nRKM78`APU}LuttX+sI42RX=cgq;E*KU~#o5UMagnn#YPB^EP87zj?C+ zwSM(8F<+kGw&WtIb@1+PQREa{xUa37Enb1%e%R5#nBb1uJ?<&{9gzcaW^<2Lx9;TIb-A{iJ zE#Z0&soH2!UZZAZb`&x8gozwGF--@ttr-rJ*sLH>;8rml^7k+7|to$j`X>enRw0u^S~BHu;joM7!( z>gvs$F#Ue>!(@10@@;Czs4|SZH{3%f;BALSMP} zUyV7Q;S}=q-jsMT zUY>|53r!*5NLl6D2dND`n;%-beWV=L%{o=E ztQ;_CL$aBFZ~o?*g%E4^l?$p2-i5BdE_P%J8O@%37ALbLFKRK?# zIH2&W!F^dW^FuSdNlBG=Qzt?pY;r<}l3fpf*Z{If=tK)hkA^V`#(m*TiSO zK8HQ(a~SQZoA_g%kGi^+!>MKlD03;>%28}`x3*gZy?!xGUAwj8bqo(mNZO}-C%u|u zg^wbss z3W^~I)q2^BJ4w?*840f~`|QUIqM}V=nOz7$Rp%$WJwn*s-&9YVEp0_dt4A7&Fn71{ zeF{M3d8WYba1--m@cXyDNA%!?jt$P1S+kK<(aR(2vWsL#x zgTKNDG?eZxI*UlG^UCvSKUa_osW7w)M{QU}>j|xSB!=_zmO1or`rMEp=Y15~lV;jb`HlJXWUv)WD4#BO6rwE5jHP}=PN4Vo%!XHJUbRVgQk57E_ zrddEn*dvRD@s)SIwvsc~C}hEH2vsEiu(=p;U%DZkiO%XZNl!m~d~t2(TSA%y#<2HE zoLrW5p}LUkhZMh_;f-hseBc3;Y$pvzcAIMpvWMw5I!k2nQ}`H%9^>_|O;NHpa}UKE z81(b^+i)rcY=)}Zotc*s6>_(Zk_R=9=3=pzZjud6mR5cyai|EA8R*P|lGeXwSQ(wS zzoZ{^`tLw13q)tXi6Vb>wO!?sC`e+nLxM+hucg3!miYwU_64 zg02WOsU3D%blmkAUE;eUV9LNCbHmRv-uPajBMYT&Yg|c@ps;gxG5t9Kxz;9QnZB>b z^4Vopr%9<_O!EopalJ(ve&2~Ubs~x~Rw!_*iRhA$psMxB_Cksm7-!>-Jc4rcW}i(L z#&f1gH$GbbW@0>NinLvZFq@{JQYPz zdCKq`Q8JpSpRPHx{~YN&4q6NN7EGxSu-UBn5!L_p914RsM5WHy^R!PmP?;RU8x&E! z%5(pTN?ZxAHDP77s*Y`xX1TSZ8(yScv>iz$@nUU1{+oftmsh*@>u{u|*_zw>AyNfU zJR+CbE)tm1r~}HDM!482#fq`s9ttMvWhPZm6=4x$YDt>t(E8 zDjQncnm9`A6P-&m{*>*=Ug0uD>h%1wnIvi}^eC9FhgU`8PO2}?t4md+QFf2u!%NMW zK}8WGuowO&toPWjt!7hUYutHqg>b%ly9D+7Gb#Vidi+}zMI!cWN$D|gv*iY#hBVxeq{J&y>?) z`lm0U$=cFYP4s1X_<8%x#+2pvYr#T5CTlH8Sq`=6MG6C4MF+T+(N z3kJ?9*qfcyT&ED!;)Z!xx$CX5I#PKX^Q6Aa-$y}1p-#iLBI{OztLb=^JK9>WN-hm= zYk^8SwQMeFV6bqtH!N&%#)&&zfL-C{6j!MM~P&AD0&< zAiBV>R3a=eM4xSC$!3Ob@6I@Uqd;L|Y&Uv=>PT+mS$NfXUQgkoaq;R1!Qb=oJWgT5 z_mr|&Ichs~H{I(CA5ppl`d>*3)6l3fy{S9Q;8B~!F3H`)`QptrN+GEcRLqq1Dsa?&ZC11@)EBD{ecL=RSB9ilz)#J06Tx7kz%tnj5qo z5OvdghcP`ef^`1-zKwGGy4E91S7cYXlo5vFrp10}l?tz?bZvTh-bcO+I?oq9Hb#!7 z(J2D=`NJ!c19N%4ET_}Bi_QNjoqwRgijavf#XK>8kfqS%mQf^nW_*B_aw?oFs%4vH z|EbtAJxso_ljqkTQle9{XrlTWveC?27Jh+Ns|An^6=D`^2HNtMQw0~BF^0QIR%b`+ z7QXy&4GzlLNjq4N{2v}xxW6fA(Svlep(`PaHwi79; z*%yiv@~>s{uHEYFINuX=mqQ+##V$G@&ZwH88W5jjJZaSW2L(l3{{aOfsi|!ZMWO$x zlx;M{`H@?B3N1%`81F{I%+c`|3G|C0{AvZaz9TVyLWoo2=9CZjO^dXS+VN^HV_rXz z&WGG?+XSU zzsY5bs*|_ku5PxK5Vo9j&>h1a^54e@mhCh0@*GWfq+GTx`i^EUH2qN+#O>dFjZ8aG z?Q3YA04qGfBr0tSwc+?^cY=b(TRzp~(t?5`k#C=pP44Bp=*G;E`ASo+?nWYu`zE?k zWh;)cT9FhYDe?(MD#on)SVj8U&E*7~>+}Z026ytjx?Mq=ztrf+?Q7J6rG(n2pDzX+ zvxaBmQf(#eVmtPUZ)WEAr&3)CF+Vb%r6{R)k0~oBSTQrK;FDd!T_t=*2_t?frsOqK76En2MabdfA6$ywOrRPHF`1D}?EefrM>0THj&=WSjT=woflTpoT2 znq~=AL2^Rrf^Xc*1ezm0;?2ZfjreQDRP)<^awgeYzTWF>WG^%)3o+=L`}(bxzQ_np zHD5n?LfMG7j0WR}zE#ZYiZPE~4PIO%ZbznxnQ~9Ho9!pD9dwtQqF-4JH+CE@-bp;i z>5?hjXAr&d!LxUCe#>897xPGd`HvU9P_}T;G{Y0rL-RP>eZ-_jhZVgwC}lh|OlRBu z`8?fT*>F6ov+K607u4uCh~E2};S&c5Q7|cnI{U8N<-w4u^Ja$DYazm${rxmyM2Lwt znES_g^&(RrXTaPra#g3Gdg9X_)Dj7w7Oo{m-$yy8NTJs{dx+SEcYEZb#jg z1C7Xt$BgeOoT!Qn@Fi1Ys1z1^;}3WGN4}Lu^mliwt8Q1jaEo-O)cw_ZV`MFqTD@=E zD}1}T#6)laQa7Ws|;t(&YQvuF`L=1DUxiwzkZ&=W9@q zUpF5)Qo~*dD`%->`(rU;j^Av|S-i0Ka&T~(rABg;P3l#wT{T+K5oJZP`JIGShiaD! zw|H&H;oI1uew)pfZ+}F4dYMnn?0&m35*t0<6u!Mp6=+gtej!HSlv zSKHz$&DhSik(Py#%KJWghr1j-%IYa`$zq%nc|%GD&a3&v*%%oZ%TXVi3M}j!l2h&} zK_%a_cBva5p-YMCsS|!8utur2CQ5gS_htf|g5TU2u_G;h9=O4pA>ep#mSD1cO^Eec zS=E?#l1Ep6Xppr+#ZX4KsqRvE=CnHHlm*IG)9Ow!?~Z|@iAIJg6sj9-$~+%Tz5gA( zT;wx2L-g>*YzpKowsCG~Yg@;wXI`R@VLyJ=u5qBa&111Fz3dpIe5ZW;Vt>fBo(#Wu zYn@;lwPo9*h09EX1{+1*yGNv4T;I|bes{^gv!5SD!a?LH8cbXL#MlSXgEBlmnt$sij+l1C| zb`!P5w|G_LgmTK=Wo)tf?dh>v3zRN(?v?hsKC0z;VflZWU^$rVX7Zm85a(@OTfUuR z@3+aUCgqHjzRB!nOk4tdVN|^m$_@;qrqrZsh2nw@0)Eet z{{0$~ha%H%8M_UQ=z8ui#10wLPIDxwZ@4UbWy1p8^7%g0mF|pQNOss0rX26u3bP)S z)5iq0zkV~BxjL;sO}4e)T#eX1u^9{Z(@z@RH#G^L5SxJJ3$K=`waQ$cP{l|E;qZn2 zDy*CHEe%6W#S(KKt(f9ss_fR~p2_OWOT0aam}1Q~sX6^X()y!pj@E7W9lP0@wtb>k z7}A=NbSX8lXuP~=RoPo`2zG5F*gKST@IFcI28u>SO#MX5~)TjevaH& zF%GQ?fQ5)0Ka4L`6hi&k>?=ka$ zP58OCMe?3o%EKxVHb14L^SYQz=Qwdb4hrxs@Qasb4K?G#?OV&pjzK9=saR~K{SYA` z4>F@qiqd^!#`Qu9H(3+ExnhUBHu4X3UZ}|7=fd4c-2=^qQo1#Kv+Ta3Ow5A3yvzSc z?f4O7==5NnxQtiSSD~PuRL0B|{sb?+wdGPh&xzG*-xcXn5ei6pBe+hQP01{um8x$wUQ`mx z#_~laWx$%2DTWAZe9M2E{Ge1|q0;if;JTSA}%wc|2QB8=|ZU-`%gmqv>VaGvzJU3KA7Bl zzxn;!#HUpI+h(Ht$19vK-Ib;!j9>unwto;p5pJ-u`=M0!N59ig3BxHCpqaJ4@bTe1qrE>fv2_+8!!YcC?m43rEa1 z-@{HnoASZ7nBO;B{?qs;{aJi32KQlbfT;X5=tgJy(3YJXj#6a#e$vrE%%>q*i;*00 z-|{v23t>(jm$97;%cZ&48M$!Mhr+p+3X)AWD^(*5DZ;vL^eOk3v1YZl1;otm8U=MF z1EnC-Vv>1`*p)aGc1ez^faRLSSCf^N@fv@VYXzcmuI~i4txrY>f344V*wxI8$u6rM zdAndubcubk+stl8`r+lDt&5|-Uw!f9HQAT+zBHD(JnhZ**BYaPl_yFIt{A*Tp~7JI zd|+WkqC^~*91HceYdHiPx86ZL()$v5`OENsy(Chr_awWmc(1ePy+pv~YX z$?y}xApHCurz+O?xiSVe%d$Doj#)56J0Z%=ywAKm=T zVFiS&C-qQ-RF#KC$6o#uYH(ufJ4Y(pe-9n}Z?UHrcJlr&yyN))+#QHd{jah4`+wQ4 z$j^f<^w-VF6NK#SY-Tthoh)YgG@ zIi8c`kO-g~pgpO-LT(_A7A)3BHY=c>gI)x{l5)A=-G5a7yP#-MIf@+r1!DdqF$8u>buk0VXgP^88hQyoOT;Z~26THsLupQl%|g!T>xc146ztmeIkYnui^{GW*a?=gMp!i*N{f|HY zJOa{0Pj~lrys5VKw3Lg5#dO2*Rxuo4MSx8JkZzEH^Z7YBIb~^n@J1vEPy*75Lo@Xr z@ZDGK5en~5IPs3a1od#`MMXtyU5{{sGRJF?va+&3e%uG0XgIa)OZJx97ie>+1i9dE z-uqYle!c*n$!s`@&0A(aQCCg+ zJ+)zfu-E}QS%YTvDMI6oN=iB?_CH#NL+^IO>m7Wxc0h7~GyZVNsNd1D8S)G}F4`wM z4JU|v9khx!2D1oo@nntp;YhxQ!*xI~gV+{;{Q&~z2^b&1(QooY56Ih`IrZ^MOiaa# zvoedz<-0!NkAcoFGpVksx^cV;RMpY$4FJ+`u(R8iqhwB0TAG`wu3vY}{|_)TyDy23 zeee0~znRG*wb3bphyKw2!)`{9;BDM%L;)E2D zK@%E*RHoyCKvcBPdkUz)ax}|G9V)eGOV3xGLzP2 zdkt)WT&AY9u;OfRG`zY6IcINBK|B zV9=|+9JJj^-JNDRshaiYt6eF@71g|F2(`Dh1$wSG+>2x?36#}9z2W$*0WT1{YxKVX z8WRI7mWh5c47kbT?Mn2?@K84Jg;dqm?YAAraER^#JkF*+14#Wz125bEw}J|@1i-vn zSY+-fI#fymDwKhozp^b2)9-IGQrb0Uz04@~UCIe`BhV)&MYXF-+n+&-6);;Y_?<=65kyO!%s{;s({fqZy4mFE8a8GR(=94jAa0DM%2Bb`aC*TmwPWFdj zj;t)vAjt2H{61ttfXyBM_9hL`F0ROFXtwVY&%oq825Wrw3iD>_G0yC0Y31Z(J+46q zH|S7#uyVZ|#YB(1yasjkeL;#yS63J8r@f+t3=XFG6)?O2n<2T70M4}TNn>yU&^FMZ z2H9G}q-}m+Ys2t2>(~T_w~13Tl?g8fJ`S>!1hclC=(NLI92~9Q|N81I!3%hGm6cHd zP!OcO$QAP*6gh!jfU`P;2_p%7YVs-7Y%TRp6Rlv9b6K}$Eo+-2$q=%Y{Vh3iO z6T0T0tv*{IQhT70A@ca+DRS}Vqx>|$q*WAeNCG$N>1=z9$GBUZLMA2w_z`cSqDlaq zeiB*@G*U470~W|+BLI*c!R@8&0_qR!!ZDan2dJ2qtO2XpkpV>l-8M;;3s{?Z@N|;SvRTr3^bJprepylP&7I@@INU|i8WmG-5HMb+sv%k-~oQ1_aNAr zOf#6YKA}%pKtOmABw3fDw1D)1ApB)~cAqLMw;>#_4I_}b)Kpepi+|Q7JhWTZ0<=c} zU3f)`Z-J4N0UU~b?sXa(8ft1U{vR+1l3_}ciH$(FCl;HLrF;Q5WzUkZNnFnE?(UX$ zntHi&4TJ#hz`wK$Y0$+N`0KuJcxqlb*=?1vwY9y+J^`BO5PXz_A|wEz_d3ju``o7h z)%M8Ll$nlhc)h2lMuN;Qav*vgIn#a}Ie?e$3IIuv`y%z}1C;~_WW`!;Cp}}}8&{-y z512f`a7XOeiH<#$1uYe_-e;MUy`F&q9Wpp)O@B}{@WS%?#qPuO&E2s>tQwe#n#%EqA+cnfmQ{MMv;TAjCFbdlMPjNXP+h+)UmQltJJx2*a|? za$Q`A7VeRc^;g*UAX^K_$!JTf_Jg0BFy7TjH{2}-B3{HZ>sU70Ii%46vO(eHv_kX$N0N zTN@n+OaN*8teH44Nq;m3B0#5b1s71^$;!>W!X)uF70y%Eh9P$83iHTm!7H$Wf}`2)Wn&ohG_fWn8qszi(Pcg#(fga6s#S1TX-aXLhX@;e0P-MtU{8 zDb`f=g-?2FA|Pu}DRH<%>t*l_BDmdTKj~cQo6m7_Dykr5P2+;qZfg+$ZMDZRIp6I3^iir(IX`dg-Qv9uK`DZTPb2fKWNJ;i_Nz;)nml^c z`>FDfk@2Wv)M3ML+mvyY@In`iJxC*Z`sAi^)#PaRby zSMKgUOEWtpIr=a6kiq(WA@QW~9uq7>IK`kMROZ;RGd&Nxz-iNw=&2N&yz@ z___;30uz)VtwXM!Plfcs-*;RCNWe5;{Ry@ZPW+vQM0Y+Mo8-w!Z*!19gSkw|6%`iV zqpKQ&K`$Lw2QgxFn~t`2{{#)wWkpd35~y{mc{5Z%(ghaMG+ryI%R24KBSb_QqTNvb z`k(QpW@c&0$##{aM~2VT)H+|DqXd^4*KlYBCL>q%r>E)&VDu`TXWJpFaXlOd`uFG0 z56FuUO}Vln5qc=HSe$YPbbiReVCn}!DjIU>EySx-S0mEPftQ)QAkqUod2DLxYL9tw z%@S9dY+>jZkne#o@t()3acHwMv>wbBNa*Y!dh|aSon%*wzk2Q3I;ftzX8r{VnVx{>^zp-ky@Uv;8+26=dwa5Ta^&w1-V@2-5F?35Gn`ndX=?85 z;irKw2@q$HFYf5*kdl6n!+8T=8T3^_Z1W?;I-dR>z{LXV`xAud04Is`j{SJe7U-*e z7$u>}r1yn|N8lZ)X=psAn$AU%OJ zeq|x-fK<-S&fa?3=3Xns!&C4guvdt_3;eJo^Ceqw5YR^J@w*Um0gl=Yf>A?#QBKIq zp)Ktj>C>7gK}-}X3nLmJzGmR+ifGM}2%SLIrKYBSKe$xS=O!!Ls0r2~f<<++71SX& zAYk*>Gy_;#tE7~em_hN-*)wPS0M-lpp0hC~N9JyB zTVU3{g$pBX0zuZs-Xn;l$k2or9xef)YioJvfH4`T&jWedG;c8uSB5G?G@{@k?oH() zq;(isq_;ry+`sriE(@Xqhf0sDk3l7SA($gI{Va@sV+4ut4><&p`+(f$xF_xP>z@Sj z-d5mUcJ?_WQtplP8yHk?Z);mLHDuRJJp{e%y+a%5Q^c_Ud3y`m6VQD=%~blEy~pjH zoj#z8TT2lQ>q;l!?`k zkRrl1Y9A?jUqi|^^|Ih}b^*kRsF4BL{inF>!-o%{R0EX&&{qEKx8K0%GoR2f)6>@g zYYu2`UlfUsr7J#3_?jssg>&Plg}>^$t%FT zIr<+MjYa~H{ur`><7KlG6p-hB4bdT5T3RuvHG#k$h-SOf_dwTvfBr1}bf+*}g6$2&0arh6CcmaAb zG$e!`u4Xe_f|T!9!3P=fsrTrB{0o&qNSe0Kp9T{0=o_5N|ytt zk+KAmB0|b^LB8XHFHm<>pO|5NV<1XhI44$qX%KWT^y`dd_3 zNazrXEuj0j`uLeTZV&`#UIGO8nHrR4;zb>q-H_s?%&%(cSHLK)cy2=&4oNS7^ANf# z#D#Em-CQCT%2+In(0>pcA*B$+_d>1nXngW;P82Fh12>SnMV53=)nGs}o%aNalqcJj z4SOfeV21e&OJAOcYTQ33ziOih+NuXza$1^$jm!9X&1a)>lGax0KOUV>nC1d_ME^#z!b^_~bw%D`o; zAb~pM#*^M;soefWmkP)Cg~UGAGuwQUSk)S~)H z92l@H8%D6hy1H&4{SnysZqU|E!ow}8C6_9ylX#Ui zjqLc~kV)_1V1sIiV89<{p2IPpe%w@di6a$Z9ACxGy5u$~RCLmthb65`l7*35UZ9MF zz(5(N%g2kzwvU`)b(k~(+&ZJtI?Badg(j_e$0X4i6_Ti>iIb;V6s zGeXt9``<{Ls$Kw#bZY-PVy3Qts=4>;{(zKVT|I7U=un6s8jPt+rN?auZ?tD+#bg&P z%oP0Y=8jcv3!HWL_9Pw&Byx3R7%paqo0|P6RI`UOzd*`LM#t39NWWfyEvG@ugMY8f zf||6cTb;eF?Y6CgwHhyZFVH6FJ#2`A+D(hq&=9Q0(4WU=iGE$e4*rNtMX2x*wbi1*xPP3#RV zCFaCuY$e7DFPXm?vcB~yc)-BfBh4s?Xa6C-LQEW>NdC$k2xSH>cj`m!>6Hc6pY4&F)K@%chlz%@pR{ zPf@;U?khRk+VzXL=@l6QQ^wep*r$~n^drC^b5amXUr=3a?d3Crua;|CELis8{C9*~ zKC5@u?c}XqznR?3z_8kq9OlRUxIETrbK!~5UXG?#49}io;Vj23y^d65&%yqAq}n`% za~TK@(qmXT=`8Za`Iq(VT%_-cAyhl@?%3wzKcURhmM(e4C}nocUhggCKq83x2hb%| zyF~-WoPHBBZr0Z754?_D*u#tIguE;q9g-E`9J>NKMfO(bvUXg@;B8jYEo1n(Q(nIo zDW{;mPG2%C!&9o_le-uF$z~v^%L*5r7axD&r-vH$&Vrn6`vn=-?3bRetk0^dFvzop zwH&V~z~|GiAau0vQ~i;VqP9(2kLH#tQ&Q7}pG~A>v#_uXna$Yfwd5pTC~?7Y1LLnu1^Pov&Vu$gtve zkuqZvyCv=xaGxIQ?1whptU!m&y4HAsO4?jtw1v=Ar;*U?5602zW=YjJj_kT8lmyRS z*^(7mZ`%biYCzl$MVVAqB9 zkl6T(46RA(qVn`b*J}x5sJCfk6+Rwy@@#EJk=fg7{FhAwzeQDT*2>nVNIJTV{4(G8 zH2<%hBk==6f|QNlULa30`Rhq!<2}b$ji)U_?^awNp6Dqd@MrY4s;Tt&cI!w;IYez7 zCLFZppw3(9LA1p#>A%x5SZlJT#*Re9iX0D=}F|$0kI(&9T(4e!GUFe{I*l}Y_n*`*p13tJ&f5FCyg=@N8$_< zW7Xt-)VcEvcg;HoszdM2NM|A%IBt~}oOe(ZaRBHG8wVC$?$ z{SM~HGg>E+#ip44>fLW*I=S`fF~sZ_GN-;@Lo$=9D*A0J>H55{4W6yX7`tTgJk`)j z2QNOC`6%|`ep)F`7m2u^3tWn;?KG7n8qPeXdro7?KOI{Y{OhGj!@mV`v2soiPqM!} zTg{}{{(i7`MJ;)DB6>}Sc%#zc@VTz$kp!x^=)}i=&%e=^`3Cn%REdpjIl1|d0EI|V z4w*ZGKUl{bpafZjObuh>f1?`Wr8*WIB=c>_b9J%~ZZA34T29;N;u^zE>NV)^h}~0) z7*IBNwp+Q)$Kz@wYuKIRdwJ`-S*IH9xA8L)Pe1TIZph@kGj`|usMgAR5BIm#Y&KKB zM;@^n^RgbfzL@^v*c)*0g5-JmTu_zwr%oF}kkZ$W6q%BT0bUD*!4|ScC%wDsFEW=t zlou3~*4T}*lH=Wsw-X55nVRAmJki=qk=Y4MI zP=el^!rP&|#;|u|96!gk&1x{Sp=Spx13hFKwIYwAXUEO-gnQKTAzMZj&c-%g9@lL|8NkMCL$m;q97>Jln@|> zpd3V6sG)@-qJSVoR6tq)5viewA&^i+1e6w9s3D;T5+JlBKnUD$-n-WQ{(ic5-8bK| z)?Rx*&u`Dno|)%2Ga|ltW23>eYI<+d7ao1$NcqAPVbt)>z)U*WmMn6m->PPJ4TK(4 zI+W}EU(GWYQV&6X$e_&6U+TA6yEoqxdgYHpy=ezw=qj4HaEUPSP0f`G5Vp~^xc8QP zl_oww?b0+s1rbu5+aESjtS)O2pzKMwmjZ*bGu9@B09@K9SyPIHP7Dcdz4qO-+bEk= zdwh7g47NYUk5X0d0q^~qj4y*%cu^ppXxQ5bT(jEo_bZwDoineZ%mwH0{xww5vA@yr`nki^lQ}_nJw{miYkErSTnU*_>*teW|;0UE!qHK1(LZ zW$2+97KA_cCOqKxl87M$>c;&~ry|{N{X}Oe?fl<227|fihm3}x&E%AXn%{%2dja@% z-7Oj#tPUN=ZSc`ug|H4Wf-Wl$DviD+cPBCX z;|IO)Z)CRP$J6W0Z6JTLvQmw$RxJ_N+~-`_lcn#mRHu+%Qlr;+0sm<|H?Eeg(!?3A zcpdjF;@!u_pJ#@~{!khZnqAhm0szUwKy8t24f4n+BbMYeJ`Z%wH$WC-Bi2Q4m0@X~+akH#_|ZO^ z(AZKB2uiMRDENK!)%glMoW>`7KT&7kWQlS@zos-y(r07WRl0tqzMvN1h0 zuNF8RAj?ca`1x;~V5LR!G7b<3rD%xzx9rpU5R0$c*GBShIj}!e=~0PTKX#anHIQn{ zAKU&$18~E8{#nDX-yQXWbnLunnsiBd+Rg0$?9}|^kI-G-&CA9OvUR7+$MD+~_PTra z?jG9zw7yXzgnlngPT>6NVOGq~E-O|8iFF0gTnllXze5L?Ukl%t>Ko-g*J!n`@FF+j zyBwB%N{_Uh?92Dg*_)hj4JwbrPmc0Cs-V$I9;dYJSD*Axq$`8?C^8(5Ms+?P4t{Ax z>&eg?YjE0`VMe!NASJ_xT<&q>9e$CRRUau`scmu3%IDb@)A(WNxv{UX!b=fsH+|S{{tmzMfFsK5j7)pfuh}_)(=YJ- z7%r@I;)YUCe;%*N#({y~O7&wv!rGH?$3%|z$Ho*(0*Rs_>5(IN{FBz0S2H~jiCPbI zs|!EzG2E*$#Amr{RI!t0G#G{JUHx^4ohH7yeEJadVHFAifQ=?h$gS{P`}hHcaE-KxNv-6ox@S4}6ZpbzW3$H&4ME4%-6 z$F$G%;MJvV~36GK~X(4IqVkh62@A_6n9{MUzUBfd4=zm74d)_j^$_po2<3Bk@6 zO~9~mI(Ax4&uxe{X>;Y-So~Hp=$ee@={?EO_1-Rk=#31cBk;#ld9*JvGa4y#c*UlZ z8h~q64Gz^xA9sTtqvPWKD2je@q@Xd6=43e3{31v|yd0_>?xQJ4$+btEr|rf=Nge{Gtp)&;D2+%!1r z;EH@E;XWunTaT;$t}F{>WNG+5waaAcobam=XQY8o>z)-Zb|0T%8@LqvB{+!d1TQ?_ zp>=%CrgsK1NYyv|3$$&F{@zUenOtEJ>E=56!=(=_mSi9yM-&HOeO$=YsQdvjg$1LZ z$;{PkOL6Q6Q>inOMFyjjMWh^19e|NNog#rU??o&ZXZnBstt?BM?5%V%Ny+zvTC_Db zv?9BZWZn^5W5!V1IUCS&(WPIZB~F&3>)mE!*O$sSxh!p#Qu@Yf%!vb=7;}d<0n7m{ zjn)Sc@OWv$BYisQh-3(o(%=NffQ`@sQj#K<1e3;8d2^RahZ1wN;6|~EBMkwp7v^&c zU|o1_KCa}GlZSCLEApfI&|WddA>;g&PF5O5Gd4z!!^TEv`>d`>OD46nC7s*7?;Fyx z_wK~q8~9`ew7r0IXejo!(IBq3GIwW;hfmOz&UL?_F6e-LL0#u?PkKXGWW(OjW`WdE zJLao%)#7EU-Y0T0)bR4(X@Lj&9rozl=IK}}ziSd7v_@NKs}FK>{9V47 zH$wtoV>>1!y*vA(jGlvR6-tQ1tsyyM+x4`RV(S*!Pcai&yY~Y}ryM}Mf*Jp6`Upx? z-8nzT*l1#%dM%CGHC!;Co$WVUaBy+CI#-Rc8cFD;eoYfk84mnrzm1&uOGHCSmX2i}J>YM~`t$~4ou_^PGi+f;J*XN?gBGy>Fb%){x_yAJomj#CiKLDk*XY|2bgZL8# zK;2qS&JfO_h8nz`+76T8t=e-oOPQsqu2r)_uk*(1X>|cv9Wo%#U#b=QcpzqOeE$Zs zP{g|B&fg8|_T$s81Zimv&*1gc3WB*J*T0jtVhTxP-vx%#Ws$SWu+jNyLAtGY0B2kJ93A(#RQ8TG`~{GLn*Ltjjnx7qa! zIY${{&9^MD^yt>_^yylIPQ+8%!4_bTYO!#EQcbeP0VKL8Z6ESQugJdx?TiL1<9JUZ zRD7D>QT8vF5c8c_iX6n^d1Ze0rA0KBVm`aBmpCL0+Cg{P?y)<~ z0|C$;#%cC6$d?o-XTW;g{D?FNGx>^iJl%6*E^ zSu9@8K@}IwnA9lM&m2H{pOA)Hv~S;##{Y-6DRY0v?V@f+SQ%i~dbDakuyz~}zFnSd z-4a95^Y11*qca~yZY@(8@rmcfM3@73M_m%D(tj57yCpv+F?d!VMCG6D-yA;>_0>Zt_NYs02)S#WPi1+gOYvSXtuWhIz_mPN#m+Gz z@IiQ|3t5@h93;COCx6bZESynwuzGF)ZNs>oJK`y$h@SAF9K3uUP$9#UT~jD=vsfr< z?A?XnGBisDN#g0MC(WaM41$Fg=&~I84`9v+*wYB)^;8{348UIVkb;|qW-fac$KO>H zLMXLjyw{WuG(R&N!kDlbdjtw9(~xeUCu$Xo>qdbM#Bki($IM(0j(aIYM=7X)XSxgiP5e-7-7(Y| zd7L#sLh{18G2F|UA3E?TPt5HKp%Wbts2M6eNX2d}nXCx2&g7h77LB(b!&W~rAty!F6;M9j z#fInwmq@b{s&tY|qUWfniSy4Kzb@Ej->6Z!OY!YpFO(NEX%a#H^Eq&Aj5wTh{?vsB zATSe3Kwfu5+zX#5nsOH@_Vx)4{MZLb_$xU^wXuZJ(8y5fngA=D@$nhDKA=nWs&W6D82*8Hr(WLJp$og+#ws@ojZeoZj z+~sILlq->znm$Fz_t#%CK!x^V!oLw!q*C#NJZHZD$G^OJ)28pKbW)NEaVIfdNA0?| z851SnB)KvFF^8h_l$7XfVjO$y=%!PHH6THVWCQ=YzA7$@0*%2;T;`@q++*{}bLAwE zvMlA-s8O4PZRmr4oC4mEk(lc`EPZuqU3bb#)O?D^c+&P9x+NtQ^g-+OOJv-d>m}Mw z{DaK6Uu#@#uzqxQN6aCSpq91wvfQxn;hg^LvaQ*-ro0(MACL*aiA3i&hg)5UDY0~U zo!S{eAU{jsjBi3|=kVf6#yz?#5d$5R4#IaD_yr6-*9kOs0*HvPN5_&-dK$9S3Q^Af z4t+fE&H49NBS^KiYWcB&F1>R*wDsFS3n_qK|M3Y*nGCY7EPVR(oud({RX2goCmRs~4z?;Y;}6de+hL&(yw zG9qyTBdt_vzStx;Ef;q;KXXh$owf?n-_isfXByt(n_RtY9n?Mz*zMHu&U9(Mo?tpz z+e$DPaZH_p73tW7eEx#VBg093?`kn_G^wpU(Wt|+iM;;GWb|SoZxrqO()RHEEV-eM zP!Zp8^2ECt>vu5(W22;D>{F*??0)EGOaVv8D|E7^exd5Lw}iU84T&Jj%r++Ftf;~h zPD+W)paCy zK*jEC+^_E&2F0P&HALD{K#|;2bl74ut35mjG_SW?_$C}4l`mdqucrSf{69EkT6y4d z(ztt?P$y)`>X6UngDhOw@E=K>mYCsVfcMPs+HWw#WIynl6?2 zmmCKCdCJWPKTb-v@y67D4V+18;FMa_aP+bHHHJnnUL4`x?LFUtWt96Q6mgCUEl?3+ zO}1lJ46)=36T-Wf9d0kL-4XGfMQ`0k5zZYcx8mQ-4S=_M@LE-_zWq+y%0jFj zJaVD!$^op79w(Jn!7ysu00zbb==ME zAt2(J2j*8%h}oAAipxy-SlwQ$pf&3b zp%i<|_&<Zopah7a+4b%%`7CToSbm>rSz`v|0#F2n}R|9;=7rc99GwO#hYmU0C zZ&&Bam0>L@Io55DzFgT2hA<2+pZaSnS{<~;#P44XkLXFh1KIpJTHUtqxiwjN6=Ic( zV-a~16#6)_tbZEDb38gHt1OjKTaVWJ!$s+?fb%%FMCv$Z7vk30V!%vN%`_TbyvI4} zZe(=J8~Sy(aeu=;-SDwgp_x>g1$rpX)VXC%M}#qsA(eZdH~#xlXjbEo(a*Q zRo1>n>gin^J1hM~=IVvj`2IIgGCmKNHY}?5geEg&&TYuA_hFEyrz2NLKwC&X{O%g! zXk>@Iv(SdUx_L^)MGDu`H(Dp`e*X(_`yC1XSfM{pocPdSnV9aq_;gk*cWCpp$m{!# z@Am|<3Fpf9evd{jL_~}eP-L)`gB6d74TOBeVl8AD4e-jiI3r4g$4Crwjxj5J7p1@D z)QmcBjcj64m$mrdX7A}*^J}2_#C3ae?o}iwniLyv21do`yv1{SH|?qVFQ_Wu2zD1n zbY(K`B|@Ccsy3a;?L9nplc`lFOxcaq7vFg{J<1N>iPACsYqcxsa$MEy6k)ciZ zc)imbg6AEyFo3;(+Z@^C8CqZN2Q_R)MT#y>K*IiMnrn?cvA4L^c7Ls}IK0pXHmoIk z>g<_8(BT{eB`F&yYnXrP$)M}`aZ%ZRpZXrT0{85F30@DSJfY34XWs`45=;s&?lYa% zsy9&QE2l=s$Ln6H?~=tMb+2zvb*F?R$b>pzr+!yOg_FZ^qX+pWh_+Ht{y|K7P;$AN zT_7ak>(L(vem}2N2B=-^(>7zCn3xR;WAYUelx1@n5UzkM`i)1p})7X z@{soW_Fliv>!s_J0w<*OZnB6sB+dC`^KoK~Z6NL-Yan70;%0xlU$y?p^V^~(8Ad-6 zlPQe3a42hRBShnqx+=lmk9^uEqYSACAiiMr`dgIc%(7am8;4lo;u+482Se+j`#|&G(rEp$lEV6T_)0fa~T& zgmFcV%V;^WmdX3m&Wg@o=Z$k3*p(OAtxQoEGp=3B^CL0PjTs*HeYKRq5fhWX_&^yb zq;_78>*?G)mCyK7CcM3?eS(O%CLI!d+jta*K`Bwc25d`D<Z>e>>;?6*e9%C{bX+4r2HXXaY!Y&af>8gs#r>rZBAAL)Kzl2a~df^JQwN{ zQI@ECZNHCMRYT01nKze_y5RSVf?M6kH?}ya!1mrnyo!S@p#k&+Y9}cr^{786 zHQPoQ)wtSNRQ;aMq}{mGxWo@SJ_U43B4yPdvo?``!#uakbNVCQrfQvhL1mF!edZ=( z9&3m59_Bzce*KBLeg?qlWdzxhkL zUn($>Ci}7ayBR6R-k4??+*0=Y+kfwc`H;Ux-|R^BF6IfrLyB2Di^%7^mUO^RvNJpM z>1dZnsexNS-1nE~2Kf2oI5R22`@bK+VQzvh>B#-d!~bc<8U(ZBR#rSFp8ti3!*6Ai zN;XuERGiHfIFsDJWbWd1Z+4{VvcIc0z%=-)AAx+2;OkS8zz$cD#jWOSS%@B6;4d;J zz0w8?XP1fu!PlVv1`EG2&w9Ot@1MKk=eM7*u~#|ckCd;Y>sQ3^weLN-|MmtM(zxEB z^V*^ovpjG&+B@g$xeIgjh<*20MHNlV`K0K9L(YEdXhT_`HWE-D*yQS!6%@6s0_AKC z;3Wo!yTR`~ZTMdj95QrNtV%TZBi3|XGu}o#SGoE5qIZif(TlF_J@+NtygzoA#*w|! zEqX=7ZR4Vq$hl`Ib!&zGx9qMg*C0fj9n%ZZM{Pxvq2#_1BP;jcUrf&JU1iaR+u~5EF_ZUtK$@~vr@JIB0NRbP=?#f3PJh2C3)d9~ zysIiS2i`aV>IrZBF7=nr;^B=+R;rW%cRQt8j&qkwE)Z5CkHVIQ30spTa}W9B2bb<= zX8N*-Z}k@qaMt<9_~UFmLtzgy#fLSuSuXP*G~o>%9EvSIz;5MMEH6FDop#NijtDeq zT`mP24h?KisubDPLzmP@DY>!y>x9?=xb@GtWauPB4G*ebvqAy;?A2SA;Ex1pqsK{ z1*`G-10-s{(B9>8g{@6}Mwp2s>7%dp<0zO(3OWp0f3S6z2;10J`8W;ehTEISJm#4 zubUBd&AMAN+Y@D+PYS%-*OAOgVJMcJ&8p$J_#@bpTOgcBbxuyxKKaeG99X&uPVLM$ zF@6bIGY8tQH4-E~Lyh{?-5xS0$fLBEZu6D(=0Newh1tDxo7Bkx*)J zuXk(o?(%1ULoLgkGY*v)+~nf#8Lg!AE`xV(!{-$E6%n{_ng~)AY^RM_M0I2x4O$9! z=^C-VeLM036GKcXcqJ329k^XC?>sgyY3O|F&e4^w(y|ZFMX>T&6pbGW7V!@Djg)0E zW-YiqaA);>PyN=mWvR3yw90#X!uc!DTuG_@^Lz{l4xhF1^-YKM)Cg7|i;o)=S49N0 zMg&b3DWvsyO09TJZptSZT-9&%Z=Wu_1I0geFEU;DiEnRuR5MWJ+^ouOU{!xyz3FQU zHe-XBqmvVm1&(aL_s?IK;NsS4FR3b9i={Cke99FOS#B|~LO}8Sn(m42$y((>C zmcI=nb6c>HGpYc=a zO0I_vH8TIL;Zi%?HqOwj3l#q#rBtqC7xwhYB#(j-;n}?8n=N!tR82oT9zpNac4^fG zOKToKA*1dQF_r};AY4W!(^b(yfRq{-HJQdml&}-xbOLPpA8wois%GZwOx7PgmKYkw zm55GL<@6|ZoON0w{5mTLMif2;gUsAs@b<27*rca4gf#uI zY?CLi0UaOPhphFiPgf&U10JonAiLEux+{LY9~FiTN+W37Xc^t4Gb?(svWKIRk5}(s zWw^@wM{KxT*0?TgreTeqq8+#0VZPfvS?k%Zwr34!)V2$RHEeVnNlo*rD%SARsZ)Aj z=Vw2bOkfn?I^wHFa+rihqI5F?;JjnDsi(@Ibwy>DaSS@LGQi#6^bDwNs0s z5qU1ELQJUyI0r#&O)s>ia;s}Uc?P+Rjy{#txw05FNU@-=s`NeYEmnmcM=Wns9mj!= z_F2R0wa=P*`SB&_7ny59s?0GREn50@#;@-qN zJhuz3Er+^pFd}wch3#qi^K-Ct{o3ElMdf8BDL2DMCVN?@v%bWXSSm^>%*7v`O6Jo= zU>qOb2D+r=?`3{JoX2+yJ`ovh2LkQ570hHR9*I1oX(w|@L3v|Zn&2UsvPXbF44*#* zYftW=#k@at<3hl9WPl;9+%rX{z<=0Adi&E<=JW5BQBycasge!|_1W8-kjk-Yy_6In zoMQS`MNjW~5#v~ZxbLv8ds7j7Fw)=H>X}_FkJkcu81fl6B>~8MHazxve9hhkIH3jl zW3hbCx@hHy(8>Ao((;nP>(?P7TltlhhofjP5F(r@l9_K<{^v$vt0;6b6#3900(5l_||2J)FpZj+~0I95tRorik0 z4??W1|IH+QWc2?PtMmWS+0g$z3hV!DmZu~KzyAjP_kXbazXm(@KA*vdFAZPeN8cR0 O%)7=GM&-AhUi>fI6ucDx literal 0 HcmV?d00001 diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokka/settings.gradle.kts b/dokka-runners/dokkatoo/examples/gradle-example/dokka/settings.gradle.kts new file mode 100644 index 0000000000..5b8c3c92ce --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokka/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "dokka-gradle-example" diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokka/src/main/kotlin/demo/HelloWorld.kt b/dokka-runners/dokkatoo/examples/gradle-example/dokka/src/main/kotlin/demo/HelloWorld.kt new file mode 100644 index 0000000000..172e18f7cf --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokka/src/main/kotlin/demo/HelloWorld.kt @@ -0,0 +1,20 @@ +package demo + +/** + * This class supports greeting people by name. + * + * @property name The name of the person to be greeted. + */ +class Greeter(val name: String) { + + /** + * Prints the greeting to the standard output. + */ + fun greet() { + println("Hello $name!") + } +} + +fun main(args: Array) { + Greeter(args[0]).greet() +} diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/Module.md b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/Module.md new file mode 100644 index 0000000000..0d051cb141 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/Module.md @@ -0,0 +1,7 @@ +# Module Dokka Gradle Example + +This is an example of how you can write module documentation with Dokka. + +# Package demo + +This package contains a few examples of Dokka usage. diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/build.gradle.kts b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/build.gradle.kts new file mode 100644 index 0000000000..2cfc30bd53 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + kotlin("jvm") version "1.9.0" + id("org.jetbrains.dokka.dokkatoo") version "2.1.0-SNAPSHOT" +} + +dokkatoo { + // used as project name in the header + moduleName.set("Dokka Gradle Example") + + dokkatooSourceSets.main { + + // contains descriptions for the module and the packages + includes.from("Module.md") + + // adds source links that lead to this repository, allowing readers + // to easily find source code for inspected declarations + sourceLink { + localDirectory.set(file("src/main/kotlin")) + remoteUrl("https://github.com/Kotlin/dokka/tree/master/examples/gradle/dokka-gradle-example/src/main/kotlin") + remoteLineSuffix.set("#L") + } + } +} diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/settings.gradle.kts b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/settings.gradle.kts new file mode 100644 index 0000000000..02c75bfbdf --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/settings.gradle.kts @@ -0,0 +1,17 @@ +rootProject.name = "gradle-example" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + maven(providers.gradleProperty("testMavenRepo")) + } +} + +@Suppress("UnstableApiUsage") +dependencyResolutionManagement { + repositories { + mavenCentral() + maven(providers.gradleProperty("testMavenRepo")) + } +} diff --git a/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/src/main/kotlin/demo/HelloWorld.kt b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/src/main/kotlin/demo/HelloWorld.kt new file mode 100644 index 0000000000..172e18f7cf --- /dev/null +++ b/dokka-runners/dokkatoo/examples/gradle-example/dokkatoo/src/main/kotlin/demo/HelloWorld.kt @@ -0,0 +1,20 @@ +package demo + +/** + * This class supports greeting people by name. + * + * @property name The name of the person to be greeted. + */ +class Greeter(val name: String) { + + /** + * Prints the greeting to the standard output. + */ + fun greet() { + println("Hello $name!") + } +} + +fun main(args: Array) { + Greeter(args[0]).greet() +} diff --git a/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/README.md b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/README.md new file mode 100644 index 0000000000..647b0e6d86 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/README.md @@ -0,0 +1,19 @@ +# Dokka Kotlin-as-Java plugin example + +This example demonstrates how you can apply a Dokka plugin in a simple Gradle project. + +In particular, it applies [Kotlin as Java](../../../plugins/kotlin-as-java) Dokka plugin that renders all +Kotlin signatures as Java signatures. + +You can see up-to-date documentation generated for this example on +[GitHub Pages](https://kotlin.github.io/dokka/examples/dokka-kotlinAsJava-example/html/index.html). + +![screenshot demonstration of output](demo.png) + +### Running + +Run `dokkaHtml` task to generate documentation for this example: + +```bash +./gradlew dokkaHtml +``` diff --git a/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/build.gradle.kts b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/build.gradle.kts new file mode 100644 index 0000000000..b339cec31a --- /dev/null +++ b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + kotlin("jvm") version "1.9.0" + id("org.jetbrains.dokka") version "1.9.0" +} + +repositories { + mavenCentral() +} + +dependencies { + testImplementation(kotlin("test-junit")) + + // Will apply the plugin to all Dokka tasks + dokkaPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") + + // Will apply the plugin only to the `:dokkaHtml` task + //dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") + + // Will apply the plugin only to the `:dokkaGfm` task + //dokkaGfmPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") +} diff --git a/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/demo.png b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..92f1170f28b713eef0c7eaa3fe095d15f0fb5a8b GIT binary patch literal 101974 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 literal 0 HcmV?d00001 diff --git a/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/settings.gradle.kts b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/settings.gradle.kts new file mode 100644 index 0000000000..0a0b8c0eba --- /dev/null +++ b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "dokka-kotlinAsJava-example" diff --git a/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/src/main/kotlin/demo/HelloWorld.kt b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/src/main/kotlin/demo/HelloWorld.kt new file mode 100644 index 0000000000..172e18f7cf --- /dev/null +++ b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokka/src/main/kotlin/demo/HelloWorld.kt @@ -0,0 +1,20 @@ +package demo + +/** + * This class supports greeting people by name. + * + * @property name The name of the person to be greeted. + */ +class Greeter(val name: String) { + + /** + * Prints the greeting to the standard output. + */ + fun greet() { + println("Hello $name!") + } +} + +fun main(args: Array) { + Greeter(args[0]).greet() +} diff --git a/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokkatoo/settings.gradle.kts b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokkatoo/settings.gradle.kts new file mode 100644 index 0000000000..019ac938ea --- /dev/null +++ b/dokka-runners/dokkatoo/examples/kotlin-as-java-example/dokkatoo/settings.gradle.kts @@ -0,0 +1,17 @@ +rootProject.name = "kotlin-as-java-example" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + maven(providers.gradleProperty("testMavenRepo")) + } +} + +@Suppress("UnstableApiUsage") +dependencyResolutionManagement { + repositories { + mavenCentral() + maven(providers.gradleProperty("testMavenRepo")) + } +} diff --git a/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/README.md b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/README.md new file mode 100644 index 0000000000..60d967b8f5 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/README.md @@ -0,0 +1,41 @@ +# Dokka Library publishing example + +This example demonstrates how you can integrate Dokka into the publishing process of your library, adding +documentation generated by Dokka as artifacts. + +This is useful because some repositories, like Maven Central, require documentation (`javadoc.jar`) to be published +alongside library artifacts. + +You can also use services like [javadoc.io](https://javadoc.io/) to host of your library's API documentation for free +and without any additional setup - it will take documentation pages straight from the published artifact. It works with +both HTML and Javadoc formats as demonstrated by +[com.trib3's Javadocs](https://javadoc.io/doc/com.trib3/server/latest/index.html). + +## Running + +Run `dokkaHtml` task to generate documentation for this example: + +```bash +./gradlew dokkaHtml +``` + +### Javadoc jar + +Run `dokkaJavadocJar` task to create a jar file that contains documentation generated in Dokka's Javadoc format. + +```Bash +./gradlew dokkaJavadocJar +``` + +After that, you can find the jar under `build/libs/dokka-library-publishing-example-javadoc.jar` + +### HTML jar + + +Run `dokkaHtmlJar` task to create a jar file that contains documentation generated in Dokka's HTML format. + +```Bash +./gradlew dokkaHtmlJar +``` + +After that, you can find the jar under `build/libs/dokka-library-publishing-example-html.jar` diff --git a/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/build.gradle.kts b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/build.gradle.kts new file mode 100644 index 0000000000..731de85b07 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/build.gradle.kts @@ -0,0 +1,39 @@ +plugins { + kotlin("jvm") version "1.9.0" + id("org.jetbrains.dokka") version "1.9.0" + `java-library` + `maven-publish` +} + +repositories { + mavenCentral() +} + +dependencies { + testImplementation(kotlin("test-junit")) +} + +val dokkaJavadocJar by tasks.register("dokkaJavadocJar") { + dependsOn(tasks.dokkaJavadoc) + from(tasks.dokkaJavadoc.flatMap { it.outputDirectory }) + archiveClassifier.set("javadoc") +} + +val dokkaHtmlJar by tasks.register("dokkaHtmlJar") { + dependsOn(tasks.dokkaHtml) + from(tasks.dokkaHtml.flatMap { it.outputDirectory }) + archiveClassifier.set("html-doc") +} + +publishing { + publications { + register("library") { + from(components["java"]) + version = "1.0.0" + groupId = "demo" + artifactId = "dokka-library-publishing-example" + artifact(dokkaJavadocJar) + artifact(dokkaHtmlJar) + } + } +} diff --git a/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/settings.gradle.kts b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/settings.gradle.kts new file mode 100644 index 0000000000..e0847ac9a0 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "dokka-library-publishing-example" diff --git a/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/src/main/kotlin/demo/HelloWorld.kt b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/src/main/kotlin/demo/HelloWorld.kt new file mode 100644 index 0000000000..172e18f7cf --- /dev/null +++ b/dokka-runners/dokkatoo/examples/library-publishing-example/dokka/src/main/kotlin/demo/HelloWorld.kt @@ -0,0 +1,20 @@ +package demo + +/** + * This class supports greeting people by name. + * + * @property name The name of the person to be greeted. + */ +class Greeter(val name: String) { + + /** + * Prints the greeting to the standard output. + */ + fun greet() { + println("Hello $name!") + } +} + +fun main(args: Array) { + Greeter(args[0]).greet() +} diff --git a/dokka-runners/dokkatoo/examples/library-publishing-example/dokkatoo/settings.gradle.kts b/dokka-runners/dokkatoo/examples/library-publishing-example/dokkatoo/settings.gradle.kts new file mode 100644 index 0000000000..198cfbdf92 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/library-publishing-example/dokkatoo/settings.gradle.kts @@ -0,0 +1,17 @@ +rootProject.name = "library-publishing-example" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + maven(providers.gradleProperty("testMavenRepo")) + } +} + +@Suppress("UnstableApiUsage") +dependencyResolutionManagement { + repositories { + mavenCentral() + maven(providers.gradleProperty("testMavenRepo")) + } +} diff --git a/dokka-runners/dokkatoo/examples/multimodule-example/dokka/README.md b/dokka-runners/dokkatoo/examples/multimodule-example/dokka/README.md new file mode 100644 index 0000000000..c8b224ec32 --- /dev/null +++ b/dokka-runners/dokkatoo/examples/multimodule-example/dokka/README.md @@ -0,0 +1,25 @@ +# Dokka MultiModule example + +This example demonstrates how to apply and configure Dokka in a +[multi-project build](https://docs.gradle.org/current/userguide/multi_project_builds.html). + +You can also learn how to set Dokka's version in [gradle.properties](gradle.properties) using `pluginManagement` +configuration block in [settings.gradle.kts](settings.gradle.kts). + +____ + +You can see up-to-date documentation generated for this example on +[GitHub Pages](https://kotlin.github.io/dokka/examples/dokka-multimodule-example/htmlMultiModule/index.html). + +![screenshot demonstration of output](demo.png) + +### Running + +Run `dokkaHtmlMultiModule` task to generate documentation for this example: + +```bash +./gradlew dokkaHtmlMultiModule +``` + +It will generate complete documentation for the root project and its subprojects, with a common +Table of Contents. diff --git a/dokka-runners/dokkatoo/examples/multimodule-example/dokka/build.gradle.kts b/dokka-runners/dokkatoo/examples/multimodule-example/dokka/build.gradle.kts new file mode 100644 index 0000000000..6b416abc4b --- /dev/null +++ b/dokka-runners/dokkatoo/examples/multimodule-example/dokka/build.gradle.kts @@ -0,0 +1,5 @@ +subprojects { + repositories { + mavenCentral() + } +} diff --git a/dokka-runners/dokkatoo/examples/multimodule-example/dokka/demo.png b/dokka-runners/dokkatoo/examples/multimodule-example/dokka/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..d25576b8e24dd75d5a862baf02fae5110e20fbc9 GIT binary patch literal 93395 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

qZ9o4NA8`rXFvQje$ZgUwhte)V~JQEjqSHsOu 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

)^6a}R&2h1c!bP+O}>V=pS9W272ZyvK~;V2 zHuk5To7qum7^15Dl8!k68}Df*^8Os45iI*^!@8YlBo7UpMF>gb*;o9>nxZjRQWwz=LjuNcnOYgh?eFQnvnc7U!StjkWuYMPdLpqtixKX8}KaDk+-u_SVt= zB=3c{l-%EZ^gr`5f#_$~-#qjrW9|lo{QAyj|6mz^Fij zVPLbySTDCqQN!o>zq~wE%MGd+p4j*1L}7TCn3(Dip`77}2~+OxMO99~R;XD1Z#(m- z5~d|Eo}N2D6vr!r`blH<@8jeR1cRwC5>EwP%B&h5VNwu@}3Rxz(WE!@F21vXSXj#H>Yx789KnVIJBm#cM|b zNa3*ST5M=)%s9EG6QpA{C3a9#k1MH|r%nn7KVvfQ24RjEG%i%ao6q$GhGiD$;r?!EEJn-PuT_Wj5XNxF{+0h+`{usbh&T zjG;=|uZYqo9k```EgDzN#F)ocIHxid&T5!(XjuW*DICqa8{S0u9v1Kxh9@=nGFfeW zaj`rxOdK|=S*qf1=18pqKJ%S@pB$`Nh(1lvmrae0?V60d@0aDHQGJj+iW12-E|FPa zVpiPMrwFTgT3|oF7L+wHnRsk5MblLrp&6}y6i@$)bvC6~yPk<=tqS+v!bcmAo0Vp5 z18A(@6nl~V+mq5lz32D(7RR)3JrO7-Y5UsjW=rjhvnOT&k=c!TKv(zp`s zY-suWAw)vPErt+ITuk$9+Vg9eF4MLfw zst6b4#2ZBlk~}n`9K<*gx#u&Lr%9XpYKGw-_WY?73LHMg-4rpte|NgZ5~~_&3i-IS?TD-`nMIu zQIn$ecj^UPo^NiI%_OVk&IuG4B5H1&hvGwu$8;+{ zx1c!fMUm-I(ij z&~qTt;^EY5Jwg5T15OE8D^GIHXohfW_yFLmGdPc;dg9|5!2~#omO6jck)m7zenBkw z;>|3y(ks%e-kJ+}NykU49Y;ufk&1cf6UcSxkpaHDJcrPi7K z3s)u)DPXI+&^rSH?Gwuz%$@5X%`zW7R;mmL%_%aT$3xRYiU^zcFx-m($bH5?FaWvL z^=7nyCO1`2H;9EH-0A&e zB~XS};Ny;K1ornm<5dtA zkLMkYew`W_X_Z^%Y?XU#k)F}q`q*|FY*>^e?}74I>6#Z&HuT>GirD|J9;EdD`$C>V zq4^X?Ea5V)rXZpJIg_D<{bVv_zf5>78RMS);`yU!07LPi>;KB}R+3(3DO3M@=Dm)d zwRFZ*Ibb`(plY!?|4*Py0zL^|&Y6Z0H+~{Yz%CcEObr*`!-VbDBC{lHDnFSd4i_Jn z*vcHN;t(^{5)IapJ~>6hO5AIstk0VX)}%>&+|u$mGM0V>i#Lmkik7q>Z{p(ON{HXn z&{!?hmJ@`l{7JlPjXLKuhGvRz)xVsXtI8jcs^c|FE(}w`Xt_3; z>>GGK*uR}3qRaA7QqWO0;P5y{G%hz1;NU^~m)312c|Y93ftX{f#e0pBH}qQh^8z$r z|FYq%}=n zJ=WGDc(REy-TT357Zyx4)EYAw=Wq_d&#kcEDUjm{$c8BSr8oD3ElQHpV%s%M&b0}- zZGF*rVBa-O7ps(Qth^nJCMvRR8K9I}HtR6S|5df@;Kee^4`IpA&o_qg2?>$;L_`b& zv`2e;ySvG>Q}l6yET8B+Skkqj*JS|3UOdA|9jbP2{At?sFb5JV#ix5{nQkyFo>>md zyp@oBDUs7_S}o?D4=4Ta>6g|Nd0Aq)P&;bLb2wLJ0f>omuH61&@;rjX>VnhJkAq<+ zF&k&D>W_uNq^FZZb`;IQf1j8zr2O!WaSq`88V;M?Z})315!n`1nlyGNrvpJ~yA^{8 zqf#+5zM1$;gdym*XE*v2W5y+8a2SLn#G3@3s7S@)oQ%bF=q*+<$bBk*uPrGlfTtqRg9z23{b-us`J6 zb8oqxtzVvKOH4BWjY~r-FVV#|O|pg*k4OLGW`Mckmv1>>ckIhk6*%vch|jXtif^gPa+GEFa7Vm7aCy!Xi%lhN%MLlBU8?JVp*O%F3sY4byVspXc!(XRPYN) ziDE?~0XDcGwCi_3KtN$Bd3(u!&hp4W`u=ZDaEAi#e-Md-y{!L7*J(5xkXfnxAr+vU3&ttt%JDw}=Jih#J-}2zRmF#@-`TXhN z;NZjkp?6_nAu1*@mwrc3x>#U^e9tb}`~F;zbF~&!0ap7wm^QhXrv631>=KWlzTCMP@Clt%)^? z)r7O}!LqW0z$Z2YIlEgZqOClJ2Yg>I-1SO$S9pV-gMkWk^=0*^Y{1X zUHH*1h9zWJGe0X0tj>hcCIGhn@Cta|oQ-Bmgozs%8ExbPHYb^Xa%AM)OHl;{1>OG) z;2#&4s~~J@Lyp61E_!C>{ogt?Wf>SVI>k{KHzOUs>|Fr`CpK~YiTZb`#jXQLqC zV%Y@+@A7j~^dY02cB>t)GDl6hh`p~j;sKoj?lNo1wG zrVo*B<$@N++RlrP<>lp{KYxCNr!4Qqn{Oh)vuJ7GM-lVyqvx+)Cj{l$ z>;q|;+l&3g#6*b*a-n%E5)zV--;aaGX6dd2N8Xex32I$$2E0ejq7yVV74m=x#3bQy zfZR)+tOQatAN@lI^1m&cCYyj1BhSX=-92jnsZ!372@VcU6!yG1pN6o$eCjPYJhjpu z=zOr?+GPv`|3Jdn^JXV^*5JM$mBQnPnur^J@0(V)^03*vCHKRo%O!W zF-rG~y&b*&g@uKNgZhvNg;D|6lXU`!$8jeC1oRRM3sPa&`_CU;l>yH^hn0Md!u#&e z;^bi?a3zyTFTgtv3*YX2eMR+f)Q-j4bfzROF0QPsT)H=6UGuOd@^B420?h3k(Hl+2 zs#&=`BydQ|W%?!+4G1UNzho^<5E}Bz74fk*rh{kDKfx-hF6`!q)u%}4rv4Hx^)v%U z%p0%(z;(yU^xE;6H77#!Smo*DQx?kf#DH?cL0`^bhc0J2C_)|65$Egx+rdFLoxYP=C>KJvs0am}X`3BJq zOi4#D4#DydYKibYR-y6J%9m3a^}2upSLw9}lpAy(EHy!!MjIl^BOnRb1+zZ}*p zWY((IF5|r0h=<^_>IeeX5B>C+76d{;MAVDw7nFB+#B6hz7b-Z*K3qrwEH)wCR2dv- z{_t5^x<6W8n9pSBZ+jpXq|6Vf5AeLt_Vzl3!q42K5qPxGA6Qrp0AUq&MBut-){qYY zNHS@0GGb=`!ahXLYQB2Vx(4FI$;7~r^wD;8x3pzxY|KvY#&B~W@opMW68Z8Wb=Jo_ zzj2t#W`P2|8Y6@quUDFhCq>@lm*d#FFrvBXY`fxmrGm7`o42d019-@zE3a0V3FS^U zod*fVDZYNg6JA0iareu+)L@DeIBZldord)I>9}sh0-CbJ3g!ZgU6cFeMb<{8+4$8L zunVBm#*&h~fKrvHFwBxH3U&!u@)-{hI;qQh9JQgsy&pVzF;OsyW0I2QrgO{PFAoq1 zg#AoeeZ6MsG~8ia)^kxh1fSX5vN6q%^JbKe@ynNcz=~}ZI+>31{c0ke*Rd8zO}Z4L zr8cJuFk7K``BxO+ZTfYu&;o&iGSb(Jh7+Ez9muZ7m_PsHB9-fIsd)0Kq$@UB(K+W^ zqW4D!9NRt5<@cbTZYoOh1KvaCJdr2kSoAZfTBRN;PBc*|U6JO7MgPi;wO?jNM!xiJ zy<%_X8*${sqaEnjE>|dIR|w!|L`1Y-k$LqrD&MD`&S#Hm4ukMBA=UZ=kG zl7@}#2+RBGS*ko$hH&R-_||Ux3g%*wm35I>Sxn05CisuVn@eXV*SGBB%WyOc8U%F3 z`vq;sTD5>1>CjnQBwLSXI+2$b_DDaQ8)<-9dOc}DKl^*qKb*GXXo5)RZI)es@;I!{ z$WQcQ?1rCM7h#_;#`S^<`p@S`-tfJivkeOVs!q|3)qojM+qKvfuR?(uL&!tK z%iQ@KNhvwO%fZ2sBMWs}Y1i?6cUCG=9Ee5X)g=M}dP>w=FY*hk5RB%gde#3}5mm&U z#RI$UWXJpZ`8C+Uoc8BNMieeoz4fXzMF7-czvR&!PUfj%)|`{G89-uPdjz;)=LOsD z)}PO=ErE)O4_;#~I_7~qj;dqG4sVf%jh2Iq1YxiE7no3oS=Ieq6brR#9+X+ssg%L6 zk#~BS4nNr}{k`Z4gaXDs1RC_1omD;;ML*FIYkHmI@z;Cu7h?FhOKr>S7nLz(j{K*8 zc8$j(dBQCNtnR|d4L@B*ukGv%`o7+8H`Jjv`pUVmZF+V+jy=?4F*e#e{7lsJ+IHKj z;BTRU_jDd7EG#&nTgz>J*V_pYdTQ%7HZ&9{Mg~8n(Lf zSUY|Rog*(YmcM#bl(t`!c9z5Vyl+Qg`A?@#t@C}o$kvA`#RDxId-z?v8Z3SuTM)8N z2&u|-nBs*}WE|Pa)M6UYX4YD9Q(iy6L-NdE=_@nH>?40vugrXYqgdMC+xxvtw++zv z08A36d%zh3pkQTXC7utHkPXzjGoHJf&(jEXms_NqybCRbh1ef0BDnLf%y9R zf&hj9F_C|Ba|5V*-NFta%7BGz8l1|x+3op54PeKc!M^ZMA zDC4`Q)BiTRh(XQI1SIEd)c$tD?M`fKotO~kSNf2M8bvBYi~#?CUZf&;X-m`^)YG~N z#A?*$a>;sF?Ol|H^grHqqq#dNko>-+q$Q`+Tz&__AVRNum4g$B<*$Z5v8<8U@Fu~7 zUOeLK(YqPBR+qHx6@kq-o<=!Mt^UFFk z#GB{zdIC$=W{iObm9L*j&Fm_Ge;Y{58?N(}^q^J~Ct$E8FUwQ9witAWF9I`a5(^wE zY#z@F@dBtD^QyU$ISfKJT>y;&%QR(PH4X7@vZ(7d>>C~)2115`fxDK6TM+;r|N8aI zYt9jePHv#LH@~#Bw5Z6^(vp}oRowo4(*?4_@y^oL25`SSVqq?z?(RpJNKzWckFB~uXVRdzMIGkhqzIzFfL%<*o zGX@|{$p!$LzJC4c>gp=sd~kQ!@~{Yact8Zvd|OTaOD-mF%_BT_*PIhgX3)VMjqeBh z)EX*Ot#=g%tMqWNpO+&~Kp-EGN)NlgcPSKrb8powHY?YwqgvfPm zdcI)a%Rkx9;vO-;cf?5|FGLPr#_*80v^;Ao+2s$n(dptPe})ySzFM6<;u?c2!&?rk z8lhRCB?J8$X!Er9!S^`jIx7)T3ZSwhwS=#XNG{`Is3r*G8>n1OAuQAWZ5Qf3u%Zol zeOoJY>7aWzvnCXE|Ge3Cbgfb~$P<@+ZSGEkSf{I{*-2;AV8j(4+oFpgf_iu$mG8uu znVA_KpXmyKWNtHF04SFiI-dXo7G%i39k2nbYmWoa`HjX#!OYPa_(RvlM&kZUVgk5A#za6{x8+@;=87%CKd@J?r(o|0%5?F0r*m|rv3Wn zM#mj69>5=i2q85vxCxN%?=a)zws%zZAi`^Y=P)paqovtLY&MUv@B0PcN7s7d@l6Bj zDs$b*-}>5c>VEv?_DKM}ygW!N)Zl|qaTCq-O1K2J-CNhv_8%{+KW!W9-KeCYLIW{S zLD3Q!Q;|??^}zP;Y-*pqhy$%aXGr+yk@!gJ}kv&=VZw%fB6Tw+*#RR`Rx4$_f%ImKQug{ef#t6zIJ`?!ZK)Rjb>91eD z7W+mYy2Zi#QPH~s&@UnPi?gh3U{^*)yXTLG=$&7Ko^icOOwfSLbZX^QKTn<0!vv`coaJtTfwdPe1>mHLR@5}KAkSh@f zBq09<2m$*;**^9)feSBy3D|u5WdGgzJy!D%@+QD0KLa89e^|Z;&B(Bko5Gv^ut#dy z=Czi$#snhf*(^DHVG3)4^>6b899it2s(8O1uA7xb9d#i(2<q7ULrL#A9QwlRro5{BC&#acB(3G9B!;_**o zrOrnsC>8-12}H1;<>$Qbj=MuW{y6vd_wRbWJKC>-zkbKh&;R~?hardKIER41Ef9Uh zgPodf%G8TB9lI*@qaGt&!1r%qgaTned?@(GkO!21N61XYz~12YC*My$t>G(({A+WY zCmy4x@J2^Ra(HE{%Im97L<_JmR6g+w&s$|^XIL`c3-rX`4m#Vd=x-jxlC1i@(S&xS z6fF}x4ywVabK(o4Il4huUVT4JzU$6=;gV2Ji_U+?M6G+RiC2IQY~hylq%6=%BYw>X zqVc-bN_*-rlDvo+3wf1{e-7u18U-!WW2i<#HrTt$UVvhLHsNqqCx9rPf2+wPQbT9M zEx!~k+!>ibE5z)36%^9`W{M{r5{Ad9R>_F6kPk3L1h}|tdtc*|0IcACa|XN}01qH3 z{EmI|w|-ue^`%y<(Y;yq=f3a$miu_x+n)lIj6=$nvWCXhl$OnT)&^`?xWR0kHlPW> zaNL_7$r5l!c46Bi)tb8#_~K^9V2Kh0n5b?!VKKflzgv%Cj~@JqX;6E5-P;*&mMu#g zA?TFY$|3svaZ1=8$*;&lAABy}cH_@&4L!rc_Fvh~-=w{W>$`|I<43~?^k&nwY6-TZ zzkBi^vOLUN13p;8NCl%zzMFXslrx+BByl1O09}~5EC4+euHUs1)Dx~7Jq5|7y?#j; z4ochHyM^$P;^?Pi1|m3~WB4{&fhTO>?Pc9*A?=>FWvXp1AQ2A~KQ6*k+_N18=8j+Q zWi*14I0(^?!1ywEV!@5-Iy#S$)6mQS9RA?_aOo{3CN^u}kbiuB?g@ZIYHI4?kIeal z#V``kIyBblH@6CRLuL0R0o5>3pM?I_V=RTgudF98lVT0G3k zSNwSAcel|Kkk31tJ*cQlFDCBZYl_EjS zA52>c6q8VFLF+yXTbA-qaY|nJApFYQ?)<6L4bJE>puUt8ne{I&lvGl_7=EM*T!Uts zIRB#LEPwav37ziMYq)1vee}zO(Ar%=mST(t&2Y-Kv=Cn>Ch_jiyf~eudbiUcg?sL$ z8Pt8lP;%7$k21CBIL4H_rB@g9L5)iC1+US4%gn}e0IIF5VS6lVe23g+`DaR2+*u=) zuwu*UPHyVdgu`WUI@g4v-J;`k{-k+G=a}p*z$_IM6xbsN)&eQKu2w@>hh{9tvLsDH z+kj+cOKZ=xYu#QRL<~3|%D?%UA2$yEU%{JwR-nO`^VxG0=bAtmn){PHByr%D?wMhS z+$Xiq6p$s`30~^=q?FC!eacNkN|;yg))`tkJ=XjpS3Z#yL^xLjH=%KV^1%ocw&4^X zD@HjlCVU(4hJtk0b}rtIL%dMoo_)zQKJ?IU#)RGTIaQ#T&2vlo8NZ&79ZbLUtmNs? zKp@DMZtAP&JjFhvL@-j0Mll$^3PD;u2o6HxL|(n8dhlr!8cI**A#4dawg3@25xm{f zb0bC55sA+*_!3_`HZ~RkFifF?S^~T#H+0Y#b`4Mg)f!9y-B+?(4{)rg7=%A4 zhqr*+#Ky)d(W$GeKLCM_@4M$Hk3+|4)(E&^rg#|tmZT+X*+C#bn(y*8YaQSo0pc+( zC1q)l7NCED65;<^Y8L_+vTkv)|p_9T2;h)~^0$EUDE8=A?-` zH>@8B)-X}T02m7fCp&E4+_?FRu53LH0z$%%9zfjI9vB!9a1oy>OcixRchPvo)5|Y= zdqPI&F{{c8ahe<)4CB6P?jIcH*?R%%PJe)4NOxp)|KvUHOj(L>tA%CDwf%ULNk`>` z&*8+6wO$}SNh0H}=*cKP+_vrc(PON91ZX8@su&&Cp6oxr7x-f)RC4W&KzT?n#jY-w zs5^~*&ME}rTpfr%^CY`|@E^N!x@B8U9hs&yr=WQ{6r~9p6gscS_5`O(uMN$xIoM#T zgtZj!hhq*F3d+-Ny~~$z*Ut0N=bazb{NB*SRLIee3&sT|xjct$61e8`F1f6Qt|9H3j6$?#FUg~=ffpV zr<1z<#_2?voMZuK5cYo5a<%ZNG}tuZ@n50?uBOj zX3A`R_Yt=;C>ta1t^qPVxujx#ACN91Ik_R^{VkB30FFeImJShr%pw3pIFPVux!!~V z=Q+4m6W9SO_s9kVk9fNYwE?mK^=3rG#BSrVyo(;EgOBfY9Ya}KQX;%Id<9gEJ{$## z{2j*RcRSlI0XG1EEPHwv;Nu(2c}z#rh&YWG09vnR!A=^emVw{jDgch_QKpgCTR>bh zIJoF}w7t740Q?xRNsBIPVVuSTrqh!^UKn_qV{N;xYkVgBet_nl@PqfHpZ}Lsd&x(Dpo^oYuA<1P}?pQa_Tq z_5u#Tl>z5d0fU8vgaB#$hq-+d>g4 z-CcKX&+qpi<9@hf+^=_xyT6G9Ywx_usMkc^LRJz8WrT)az<`}n==^rMStRr~ITv{;msRr4kMyhub_BkS@cEE_;plHQ z{?WVFcU>jWcCk*E@1rumwBJ;oL|ry|@B6*(PcEwN>rpEc^_rT!G3@;^J@i6n{{@lI zO(WyG7Z)iL{YodjUsi=)I85lg*hU&}HM~W#Ri4h(^15uxXsWmWPW_VT!(z^52_AB} zj@FKNukteK+%mOf0ky1)rYSKWliJwJ(=%UW<+7Dqn`mWgwx#`$ztx$M(tIe%rZYh1 zjCo*py%-O+e4tWDJhvQE;x_(3%v+iTAEvN7VVqj;htL2j6c7y{*X=m%1{nXWZGMJ{VJQ-Q2EQ`w-80L!tmv$s*N6GerYN;+26&KaUe52U%?!hFb`#Jr9V@5Udh+w}x8DPVE%RPOobvAR)_ zDJQWff7H~-wAZ#j+OeA_Zn|2*o{iJAci@6&c?;`pKvv_(xTHnoj#j$8bY5+Aq9N%Ze7- zG>GCA^2>^|>xqb0(b2`W!}S=&{m0n>O<=8*59HH;|&hwQ^hkE<Akz-Hr30OMApFFDXp@N z??2Dk3xB+4l19Pj_U=Rik2(E921EXRX*!o{&sonV)g&t1ms;JQyYb}pvFq}rJ3Rtc z74~Udr4+u#^NP)#f_(6-QtdXIsN~NFU)_y+qF_?1My;%9cv`qXYWLE2ITc@zfynpY z?FVKRM){*0U%1&T*GJoZ5^luCAKtJMzJNKV!R=~!PLHYH3DM^%-01$+`D9$=v><)C zZnf)W%d8Li*9f)R1y}i|UOs!-d!(@^NleU?|AeOOl&jPe_W-MNdp(Nw=?9%HzVsl) zQ|(>ItDNYkw#MI$^zT2px2#km&$SjXK5p!Df}ET+?y1YXMeb5%fn-^MWa)_-t?SI< z6Q>E}oUh)$DJqrX$(!$FI=kleqN1N+&#rUK%n41`pCzip5tLaJEG8-Gw$OSLKQxWR zC*4ewe|-_vX9nyg80O&9T7%=`9jA>3OQUit3~kD zsQ%z1-S_McmR|Q~%ZBReL?;t0Hmw4Ond%_cVj_=Uw3>MD8Qyvd7hr#J*5-btD%|`1 z@s6*<{A*zVP6C-j{(GcYmE$#~Nvu zCDn;FQKq1Gie6Ns`j<(sj-RQ1a9ww~p+`9Lj>6#k0YQ^;c{xr5XO_peS8r)slO#Km z?5wtNY9%N+-8nLUU0m#yrUj3?K-BikAssb%Z%UP(VIuX{5}Ld9e>_%RVjjM=pgY*W z&JlKykuvR!{iv)^u+8CDH?6;Jy|z7k??q^8OVz8E&iQHGXD04sZgGXhlxe~<+J|Z= z$ajjh{aC&du zCPr+nE{ug&&XUqz{Ma=UVPRpR&aDF-upMbUBm|)rN2qOX{*j=f z@}9DD=y60vZe;Wr&+J%A)H5;VkO5fEWXJ|rMd*TU63uC6I=@NiRH=wHjH zh(0%UgV4O%;wSai`q$yQI#toeQsv8w+n7(btlOO)6psHfluzBAtm=P7#nwc++KkKl z)Q*-WRGQ2RNY5($MGrVe>19FNdcY| z>h}an2M=vTaPYmA*+Eoa8%qU6#eg;y?82-CF4lUovSy3g`0?Y%Rn{#?J9pBTYs0uL zi#K>HuR@fpcyS_W?36J(%8@(i@pq?B!5srF2C|xri``Bx9TMML@7226NTxf6PE1jS z^z00f*i=Q3i(6+i2VL0&3UvAK6G-{FM#`Wue zO&jQ&mR zCns0soPxko_)DD)Z?{ZjvdR7N_3LFn)Ffb0YkT`byODrYj$z>C^ICbzQ{4AxTJKN& z{(UEUiC|dfN$%LkIeoy!#wKwpECMn|*hTAiLp%my z$;rv5ue!HLc6ob(&#t)O<4$8!@^tUQt3}i9?35=@o_zhmOX9vejKhWN!S~gaB*q~= zAGr*w7apfpVs0srh5r$It|Jxxyq;uPLrPx0t>7*#xjm#aWJtHt`V~;BBAd(ou^Blk zDyR@dk*iHh@IV8KLsrEffgx|t`ba@OaP4TP#~k0dpAK|&bwxo*ZSTDZ`lht6A~!ep zy`*1TUar{0N4Bw{p$eBpiyJo@KU@pUG3SV9Wo1p0$eJq!1e^TPm`QTC*mZ-4?S_t$ zVzQ7{J|`#V4KrEFRfA`66sTK`R0$B_8#=7qg4E&qNR0{ila6os=ZNH4;c!un4;AM- zu)gkg!z5Hx`bG0TmArfpzIUw~c54^kAGdDItQ1#DAwKsujZ0M#%=1il8jq28<1kC~(gto&PQ9(fj*q@4r&qs!ZCGf|B)n8mh_A4-Mq-W>PN;F-)Qw-GS zOT))|DH@y<2aG&gSGAuJ8$+-G$;GoMP=>XkUpbfI7x41+P4P1XVu`)cvz`?-s#a27 z9s@KJF7vInb|9dZWy`UJnj5`V>`G;<1dJIb57l4L^1riRdie3<1$LPSZQ<^$$rMhaB1-h=X2xODWLsOC3SF_y;Pa4>n@{X(P?~ogr2R8K{)5CGCOvD- z&0;(@>fo_`&(OTGpF2mii>=HJ(+NA44R*kix4i7Y#Kcsm3#LQslcAh&q{;i$$;jyF zE%5j^ZGDE)rEpFM4Y#3BnqgB2V5&Fqpybms-uPzk#lT=fr z6DL~|0=>Mh!F2|XvA@y}CZfo|z~*Hg7n18o6we>{RnCy65KQ@u~$To|rDrNKQ&Ja}{a#bwoNtIy8bLsjK@nV_e5= z!yd*&$dqnuHTItOtgUAX9?W4o=B>WDC#jmb@Jvyp=uUKh*2y;SMEjv>@-+)}tE{XH zvg77rx25|2TUn+-L$x;z4TqSbo!>RfD$vkGz>le}rWP6&mSxgB1YC@T_Zeeg-7f+0 zYK1xYyn5z2H*1hjx6!2(#RGSlq*x%Ys0%*Vt3fkwROckv(bZ+zbF{gxPR?v-3?o3p zXJOv>?pYfnnxlxC67OBpN0qM44b_RlO^R?-b$ngf-wBT=>Pkn){GY}r4a3CG1ZG=V zSy6}<0cxDYO;b=%;JHfD-=PVC!c$B*z$v4kFr4wi2m<*~eI(LC8~!dlz!;oV&bJD@Tw_mPoCwV9#_V&85ugNa=HTgM7F#P zOEW#TvWhN|pZ#JFZURfY5P_jWc>rS|?7aN3xL7pgCMP*Y(FqFFg79wMQ>QMCX}i97 z@q!ozNm`~UX#Jo`Ayf2ZnYF|4K{#gryUYua(=3$r*r7wy167plb-V<^!omWSXa%%D z>PoV@y1E!7Sy@>-J3CX;QNSwve{~e`b7Ge9m}c6Ry|uOD166^mqbs0ZuGu~uN_fG* zC>#1c!vGdN9aGP$>T1{^Ad0=u46Ycg*Qdfm@yh+?@R5&|4O0wW8EuYhfaZ3=X5brE zEbdKyEFH}r(b56{@r}Wfik4PWX=n^ApgI{c!#oyxR#6Qq6xgkLhJ;=~`}z5K2>05B zj;)8IU%s^3Dhk#bCHgAxttEA9y%aZ~=k12Y6$(5@(eh(Ym@Lw8eQ|g8c@jBt6mpX9 zo>rZ-)wQ+BRgvv$Q^myq52o!l_=q_?8u%TyAZbKWcw}Ts77x1~AGIIWzfQ4hq|5+% zeRzVEoBh`Bc4da~+YS-EO0FBLF)|^eX3e#Z0U;rLdKIMXH%)=EG((g_NT1!G&v+P_Lq$XT63#e*gYG zoJ$A8))-F80%qR_(-5Sfr;;S@eH4LloJ;>3nw-g={PuW5N|0d0xCz(G(JzvflS6Nn zVE?5DBadcMcUz+}jF@<8&mf0e8CR4X`*NejWG`9_z((RlKc;jqP zdI`#1NL3O})xiBIE`B~fE!3R_4{Rfk7B#*>RRUYzj}&=?f&%JpbOHLa?T_BT8HCWH z0=7ilfg$k##@P3)M0z*8)21g5ToxN^PuoIj%qm*#`fOPY&IfhM*2GpqVpj;WR93cO z9d(_PS2p}=Y-~RLq(#KFvGJTWNZQQN6g4Wml09e{#=XVy&i8}~m21GU=zyskWKIbQ zY1&%k;r*tH*4RVd<&4Wvk&}Nl`0jhTsMx9nqsMJj|Ia`Fv^W~+r>i*+)gDi|KZMKx z)TS|^v^3e%>^u$*!(PtG`a_nfnb{biG4(*q?uQiLoVSr&I#Xg`N>#Ztj>Zd4FlV$r zg!3YbURhc8*RQ{9Bih0shBI2P0-^lO@LmU)7J<`#viu;Oh~`{Diu+CE`+$H9z(_l_&I#j69w_GkLKxnv~|aI9^p)OLTYJenFZ~)Viwm_WF2NmW&xOi6j&ky9GL! zn8k)5m58iQUrpI-4XGGV(e!-vbgvF|2YjZm8k?r*5;pLC&1uCvbl(^Vnu3-eO-YQ; zUg#z#A)zK`FaB&BM%Lkg$QFxR21-d)OTRMa699K1uUGSMz~U$p$nD#2QW^Yc_)>M{ zbumrXu3aMtYbYzv0|LH&{W>|BZIZ?#=nq)nOUBKV{k}-r3Uf zszzWVXdS)T%*>4XZYHR*(kZI#m6sxNaxT`@*r58GBaH|Ibs}wFezGf4)J@yA5ObP5 z{}X;;Ec4V{EBJh22jlT-&oV^HEOK7S7^0dCO9S#Hqv2%}5z)5oASOKv$C^Q2q5zEf zuWr+QDs5Q*Iu`+7_kOskxjD&2(@c94#wHguSS~)pt?Kr0Xyf2f)D&y4ZKOvk{u2P2Tg zx_JVpQm-haG;535VS7OeCm>ULkDCD zcDJ)4q+TuIfj0W-wqDi@I$CD8CCXTE3r|jykoX?>Z`xK)GVxtW+zIjN$;dw`VQH{& zI5|4DrCPnPm7;lTSQkFgTc|O1=m>ieV00dBDq*e_aSnjho@%9_punzYl%wBgdf6=F z+SsvWQDPXkaUu2r8@*2npId8RJu(5EED#Z6xP z$}xHWwYa>c5r=Q8Pe4He@BIN)qwE1saF>WJ26>%LaHPY+4b<$^{nSGe!VT9(q*C(WVLd|ObU!)A@X=+@LcEY?Qr;c+W-MD9AtUdQ>Yvw8cT`WP;wwGFKkA?6TYf3os?p2Qyptyn2 zaL<}cjIk#O&_DO}ZC!8sVr^sQ>`XN5ALzGfd8VG?I{)X!y?cu&-O<8ML@@{C9qtMt ztTguseRIO%43=cJS^FfiH!aOea1KX~sBpb%05ZlVmc~ZwZ!b^7KR9&JIn5_5tP?$X zE*Xal3N*4y{cHYDcgmlurl=!?ZsS5gFXEWBBv4Ksco@4UjDv*4SS-hx8${7_KfmD| zTTP`8V@9hI-ZeJ-0_T^STkwEH`ECmfyjiL%FeoU7ATc%|QkRoVr9~IU!EPWAF-ycT zYqWh61d^GsDR$@Vvhomx!5%TyMxAZ-t7J8PquiUg$q0p(4J96aR?L(O{7|dUt_|l+!M<8V!IX1 z7nhURGKG$B7tI^{k~1NnLxC!{12CTDx@_ni=NUS40B1I+(! z*_Bj=>~WsLYgA1N>qTGxgNKJC+IlTb%^Y*O%VK9Fd_sXmP9(9jun1rjA)GFt#FJ6; zoWt48U?AK)GhOq&au$-KMO>;g%uA!yg*myn66g1X@I2S8wI1SXP1i=xDLu!cr`dZaXI$$0heC&$ z-w37D)YR>denL^jE+t2#@KWU-;Ia7lb1uHYjx)c-Wo2t2x`T=&Dn`b>NZ>WV)bsZ2 z$JjMPg`KjY3bi@2lJM;MH?3ffLICE>4g^-|qlpyEOY-jzSV98lJ3EUM>3A_FJ!#PZ-AN0tZ1=b8BOf{85)_0u-h;vsp;;+wZN*D*#|(jqk^^_ z`uXS2w;0+KnOg)coXZ*k!$4Bf7%-l8fkWf;fsYv(0R69AC5xj3?^~d&hrIP&NInH) z2AaIt{>jcdEW7^6$xRr*OtiKgBI#x8eZI$TI~GaY-DsXdYdgCFm$mG+kF7~JE6d7$ z=J6P6HXT=Q|6!t@cW;7dr$DoC;Do?D=KOAN!Huo5(1?g`l4J3}yWu;0e0>*+vLoB1 z#}r!k7HBqEp-mbrx^ts{o@fbL;1rd=i6s;*>gFofU{mW1iWmGt>Wgkc9$x7fo3D>| zqFZq2KR?p=9%H>egU?9ODc05zWJ+uu1w9D)*SxPttMvIcR9K8gFETALcz%A};Sza6 zOsov=MpQgnbjnF~k+S~SL2{{|%i_mHcH7+$@}pkAUjM94S6KCns{`yt+)VU0^bG0? zUs1W{R@M)m5U_(Gb->MO{?AwIxg3edHKh4@I;Te)0G5>MbpAbX-%h$zBGR2z`pVQ1IOxqz)?XzdBJ zbV4MX*?;@r3Ip(gDe76jx%TT}V>mfERo)K=Vg)ht84`a${e(d#7!|kT6vv^E`RgY* zUaF_m*VHuA>P?4naC38~ND>wpS~)axtWfJDnnHK%KIjY?k|4Z>&~QO_tiGSPnG4Gi zU7Q(7nq81I;oi8~qzQ++uH(|=UD#0Il*YQnX2g4czJG0L$wVUpJhhJBEd&i7-t!NL zHV_&r=wz{z45H+i>oMXRqp_Q8Pm3P9aOTW=bjPrNPNCTc*W~;BxwMp2e1GN`@;YYP z1q$mfs|FIPlLH^Nk-Q;hL6{auL(t8CtGHmj!?eVpwjIvh?>8*>{e8qkAzuj#{wu!~ zhk!A?$G##sR1)afnST=DwhITSm$VrkiMjY+XfAD;Kjh>%0A)D#IsNioUhelx)69KG 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