Skip to content

Commit 82dc21b

Browse files
committed
Enable strict explicit API mode
Rationale: We know 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
1 parent 041d70b commit 82dc21b

18 files changed

+89
-301
lines changed

api/binary-compatibility-validator.api

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

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)

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

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)

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

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

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

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

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

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)