Kotlin/binary-compatibility-validator (org.jetbrains.kotlinx.binary-compatibility-validator)
### [`v0.16.3`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.16.3)
[Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.16.2...0.16.3)
What's Changed:
- Fixed support for Gradle version older than `8.2` ([#263](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/263))
### [`v0.16.2`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.16.2)
##### What's Changed:
- The plugin was changed to use the Gradle Workers API and its classpath isolation mode to remove almost all dependencies from the plugin itself; all required libraries are now fetched on demand, in isolation from the buildscript classpath ([#208](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/208), [#256](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/256), [#258](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/258)).
### [`v0.16.0`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.16.0)
[Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.1...0.16.0)
##### What changed:
- Updated Kotlin Metadata JVM library to the latest version (now it's `kotlin-metadata-jvm:2.0.0`) [#255](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/255)
- Various improvements in KLib ABI dumping API [#253](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/253), [#254](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/254)
### [`v0.15.1`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.15.1)
[Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.0...0.15.1)
##### What changed:
- Fixed a regression introduced in `0.15.0` affecting how enum entries from classes with non-public companions are dumped ([#250](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/250))
### [`v0.15.0`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.15.0)
[Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.0-Beta.3...0.15.0)
This release finalizes what was added in the series of beta releases and adds Kotlin libraries (KLib) dumping and validation support.
See [project's README](https://redirect.github.com/Kotlin/binary-compatibility-validator/tree/master?tab=readme-ov-file#experimental-klib-abi-validation-support) for details on how to enable it for your project.
**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 ([https://github.com/Kotlin/binary-compatibility-validator/pull/237](https://redirect.github.com/Kotlin/binary-compatibility-validator/pull/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 ([https://github.com/Kotlin/binary-compatibility-validator/issues/231](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/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: [0.15.0 Migration Guide](https://redirect.github.com/Kotlin/binary-compatibility-validator/blob/master/docs/design/0.15.0-migration-guide.md).
##### What changed:
##### From `0.15.0-Beta.3`
- Non-public markers are now correctly handled when applied to `const val`s ([#90](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/90), [#245](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/245))
- Fixed KLib dump and validation behavior for empty projects ([#246](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/246), [#247](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/247)); now `apiDump` will emit an empty file and `apiCheck` will successfully consume it
##### From `0.14.0` (brief overview of Beta.1 .. Beta.3 changes)
- `List.dump` now sorts declarations the same way the Gradle task does ([https://github.com/Kotlin/binary-compatibility-validator/pull/188](https://redirect.github.com/Kotlin/binary-compatibility-validator/pull/188))
- API dump file names (for both JVM and Klib dumps) need to be case-sensitive ([https://github.com/Kotlin/binary-compatibility-validator/issues/231](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/231), [https://github.com/Kotlin/binary-compatibility-validator/pull/237](https://redirect.github.com/Kotlin/binary-compatibility-validator/pull/237))
- Validation behavior for empty projects was aligned across all supported configurations ([https://github.com/Kotlin/binary-compatibility-validator/issues/243](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/243), [https://github.com/Kotlin/binary-compatibility-validator/pull/244](https://redirect.github.com/Kotlin/binary-compatibility-validator/pull/244)); now, such projects must either contain API dump files or be explicitly excluded using ignoredProjects.
- Experimental KLib ABI dumping and validation support was added ([#183](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/183), [#203](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/203), [#196](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/196), [#197](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/197), [#234](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/234), [#219](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/219), [#214](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/214))
I want to give a shout-out to everyone involved! Special thanks to [@benedekh](https://redirect.github.com/benedekh), [@adam-enko](https://redirect.github.com/adam-enko), [@JakeWharton](https://redirect.github.com/JakeWharton), [@rickclephas](https://redirect.github.com/rickclephas), [@lukellmann](https://redirect.github.com/lukellmann), [@illarionov](https://redirect.github.com/illarionov), [@sandwwraith](https://redirect.github.com/sandwwraith), [@martinbonnin](https://redirect.github.com/martinbonnin), [@ilya-g](https://redirect.github.com/ilya-g) and [@shanshin](https://redirect.github.com/shanshin) for their feedback and contributions.
### [`v0.15.0-Beta.3`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.15.0-Beta.3)
[Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.0-Beta.2...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](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/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](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/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](https://redirect.github.com/Kotlin/binary-compatibility-validator/blob/master/docs/design/0.15.0-migration-guide.md).
Compared to `0.15.0-Beta.2`, the KLib ABI dump file format was changed to be more readable ([#196](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/196), [#197](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/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](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/203), [#204](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/204))
- KLib ABI dump format was improved to group declarations by their type ([#197](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/197), [#224](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/224)), and additional vertical spacing was added to improve reliability ([#196](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/196), [#225](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/225))
- API dump file names (for both JVM and Klib dumps) need to be case-sensitive ([#231](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/231), [#237](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/237))
- Validation behavior for empty projects was aligned across all supported configurations ([#243](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/243), [#244](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/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](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/234), [#236](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/236))
- Improved `KlibSignatureVersion.toString` format ([#219](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/219), [#220](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/220))
- Made `apiValidation.klib` extension Groovy-friendly ([#214](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/214), [#215](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/215))
- Few other minor improvements and bug fixes ([#221](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/221), [#229](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/229), [#238](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/238))
Thanks to everyone who tried KLib validation support. Special thanks to [@JakeWharton](https://redirect.github.com/JakeWharton), [@illarionov](https://redirect.github.com/illarionov), [@aSemy](https://redirect.github.com/aSemy), [@sandwwraith](https://redirect.github.com/sandwwraith) for your feedback and suggestions!
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
0.15.0-Beta.2
->0.16.3
Release Notes
Kotlin/binary-compatibility-validator (org.jetbrains.kotlinx.binary-compatibility-validator)
### [`v0.16.3`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.16.3) [Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.16.2...0.16.3) What's Changed: - Fixed support for Gradle version older than `8.2` ([#263](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/263)) ### [`v0.16.2`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.16.2) ##### What's Changed: - The plugin was changed to use the Gradle Workers API and its classpath isolation mode to remove almost all dependencies from the plugin itself; all required libraries are now fetched on demand, in isolation from the buildscript classpath ([#208](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/208), [#256](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/256), [#258](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/258)). ### [`v0.16.0`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.16.0) [Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.1...0.16.0) ##### What changed: - Updated Kotlin Metadata JVM library to the latest version (now it's `kotlin-metadata-jvm:2.0.0`) [#255](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/255) - Various improvements in KLib ABI dumping API [#253](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/253), [#254](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/254) ### [`v0.15.1`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.15.1) [Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.0...0.15.1) ##### What changed: - Fixed a regression introduced in `0.15.0` affecting how enum entries from classes with non-public companions are dumped ([#250](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/250)) ### [`v0.15.0`](https://redirect.github.com/Kotlin/binary-compatibility-validator/releases/tag/0.15.0) [Compare Source](https://redirect.github.com/Kotlin/binary-compatibility-validator/compare/0.15.0-Beta.3...0.15.0) This release finalizes what was added in the series of beta releases and adds Kotlin libraries (KLib) dumping and validation support. See [project's README](https://redirect.github.com/Kotlin/binary-compatibility-validator/tree/master?tab=readme-ov-file#experimental-klib-abi-validation-support) for details on how to enable it for your project. **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 ([https://github.com/Kotlin/binary-compatibility-validator/pull/237](https://redirect.github.com/Kotlin/binary-compatibility-validator/pull/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 ([https://github.com/Kotlin/binary-compatibility-validator/issues/231](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/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: [0.15.0 Migration Guide](https://redirect.github.com/Kotlin/binary-compatibility-validator/blob/master/docs/design/0.15.0-migration-guide.md). ##### What changed: ##### From `0.15.0-Beta.3` - Non-public markers are now correctly handled when applied to `const val`s ([#90](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/90), [#245](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/245)) - Fixed KLib dump and validation behavior for empty projects ([#246](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/246), [#247](https://redirect.github.com/Kotlin/binary-compatibility-validator/issues/247)); now `apiDump` will emit an empty file and `apiCheck` will successfully consume it ##### From `0.14.0` (brief overview of Beta.1 .. Beta.3 changes) - `ListConfiguration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.