Skip to content

build: compile against Android 37.2 - #1453

Merged
bmc08gt merged 1 commit into
code/cashfrom
build/compile-sdk-37-2
Sep 11, 2026
Merged

bmc08gt merged 1 commit into
code/cashfrom
build/compile-sdk-37-2

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Dependabot's haze 2.0.0-beta03 bump (#1443) fails at configuration:

Dependency 'dev.chrisbanes.haze:haze-blur-materials-android:2.0.0-beta03'
requires libraries and applications that depend on it to compile against
version 37.2 or later of the Android APIs.
:apps:flipcash:shared:persistence:db is currently compiled against android-37.0.

The catalog holds compileSdk as an integer and every consumer calls .toInt(), so there was nowhere to put a minor version. AGP 9.4.0 takes one through a spec block instead:

compileSdk {
    version = release(37) { minorApiLevel = 2 }
}

That form is the only one available on both CommonExtension and KotlinMultiplatformAndroidLibraryExtension — the KMP extension has no compileSdkMinor property — so all twelve sites use it.

Nine of those sites are KMP modules that hardcoded compileSdk = 37 rather than reading the catalog, which is why this is a twelve-site change instead of a one-line one. They now read android-compileSdk and android-compileSdkMinor like everything else.

Build.VERSION.SDK_INT still reports 37; only SDK_INT_FULL carries the minor, so no runtime behaviour changes.

CI needs SDK Platform 37.2. The workflow has no explicit platform install step, and android.builder.sdkDownload is unset (defaults on), so AGP downloads it the same way it obtains 37.0 today.

Unblocks #1443.

Dependabot's haze 2.0.0-beta03 bump (#1443) fails at configuration:

    Dependency 'dev.chrisbanes.haze:haze-blur-materials-android:2.0.0-beta03'
    requires libraries and applications that depend on it to compile against
    version 37.2 or later of the Android APIs.
    :apps:flipcash:shared:persistence:db is currently compiled against
    android-37.0.

The catalog holds compileSdk as an integer and every consumer calls `.toInt()`,
so there was nowhere to put a minor version. AGP 9.4.0 takes one through a spec
block instead:

    compileSdk {
        version = release(37) { minorApiLevel = 2 }
    }

That form is the only one available on both `CommonExtension` and
`KotlinMultiplatformAndroidLibraryExtension` — the KMP extension has no
`compileSdkMinor` property — so all twelve sites use it.

Nine of those sites are KMP modules that hardcoded `compileSdk = 37` rather than
reading the catalog, which is why this is a twelve-site change instead of a
one-line one. They now read `android-compileSdk` and `android-compileSdkMinor`
like everything else.

`Build.VERSION.SDK_INT` still reports 37; only `SDK_INT_FULL` carries the minor,
so no runtime behaviour changes.
@bmc08gt bmc08gt self-assigned this Sep 11, 2026
@github-actions github-actions Bot added type: build Build system, Gradle, dependencies area: crypto Solana, keys, encryption, signing area: build-system Gradle, convention plugins, build-logic labels Sep 11, 2026
@bmc08gt
bmc08gt merged commit d12e598 into code/cash Sep 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: build-system Gradle, convention plugins, build-logic area: crypto Solana, keys, encryption, signing type: build Build system, Gradle, dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant