binary-compatibility-validator icon indicating copy to clipboard operation
binary-compatibility-validator copied to clipboard

Public API management tool

Results 83 binary-compatibility-validator issues
Sort by recently updated
recently updated
newest added

`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)`.

enhancement
klib

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...

enhancement
jvm

### Example 1 ```kotlin @PrivateApi class KtPrivateApi { fun foo() = Unit } class KtPublicApi : KtPrivateApi() { } fun usage() { KtPublicApi().foo() // ok, if @PrivateApi applies only for...

bug

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...

enhancement
klib

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...

klib
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...

bug
gradle

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...

bug
klib
gradle

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...

enhancement
gradle

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...

klib