binary-compatibility-validator
                                
                                 binary-compatibility-validator copied to clipboard
                                
                                    binary-compatibility-validator copied to clipboard
                            
                            
                            
                        Public API management tool
Currently, when new APIs are introduced, developers must manually review the changes and ensure they are binary compatible (because it's just a regenerated `.api` file). This is an error-prone process...
Currently, any API dump that BCV produces contains two trailing whitespaces lines, `\n\n`. I have enabled 'strip trailing whitespace' in IntelliJ https://stackoverflow.com/questions/20679842/remove-trailing-whitespace-on-save-in-intellij-idea-12 When I open a .api file, which might...
This PR adds support for ignoring groups of projects by adding an `ignoreSubprojects` configuration. When enabled, the plugin will ignore all projects specified by `ignoredProjects` **and** each of those project's...
Right now the [error message for incompatible metadata versions](https://github.com/Kotlin/binary-compatibility-validator/blob/d2a485c7935880a7f5e8b2c20a5385282d56ac3c/src/main/kotlin/api/KotlinMetadataVisibilities.kt#L75), at it seems, effectively uses the Kotlin repository's Kotlin version as maximally supported one, even though the actual maximum is usually...
Right now R8 and ProGuard don't support Kotlin internal visibility (see e.g. [b/173257502](https://issuetracker.google.com/issues/173257502)). It prevents efficient minification and optimization of Kotlin Android/JVM libraries. With pure Java lib we can use...
Related to: https://github.com/Kotlin/binary-compatibility-validator/issues/55 Hi, I'm using `kotlin-parcelize` plugin to generate the parcelable code in the internal data classes in my project. Let's consider the following kotlin data class, that is...
There's this declaration in kotlinx-metadata: https://github.com/JetBrains/kotlin/blob/6abf14087c46e0b5c3015eec48b92162bc63c135/libraries/kotlinx-metadata/src/kotlinx/metadata/Flag.kt#L40 It has one public constructor and two internal. 0.12.0 introduces new JAR dump mode. In this mode, constructors are getting into public dump: ```...
Readme claims that BCV works with Gradle >= `6.0`. There are no tests checking that, so we need to add them.
Currently, BCV is in a tough spot w.r.t the rest of the Kotlin tooling: * It is tightly bound to the underlying Kotlin version (esp. with klib validation), though it...