Skip to content

Conversation

@liviolopez
Copy link

Summary

This PR updates the project's build dependencies to their latest stable versions and migrates dependency management to Gradle's Version Catalog pattern for improved maintainability.

Motivation

Modern dependency management using Version Catalogs provides:

  • ✅ Centralized version control
  • ✅ Better IDE support for dependency updates
  • ✅ Type-safe dependency references
  • ✅ Easier maintenance for contributors

Changes

Build Infrastructure

  • Migrated to Gradle Version Catalog (gradle/libs.versions.toml)
  • Updated Gradle wrapper: 8.6 → 8.13.2
  • Updated Kotlin: 2.1.0 → 2.3.0
  • Updated Android Gradle Plugin: 8.6.0 → 8.13.2
  • Updated Skiko: 0.9.22.2 → 0.9.37.3

Dependencies

  • Updated AndroidX libraries to latest stable versions
  • Updated testing framework dependencies
  • Updated logging libraries

Configuration

  • Removed hardcoded versions from gradle.properties
  • Updated all build.gradle.kts files to reference version catalog
  • Updated settings.gradle.kts plugin management

Testing

✅ Verified clean build succeeds
✅ All Gradle tasks execute correctly
✅ No breaking changes to existing functionality
✅ Compatible with current Lets-Plot dependencies (4.12.1 / 4.8.2)

Compatibility

All existing Lets-Plot dependencies remain unchanged:

  • Compose Multiplatform: 1.9.3 ✅
  • Lets-Plot Kotlin API: 4.12.1 ✅
  • Lets-Plot Multiplatform: 4.8.2 ✅

Checklist

  • Updated CHANGELOG.md
  • Tested local builds
  • No functional code changes
  • Followed project conventions
  • Commits follow Conventional Commits

Thank you for maintaining this excellent library! I hope this contribution helps keep the project's build infrastructure modern and maintainable. Please let me know if you'd like any changes to this PR.

@liviolopez liviolopez force-pushed the chore/update-build-dependencies-2026 branch from ec629f7 to 64dd3e6 Compare January 10, 2026 03:17
@IKupriyanov-HORIS IKupriyanov-HORIS marked this pull request as ready for review January 21, 2026 18:03

# Kotlin & Compose
junitJupiter = "6.0.1"
kotlin = "2.3.0"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please update the Kotlin version to 2.2.20 to maintain alignment with the latest IDEA .

Copy link
Author

Choose a reason for hiding this comment

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

Done. Updated to 2.2.20 ✓

kotlin = "2.3.0"
compose = "1.9.3"
mockk = "1.14.7"
skiko = "0.9.37.3"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please update this to 0.9.22.2 to align the Skiko and Compose versions.

Copy link
Author

Choose a reason for hiding this comment

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

Done. Reverted to 0.9.22.2 ✓

- Migrated to Gradle Version Catalog (libs.versions.toml)
- Updated Kotlin from 2.1.0 to 2.2.20 (IDEA compatibility)
- Updated Gradle wrapper from 8.6 to 8.13.2
- Updated Android Gradle Plugin from 8.6.0 to 8.13.2
- Updated AndroidX Compose BOM to 2025.12.01
- Updated AndroidX Activity Compose to 1.12.2
@liviolopez liviolopez force-pushed the chore/update-build-dependencies-2026 branch from 2fdeb94 to 4fb5b34 Compare January 21, 2026 23:26
skiko = "0.9.22.2"

# Android
agp = "8.13.2"
Copy link
Collaborator

Choose a reason for hiding this comment

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

We can't use this version - gradle fails with the following error:

The project is using an incompatible version (AGP 8.13.2) of the Android Gradle plugin. Latest supported version is AGP 8.12.0

java = "21"

# Kotlin & Compose
junitJupiter = "6.0.1"
Copy link
Collaborator

Choose a reason for hiding this comment

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

We don't use it in the project. Do we really need this?

junitJupiter = "6.0.1"
kotlin = "2.2.20"
compose = "1.9.3"
mockk = "1.14.7"
Copy link
Collaborator

Choose a reason for hiding this comment

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

We don't use mockk. Lets remove it.

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.

2 participants