diff --git a/CHANGELOG.md b/CHANGELOG.md index 1abd5ab..8dcf76c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## [Unreleased] +### Added + +- Enforce version alignment between the library and DataStore using BOM (#45) + ### Housekeeping - Publication migrated to [com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) diff --git a/buildSrc/src/main/kotlin/convention.library.common.gradle.kts b/buildSrc/src/main/kotlin/convention.library.common.gradle.kts index 757fa7c..e37a757 100644 --- a/buildSrc/src/main/kotlin/convention.library.common.gradle.kts +++ b/buildSrc/src/main/kotlin/convention.library.common.gradle.kts @@ -1,6 +1,6 @@ import com.redmadrobot.build.dsl.kotlinCompile -import org.jetbrains.kotlin.gradle.dsl.JvmTarget import internal.java +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("org.jetbrains.kotlinx.binary-compatibility-validator") @@ -16,6 +16,10 @@ java { targetCompatibility = JavaVersion.VERSION_11 } +dependencies { + "api"(platform(project(":encrypted-datastore-bom"))) +} + apiValidation { ignoredPackages.add("io.github.osipxd.datastore.encrypted.internal") nonPublicMarkers.add("androidx.annotation.RestrictTo") diff --git a/encrypted-datastore-bom/build.gradle.kts b/encrypted-datastore-bom/build.gradle.kts new file mode 100644 index 0000000..fbf2fa5 --- /dev/null +++ b/encrypted-datastore-bom/build.gradle.kts @@ -0,0 +1,19 @@ +plugins { + `java-platform` + convention.publish +} + +description = "Encryted DataStore BOM" + +dependencies { + constraints { + api(projects.encryptedDatastore) + api(projects.encryptedDatastorePreferences) + api(projects.securityCryptoDatastore) + api(projects.securityCryptoDatastorePreferences) + api(libs.androidx.datastore) + api(libs.androidx.datastore.core) + api(libs.androidx.datastore.preferences) + api(libs.androidx.datastore.preferences.core) + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 45a7021..d28ee23 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,6 +14,7 @@ dependencyResolutionManagement { } include( + "encrypted-datastore-bom", "encrypted-datastore", "encrypted-datastore-preferences", "security-crypto-datastore",