binary-compatibility-validator
binary-compatibility-validator copied to clipboard
Public API management tool
`println(KlibSignatureVersion.LATEST.toString())` prints `KlibSignatureVersion(-2147483648)`. It's strange seeing a large negative number in the version. It would be nicer if the latest version was rendered something like `KlibSignatureVersion(LATEST)`.
If we remove default value for one of default parameters in function, this change doesn't affect API dump, however it can lead to unexpected behaviour or NPE in runtime (at...
### Example 1 ```kotlin @PrivateApi class KtPrivateApi { fun foo() = Unit } class KtPublicApi : KtPrivateApi() { } fun usage() { KtPublicApi().foo() // ok, if @PrivateApi applies only for...
This will make them visually easier to parse, but should also aid in diffing. Examples: Top-level types should be separated by a single vertical whitespace ```diff abstract fun interface app.cash.redwood.protocol/ChangesSink...
Currently, BCV has a compileOnly dependency on kotlin-compiler-embeddable, and (I presume) expects that KGP will provide it at runtime. https://github.com/Kotlin/binary-compatibility-validator/blob/29a83d78596bfdbc37f885da881edc40021eb073/build.gradle.kts#L69 kotlin-compiler-embeddable is not supposed to be exposed in the Gradle...
While debugging #206 I found that all BCV tasks checking that a project has some non-empty source sets (it's almost all tasks) don't work if a project has generated sources...
DSL mentioned in the documentation: ``` apiValidation { @OptIn(kotlinx.validation.ExperimentalBCVApi::class) klib { enabled = true } } ``` works for Kotlin, but for some reason, when one wants to use it...
Currently BCV uses vars for configuring behaviour. This causes issues when configuring BCV, as the order of operations is now very sensitive to the order of configuration, and the interaction...
Given that these files are meant to represent a serialized ABI to check binary compatibility, and that the tool is called `binary-compatibility-validator` it would make sense to call this the...