Replies: 2 comments
-
|
Hello, can I ask what your versioning strategy is and, specifically, if 0.33.0 is considered an alpha, beta, or production release? |
Beta Was this translation helpful? Give feedback.
-
|
The versioning follows semver and is an indication of API stability (the versioning is not intended to give any indication of how production ready / bug-free the code is). That being said, internally, we use all targets extensively, with us using Android and JS targets in production; and it has been incredibly stable. Although, it is not without bugs. The currently known bugs are either rare or only occur in edge-cases. As for "why pre-1.x versioning": the API is expected to change quite a bit, for example, the following issues give hints as to where the API is heading: #724, #737, #724, #286 The major pain point currently is that exceptions are not unified across platforms, making using Kable from I would say that using pre-1.x of Kable means that you'll likely have to make a number of code changes as the Kable API evolves and you upgrade to the newer versions. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Important
Kable's Maven artifact IDs have changed (prefixed with
kable-):kotlin { sourceSets { commonMain.dependencies { implementation("com.juul.kable:kable-core:${kableVersion}") implementation("com.juul.kable:kable-exceptions:${kableVersion}") implementation("com.juul.kable:kable-log-engine-khronicle:${kableVersion}") } } }Kable's package names were not changed, only the Maven coordinates; you should only need to update your Gradle configuration (e.g.
libs.versions.toml).Kotlin 2.0.0 (K2) Upgrade
Kable is now built against Kotlin 2.0.0 (K2). 🎉
Note
With this upgrade, the Kotlin compiler became more restrictive with
expect/actualdeclarations, as a result, some Kable APIs have changed:AndroidAdvertisement,CoreBluetoothAdvertisement, etc) have been consolidated to a commonPlatformAdvertisementScannerinterface now defines a generic type for advertisements it will emit:Scanner<PlatformAdvertisement>For most users, these changes should not impact your code. Some notable instances where you'll need to make code changes:
If you hold a reference to a
Scannerin a variable or property, you'll need to changeScannerto use thePlatformScannertype alias, or specify the generic type explicitly, for example:If you have any classes that implement the
Scannerinterface, you'll need to change the interface toPlatformScanner(orScanner<PlatformAdvertisement>) and change the overridden type of theadvertisementsproperty toPlatformAdvertisement, for example:🚀 Changes
kable-(Prefix Maven artifacts withkable-#692)log-engine-tuulboxmodule (Removelog-engine-tuulboxmodule #689)🧰 Maintenance
This discussion was created from the release 0.33.0.
Beta Was this translation helpful? Give feedback.
All reactions