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.
-
Important
Kable's Maven artifact IDs have changed (prefixed with
kable-
):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
/actual
declarations, as a result, some Kable APIs have changed:AndroidAdvertisement
,CoreBluetoothAdvertisement
, etc) have been consolidated to a commonPlatformAdvertisement
Scanner
interface 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
Scanner
in a variable or property, you'll need to changeScanner
to use thePlatformScanner
type alias, or specify the generic type explicitly, for example:If you have any classes that implement the
Scanner
interface, you'll need to change the interface toPlatformScanner
(orScanner<PlatformAdvertisement>
) and change the overridden type of theadvertisements
property toPlatformAdvertisement
, for example:🚀 Changes
kable-
(Prefix Maven artifacts withkable-
#692)log-engine-tuulbox
module (Removelog-engine-tuulbox
module #689)🧰 Maintenance
This discussion was created from the release 0.33.0.
Beta Was this translation helpful? Give feedback.
All reactions