Skip to content

Commit b171f49

Browse files
authored
Restructure versioning numbers (#799)
1 parent 324af9b commit b171f49

File tree

11 files changed

+36
-29
lines changed

11 files changed

+36
-29
lines changed

docs/CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,22 @@ But there is no intent to bump the Ktorfit major version for every KSP update.
99

1010
# Unreleased
1111

12+
Unreleased
13+
========================================
14+
* Supported KSP version: 1.0.28
15+
* Supported Kotlin version: 2.1.10
16+
* Ktor version: 3.1.0
17+
1218
## Added
1319
- Add KSP2 support
1420
- Add watchosDeviceArm64 target
1521

22+
# Changed
23+
- Changed internal versioning numbers of the Ktorfit KSP and compiler plugin.
24+
With that change Ktorfit only needs to be updated when a new KSP / Kotlin version introduces breaking changes in the API and not for every minor update.
25+
This is also the reason why this version has KSP min version 1.0.28 even though the last Ktorfit version has 1.0.30
26+
27+
1628
# [2.3.0]()
1729

1830
2.3.0 - 2025-02-16

example/AndroidOnlyExample/app/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id("com.android.application")
33
id("org.jetbrains.kotlin.android")
44
id("com.google.devtools.ksp") version "2.1.10-1.0.30"
5-
id("org.jetbrains.kotlin.plugin.serialization") version "2.0.21"
5+
id("org.jetbrains.kotlin.plugin.serialization") version "2.1.0"
66
id("de.jensklingenberg.ktorfit") version "2.3.0"
77
id("org.jetbrains.kotlin.plugin.compose") version "2.1.10"
88
}

example/AndroidOnlyExample/gradle.properties

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ kotlin.code.style=official
2121
# resources declared in the library itself and none from the library's dependencies,
2222
# thereby reducing the size of the R class for that library
2323
android.nonTransitiveRClass=true
24-
android.nonFinalResIds=false
24+
android.nonFinalResIds=false
25+
#ksp.useKSP2=true

example/MultiplatformExample/gradle.properties

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ android.useAndroidX=true
77
#MPP
88
kotlin.mpp.enableCInteropCommonization=true
99
kotlin.mpp.androidSourceSetLayoutVersion=2
10+
#ksp.useKSP2=true

example/MultiplatformExample/person/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
version = "1.0"
8-
val ktorVersion = "2.3.11"
8+
val ktorVersion = "3.1.0"
99

