Skip to content

Commit

Permalink
Upgrade KGP to 1.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mpetuska committed Dec 28, 2022
1 parent 0546934 commit d1b3e9c
Show file tree
Hide file tree
Showing 40 changed files with 134 additions and 131 deletions.
24 changes: 23 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

### Changed

### Removed

---

## [3.2.0] - 2022-12-28

### Verified Versions

- Kotlin: 1.8.0
- Gradle: 7.5.1
- JDK: 11

### Added

- New [samples](./samples) project containing examples of various use-cases the plugin is able to cover.
- `@DslMarkers` to plugin's DSL to prevent incorrect nested property usage.
- Pull transitive npm dependencies from project dependencies via `publicPackageJson`
- New accessors for assemble and pack tasks inside package DSL
- KGP 1.8.0 support.

### Changed

- Fix #73: `nodeHome` override not working when used with kotlin plugin

### Removed

- Support for KGP < 1.8.0!!! **DO NOT UPGRADE IF YOU'RE ON OLDER KOTLIN VERSION**

---

## [3.1.0] - 2022-11-07
Expand Down Expand Up @@ -274,7 +294,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

[Unreleased]: https://github.com/mpetuska/npm-publish/compare/3.1.0...HEAD
[Unreleased]: https://github.com/mpetuska/npm-publish/compare/3.2.0...HEAD

[3.2.0]: https://github.com/mpetuska/npm-publish/compare/3.1.0...3.2.0

[3.1.0]: https://github.com/mpetuska/npm-publish/compare/3.0.1...3.1.0

Expand Down
11 changes: 9 additions & 2 deletions buildSrc/build.gradle.kts → build-conventions/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,18 @@ repositories {
}

dependencies {
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$embeddedKotlinVersion")
implementation("org.jetbrains.dokka:dokka-gradle-plugin:$embeddedKotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:_")
implementation("org.jetbrains.dokka:dokka-gradle-plugin:_")
implementation("com.github.jakemarsden:git-hooks-gradle-plugin:_")
implementation("com.gradle.publish:plugin-publish-plugin:_")
implementation("io.github.gradle-nexus:publish-plugin:_")
implementation("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:_")
implementation("dev.petuska:container-tasks-gradle-plugin:_")
}

gradleEnterprise {
buildScan {
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"
}
}
1 change: 1 addition & 0 deletions build-conventions/gradle
11 changes: 11 additions & 0 deletions build-conventions/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
plugins {
id("de.fayard.refreshVersions") version "0.40.1"
id("com.gradle.enterprise") version "3.8.1"
}

enableFeaturePreview("STABLE_CONFIGURATION_CACHE")

refreshVersions {
versionsPropertiesFile = rootDir.resolve("gradle/versions.properties")
extraArtifactVersionKeyRules(rootDir.resolve("gradle/versions.rules"))
}
16 changes: 16 additions & 0 deletions build-conventions/src/main/kotlin/convention.base.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
plugins {
idea
}

idea {
module {
isDownloadJavadoc = true
isDownloadSources = true
}
}

