Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Kotlin to 2.1.0, Essenty to 2.4.0, AGP to 8.7.3, Gradle to 8.11.1 #825

Merged
merged 1 commit into from
Jan 2, 2025

Conversation

arkivanov
Copy link
Owner

@arkivanov arkivanov commented Dec 8, 2024

Summary by CodeRabbit

Release Notes

  • Dependencies

    • Updated Kotlin version to 2.1.0
    • Updated Essenty library to 2.4.0
    • Updated Kotlin Coroutines to 1.9.0
    • Updated Android Gradle plugin to 8.7.3
    • Added new Kotlin Browser dependency
  • Build Configuration

    • Updated Gradle wrapper to version 8.11.1
    • Updated Gradle setup plugin version
  • Experimental Features

    • Enhanced ChildPages and Children function overloads
    • Added default horizontal and vertical pager functions
    • Introduced DelicateDecomposeApi opt-in for certain test classes
  • Test Improvements

    • Updated test case parameters for stack animation directions

Copy link

coderabbitai bot commented Dec 8, 2024

Walkthrough

This pull request introduces several updates across the Decompose library, focusing on dependency version upgrades, build configuration modifications, and minor API adjustments. The changes span multiple files, including build scripts, test configurations, and Gradle wrapper settings. Key updates include upgrading Kotlin, Coroutines, and Android Gradle plugin versions, adding a new browser-related dependency for WebAssembly support, and making small refinements to test configurations and build management.

Changes

File Change Summary
decompose/build.gradle.kts Added kotlinxBrowser dependency for wasmJs bundle; removed atomicfu dependency from test dependencies.
deps.versions.toml Updated versions: Kotlin (2.0.20 → 2.1.0), Essenty (2.3.0 → 2.4.0), Coroutines (1.8.1 → 1.9.0), Android Gradle (8.2.0 → 8.7.3); Added jetbrainsKotlinxBrowser (0.3).
decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/ChildStackIntegrationTest.kt Added @OptIn(DelicateDecomposeApi::class) annotation.
decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/RouterPushTest.kt Added @OptIn(DelicateDecomposeApi::class) annotation.
extensions-compose-experimental/api/android/extensions-compose-experimental.api Added overloaded methods in ChildPanelsKt; removed lambda fields in ComposableSingletons$ChildPanelsKt.
extensions-compose-experimental/api/jvm/extensions-compose-experimental.api Added overloaded methods in ChildPanelsKt; removed lambda fields in ComposableSingletons$ChildPanelsKt.
extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/ChildrenTest.kt Updated comment in Config class.
extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/animation/StackAnimationDirectionsTest.kt Modified test cases in getParameters() method.
gradle/wrapper/gradle-wrapper.properties Updated Gradle distribution to version 8.11.1.
settings.gradle.kts Updated gradle-setup-plugin version.
gradlew Adjusted command for setting APP_HOME and improved comments.
gradlew.bat Cleaned up error message formatting.

Possibly related PRs

Poem

🐰 Hop, hop, through code so bright,
Dependencies dancing with delight!
Kotlin's version takes a leap,
WebAssembly's promise we shall keep.
A rabbit's build, now smooth and clean! 🚀


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e15dac9 and 6f0b169.