1010
kotlin {
1111
jvmToolchain(8)

example/MultiplatformExample/shared/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ plugins {
1111

1212
ktorfit {
1313
errorCheckingMode = ErrorCheckingMode.ERROR
14-
generateQualifiedTypeName = false
1514
}
1615

1716
version = "1.0"

gradle/libs.versions.toml

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ junit = "4.13.2"
88
kctfork = "0.7.0"
99
kotlin = "2.1.10"
1010
kotlinPoet = "2.0.0"
11-
kspVersion = "2.1.10-1.0.30"
11+
kspVersion = "2.1.10-1.0.29"
1212

1313
groupId = "de.jensklingenberg.ktorfit"
1414
ktorfit = "2.3.0"
15-
ktorfitKsp = "2.3.0-1.0.30"
16-
ktorfitCompiler = "2.1.0-2.1.10"
15+
ktorfitKsp = "2.4.0"
16+
ktorfitCompiler = "2.2.0" #Don't confuse this with the Kotlin version
1717
ktorfitCallConverter = "2.3.0"
1818
ktorfitFlowConverter = "2.3.0"
1919
ktorfitResponseConverter = "2.3.0"
20-
ktorfitGradle = "2.3.0"
20+
ktorfitGradle = "2.4.0"
2121

22-
ktorfitGradlePlugin = "2.3.0"
22+
ktorfitGradlePlugin = "2.2.0"
2323
ktorVersion = "3.1.0"
2424
mockk = "1.13.16"
2525
mockito-kotlin = "4.1.0"
2626
gradleMavenPublishPlugin = "0.28.0"
27-
vannikMavenPublish = "0.30.0"
27+
vannikMavenPublish = "0.28.0"
2828
licensee = "1.12.0"
2929

3030
[libraries]

ktorfit-gradle-plugin/src/main/java/de/jensklingenberg/ktorfit/gradle/KtorfitCompilerSubPlugin.kt

+7-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import de.jensklingenberg.ktorfit.gradle.KtorfitGradlePlugin.Companion.GRADLE_TA
66
import de.jensklingenberg.ktorfit.gradle.KtorfitGradlePlugin.Companion.GROUP_NAME
77
import de.jensklingenberg.ktorfit.gradle.KtorfitGradlePlugin.Companion.KTORFIT_COMPILER_PLUGIN_VERSION
88
import de.jensklingenberg.ktorfit.gradle.KtorfitGradlePlugin.Companion.MIN_KOTLIN_VERSION
9-
import de.jensklingenberg.ktorfit.gradle.KtorfitGradlePlugin.Companion.SNAPSHOT
109
import org.gradle.api.Project
1110
import org.gradle.api.provider.Provider
1211
import org.jetbrains.kotlin.buildtools.api.ExperimentalBuildToolsApi
@@ -18,7 +17,7 @@ import org.jetbrains.kotlin.gradle.plugin.SubpluginArtifact
1817
import org.jetbrains.kotlin.gradle.plugin.SubpluginOption
1918

2019
internal class KtorfitCompilerSubPlugin : KotlinCompilerPluginSupportPlugin {
21-
private lateinit var myproject: Project
20+
private lateinit var myProject: Project
2221

2322
override fun applyToCompilation(kotlinCompilation: KotlinCompilation<*>): Provider<List<SubpluginOption>> {
2423
return kotlinCompilation.target.project.provider {
@@ -30,14 +29,14 @@ internal class KtorfitCompilerSubPlugin : KotlinCompilerPluginSupportPlugin {
3029
}
3130

3231
override fun apply(target: Project) {
33-
myproject = target
32+
myProject = target
3433
}
3534

3635
override fun getCompilerPluginId(): String = COMPILER_PLUGIN_ID
3736

3837
override fun isApplicable(kotlinCompilation: KotlinCompilation<*>): Boolean {
3938
val kotlinVersion =
40-
myproject.ktorfitExtension(
39+
myProject.ktorfitExtension(
4140
GRADLE_TASKNAME
4241
).kotlinVersion.get()
4342

@@ -46,16 +45,16 @@ internal class KtorfitCompilerSubPlugin : KotlinCompilerPluginSupportPlugin {
4645

4746
@OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalBuildToolsApi::class)
4847
override fun getPluginArtifact(): SubpluginArtifact {
48+
checkKotlinVersion(myProject.kotlinExtension.compilerVersion.get())
4949
val compilerVersion =
50-
myproject.ktorfitExtension(
50+
myProject.ktorfitExtension(
5151
GRADLE_TASKNAME
52-
).kotlinVersion.getOrElse(myproject.kotlinExtension.compilerVersion.get())
53-
checkKotlinVersion(compilerVersion)
52+
).kotlinVersion.getOrElse(KTORFIT_COMPILER_PLUGIN_VERSION)
5453

5554
return SubpluginArtifact(
5655
groupId = GROUP_NAME,
5756
artifactId = ARTIFACT_NAME,
58-
version = "${KTORFIT_COMPILER_PLUGIN_VERSION}-$compilerVersion$SNAPSHOT",
57+
version = compilerVersion
5958
)
6059
}
6160

ktorfit-gradle-plugin/src/main/java/de/jensklingenberg/ktorfit/gradle/KtorfitGradlePlugin.kt

+4-5
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ class KtorfitGradlePlugin : Plugin<Project> {
1919
const val GROUP_NAME = "de.jensklingenberg.ktorfit"
2020
const val ARTIFACT_NAME = "compiler-plugin"
2121
const val COMPILER_PLUGIN_ID = "ktorfitPlugin"
22-
const val KTORFIT_KSP_PLUGIN_VERSION = "2.3.0"
23-
const val KTORFIT_COMPILER_PLUGIN_VERSION = "2.1.0"
24-
const val SNAPSHOT = ""
25-
const val MIN_KSP_VERSION = "1.0.30"
22+
const val KTORFIT_KSP_PLUGIN_VERSION = "2.4.0"
23+
const val KTORFIT_COMPILER_PLUGIN_VERSION = "2.2.0"
24+
const val MIN_KSP_VERSION = "1.0.28"
2625
const val MIN_KOTLIN_VERSION = "2.1.0"
2726
}
2827

@@ -91,7 +90,7 @@ class KtorfitGradlePlugin : Plugin<Project> {
9190
}
9291
}
9392
}
94-
val dependency = "$ktorfitKsp:$KTORFIT_KSP_PLUGIN_VERSION-$kspVersion$SNAPSHOT"
93+
val dependency = "$ktorfitKsp:$KTORFIT_KSP_PLUGIN_VERSION"
9594

9695
when (val kotlinExtension = kotlinExtension) {
9796
is KotlinSingleTargetExtension<*> -> {

ktorfit-gradle-plugin/src/main/java/de/jensklingenberg/ktorfit/gradle/KtorfitPluginExtension.kt

+1-5
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ package de.jensklingenberg.ktorfit.gradle
33
import org.gradle.api.Project
44
import org.gradle.api.model.ObjectFactory
55
import org.gradle.api.provider.Property
6-
import org.jetbrains.kotlin.buildtools.api.ExperimentalBuildToolsApi
7-
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
8-
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
96
import javax.inject.Inject
107

118
/**
@@ -37,11 +34,10 @@ open class KtorfitPluginExtension
3734
*/
3835
open val kotlinVersion: Property<String> = objectFactory.property(String::class.java)
3936

40-
@OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalBuildToolsApi::class)
4137
internal fun setupConvention(project: Project) {
4238
generateQualifiedTypeName.convention(false)
4339
errorCheckingMode.convention(ErrorCheckingMode.ERROR)
44-
kotlinVersion.convention(project.kotlinExtension.compilerVersion)
40+
kotlinVersion.convention(KtorfitGradlePlugin.KTORFIT_COMPILER_PLUGIN_VERSION)
4541
}
4642
}
4743

sandbox/src/jvmMain/kotlin/de/jensklingenberg/ktorfit/demo/JvMMain.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ val userKtorfit =
5858
)
5959
}
6060

61-
val api: ExampleApi = userKtorfit.createExampleApi()
61+
val api: ExampleApi = userKtorfit.create<ExampleApi>()
6262

6363
fun main() {
6464
runBlocking {

0 commit comments

Comments
 (0)