repositories {
mavenLocal()
mavenCentral()
gradlePluginPortal()
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,18 @@ import io.gitlab.arturbosch.detekt.Detekt

plugins {
id("io.gitlab.arturbosch.detekt")
idea
}

dependencies {
detektPlugins("io.gitlab.arturbosch.detekt:detekt-formatting:_")
}

detekt {
config.from(rootDir.resolve("detekt.yml"))
config.from(rootDir.resolve("gradle/detekt.yml"))
buildUponDefaultConfig = true
}

idea {
module {
isDownloadJavadoc = true
isDownloadSources = true
}
}

repositories {
mavenLocal()
mavenCentral()
gradlePluginPortal()
}

tasks.withType<Detekt>().configureEach {
tasks.withType<Detekt> {
reports {
html.required.set(true) // observe findings in your browser with structure and code snippets
xml.required.set(true) // checkstyle like format mainly for integrations like Jenkins
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("plugin.base")
id("convention.detekt")
id("convention.base")
kotlin("jvm")
}

tasks {
withType<KotlinCompile>().configureEach {
withType<KotlinCompile> {
kotlinOptions {
languageVersion = "1.4"
kotlinOptions {
jvmTarget = "11"
}
}
}
withType<Test>().configureEach {
withType<Test> {
useJUnitPlatform()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,16 @@ java {
}

tasks {
withType<Test> {
useJUnitPlatform()
}
withType<Jar> {
manifest {
attributes +=
sortedMapOf(
"Built-By" to System.getProperty("user.name"),
"Build-Jdk" to System.getProperty("java.version"),
"Build-Kotlin" to embeddedKotlinVersion,
"Implementation-Version" to project.version,
"Created-By" to GradleVersion.current(),
"Created-From" to Git.headCommitHash
)
attributes += sortedMapOf(
"Built-By" to System.getProperty("user.name"),
"Build-Jdk" to System.getProperty("java.version"),
"Build-Kotlin" to embeddedKotlinVersion,
"Implementation-Version" to project.version,
"Created-By" to GradleVersion.current(),
"Created-From" to Git.headCommitHash
)
}
}
}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
18 changes: 9 additions & 9 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,15 +1,8 @@
plugins {
id("io.github.gradle-nexus.publish-plugin")
id("plugin.base")
id("convention.base")
if (System.getenv("CI") in arrayOf(null, "0", "false", "n")) {
id("plugin.git-hooks")
}
}

gradleEnterprise {
buildScan {
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"
id("convention.git-hooks")
}
}

Expand All @@ -22,6 +15,13 @@ nexusPublishing {
}
}

gradleEnterprise {
buildScan {
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"
}
}

println(
"""
BUILD VERSIONS
Expand Down
9 changes: 0 additions & 9 deletions buildSrc/settings.gradle.kts

This file was deleted.

File renamed without changes.
26 changes: 3 additions & 23 deletions gradle/versions.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,27 @@
####
#### suppress inspection "SpellCheckingInspection" for whole file
#### suppress inspection "UnusedProperty" for whole file

#======================================= Plugins ========================================
plugin.android=4.2.2

plugin.com.gradle.plugin-publish=0.21.0

plugin.io.github.gradle-nexus.publish-plugin=1.1.0

version.com.github.jakemarsden..git-hooks-gradle-plugin=0.0.2

version.com.gradle.publish..plugin-publish-plugin=1.1.0

version.dev.petuska..container-tasks-gradle-plugin=0.0.4

version.io.github.gradle-nexus..publish-plugin=1.1.0

version.detekt=1.22.0

version.io.gitlab.arturbosch.detekt..detekt-formatting=1.22.0

version.io.gitlab.arturbosch.detekt..detekt-gradle-plugin=1.22.0

version.junit.jupiter=5.9.1

version.com.github.gmazzo..gradle-buildconfig-plugin=3.0.3

version.ktlint=0.43.2

#====================================== Libraries =======================================
version.com.github.tschuchortdev..kotlin-compile-testing=1.4.5

version.com.google.auto.service..auto-service=1.0

version.com.google.auto.service..auto-service-annotations=1.0

version.junit=5.8.2

version.kotlin=1.8.0-RC

version.kotlin=1.8.0
version.kotest=5.5.4

version.ktor=2.2.1

version.ktor=2.2.1
version.com.google.code.gson..gson=2.10
version.org.jetbrains.dokka..dokka-gradle-plugin=1.7.20
2 changes: 1 addition & 1 deletion npm-publish-docs/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import task.MkDocsExec
import java.io.FileFilter

plugins {
id("plugin.base")
id("convention.base")
}

tasks {
Expand Down
4 changes: 2 additions & 2 deletions npm-publish-gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id("plugin.kotlin-jvm")
id("plugin.publishing")
id("convention.kotlin-jvm")
id("convention.publishing")
}

description = """
Expand Down
25 changes: 13 additions & 12 deletions npm-publish-gradle-plugin/src/main/kotlin/config/kotlinJsTarget.kt
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ internal fun ProjectEnhancer.configure(target: KotlinJsTargetDsl) {
typesFile.map<String> { it.takeIf(File::exists)?.name.unsafeCast() }
.orElse(pkg.packageJson.flatMap(PackageJson::types))
)
pkg.dependencies.addAllLater(resolveDependencies(publicPackageJsonTask))
pkg.dependencies.addAllLater(resolveDependencies(target.name, binary))
pkg.files { files ->
files.from(outputFile.map(File::getParentFile))
files.from(processResourcesTask.map(Copy::getDestinationDir))
Expand All @@ -90,19 +90,20 @@ internal fun ProjectEnhancer.configure(target: KotlinJsTargetDsl) {
}
}

private fun ProjectEnhancer.resolveDependencies(publicPackageJsonTask: Provider<PublicPackageJsonTask>) =
publicPackageJsonTask.map {
val json = Gson().fromJson(it.packageJsonFile.readText(), JsonObject::class.java)
fun JsonObject.parse(scope: NpmDependency.Type) = asMap().mapValues { (_, v) -> v.asString }.map { (n, v) ->
objects.newInstance(NpmDependency::class.java, n).apply {
type.set(scope)
version.set(v)
}
private fun ProjectEnhancer.resolveDependencies(
publicPackageJsonTask: Provider<PublicPackageJsonTask>
): Provider<List<NpmDependency>> = publicPackageJsonTask.map(PublicPackageJsonTask::packageJsonFile).map { pJson ->
val json = Gson().fromJson(pJson.readText(), JsonObject::class.java)
fun JsonObject.parse(scope: NpmDependency.Type) = asMap().mapValues { (_, v) -> v.asString }.map { (n, v) ->
objects.newInstance(NpmDependency::class.java, n).apply {
type.set(scope)
version.set(v)
}
json.getAsJsonObject("dependencies").parse(NpmDependency.Type.NORMAL) +
json.getAsJsonObject("peerDependencies").parse(NpmDependency.Type.PEER) +
json.getAsJsonObject("optionalDependencies").parse(NpmDependency.Type.OPTIONAL)
}
json.getAsJsonObject("dependencies").parse(NpmDependency.Type.NORMAL) +
json.getAsJsonObject("peerDependencies").parse(NpmDependency.Type.PEER) +
json.getAsJsonObject("optionalDependencies").parse(NpmDependency.Type.OPTIONAL)
}

private fun ProjectEnhancer.resolveDependencies(
targetName: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
package dev.petuska.npm.publish.extension

import dev.petuska.npm.publish.NpmPublishPlugin
import dev.petuska.npm.publish.extension.domain.NpmAccess
import dev.petuska.npm.publish.extension.domain.NpmAccessScope
import dev.petuska.npm.publish.extension.domain.NpmPackage
import dev.petuska.npm.publish.extension.domain.NpmPackages
import dev.petuska.npm.publish.extension.domain.NpmRegistries
import dev.petuska.npm.publish.extension.domain.NpmRegistry
import dev.petuska.npm.publish.extension.domain.*
import dev.petuska.npm.publish.task.NodeExecTask
import dev.petuska.npm.publish.task.NpmPackTask
import dev.petuska.npm.publish.task.NpmPublishTask
import dev.petuska.npm.publish.util.NpmPublishDsl
import dev.petuska.npm.publish.util.WithGradleFactories
import org.gradle.api.Action
import org.gradle.api.NamedDomainObjectProvider
Expand All @@ -24,7 +20,8 @@ import java.net.URI
* An extension for npm-publish plugin configuration
* @see [NpmPublishPlugin]
*/
@Suppress("unused", "LeakingThis")
@Suppress("unused")
@NpmPublishDsl
public abstract class NpmPublishExtension : WithGradleFactories(), ExtensionAware, NpmAccessScope {
public companion object {
internal const val NAME = "npmPublish"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.petuska.npm.publish.extension.domain

import java.util.Locale
import java.util.*

/** Enum representation of NPM repository access */
public enum class NpmAccess {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.petuska.npm.publish.extension.domain

import dev.petuska.npm.publish.util.NamedInput
import dev.petuska.npm.publish.util.NpmPublishDsl
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
Expand All @@ -10,6 +11,7 @@ import org.gradle.api.tasks.Optional
* A simple representation of a npm dependency
*/
@Suppress("unused")
@NpmPublishDsl
public interface NpmDependency : NamedInput {
/**
* Dependency version specification.
Expand Down
Loading

0 comments on commit d1b3e9c

Please sign in to comment.