Kotlin / binary-compatibility-validator

Public API management tool
Apache License 2.0
828 stars 59 forks source link

Consider moving BCV to Kotlin repo #223

Open qwwdfsad opened 7 months ago

qwwdfsad commented 7 months ago

Currently, BCV is in a tough spot w.r.t the rest of the Kotlin tooling:

It would be nice to make it part of the Kotlin offering by default, e.g. so users can write something like:

kotlin {
    ...
}

// Maybe in kotlin block. Mayble applied but disabled by default, maybe applicable via shorthand syntax like kotlin("api-validation")
abiValidation { 
    // Configure
}
LouisCAD commented 6 months ago

Point brought by @martinbonnin: Can we really say BCV is a validator, considering that it is only validating that nothing changes, and will happily fail when you add something that isn't even breaking binary compatibility?

Maybe binary compatibility tracker or something alike would be better?

Or maybe add a mode/task that can dump the API in a non-overwriting way, and would fail only if existing parts of the API are broken (requiring to accept or undo those breakages with an overwriting dump).

JakeWharton commented 6 months ago

That behavior is tracked by #187 and #140, and not really related to moving to the Kotlin repo.

LouisCAD commented 6 months ago

Sure, I was bringing it because I think such a change (moving it into the Kotlin repo) might also be an opportunity for a more correct name. Thanks for linking the issues!

qwwdfsad commented 1 month ago

https://youtrack.jetbrains.com/issue/KT-71098/Migrate-Binary-Compatibility-Validator-to-Kotlin-Gradle-Plugin

🎉