build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37 - #2464

Merged
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade
Sep 1, 2026
Merged

build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37#2464
russellwheatley merged 2 commits into
masterfrom
chore/agp-9x-upgrade

Conversation

@demolaf

@demolafdemolaf commented Sep 1, 2026

Copy link
Copy Markdown
Member

Dependabot's com.vanniktech.maven.publish bump (0.34.0 → 0.37.0, #2364) fails CI because 0.36.0+ requires AGP ≥ 8.13.0, and no AGP 8.x release is compatible with this repo's Gradle 9.7.0 wrapper (AGP 8.11–8.13.x depend on an internal Gradle API removed in 9.6.0). This upgrades AGP to 9.3.0 to unblock it — that part alone has no consumer impact, verified by publishing to mavenLocal() and confirming the AAR metadata is unchanged from the pre-upgrade baseline.

It also bumps compileSdk 36 → 37, to unblock a separate cluster of stuck dependabot PRs (#2430 glide, #2371 core-ktx, #2451 compose-bom) whose newer versions were themselves built against compileSdk 37 and can't be consumed while we're at 36. This part does have real consumer impact: the published AAR now stamps minCompileSdk=37, so consumers still on AGP 8.10.0 (max recommended compileSdk 36) will need to upgrade AGP to pick up the next FirebaseUI-Android release. That's a deliberate, accepted tradeoff for unblocking those PRs, not an oversight.

#2429 is dependabot's own attempt at this same AGP bump (8.10.0 → 9.3.1) - it hit the identical org.jetbrains.kotlin.android/AGP-9-defaults wall this PR already resolves, so merging this supersedes it.

  • gradle.properties: added android.builtInKotlin=false and android.newDsl=false to keep org.jetbrains.kotlin.android working under AGP 9's defaults - both flags are deprecated and removed in AGP 10, so the real Kotlin/new-DSL migration is deferred to a follow-up.
  • proguard-tests/build.gradle.kts: migrated the removed postprocessing {} block to isMinifyEnabled/isShrinkResources.
  • common/build.gradle.kts, storage/build.gradle.kts: removed a dangling consumerProguardFiles("proguard-rules.pro") pointing at a file that's never existed — silently ignored under AGP 8, hard-fails release builds under AGP 9. Neither module has dependencies needing consumer keep rules.
  • auth, database, firestore, storage: implementation(platform(libs.firebase.bom))api(platform(libs.firebase.bom)), fixing an AGP 9 dependency-resolution regression where the BOM's version constraint wasn't propagating to modules already exposing these artifacts via api.
  • buildSrc/src/main/kotlin/Config.kt: compileSdk 36 → 37 (targetSdk intentionally left at 36 - all modules set it explicitly, so AGP 9's "target defaults to compile" default never fires; target ≤ compile is a valid combination).

Maintainer note: Fixes internal CPRN-146

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request upgrades the Android Gradle Plugin to version 9.3.0, updates Firebase BOM dependencies from implementation to api across multiple modules, and removes consumer ProGuard files from common and storage modules. Additionally, it replaces the experimental postprocessing block with standard minification properties in the proguard-tests module. The reviewer recommends specifying default Android ProGuard rules when enabling minification to prevent potential runtime crashes due to aggressive shrinking or obfuscation.

Comment threadproguard-tests/build.gradle.kts
@demolafdemolaf changed the title chore(deps): upgrade AGP to 9.3.0chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatleyrussellwheatley changed the title chore(deps): upgrade AGP to 9.3.0 and bump compileSdk to 37build(deps)!: upgrade AGP to 9.3.0 and bump compileSdk to 37Sep 1, 2026
@russellwheatley
russellwheatley merged commit c3f8007 into masterSep 1, 2026
18 checks passed
@russellwheatley
russellwheatley deleted the chore/agp-9x-upgrade branch September 1, 2026 15:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@demolaf@russellwheatley