Skip to content

Commit 23791d3

Browse files
qwwdfsadshanshin
authored andcommitted
[ABI Validation] Enable strict explicit API mode
Rationale: We now have quite a lot of accidentally public entities while both promoting and using BCV as a standalone JAR dependency. Apart from that, we have quite an unfortunate package name 'api' that might imply all these methods are part of public API (when, in fact, it's all related to API validation). It would be nice to explicitly confine our visibilities and be more deliberate about that Pull request Kotlin/binary-compatibility-validator#168 Moved from Kotlin/binary-compatibility-validator@07d46e7
1 parent e01d2fc commit 23791d3

18 files changed

+89
-301
lines changed

libraries/tools/abi-validation/api/binary-compatibility-validator.api

Lines changed: 0 additions & 208 deletions
Large diffs are not rendered by default.

libraries/tools/abi-validation/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ dependencies {
7676

7777
tasks.compileKotlin {
7878
compilerOptions {
79+
freeCompilerArgs.add("-Xexplicit-api=strict")
7980
allWarningsAsErrors.set(true)
8081
@Suppress("DEPRECATION") // Compatibility with Gradle 7 requires Kotlin 1.4
8182
languageVersion.set(KotlinVersion.KOTLIN_1_4)

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/api/BaseKotlinGradleTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package kotlinx.validation.api
77

8-
import kotlinx.validation.API_DIR
98
import org.junit.Rule
109
import org.junit.rules.TemporaryFolder
1110
import java.io.File

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/api/TestDsl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
package kotlinx.validation.api
77

88
import java.io.*
9-
import kotlinx.validation.API_DIR
109
import org.gradle.testkit.runner.GradleRunner
1110
import org.intellij.lang.annotations.Language
1211

12+
public const val API_DIR: String = "api"
13+
1314
internal fun BaseKotlinGradleTest.test(fn: BaseKotlinScope.() -> Unit): GradleRunner {
1415
val baseKotlinScope = BaseKotlinScope()
1516
fn(baseKotlinScope)

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/test/DefaultConfigTests.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package kotlinx.validation.test
77

8-
import kotlinx.validation.API_DIR
98
import kotlinx.validation.api.*
109
import org.assertj.core.api.*
1110
import org.junit.Test

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/test/MultiPlatformSingleJvmTargetTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package kotlinx.validation.test
77

8-
import kotlinx.validation.API_DIR
98
import kotlinx.validation.api.*
109
import org.assertj.core.api.Assertions.assertThat
1110
import org.junit.Test

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/test/MultipleJvmTargetsTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package kotlinx.validation.test
77

8-
import kotlinx.validation.API_DIR
98
import kotlinx.validation.api.*
109
import org.assertj.core.api.Assertions.assertThat
1110
import org.gradle.testkit.runner.GradleRunner

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/test/SubprojectsWithPluginOnRootTests.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package kotlinx.validation.test
77

8-
import kotlinx.validation.API_DIR
98
import kotlinx.validation.api.*
109
import kotlinx.validation.api.BaseKotlinGradleTest
1110
import kotlinx.validation.api.assertTaskSuccess

libraries/tools/abi-validation/src/functionalTest/kotlin/kotlinx/validation/test/SubprojectsWithPluginOnSubTests.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package kotlinx.validation.test
77

8-
import kotlinx.validation.API_DIR
98
import kotlinx.validation.api.*
109
import kotlinx.validation.api.BaseKotlinGradleTest
1110
import kotlinx.validation.api.assertTaskSuccess

libraries/tools/abi-validation/src/main/kotlin/ApiValidationExtension.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
package kotlinx.validation
77

8-
open class ApiValidationExtension {
8+
public open class ApiValidationExtension {
99

1010
/**
1111
* Disables API validation checks completely.
1212
*/
13-
public var validationDisabled = false
13+
public var validationDisabled: Boolean = false
1414

1515
/**
1616
* Fully qualified package names that are not consider public API.

0 commit comments

Comments
 (0)