Skip to content

chore(deps): bump verifiable dependencies to latest stable (#224)#227

Open
kirich1409 wants to merge 7 commits into
developfrom
claude/github-issue-224-YckBQ
Open

chore(deps): bump verifiable dependencies to latest stable (#224)#227
kirich1409 wants to merge 7 commits into
developfrom
claude/github-issue-224-YckBQ

Conversation

@kirich1409
Copy link
Copy Markdown
Contributor

Summary

Wide-net dependency upgrade toward the Dependabot vulnerability audit in #224 (33 advisories: 13 high / 17 moderate / 3 low). Per the issue, this takes the "upgrade to latest stable" approach rather than per-advisory triage.

Every target below was confirmed as the latest stable (non RC/alpha/beta) release from Maven Central, the Gradle Plugin Portal, or services.gradle.org.

Version catalog (gradle/libs.versions.toml)

dependency from to
kotlin 2.3.10 2.3.21
kotlinx-coroutines 1.10.2 1.11.0
mockk 1.14.9 1.14.11
asm 9.7 9.10.1
spotless 8.4.0 8.6.0
composeHotReload 1.0.0 1.1.1

The kotlin bump cascades (intentionally) to the shared Kotlin Multiplatform / JVM / serialization / Compose-compiler plugin versions and kotlin-test.

Build tooling

  • Gradle wrapper 9.4.1 → 9.5.1
  • .github/actions/setup-build-env: actions/setup-java@v4 → v5, gradle/actions/setup-gradle@v3 → v6 (these composite-action pins lagged the rest of the workflows, which already use v5/v6).

Scope / limitations

This change was prepared in an environment where Google's Maven repo (maven.google.com), the OSV API, and the repo's Dependabot alert page were network-blocked, and no tooling exposed the live alert list. Consequences:

  • Not touched (unverifiable): AGP, all androidx.*, material, firebase-bom, preference, r8, lint, and the hardcoded com.android.tools.build:gradle in the plugin build. These resolve only from Google Maven; lint is pinned to AGP + 23.0.0 and the hardcoded AGP must equal the catalog agp, so AGP was deliberately left in place rather than changed to an unverifiable guess.
  • Already latest stable (no change): serialization, junit, robolectric, turbine, detekt, configcat, dokka, kover, ktlint, mavenPublish, composeMultiplatform, skie.
  • No local build/test possible (Android deps can't resolve without Google Maven) — CI is the validation gate.

Risk

  • kotlin 2.3.10 → 2.3.21 is patch-level but couples to SKIE 0.10.10 (iOS framework) and the Compose compiler. Normally SKIE-safe within a 2.3.x patch, but CI's iOS/KMP targets are the real check.
  • Remaining changes are patch/minor on test or build tooling — low risk.

Follow-up

The 33 advisories likely include transitive deps pulled through Firebase/ConfigCat/AGP that can only be enumerated with the live Dependabot list or an OSV scan. Once that data is available, a precise second pass can add version constraints / bumps for any remaining transitive advisories.

Verification

  • CI build across Android / JVM / iOS targets
  • ./gradlew test
  • spotlessCheck
  • CodeQL + dependency-review

Closes #224 (pending the transitive follow-up noted above)

https://claude.ai/code/session_0116RWpER7w8gnANsC6Y1cTQ


Generated by Claude Code

kirich1409 and others added 7 commits May 30, 2026 11:02
The Analyze Kotlin job failed with 'no source code seen during build'
(exit code 32): assembleDebug compile tasks were served from cache / marked
UP-TO-DATE, so CodeQL's tracer observed no Kotlin source.

Add --no-build-cache --rerun-tasks to the CodeQL build step to force actual
recompilation, giving the tracer source to analyze.

Co-authored-by: Claude <noreply@anthropic.com>
- Bump VERSION_NAME to 1.0.0
- Add [1.0.0] CHANGELOG entry (Android-facing API as primary stable target)
- Fix mkdocs: exclude cc-verification/specs, add Known Limitations to nav,
  move iOS guides to "iOS Preview" section, update site_description
- Add "Stable in 1.0" admonition to Android guide
- Add "Preview" admonitions to iOS guides
- Fix CodeQL workflow: build-mode=manual + --no-build-cache --rerun-tasks
* test(shrinker): cover -keep defeating flag dead-code elimination

A consumer -keep rule (often a broad wildcard or @keep) that covers a
flag-guarded class defeats R8 tree-shaking: -assumevalues still folds the
disabled branch (behaviour unchanged), but the class itself is pinned as an
unconditional GC root and ships in the APK despite being unreachable —
silently losing the size benefit of build-time flags.

- Add writeBooleanRulesWithKeptDeadBranch() modelling the pitfall
- Add a regression test asserting the dead-branch class survives the keep
- Document the two-phase elimination model and keep-rule guidance in the
  R8 verification guide

* test(shrinker): assert branch folding in keep regression; fix docs

Address review feedback on the -keep regression test and guide:

- The keep test now also asserts BifurcatedCaller no longer references
  IfBranchCode, proving R8 still folded the disabled branch (phase 1) rather
  than only keeping the class alive via the kept caller. Adds
  assertClassDoesNotReference() (ASM bytecode inspection).
- Move -dontoptimize out of the 'not a problem' list in the R8 guide into a
  distinct hazard note — it suppresses elimination and must not be grouped
  with the harmless accessor-method keep.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Wide-net dependency upgrade toward the Dependabot vulnerability audit:

- kotlin 2.3.10 -> 2.3.21 (cascades to KMP/JVM/serialization/compose-compiler)
- kotlinx-coroutines 1.10.2 -> 1.11.0
- mockk 1.14.9 -> 1.14.11
- asm 9.7 -> 9.10.1
- spotless 8.4.0 -> 8.6.0
- composeHotReload 1.0.0 -> 1.1.1
- Gradle wrapper 9.4.1 -> 9.5.1
- setup-build-env action: setup-java v4 -> v5, setup-gradle v3 -> v6

Versions confirmed as latest stable from Maven Central / Gradle Plugin
Portal / services.gradle.org. Google-Maven-hosted deps (AGP, androidx,
firebase, r8, lint) are left untouched as they could not be verified
in this environment; CI validates the build across Android/JVM/iOS.

https://claude.ai/code/session_0116RWpER7w8gnANsC6Y1cTQ
@kirich1409 kirich1409 marked this pull request as ready for review May 31, 2026 09:55
Copilot AI review requested due to automatic review settings May 31, 2026 09:55
@qodo-code-review
Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

No issues found across 3 files

Re-trigger cubic

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to 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.

3 participants