⛔ Files ignored due to path filters (2)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
  • kotlin-js-store/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (15)
  • decompose/build.gradle.kts (1 hunks)
  • decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/ChildStackIntegrationTest.kt (2 hunks)
  • decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/RouterPushTest.kt (1 hunks)
  • deps.versions.toml (2 hunks)
  • extensions-compose-experimental/api/android/extensions-compose-experimental.api (0 hunks)
  • extensions-compose-experimental/api/jvm/extensions-compose-experimental.api (0 hunks)
  • extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt (0 hunks)
  • extensions-compose/api/android/extensions-compose.api (0 hunks)
  • extensions-compose/api/jvm/extensions-compose.api (0 hunks)
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/ChildrenTest.kt (0 hunks)
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/animation/StackAnimationDirectionsTest.kt (1 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • gradlew (3 hunks)
  • gradlew.bat (2 hunks)
  • settings.gradle.kts (1 hunks)
💤 Files with no reviewable changes (6)
  • extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/ChildrenTest.kt
  • extensions-compose/api/jvm/extensions-compose.api
  • extensions-compose/api/android/extensions-compose.api
  • extensions-compose-experimental/api/android/extensions-compose-experimental.api
  • extensions-compose-experimental/api/jvm/extensions-compose-experimental.api
🚧 Files skipped from review as they are similar to previous changes (9)
  • gradlew.bat
  • settings.gradle.kts
  • gradle/wrapper/gradle-wrapper.properties
  • decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/RouterPushTest.kt
  • decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/ChildStackIntegrationTest.kt
  • decompose/build.gradle.kts
  • gradlew
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/animation/StackAnimationDirectionsTest.kt
  • deps.versions.toml

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@arkivanov arkivanov marked this pull request as ready for review January 2, 2025 18:36
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
gradlew.bat (1)

60-64: Confirm validity of JAVA_HOME
Similarly, these lines provide more explicit instructions for users when JAVA_HOME is invalid. Consider adding a prompt to display the expected path or version of Java if confusion persists.

decompose/build.gradle.kts (1)

74-77: Add usage examples for the new browser dependency
Adding jetbrains-kotlinx-kotlinxBrowser under wasmJs.main.dependencies enables browser-specific utilities in WebAssembly builds. Consider documenting or providing usage examples for these utilities, so team members understand how and why to use them.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 363192a and e15dac9.

⛔ Files ignored due to path filters (2)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
  • kotlin-js-store/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (15)
  • decompose/build.gradle.kts (1 hunks)
  • decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/ChildStackIntegrationTest.kt (2 hunks)
  • decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/RouterPushTest.kt (1 hunks)
  • deps.versions.toml (2 hunks)
  • extensions-compose-experimental/api/android/extensions-compose-experimental.api (0 hunks)
  • extensions-compose-experimental/api/jvm/extensions-compose-experimental.api (0 hunks)
  • extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt (0 hunks)
  • extensions-compose/api/android/extensions-compose.api (0 hunks)
  • extensions-compose/api/jvm/extensions-compose.api (0 hunks)
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/ChildrenTest.kt (0 hunks)
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/animation/StackAnimationDirectionsTest.kt (1 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • gradlew (3 hunks)
  • gradlew.bat (2 hunks)
  • settings.gradle.kts (1 hunks)
💤 Files with no reviewable changes (6)
  • extensions-compose-experimental/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/experimental/stack/ChildStackTest.kt
  • extensions-compose/api/jvm/extensions-compose.api
  • extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/ChildrenTest.kt
  • extensions-compose/api/android/extensions-compose.api
  • extensions-compose-experimental/api/android/extensions-compose-experimental.api
  • extensions-compose-experimental/api/jvm/extensions-compose-experimental.api
✅ Files skipped from review due to trivial changes (1)
  • gradle/wrapper/gradle-wrapper.properties
🔇 Additional comments (12)
decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/RouterPushTest.kt (2)

3-3: Acknowledge DelicateDecomposeApi usage
The import of DelicateDecomposeApi indicates you're using experimental or delicate API elements. Ensure this aligns with your project's stability requirements before proceeding.


8-8: Opting-in to DelicateDecomposeApi
By annotating the class with @OptIn(DelicateDecomposeApi::class), you accept the unstable or delicate aspects of the API. Confirm thorough testing and monitor future API changes closely to prevent regressions.

gradlew.bat (1)

46-50: Clarify instructions for setting JAVA_HOME
The newly introduced lines improve the clarity of the error messages. Ensure that these messages remain consistent with the project's overall style and provide enough guidance for users.

extensions-compose/src/jvmTest/kotlin/com/arkivanov/decompose/extensions/compose/stack/animation/StackAnimationDirectionsTest.kt (1)

96-98: Confirm logic for newly expected ENTER_FRONT directions
These changes imply that certain transitions now favor ENTER_FRONT. Make sure this aligns with the intended user experience for these transitions, especially if other test cases or production code rely on the previous behavior.

gradlew (4)

86-86: Validate path resolution logic
Using pwd -P ensures symbolic links are properly resolved. Confirm no unintended consequences for local or CI environments that rely on custom linking.


147-147: Remove shellcheck directive with caution
The removal of SC3045 directive indicates improved compliance; ensure that shells lacking this extension can still execute the script as intended.


155-155: Continue verifying maximum file descriptor limits
Though you’ve simplified the logic, confirm that systems with unusual ulimit configurations (e.g., very restrictive or no-hard-limit systems) handle these lines gracefully.


204-208: Properly handle quotes and expansions
Ensuring that environment variables with complex expansions or special characters are handled correctly helps avoid subtle script errors. Thoroughly test this flow on multiple platforms.

decompose/src/commonTest/kotlin/com/arkivanov/decompose/router/stack/ChildStackIntegrationTest.kt (2)

6-6: Ensure explicit usage of experimental API is intentional
You're importing DelicateDecomposeApi, which indicates certain experimental or delicate features that may change without notice. Please verify that using this API in production or test code is appropriate and that you’ve assessed any risks associated with it.


30-30: Annotation matches the API usage
Annotating the test class with @OptIn(DelicateDecomposeApi::class) is necessary to utilize experimental functionalities in your tests. This is fine, but ensure you keep track of changes to DelicateDecomposeApi in future library versions.

settings.gradle.kts (1)

18-18: Verify plugin version upgrade
The plugin version has been updated to "com.github.arkivanov:gradle-setup-plugin:4cef58cc3b". Double-check that any features previously used are still compatible with this new version and that any newly introduced plugin functionality is tested if needed.

deps.versions.toml (1)

4-5: Dependency version updates
The updated versions for Kotlin (2.1.0), Essenty (2.4.0), Coroutines (1.9.0), Android Gradle plugin (8.7.3), and the addition of jetbrainsKotlinxBrowser (0.3) look appropriate. Ensure that:

  1. All dependencies are compatible with each other.
  2. Tests pass and there are no runtime issues introduced by these changes.

Also applies to: 10-10, 12-12, 15-15, 50-50

@arkivanov arkivanov merged commit 537afc3 into master Jan 2, 2025
3 checks passed
@arkivanov arkivanov deleted the kotlin-2.1.0 branch January 2, 2025 20:51
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.

1 participant