You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: proposals/KEEP-0440-bcv-to-kgp.md
+25-13Lines changed: 25 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ We propose using Binary Compatibility Validator out of the box in Kotlin Gradle
30
30
*[Missing features](#missing-features)
31
31
*[Stabilization of ABI Tools API](#stabilization-of-abi-tools-api)
32
32
*[Open questions](#open-questions)
33
-
*[Gradle DSL](#gradle-dsl)
33
+
*[Gradle](#gradle)
34
34
*[Documentations](#documentations)
35
35
*[Future development](#future-development)
36
36
*[New format](#new-format)
@@ -154,27 +154,39 @@ By default, the reference dump files are located in the directory `api` in the c
154
154
We will assume that the migrated part of the BCV is stable when all the tasks listed below are closed and no critical bugs are created by users for a long time.
155
155
156
156
### Missing features
157
-
- add Gradle DSL to extract ABI from already compiled jars (perhaps, from Gradle artifacts)
157
+
- add Gradle DSL to extract ABI from already compiled jars (perhaps, from Gradle artifacts) [KT-80314](https://youtrack.jetbrains.com/issue/KT-80314), [KT-80313](https://youtrack.jetbrains.com/issue/KT-80313)
158
+
- add Gradle DSL to extract ABI from additional source sets [KT-80818](https://youtrack.jetbrains.com/issue/KT-80818)
158
159
159
160
### Stabilization of ABI Tools API
160
-
- stabilize ABI Tools API for the existing dump format
161
+
Refactor the API and introduce the new way for getting an instance of the ABI Tools [KT-80747](https://youtrack.jetbrains.com/issue/KT-80747).
162
+
163
+
If the `abi-tools` artifact is in the current classpath:
164
+
```kotlin
165
+
val abiTools = org.jetbrains.kotlin.abi.tools.AbiTools.getInstance()
166
+
```
167
+
168
+
If the `abi-tools-api` is in the current classpath and implementation `abi-tools` in another classpath in some class loader:
169
+
```kotlin
170
+
val abiTools = org.jetbrains.kotlin.abi.tools.AbiTools.getInstance(classLoader)
171
+
```
161
172
162
173
### Open questions
163
174
- Decide if we should create tasks if ABI validation is disabled in the project [KT-77687](https://youtrack.jetbrains.com/issue/KT-77687)
164
-
- Decide if `check` task should depend on `checkAbi` if ABI validation is enabled in the project [KT-78525](https://youtrack.jetbrains.com/issue/KT-78525)
165
175
166
-
### Gradle DSL
167
-
- stabilize filtering DSL (exclusions and inclusions)
168
-
- rename `checkLegacyAbi` and `updateLegacyAbi` tasks to `checkAbi` and `updateAbi`
169
-
- maybe we should rename `legacyDump` block to some other, to clearly indicate what exactly is being configured (old report format)
170
-
- find a group to place the tasks [KT-78717](https://youtrack.jetbrains.com/issue/KT-78717)
171
-
- write descriptions for the tasks
172
-
- make `abiValidation {}` block stable part of `kotlin { }` extension
176
+
### Gradle
177
+
- Stabilize filtering DSL (exclusions and inclusions) [KT-80823](https://youtrack.jetbrains.com/issue/KT-80823)
178
+
- Rename `checkLegacyAbi` and `updateLegacyAbi` tasks to `checkKotlinAbi` and `updateKotlinAbi`[KT-80674](https://youtrack.jetbrains.com/issue/KT-80674)
179
+
- We should rename `legacyDump` block to some other, to clearly indicate what exactly is being configured (old report format) [KT-80826](https://youtrack.jetbrains.com/issue/KT-80826)
180
+
- Refactor DSL for working with dump variants [KT-80827](https://youtrack.jetbrains.com/issue/KT-80827)
181
+
- Find a group to place the tasks [KT-80621](https://youtrack.jetbrains.com/issue/KT-80621)
182
+
- Write descriptions for the tasks [KT-80687](https://youtrack.jetbrains.com/issue/KT-80687)
183
+
- Make `abiValidation {}` block stable part of `kotlin { }` extension [KT-80685](https://youtrack.jetbrains.com/issue/KT-80685)
184
+
- Add dependency on `checkKotlinAbi` from `check` task [KT-80614](https://youtrack.jetbrains.com/issue/KT-80614)
173
185
174
186
175
187
### Documentations
176
-
- add ABI `abi-tools` and `abi-tools-api` on https://kotlinlang.org/api
177
-
- write the migration guide (where? https://kotlinlang.org?)
188
+
- add `abi-tools-api` on https://kotlinlang.org/api
189
+
- write the migration guide
178
190
- add the description of binary compatibility near to [Backward compatibility guidelines for library authors](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html).
179
191
- add the link on the binary compatibility description to [Backward compatibility guidelines for library authors](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html)
180
192
- add the page with a description of the direct use of `abi-tools`
0 commit comments