diff --git a/gradle-plugins/build.gradle.kts b/gradle-plugins/build.gradle.kts index f7b6b30330c..fa101dc0049 100644 --- a/gradle-plugins/build.gradle.kts +++ b/gradle-plugins/build.gradle.kts @@ -57,7 +57,7 @@ subprojects { maven { name = "LocalDir" - url = rootProject.buildDir.resolve("repo").toURI() + url = uri(layout.buildDirectory.dir("repo")) } } } @@ -98,7 +98,7 @@ fun Project.configureMavenPublication( licenses { license { name.set("The Apache License, Version 2.0") - url.set("http://www.apache.org/licenses/LICENSE-2.0.txt") + url.set("https://www.apache.org/licenses/LICENSE-2.0.txt") } } } diff --git a/gradle-plugins/buildSrc/src/main/kotlin/gradleUtils.kt b/gradle-plugins/buildSrc/src/main/kotlin/gradleUtils.kt index c2477215a1c..56b91029ad0 100644 --- a/gradle-plugins/buildSrc/src/main/kotlin/gradleUtils.kt +++ b/gradle-plugins/buildSrc/src/main/kotlin/gradleUtils.kt @@ -3,7 +3,6 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. */ -import org.gradle.api.JavaVersion import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.dsl.DependencyHandler @@ -14,20 +13,14 @@ import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.testing.Test -import org.gradle.jvm.toolchain.JavaLanguageVersion -import org.gradle.jvm.toolchain.JavaToolchainService import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.withType -import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform -import java.io.File inline fun Project.configureIfExists(fn: T.() -> Unit) { extensions.findByType(T::class.java)?.fn() } -val isWindows = DefaultNativePlatform.getCurrentOperatingSystem().isWindows - fun Project.configureAllTests(fn: Test.() -> Unit = {}) { fun DependencyHandler.testImplementation(notation: Any) = add(JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME, notation) @@ -47,12 +40,6 @@ fun Project.configureAllTests(fn: Test.() -> Unit = {}) { } } -fun Test.systemProperties(map: Map) { - for ((k, v) in map) { - systemProperty(k, v) - } -} - fun TaskProvider<*>.dependsOn(vararg dependencies: Any) { configure { dependsOn(dependencies) @@ -71,4 +58,4 @@ inline fun TaskContainer.registerVerificationTask( } val Provider.archiveFile: Provider - get() = flatMap { it.archiveFile } \ No newline at end of file + get() = flatMap { it.archiveFile } diff --git a/gradle-plugins/compose/build.gradle.kts b/gradle-plugins/compose/build.gradle.kts index 88ae9ef5fca..6d3a4b990cb 100644 --- a/gradle-plugins/compose/build.gradle.kts +++ b/gradle-plugins/compose/build.gradle.kts @@ -39,7 +39,7 @@ sourceSets.main.configure { java.srcDir(buildConfig.flatMap { it.generatedOutputDir }) } -val embeddedDependencies by configurations.creating { +val embeddedDependencies: Configuration by configurations.creating { isTransitive = false } @@ -75,22 +75,22 @@ dependencies { val packagesToRelocate = listOf("de.undercouch", "com.squareup.kotlinpoet") -val shadow = tasks.named("shadowJar") { +val shadowJar = tasks.named("shadowJar") { for (packageToRelocate in packagesToRelocate) { relocate(packageToRelocate, "org.jetbrains.compose.internal.$packageToRelocate") } - archiveBaseName.set("shadow") - archiveClassifier.set("") - archiveVersion.set("") + archiveBaseName = "shadow" + archiveClassifier = "" + archiveVersion = "" configurations = listOf(embeddedDependencies) exclude("META-INF/gradle-plugins/de.undercouch.download.properties") exclude("META-INF/versions/**") } val jar = tasks.named("jar") { - dependsOn(shadow) - from(zipTree(shadow.get().archiveFile)) - this.duplicatesStrategy = DuplicatesStrategy.INCLUDE + dependsOn(shadowJar) + from(zipTree(shadowJar.get().archiveFile)) + duplicatesStrategy = DuplicatesStrategy.INCLUDE } val supportedGradleVersions = project.propertyList("compose.tests.gradle.versions") @@ -150,7 +150,6 @@ for (jdkVersion in jdkVersionsForTests) { } val unpackJdkTask = tasks.register("unpackJdk$jdkVersion", Copy::class) { dependsOn(downloadJdkTask) - val archive = archive val archiveTree = when { archive.name.endsWith(".tar.gz") -> tarTree(archive) archive.name.endsWith(".zip") -> zipTree(archive) diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt index 3528f3f7a8e..0ca647ef4e0 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt @@ -29,8 +29,6 @@ import org.jetbrains.compose.web.WebExtension import org.jetbrains.compose.web.internal.configureWeb import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler -internal val composeVersion get() = ComposeBuildConfig.composeVersion - abstract class ComposePlugin : Plugin { override fun apply(project: Project) { val composeExtension = project.extensions.create("compose", ComposeExtension::class.java, project) @@ -65,28 +63,31 @@ abstract class ComposePlugin : Plugin { @Suppress("DEPRECATION") class Dependencies(project: Project) { val desktop = DesktopDependencies - val animation get() = composeDependency("org.jetbrains.compose.animation:animation") - val animationGraphics get() = composeDependency("org.jetbrains.compose.animation:animation-graphics") - val foundation get() = composeDependency("org.jetbrains.compose.foundation:foundation") - val material get() = composeDependency("org.jetbrains.compose.material:material") - val material3 get() = composeDependency("org.jetbrains.compose.material3:material3") - val material3AdaptiveNavigationSuite get() = composeDependency("org.jetbrains.compose.material3:material3-adaptive-navigation-suite") - val runtime get() = composeDependency("org.jetbrains.compose.runtime:runtime") - val runtimeSaveable get() = composeDependency("org.jetbrains.compose.runtime:runtime-saveable") - val ui get() = composeDependency("org.jetbrains.compose.ui:ui") + val animation = composeDependency("org.jetbrains.compose.animation:animation") + val animationGraphics = composeDependency("org.jetbrains.compose.animation:animation-graphics") + val foundation = composeDependency("org.jetbrains.compose.foundation:foundation") + val material = composeDependency("org.jetbrains.compose.material:material") + val material3 = composeDependency("org.jetbrains.compose.material3:material3") + val material3AdaptiveNavigationSuite = composeDependency("org.jetbrains.compose.material3:material3-adaptive-navigation-suite") + val runtime = composeDependency("org.jetbrains.compose.runtime:runtime") + val runtimeSaveable = composeDependency("org.jetbrains.compose.runtime:runtime-saveable") + val ui = composeDependency("org.jetbrains.compose.ui:ui") + @Deprecated("Use desktop.uiTestJUnit4", replaceWith = ReplaceWith("desktop.uiTestJUnit4")) @ExperimentalComposeLibrary - val uiTestJUnit4 get() = composeDependency("org.jetbrains.compose.ui:ui-test-junit4") + val uiTestJUnit4 = composeDependency("org.jetbrains.compose.ui:ui-test-junit4") + @ExperimentalComposeLibrary - val uiTest get() = composeDependency("org.jetbrains.compose.ui:ui-test") - val uiTooling get() = composeDependency("org.jetbrains.compose.ui:ui-tooling") - val uiUtil get() = composeDependency("org.jetbrains.compose.ui:ui-util") - val preview get() = composeDependency("org.jetbrains.compose.ui:ui-tooling-preview") - val materialIconsExtended get() = "org.jetbrains.compose.material:material-icons-extended:1.7.3" - val components get() = CommonComponentsDependencies + val uiTest = composeDependency("org.jetbrains.compose.ui:ui-test") + val uiTooling = composeDependency("org.jetbrains.compose.ui:ui-tooling") + val uiUtil = composeDependency("org.jetbrains.compose.ui:ui-util") + val preview = composeDependency("org.jetbrains.compose.ui:ui-tooling-preview") + val materialIconsExtended = "org.jetbrains.compose.material:material-icons-extended:1.7.3" + val components = CommonComponentsDependencies + @Deprecated("Use compose.html", replaceWith = ReplaceWith("html")) - val web: WebDependencies get() = WebDependencies - val html: HtmlDependencies get() = HtmlDependencies + val web: WebDependencies = WebDependencies + val html: HtmlDependencies = HtmlDependencies } object DesktopDependencies { @@ -100,7 +101,7 @@ abstract class ComposePlugin : Plugin { val macos_x64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-x64") val macos_arm64 = composeDependency("org.jetbrains.compose.desktop:desktop-jvm-macos-arm64") - val uiTestJUnit4 get() = composeDependency("org.jetbrains.compose.ui:ui-test-junit4") + val uiTestJUnit4 = composeDependency("org.jetbrains.compose.ui:ui-test-junit4") val currentOs by lazy { composeDependency("org.jetbrains.compose.desktop:desktop-jvm-${currentTarget.id}") @@ -122,31 +123,19 @@ abstract class ComposePlugin : Plugin { @Deprecated("Use compose.html") object WebDependencies { - val core by lazy { - composeDependency("org.jetbrains.compose.html:html-core") - } + val core = composeDependency("org.jetbrains.compose.html:html-core") - val svg by lazy { - composeDependency("org.jetbrains.compose.html:html-svg") - } + val svg = composeDependency("org.jetbrains.compose.html:html-svg") - val testUtils by lazy { - composeDependency("org.jetbrains.compose.html:html-test-utils") - } + val testUtils = composeDependency("org.jetbrains.compose.html:html-test-utils") } object HtmlDependencies { - val core by lazy { - composeDependency("org.jetbrains.compose.html:html-core") - } + val core = composeDependency("org.jetbrains.compose.html:html-core") - val svg by lazy { - composeDependency("org.jetbrains.compose.html:html-svg") - } + val svg = composeDependency("org.jetbrains.compose.html:html-svg") - val testUtils by lazy { - composeDependency("org.jetbrains.compose.html:html-test-utils") - } + val testUtils = composeDependency("org.jetbrains.compose.html:html-test-utils") } } @@ -157,7 +146,7 @@ fun KotlinDependencyHandler.compose(groupWithArtifact: String) = composeDependen fun DependencyHandler.compose(groupWithArtifact: String) = composeDependency(groupWithArtifact) -private fun composeDependency(groupWithArtifact: String) = "$groupWithArtifact:$composeVersion" +private fun composeDependency(groupWithArtifact: String) = "$groupWithArtifact:${ComposeBuildConfig.composeVersion}" private fun setUpGroovyDslExtensions(project: Project) { project.plugins.withId("org.jetbrains.kotlin.multiplatform") { diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalExtension.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalExtension.kt index 4144d7a4206..ad15d50a099 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalExtension.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalExtension.kt @@ -7,21 +7,21 @@ package org.jetbrains.compose.experimental.dsl import org.gradle.api.Action import org.gradle.api.model.ObjectFactory +import org.jetbrains.compose.internal.DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION import javax.inject.Inject abstract class ExperimentalExtension @Inject constructor( objects: ObjectFactory ) { - + @Suppress("DEPRECATION") @Deprecated( - message = "Starting from 1.6.10, Compose for Web goes to Alpha. Experimental configuration is not needed anymore.", + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION, ) val web: ExperimentalWebExtension = objects.newInstance(ExperimentalWebExtension::class.java) + @Suppress("DEPRECATION") @Deprecated( - message = "Starting from 1.6.10, Compose for Web goes to Alpha. Experimental configuration is not needed anymore." + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION, ) - fun web(action: Action) { - action.execute(web) - } -} \ No newline at end of file + fun web(action: Action): Unit = action.execute(web) +} diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebApplication.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebApplication.kt index c9f4981998d..af57cab4dc0 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebApplication.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebApplication.kt @@ -5,14 +5,12 @@ package org.jetbrains.compose.experimental.dsl +import org.jetbrains.compose.internal.DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION import javax.inject.Inject @Deprecated( - message = "Starting from 1.6.10, Compose for Web goes to Alpha. Experimental configuration is not needed anymore.", + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION, +) +abstract class ExperimentalWebApplication @Inject constructor( + @Suppress("unused") val name: String, ) -abstract class ExperimentalWebApplication @Inject constructor( - @Suppress("unused") - val name: String, -) { - -} \ No newline at end of file diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebExtension.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebExtension.kt index 5d8439f7db6..ba5bab84fd6 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebExtension.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/dsl/ExperimentalWebExtension.kt @@ -8,27 +8,24 @@ package org.jetbrains.compose.experimental.dsl import org.gradle.api.Action import org.gradle.api.model.ObjectFactory import org.gradle.api.plugins.ExtensionAware +import org.jetbrains.compose.internal.DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION import javax.inject.Inject @Deprecated( - message = "Starting from 1.6.10, Compose for Web goes to Alpha. Experimental configuration is not needed anymore.", + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION, ) abstract class ExperimentalWebExtension @Inject constructor(private val objectFactory: ObjectFactory) : ExtensionAware { - internal var _isApplicationInitialized = false - private set - + @Suppress("DEPRECATION") @Deprecated( - message = "Starting from 1.6.10, Compose for Web goes to Alpha. Experimental configuration is not needed anymore.", + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION, ) val application: ExperimentalWebApplication by lazy { - _isApplicationInitialized = true objectFactory.newInstance(ExperimentalWebApplication::class.java, "main") } + @Suppress("DEPRECATION") @Deprecated( - message = "Starting from 1.6.10, Compose for Web goes to Alpha. Experimental configuration is not needed anymore.", + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION, ) - fun application(fn: Action) { - fn.execute(application) - } + fun application(fn: Action): Unit = fn.execute(application) } diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/web/tasks/ExperimentalUnpackSkikoWasmRuntimeTask.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/web/tasks/ExperimentalUnpackSkikoWasmRuntimeTask.kt index c627cde01d0..065f2a6f9a9 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/web/tasks/ExperimentalUnpackSkikoWasmRuntimeTask.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/experimental/web/tasks/ExperimentalUnpackSkikoWasmRuntimeTask.kt @@ -5,10 +5,11 @@ package org.jetbrains.compose.experimental.web.tasks +import org.jetbrains.compose.internal.DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB import org.jetbrains.compose.web.tasks.UnpackSkikoWasmRuntimeTask @Deprecated( - message = "Starting from 1.6.10 Compose for Web goes to Alpha", + message = DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB, replaceWith = ReplaceWith("UnpackSkikoWasmRuntimeTask") ) -abstract class ExperimentalUnpackSkikoWasmRuntimeTask : UnpackSkikoWasmRuntimeTask() \ No newline at end of file +abstract class ExperimentalUnpackSkikoWasmRuntimeTask : UnpackSkikoWasmRuntimeTask() diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/constants.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/constants.kt index e71dcc35632..36c8c90d244 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/constants.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/constants.kt @@ -11,4 +11,9 @@ internal const val KOTLIN_ANDROID_PLUGIN_ID = "org.jetbrains.kotlin.android" internal const val KOTLIN_JS_PLUGIN_ID = "org.jetbrains.kotlin.js" internal const val COMPOSE_PLUGIN_ID = "org.jetbrains.compose" -internal const val IDEA_IMPORT_TASK_NAME = "prepareKotlinIdeaImport" \ No newline at end of file +internal const val IDEA_IMPORT_TASK_NAME = "prepareKotlinIdeaImport" + +internal const val DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB: String = + "Starting from 1.6.10, Compose for Web goes to Alpha." +internal const val DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB_IN_CONFIGURATION: String = + DEPRECATED_EXPERIMENTAL_MESSAGE_FOR_WEB + "Experimental configuration is not needed anymore." diff --git a/gradle-plugins/gradle/libs.versions.toml b/gradle-plugins/gradle/libs.versions.toml index af869279d19..bb337e3a296 100644 --- a/gradle-plugins/gradle/libs.versions.toml +++ b/gradle-plugins/gradle/libs.versions.toml @@ -3,7 +3,7 @@ kotlin = "2.2.0-RC2" gradle-download-plugin = "5.5.0" kotlin-poet = "2.1.0" plugin-android = "8.9.1" -shadow-jar = "8.1.1" +shadow-jar = "8.3.6" publish-plugin = "1.2.1" [libraries] @@ -15,5 +15,5 @@ plugin-android-api = { module = "com.android.tools.build:gradle-api", version.re [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } download = { id = "de.undercouch.download", version.ref = "gradle-download-plugin" } -shadow-jar = { id = "com.github.johnrengelman.shadow", version.ref = "shadow-jar" } +shadow-jar = { id = "com.gradleup.shadow", version.ref = "shadow-jar" } publish-plugin = { id = "com.gradle.plugin-publish", version.ref = "publish-plugin" }