0.15.0-Beta.3
This release provides updated KLib validation support and fixes some previously reported KLib-related issues.
The release contains some breaking changes that were made to align and fix BCV behavior across all supported configurations:
- BCV now (again) uses case-sensitive dump file names (#237);
- Multiplatform projects having no release sources (for instance, test-only projects) now need to be either explicitly excluded or an empty dump file needs to be generated for them (#231);
- Gradle tasks provided by the plugin changed their API to use Gradle
Properties
instead of plain Kotlin properties.
If any of these changes affect your projects, please check the migration guide for details on what needs to be done to update BCV to 0.15.0-Beta.3
: 0.15.0 Migration Guide.
Compared to 0.15.0-Beta.2
, the KLib ABI dump file format was changed to be more readable (#196, #197). The newer BCV version will successfully validate the ABI against golden dump files generated by previous versions, but the execution of the apiDump
task will result in updated .klib.api
files even if the ABI itself remains the same. Thus, it's recommended to update the plugin and dump files separately from changes affecting your code.
What changed:
- KLib validation-related Gradle tasks were made public (#203, #204)
- KLib ABI dump format was improved to group declarations by their type (#197, #224), and additional vertical spacing was added to improve reliability (#196, #225)
- API dump file names (for both JVM and Klib dumps) need to be case-sensitive (#231, #237)
- Validation behavior for empty projects was aligned across all supported configurations (#243, #244); now, such projects must either contain API dump files or be explicitly excluded using
ignoredProjects.
- Fixed issue with removed native targets not triggering ABI validation failure (#234, #236)
- Improved
KlibSignatureVersion.toString
format (#219, #220) - Made
apiValidation.klib
extension Groovy-friendly (#214, #215) - Few other minor improvements and bug fixes (#221, #229, #238)
Thanks to everyone who tried KLib validation support. Special thanks to @JakeWharton, @illarionov, @aSemy, @sandwwraith for your feedback and suggestions!