Skip to content

Commit 289fe4b

Browse files
committed
Release 1.0.6: AGP 9.1, Kotlin 2.3, dependency refresh
- Use AGP 9.1.0 / Gradle 9.3.1 and built-in Kotlin; legacy-kapt for Hilt in demo - Update AndroidX, Compose BOM 2026.03.01, Hilt 2.59.2, Vanniktech publish 0.36.0 - Add CHANGELOG, README badges, developing/releasing docs; Maven Central hints in gradle.properties - Library coordinates and demo app version 1.0.6
1 parent bc39827 commit 289fe4b

9 files changed

Lines changed: 66 additions & 41 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Changelog
2+
3+
All notable changes to this project are documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6+
7+
## [1.0.6] - 2026-04-05
8+
9+
### Changed
10+
11+
- Android Gradle Plugin **9.1.0** and Gradle **9.3.1**; Kotlin compilation uses [AGP built-in Kotlin](https://developer.android.com/build/migrate-to-built-in-kotlin) (removed `org.jetbrains.kotlin.android`); sample app uses `com.android.legacy-kapt` for Hilt.
12+
- Kotlin **2.3.20**, Jetpack Compose BOM **2026.03.01**, AndroidX (core-ktx 1.18.0, lifecycle 2.10.0, activity-compose 1.13.0), Hilt **2.59.2**, AppCompat **1.7.1**, Gradle Maven Publish plugin **0.36.0**.
13+
- README badges and maintainer-facing docs for developing and releasing.
14+
15+
[1.0.6]: https://github.com/iVamsi/snapnotify/compare/v1.0.5...v1.0.6

README.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# SnapNotify
22

33
[![Android Weekly](https://androidweekly.net/issues/issue-692/badge)](https://androidweekly.net/issues/issue-692)
4-
[![Kotlin](https://img.shields.io/badge/Kotlin-1.9.0+-purple.svg)](https://kotlinlang.org)
5-
[![Compose](https://img.shields.io/badge/Compose-1.5.0+-blue.svg)](https://developer.android.com/jetpack/compose)
4+
[![Kotlin](https://img.shields.io/badge/Kotlin-2.3+-purple.svg)](https://kotlinlang.org)
5+
[![Compose](https://img.shields.io/badge/Compose-Jetpack%20BOM%202026-blue.svg)](https://developer.android.com/develop/ui/compose/bom)
66
[![Android](https://img.shields.io/badge/Android-API%2024+-green.svg)](https://android-arsenal.com/api?level=24)
77
[![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg)](https://opensource.org/licenses/Apache-2.0)
8-
[![Maven Central](https://img.shields.io/badge/Maven%20Central-1.0.5-red.svg)](https://central.sonatype.com/artifact/io.github.ivamsi/snapnotify/1.0.5)
8+
[![Maven Central](https://img.shields.io/badge/Maven%20Central-1.0.6-red.svg)](https://central.sonatype.com/artifact/io.github.ivamsi/snapnotify/1.0.6)
99
[![Tests](https://img.shields.io/badge/Tests-74%2B%20passing-brightgreen.svg)](#-testing)
1010
[![Coverage](https://img.shields.io/badge/Coverage-100%25%20Public%20API-brightgreen.svg)](#-testing)
1111

@@ -76,13 +76,29 @@ Add to your `build.gradle.kts`:
7676

7777
```kotlin
7878
dependencies {
79-
implementation("io.github.ivamsi:snapnotify:1.0.5")
79+
implementation("io.github.ivamsi:snapnotify:1.0.6")
8080
}
8181
```
8282

8383
**Hilt Integration (Optional):**
8484
SnapNotify works with or without Hilt! If you use Hilt, no additional setup needed.
8585

86+
## Changelog
87+
88+
Release history is in [CHANGELOG.md](CHANGELOG.md).
89+
90+
## Developing
91+
92+
This repository’s sample app depends on `project(":snapnotify")` so `./gradlew check` works on a clean clone without publishing. To validate the same artifact consumers get from Maven, run `./gradlew :snapnotify:publishToMavenLocal` and point a module to `io.github.ivamsi:snapnotify:1.0.6` with `mavenLocal()` in `dependencyResolutionManagement` (or your module repositories).
93+
94+
## Releasing (maintainers)
95+
96+
1. Bump the library version in `snapnotify/build.gradle.kts` (`mavenPublishing { coordinates(...) }`), demo `versionCode` / `versionName`, [CHANGELOG.md](CHANGELOG.md), and the installation/coordinates snippets in this README.
97+
2. Run `./gradlew check`.
98+
3. Commit, create an annotated tag `vX.Y.Z`, and push the branch and tag to GitHub.
99+
4. Publish to Maven Central: `./gradlew :snapnotify:publishAndReleaseToMavenCentral` with [Central Portal credentials and signing](https://vanniktech.github.io/gradle-maven-publish-plugin/central/) (see comments in `gradle.properties`).
100+
5. On GitHub, create a **Release** from that tag and attach release notes (can mirror the changelog section).
101+
86102
## 🎯 Quick Start
87103

88104
### 1. Setup (Flexible Usage)
@@ -186,7 +202,8 @@ SnapNotify.showStyled("10 second custom style", customStyle, durationMillis = 10
186202

187203
## 🌟 Key Features
188204

189-
### 🆕 Latest Updates (v1.0.5)
205+
### 🆕 Latest Updates (v1.0.6)
206+
- **Toolchain**: Android Gradle Plugin 9.1 / Gradle 9.3.1, Kotlin 2.3.20 with [built-in Kotlin in AGP 9](https://developer.android.com/build/migrate-to-built-in-kotlin), updated AndroidX / Compose BOM / Hilt
190207
- **Queue Configuration**: Configure max queue size and get notified when messages are dropped
191208
- **Enhanced Keyboard Handling**: Snackbars now automatically avoid IME (keyboard) and work with navigation bars
192209
- **Provider Flexibility**: New parameters for alignment, insets, and custom host rendering

SnapNotifyDemo/build.gradle.kts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
plugins {
22
alias(libs.plugins.android.application)
3-
alias(libs.plugins.kotlin.android)
43
alias(libs.plugins.kotlin.compose)
54
alias(libs.plugins.hilt)
6-
alias(libs.plugins.kapt)
5+
alias(libs.plugins.legacy.kapt)
76
}
87

98
android {
@@ -14,8 +13,8 @@ android {
1413
applicationId = "com.vamsi.snapnotify.demo"
1514
minSdk = 24
1615
targetSdk = 36
17-
versionCode = 5
18-
versionName = "1.0.5"
16+
versionCode = 6
17+
versionName = "1.0.6"
1918

2019
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2120
}
@@ -34,21 +33,15 @@ android {
3433
sourceCompatibility = JavaVersion.VERSION_21
3534
targetCompatibility = JavaVersion.VERSION_21
3635
}
37-
38-
kotlin {
39-
compilerOptions {
40-
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
41-
}
42-
}
43-
36+
4437
buildFeatures {
4538
compose = true
4639
}
4740
}
4841

4942
dependencies {
5043
implementation(project(":snapnotify"))
51-
44+
5245
implementation(libs.androidx.core.ktx)
5346
implementation(libs.androidx.lifecycle.runtime.ktx)
5447
implementation(libs.androidx.activity.compose)

build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
33
plugins {
44
alias(libs.plugins.android.application) apply false
55
alias(libs.plugins.android.library) apply false
6-
alias(libs.plugins.kotlin.android) apply false
76
alias(libs.plugins.kotlin.compose) apply false
87
alias(libs.plugins.hilt) apply false
9-
alias(libs.plugins.kapt) apply false
8+
alias(libs.plugins.legacy.kapt) apply false
109
}
1110

1211
// Regression guard: ensure the consumer demo assembles with the latest library metadata.

gradle.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,8 @@ android.nonTransitiveRClass=true
2929
# Enables the new resource processing in AAPT2 which allows for faster builds
3030
android.enableResourceOptimizations=true
3131

32+
# Maven Central (Sonatype Central Portal) — set when publishing the library (see https://vanniktech.github.io/gradle-maven-publish-plugin/central/)
33+
# mavenCentralUsername=...
34+
# mavenCentralPassword=...
35+
# Signing: use `~/.gradle/gradle.properties` or env for IN_MEMORY keys; see Gradle signing plugin docs.
36+

gradle/libs.versions.toml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
[versions]
2-
agp = "8.13.1"
3-
kotlin = "2.2.20"
4-
coreKtx = "1.17.0"
2+
agp = "9.1.0"
3+
kotlin = "2.3.20"
4+
coreKtx = "1.18.0"
55
junit = "4.13.2"
66
junitVersion = "1.3.0"
77
espressoCore = "3.7.0"
8-
lifecycleRuntimeKtx = "2.9.3"
9-
lifecycleRuntimeCompose = "2.9.3"
10-
activityCompose = "1.11.0"
11-
composeBom = "2025.09.00"
12-
hilt = "2.57.1"
8+
lifecycleRuntimeKtx = "2.10.0"
9+
lifecycleRuntimeCompose = "2.10.0"
10+
activityCompose = "1.13.0"
11+
composeBom = "2026.03.01"
12+
hilt = "2.59.2"
1313
hiltNavigationCompose = "1.3.0"
1414
coroutines = "1.10.2"
15+
appcompat = "1.7.1"
16+
mavenPublish = "0.36.0"
1517

1618
[libraries]
1719
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
@@ -29,7 +31,7 @@ androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-toolin
2931
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
3032
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
3133
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
32-
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version = "1.7.0" }
34+
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
3335
hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
3436
hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "hilt" }
3537
hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigationCompose" }
@@ -40,7 +42,7 @@ kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-cor
4042
[plugins]
4143
android-application = { id = "com.android.application", version.ref = "agp" }
4244
android-library = { id = "com.android.library", version.ref = "agp" }
43-
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
4445
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
4546
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
46-
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
47+
legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" }
48+
vanniktech-maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dependencyResolutionManagement {
1515
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
1616
repositories {
1717
google()
18+
mavenLocal()
1819
mavenCentral()
1920
}
2021
}

snapnotify/build.gradle.kts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ import com.vanniktech.maven.publish.AndroidSingleVariantLibrary
22

33
plugins {
44
alias(libs.plugins.android.library)
5-
alias(libs.plugins.kotlin.android)
65
alias(libs.plugins.kotlin.compose)
7-
id("com.vanniktech.maven.publish") version "0.34.0"
6+
alias(libs.plugins.vanniktech.maven.publish)
87
}
98

109
android {
@@ -32,13 +31,7 @@ android {
3231
sourceCompatibility = JavaVersion.VERSION_21
3332
targetCompatibility = JavaVersion.VERSION_21
3433
}
35-
36-
kotlin {
37-
compilerOptions {
38-
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
39-
}
40-
}
41-
34+
4235
buildFeatures {
4336
compose = true
4437
}
@@ -85,7 +78,7 @@ mavenPublishing {
8578
publishToMavenCentral(automaticRelease = true)
8679
signAllPublications()
8780

88-
coordinates("io.github.ivamsi", "snapnotify", "1.0.5")
81+
coordinates("io.github.ivamsi", "snapnotify", "1.0.6")
8982

9083
pom {
9184
name.set("SnapNotify")

0 commit comments

Comments
 (0)