Skip to content

Migration to modern stack: dependency compatibility blockers #30

Description

@Lewik

Current Status

We need to migrate to modern versions but are blocked by dependency compatibility issues.

Target Versions

  • Kotlin: 2.0.0 → 2.2.0 ✅ (already updated with workaround)
  • Spring Boot: 3.4.4 → 4.0.0-M1 ❌ (blocked by Spring AI compatibility)
  • Spring AI: 1.0.0-M8 → 1.0.0 GA ✅ (updated)
  • Compose: 1.6.10 → 1.8.2 ✅ (updated)
  • Other deps: Updated to latest versions ✅

Current Blockers

1. Spring Boot 4.0.0-M1 + Spring AI 1.0.0 GA Incompatibility

Error encountered:

java.lang.ClassNotFoundException: org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration

Root cause: Spring AI 1.0.0 GA is built against Spring Boot 3.4.2, not Spring Boot 4.x milestones.

Current workaround: Using Spring Boot 3.4.4 with forced Kotlin version override:

extra["kotlin.version"] = "2.2.0"

Waiting For

  • Spring AI milestone for Spring Boot 4: No compatible Spring AI version exists yet for Spring Boot 4.0.0-M1
  • Spring Boot 4.0.0 GA: Expected November 2025 with official ecosystem support

Implementation Notes for Future Migration

Kotlin 2.2.0 Breaking Changes Already Fixed

  1. platform() function removed:

    // Old (fails in Kotlin 2.2):
    implementation(platform(libs.ktor.bom.get().toString()))
    
    // Fixed:
    implementation(libs.ktor.client.core) // with explicit versions in libs.versions.toml
  2. withJava() deprecated:

    // Old:
    jvm { withJava() }
    
    // Fixed:
    jvm { } // Java compilation included by default
  3. Compose Icons dependency required:

    implementation(compose.materialIconsExtended)

Spring AI 1.0.0 GA Migration Changes

  1. ChatClient API updated:

    // Old:
    ChatClient.builder(chatModel).build()
    
    // New:
    ChatClient.create(chatModel)
  2. Starter dependency renamed:

    # Old:
    spring-ai-openai-spring-boot-starter
    
    # New:
    spring-ai-starter-model-openai

Current Dependencies Status

kotlin = "2.2.0"              # ✅ Latest
jetbrains-compose = "1.8.2"   # ✅ Latest  
spring-boot = "3.4.4"         # ⏳ Waiting for Spring Boot 4 compatibility
spring-ai = "1.0.0"           # ✅ GA version
sqldelight = "2.1.0"          # ✅ Latest
junit = "5.13.4"              # ✅ Latest
mockk = "1.14.5"              # ✅ Latest
kotest = "5.9.1"              # ✅ Latest
multiplatform-markdown-renderer = "0.30.0" # ✅ With table support

Next Steps

  1. Monitor Spring AI releases for Spring Boot 4.0.0 compatibility
  2. Test with Spring Boot 4.0.0-M2 when available
  3. Remove Kotlin version override workaround when Spring Boot 4 GA is released
  4. Validate all functionality after migration

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions