|
1 | 1 | The major feature shipped with the release 0.15.0 of the Binary Compatibility Validator is Kotlin libraries (or KLibs)
|
2 | 2 | ABI validation support.
|
3 | 3 |
|
4 |
| -This support, however, comes with a few changes that break the plugin's compatibility: |
| 4 | +This support, however, comes with a few changes that break the plugin's compatibility or changes its behavior: |
| 5 | +- In multiplatform projects, empty modules are no longer ignored during ABI validation; |
5 | 6 | - ABI file names (`api/<project name>.api`) are no longer treated in a case-insensitive way;
|
6 | 7 | - Gradle tasks provided by the plugin changed their API.
|
7 | 8 |
|
8 |
| -If you neither configure BCV Gradle tasks manually nor have an ABI file with a name in a case different |
9 |
| -from how the project was named in the settings, these changes won't affect you. |
| 9 | +If you have a multiplatform project with modules having no sources, configure BCV Gradle tasks manually, |
| 10 | +or have an ABI file with a name in a case different from how the project was named in the settings, |
| 11 | +please check the following steps for smooth migration. |
10 | 12 |
|
11 |
| -Otherwise, the steps required for smooth migration are described below. |
| 13 | +### In multiplatform projects, empty modules are no longer ignored during ABI validation |
| 14 | + |
| 15 | +Previously, if there was an empty Gradle module/project (for example, test-only module), BCV ignored validation of |
| 16 | +such a module if the multiplatform platform plugin was applied there. However, BCV behaved differently for similar |
| 17 | +projects with the JVM-plugin applied. |
| 18 | + |
| 19 | +Starting from `0.15.0` behavior was aligned and now BCV no longer ignores validation of empty modules/projects. |
| 20 | +If you have such a module, please either generate and commit (empty) ABI dump file for it by running |
| 21 | +`./gradlew apiDump`, or consider excluding the module from validation using `ignoredProjects` setting: |
| 22 | +```kotlin |
| 23 | +apiValidation { |
| 24 | + ignoredProjects += "empty-module" |
| 25 | +} |
| 26 | +``` |
12 | 27 |
|
13 | 28 | ### ABI file names are no longer treated in a case-insensitive way
|
14 | 29 |
|
|
0 commit comments