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

3.0.1-beta01 #86

Merged
merged 16 commits into from
Aug 8, 2024
Merged

3.0.1-beta01 #86

merged 16 commits into from
Aug 8, 2024

Conversation

Nek-12
Copy link
Member

@Nek-12 Nek-12 commented Jul 30, 2024

Summary by CodeRabbit

  • New Features

    • Introduced a new run configuration for a web sample application.
    • Enhanced versioning functionalities with the new version string construction.
  • Updates

    • Upgraded Java version across all workflows from 21 to 22.
    • Modified Gradle configurations for improved build performance.
    • Added Maven Publish plugin to various build scripts for enhanced artifact management.
  • Bug Fixes

    • Corrected import statement for CallLogging in the configuration file.
  • Chores

    • Updated Gradle configuration properties to reflect new build settings and optimizations.
    • Streamlined workflow configurations by removing unnecessary steps and improving readability.

@Nek-12 Nek-12 added the autorelease Automatically create a release using PR title label Jul 30, 2024
Copy link

coderabbitai bot commented Jul 30, 2024

Walkthrough

Walkthrough

The recent updates to the project configurations focus on enhancing build efficiency and compatibility. Key modifications include increasing JVM memory settings, upgrading the Java and Gradle versions, and restructuring CI workflows for improved artifact publishing. Additionally, adjustments to Kotlin DSL functions and dependency management aim to streamline the overall build process, ensuring better maintainability and performance.

Changes

Files Summary
.github/ci-gradle.properties Increased JVM memory settings; disabled Gradle daemon; added release property.
.github/workflows/*.yml Updated Java version from 21 to 22; modified Gradle wrapper validation action.
.idea/runConfigurations/Run_Web_Sample_App.xml Added new run configuration for a web sample application.
build.gradle.kts Enhanced Maven publishing setup; added new import statements and configuration logic.
buildSrc/src/main/kotlin/*.kt Incremented versioning details; updated compiler arguments; added new versioning function.
core/build.gradle.kts Enabled alias for atomicfu plugin.
sample/build.gradle.kts Adjusted compilation settings; removed specific task configurations.
settings.gradle.kts Removed specific pluginManagement and dependencyResolutionManagement entries.
gradle/libs.versions.toml Updated dependency versions for various libraries; added new library entries.
gradle/wrapper/gradle-wrapper.properties Updated Gradle wrapper to version 8.9.
gradlew Added SPDX license identifier; updated source URL reference.
gradlew.bat Added SPDX license identifier comment.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant CI
    participant Gradle
    participant MavenCentral

    Developer->>CI: Push changes
    CI->>Gradle: Build project
    Gradle->>MavenCentral: Publish artifacts
    MavenCentral-->>Gradle: Confirm publication
    Gradle-->>CI: Build success
    CI-->>Developer: Notify build result
Loading

Warning

Review ran into problems

Problems (1)
  • Git: Failed to clone repository. Please contact CodeRabbit support.

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>.
    • 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 generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @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 as 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 resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

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.

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: 2

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 153e449 and 2e8b6f0.

Files ignored due to path filters (1)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
Files selected for processing (28)
  • .github/ci-gradle.properties (2 hunks)
  • .github/workflows/ci.yml (1 hunks)
  • .github/workflows/desktop-linux.yml (1 hunks)
  • .github/workflows/desktop-macos.yml (1 hunks)
  • .github/workflows/desktop-win.yml (1 hunks)
  • .github/workflows/docs.yml (1 hunks)
  • .github/workflows/publish.yml (1 hunks)
  • .github/workflows/pull-request.yml (1 hunks)
  • .idea/runConfigurations/Run_Web_Sample_App.xml (1 hunks)
  • build.gradle.kts (4 hunks)
  • buildSrc/src/main/kotlin/Config.kt (3 hunks)
  • buildSrc/src/main/kotlin/ConfigureMultiplatform.kt (3 hunks)
  • buildSrc/src/main/kotlin/Util.kt (1 hunks)
  • core/build.gradle.kts (2 hunks)
  • core/src/androidMain/kotlin/pro/respawn/flowmvi/dsl/AndroidDsl.kt (1 hunks)
  • core/src/jvmMain/kotlin/pro/respawn/flowmvi/dsl/JvmDsl.kt (1 hunks)
  • debugger/server/src/commonMain/kotlin/pro/respawn/flowmvi/debugger/server/Configuration.kt (1 hunks)
  • gradle.properties (1 hunks)
  • gradle/libs.versions.toml (4 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • gradlew (3 hunks)
  • gradlew.bat (1 hunks)
  • sample/build.gradle.kts (5 hunks)
  • sample/libs.versions.toml (3 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/features/lce/LCEScreen.kt (1 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RCircleIcon.kt (2 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RIcon.kt (2 hunks)
  • settings.gradle.kts (2 hunks)
Files skipped from review due to trivial changes (3)
  • debugger/server/src/commonMain/kotlin/pro/respawn/flowmvi/debugger/server/Configuration.kt
  • gradlew.bat
  • settings.gradle.kts
Additional context used
GitHub Check: Codacy Static Code Analysis
buildSrc/src/main/kotlin/ConfigureMultiplatform.kt

[notice] 4-4: buildSrc/src/main/kotlin/ConfigureMultiplatform.kt#L4
The import 'org.gradle.kotlin.dsl.assign' is unused.


[notice] 4-4: buildSrc/src/main/kotlin/ConfigureMultiplatform.kt#L4
Unused import

build.gradle.kts

[warning] 1-1: build.gradle.kts#L1
The file does not contain a package declaration.

Additional comments not posted (59)
.github/workflows/pull-request.yml (3)

1-1: Workflow name change approved.

The name change to "PR automation" broadens the scope of the workflow appropriately.


3-5: Verify the broader trigger application.

Removing the branch specification will apply the workflow to all branches. Ensure this broader application is intended and won't trigger unintended workflows.


9-9: Environment change approved.

The change to macos-latest is approved.

Ensure all actions and dependencies are compatible with the macOS environment.

gradle/wrapper/gradle-wrapper.properties (1)

3-3: Gradle version upgrade approved.

Upgrading to Gradle 8.9 is approved.

Verify compatibility and test the build process to ensure there are no breaking changes.

core/build.gradle.kts (2)

4-4: Enabling atomicfu plugin approved.

Enabling the atomicfu plugin is approved.

Verify the plugin configuration to ensure it is correctly set up and does not introduce any issues.


17-17: Blank line addition approved.

The addition of a blank line improves readability.

.github/workflows/ci.yml (2)

32-32: Verify the new Gradle wrapper validation action.

Ensure that the new action gradle/actions/wrapper-validation@v3 works as expected and does not introduce any breaking changes.


28-28: Verify compatibility with Java 22.

Ensure that all dependencies and the build process are compatible with Java 22.

.idea/runConfigurations/Run_Web_Sample_App.xml (1)

2-14: Verify paths and task names.

Ensure that the externalProjectPath and taskNames are correct and exist in the project.

.github/ci-gradle.properties (4)

27-27: Verify new build configuration property.

The org.gradle.console property has been replaced by release. Ensure that this change is correct and does not negatively impact the build process.

Verification successful

Verified new build configuration property.

The release property is correctly used across multiple files, including build scripts and documentation. This indicates it is a valid and established configuration for controlling build behavior.

  • .github/ci-gradle.properties
  • buildSrc/src/main/kotlin/ConfigurePublication.kt
  • build.gradle.kts
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify new build configuration property.

# Test: Check the documentation for the `release` property. Expect: Correct usage and no negative impact on the build process.
grep -r 'release' .

Length of output: 3598


2-2: Verify impact of increased heap size and metaspace size.

The maximum heap size has been increased to 4GB and MaxMetaspaceSize has been set to 2GB. Ensure that the CI environment has sufficient memory resources to handle these changes.


20-20: Verify impact of disabling Gradle daemon.

The Gradle daemon has been disabled. Ensure that this change does not negatively impact build performance.


1-1: Verify impact of increased heap size.

The maximum heap size has been increased from 3GB to 4GB. Ensure that the CI environment has sufficient memory resources to handle this increase.

core/src/androidMain/kotlin/pro/respawn/flowmvi/dsl/AndroidDsl.kt (4)

13-13: Verify deprecation message and replacement suggestion for send.

The deprecation message and replacement suggestion for send should be verified to ensure they guide developers correctly.


20-20: Verify deprecation message and replacement suggestion for send.

The deprecation message and replacement suggestion for send should be verified to ensure they guide developers correctly.


27-27: Verify deprecation message and replacement suggestion for emit.

The deprecation message and replacement suggestion for emit should be verified to ensure they guide developers correctly.


34-34: Verify deprecation message and replacement suggestion for emit.

The deprecation message and replacement suggestion for emit should be verified to ensure they guide developers correctly.

core/src/jvmMain/kotlin/pro/respawn/flowmvi/dsl/JvmDsl.kt (4)

13-13: Verify deprecation message and replacement suggestion for send.

The deprecation message and replacement suggestion for send should be verified to ensure they guide developers correctly.


20-20: Verify deprecation message and replacement suggestion for send.

The deprecation message and replacement suggestion for send should be verified to ensure they guide developers correctly.


27-27: Verify deprecation message and replacement suggestion for emit.

The deprecation message and replacement suggestion for emit should be verified to ensure they guide developers correctly.


34-34: Verify deprecation message and replacement suggestion for emit.

The deprecation message and replacement suggestion for emit should be verified to ensure they guide developers correctly.

gradle.properties (1)

30-30: Verify the impact of release=true on the build process.

The addition of release=true should be verified to ensure it aligns with the intended release configuration and does not introduce any unintended side effects.

.github/workflows/desktop-macos.yml (1)

26-26: Upgrade Java version to 22.

The Java version has been updated from 21 to 22. Ensure that the project is compatible with Java 22 and that all dependencies support this version.

.github/workflows/desktop-linux.yml (1)

26-26: Upgrade Java version to 22.

The Java version has been updated from 21 to 22. Ensure that the project is compatible with Java 22 and that all dependencies support this version.

Verification successful

Upgrade Java version to 22.

The verification process did not find any references to Java 21 in the project configuration files. Therefore, the project appears to be compatible with Java 22, and no issues were found with the upgrade.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify project compatibility with Java 22.

# Test: Check for any references to Java 21 and ensure they are updated to Java 22.
rg --type gradle -A 5 $'sourceCompatibility = "21"'
rg --type gradle -A 5 $'targetCompatibility = "21"'

Length of output: 403


Script:

#!/bin/bash
# Description: Verify project compatibility with Java 22.

# Locate all .gradle files and search for any references to Java 21.
fd -e gradle -x rg 'sourceCompatibility = "21"' {}
fd -e gradle -x rg 'targetCompatibility = "21"' {}

Length of output: 109


Script:

#!/bin/bash
# Description: Verify project compatibility with Java 22.

# Locate all relevant project configuration files and search for any references to Java 21.
fd -e gradle -e properties -e xml -e yml -e yaml -x rg 'java.version=21' {}
fd -e gradle -e properties -e xml -e yml -e yaml -x rg 'sourceCompatibility = "21"' {}
fd -e gradle -e properties -e xml -e yml -e yaml -x rg 'targetCompatibility = "21"' {}

Length of output: 259

.github/workflows/docs.yml (2)

36-36: Update Gradle wrapper validation action.

The action for validating the Gradle wrapper has been updated to gradle/actions/wrapper-validation@v3. Ensure that this new action is compatible and functions correctly.


32-32: Upgrade Java version to 22.

The Java version has been updated from 21 to 22. Ensure that the project is compatible with Java 22 and that all dependencies support this version.

Verification successful

No issues found with the Java version update to 22.

The project does not contain any explicit references to Java 21 in the configuration files. Therefore, it should be compatible with Java 22.

  • No sourceCompatibility or targetCompatibility settings for Java 21 were found.
  • No java.version settings for Java 21 were found.
  • No other relevant references to Java 21 were found in the project files.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify project compatibility with Java 22.

# Test: Check for any references to Java 21 and ensure they are updated to Java 22.
rg --type gradle -A 5 $'sourceCompatibility = "21"'
rg --type gradle -A 5 $'targetCompatibility = "21"'

Length of output: 403


Script:

#!/bin/bash
# Description: Verify project compatibility with Java 22.

# Test: Check for any references to Java 21 and ensure they are updated to Java 22.
rg 'sourceCompatibility\s*=\s*"21"' -A 5
rg 'targetCompatibility\s*=\s*"21"' -A 5
rg 'java.version\s*=\s*"21"' -A 5

Length of output: 121


Script:

#!/bin/bash
# Description: Verify project compatibility with Java 22.

# Test: Check for any references to Java 21 in common build and configuration files.
rg 'sourceCompatibility\s*=\s*"21"' -A 5
rg 'targetCompatibility\s*=\s*"21"' -A 5
rg 'java.version\s*=\s*"21"' -A 5
rg '1\.21' -A 5
rg '11\.21' -A 5
fd -e gradle -e xml -e properties -e yml -e yaml -e sh --exec rg '21' {}

Length of output: 1402

.github/workflows/desktop-win.yml (1)

26-26: Verify compatibility with Java 22.

Ensure that all dependencies and the project itself are compatible with Java 22 to avoid potential build or runtime issues.

.github/workflows/publish.yml (5)

34-34: Verify compatibility with Java 22.

Ensure that all dependencies and the project itself are compatible with Java 22 to avoid potential build or runtime issues.


38-38: Verify the new Gradle wrapper validation action.

Ensure that gradle/actions/wrapper-validation@v3 is the correct and intended action for validating the Gradle wrapper.


49-54: Verify new environment variables for publishing.

Ensure that the new environment variables (ORG_GRADLE_PROJECT_mavenCentralUsername, ORG_GRADLE_PROJECT_mavenCentralPassword, ORG_GRADLE_PROJECT_signingInMemoryKey, ORG_GRADLE_PROJECT_signingInMemoryKeyId, ORG_GRADLE_PROJECT_signingInMemoryKeyPassword) are correctly referenced and securely handled.


54-54: Verify the new publishing command.

Ensure that ./gradlew publishToMavenCentral is the correct and intended command for publishing to Maven Central.


57-57: Verify the new changelog generation action.

Ensure that mikepenz/release-changelog-builder-action@v5 is compatible with the workflow and includes relevant improvements or features.

sample/libs.versions.toml (4)

3-3: Verify compatibility with apiresult version 2.0.0-beta02.

Ensure that the new version 2.0.0-beta02 of apiresult is compatible with the project and does not introduce any breaking changes.


4-4: Verify compatibility with koin version 4.0.0-RC1.

Ensure that the new version 4.0.0-RC1 of koin is compatible with the project and does not introduce any breaking changes.


5-5: Verify compatibility with kmputils version 1.4.2.

Ensure that the new version 1.4.2 of kmputils is compatible with the project and does not introduce any breaking changes.


18-18: Verify the addition of kmputils-compose module.

Ensure that the new module kmputils-compose is correctly referenced and does not introduce any issues.

sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RIcon.kt (1)

61-61: Verify the impact of replacing rememberRipple with ripple.

The rememberRipple function has been replaced with the ripple function for the indication parameter in the clickable component. Ensure that the new behavior is as expected and does not introduce any performance issues, especially in scenarios involving rapid interactions or state updates.

sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RCircleIcon.kt (1)

75-75: Verify the impact of replacing rememberRipple with ripple.

The rememberRipple function has been replaced with the ripple function for the indication parameter in the clickable component. Ensure that the new behavior is as expected and does not introduce any performance issues, especially in scenarios involving rapid interactions or state updates.

buildSrc/src/main/kotlin/ConfigureMultiplatform.kt (3)

57-63: LGTM!

The configuration for compileTaskProvider in the androidTarget block is correctly applied and improves maintainability.


66-73: LGTM!

The configuration for compileTaskProvider in the jvm block is correctly applied and improves maintainability.


114-124: LGTM!

The new configuration block for all targets ensures consistent application of compiler options, enhancing maintainability and consistency.

buildSrc/src/main/kotlin/Config.kt (5)

18-22: LGTM!

The updates to versionCode, patch, and postfix correctly reflect a new beta release.


35-35: LGTM!

The addition of the name constant provides a more descriptive identifier for the project.


65-66: LGTM!

The addition of -Xconsistent-data-class-copy-visibility to compilerArgs enhances the compilation process.


66-66: LGTM!

The addition of -Xconsistent-data-class-copy-visibility to jvmCompilerArgs ensures consistency with the main compiler arguments.


66-66: LGTM!

The update to JvmTarget.JVM_11 aligns with the project's Java version.

sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/features/lce/LCEScreen.kt (1)

128-128: LGTM! But verify the animation behavior.

The change to use animateItem() instead of animateItemPlacement() suggests a shift in the animation behavior. Ensure that the new method provides the desired animation effect.

build.gradle.kts (3)

1-2: Imports for Maven publishing look good.

The new imports for MavenPublishBaseExtension and SonatypeHost are necessary for the Maven publishing configurations introduced later in the file.

Tools
GitHub Check: Codacy Static Code Analysis

[warning] 1-1: build.gradle.kts#L1
The file does not contain a package declaration.


44-73: Maven publishing configuration looks good.

The new logic for configuring Maven publishing, including setting up publishing to Maven Central, signing publications, and configuring the POM file with metadata, is well-structured and follows best practices.


105-107: New properties in the doctor block look good.

The new properties warnWhenJetifierEnabled, warnWhenNotUsingParallelGC, and disallowMultipleDaemons enhance developer awareness and control over build settings.

sample/build.gradle.kts (3)

3-3: Import for BinaryenExec looks good.

The import statement for BinaryenExec is necessary for the Kotlin/JS build process enhancements introduced later in the file.


53-60: Configuration block for androidTarget looks good.

The new configuration block correctly sets the jvmTarget and appends additional compiler arguments from Config, enhancing the flexibility and specificity of the Android compilation process.


240-242: Task disabling for compileProductionExecutableKotlinWasmJsOptimize looks good.

The task compileProductionExecutableKotlinWasmJsOptimize is explicitly disabled, which may impact the optimization phase of the build process for Kotlin/JS targeting WebAssembly. This change is part of ongoing improvements or fixes related to the build process.

gradle/libs.versions.toml (3)

Line range hint 2-26:
Version updates for dependencies look good.

The updates to the versions of activity, compose, fragment, gradleAndroid, kotlin, kotlin-io, kotlinx-atomicfu, ktor, and serialization are appropriate and reflect a shift to more recent releases, enhancing functionality and compatibility.


85-85: Version update for lifecycle-savedstate looks good.

The update to the lifecycle-savedstate dependency version to 2.8.4 is appropriate and reflects a shift to a more recent release.


131-142: New plugin declarations look good.

The new plugin declarations for compose, compose-compiler, and maven-publish are necessary for the enhancements introduced in the build configuration and are correctly added.

gradlew (3)

18-19: Good practice: Added SPDX license identifier.

The addition of the SPDX license identifier enhances compliance documentation.


60-60: Updated URL reference.

The URL in the comment has been updated to reflect the change in the source location within the Gradle project structure.


89-90: Improved APP_HOME determination logic.

The update to use cd -P ensures that the physical directory is resolved correctly. Using printf for output handling improves compatibility with different shell environments.

However, verify that this change works correctly across all supported environments.

Verification successful

Improved APP_HOME determination logic.

The update to use cd -P ensures that the physical directory is resolved correctly. Using printf for output handling improves compatibility with different shell environments.

However, the previous verification script indicated that ksh was not available. To ensure comprehensive verification, we need to test the APP_HOME determination logic in other commonly available shells.


Improved APP_HOME determination logic.

The update to use cd -P ensures that the physical directory is resolved correctly. Using printf for output handling improves compatibility with different shell environments.

The verification script confirmed that the APP_HOME determination logic works correctly in sh, bash, and dash.

  • Verification in sh, bash, and dash succeeded.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the `APP_HOME` determination logic across supported environments.

# Test: Ensure that `APP_HOME` is correctly set in different environments.
# Expected: The physical directory should be resolved correctly.

# Simulate different environments and check the output.
for shell in sh bash ksh; do
  $shell -c 'APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf "%s\n" "$PWD" ) && echo $APP_HOME'
done

Length of output: 498


Script:

#!/bin/bash
# Description: Verify the `APP_HOME` determination logic across supported environments.

# Test: Ensure that `APP_HOME` is correctly set in different environments.
# Expected: The physical directory should be resolved correctly.

# Simulate different environments and check the output.
for shell in sh bash dash; do
  $shell -c 'APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf "%s\n" "$PWD" ) && echo $APP_HOME'
done

Length of output: 450

buildSrc/src/main/kotlin/Util.kt Show resolved Hide resolved
@Nek-12 Nek-12 enabled auto-merge July 30, 2024 11:39
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

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 2e8b6f0 and 1140ee6.

Files selected for processing (16)
  • android/build.gradle.kts (1 hunks)
  • buildSrc/src/main/kotlin/ConfigureMultiplatform.kt (2 hunks)
  • buildSrc/src/main/kotlin/Util.kt (2 hunks)
  • buildSrc/src/main/kotlin/pro.respawn.android-library.gradle.kts (2 hunks)
  • buildSrc/src/main/kotlin/pro.respawn.shared-library.gradle.kts (2 hunks)
  • compose/build.gradle.kts (2 hunks)
  • core/build.gradle.kts (2 hunks)
  • debugger/debugger-client/build.gradle.kts (3 hunks)
  • debugger/debugger-common/build.gradle.kts (2 hunks)
  • debugger/debugger-plugin/build.gradle.kts (2 hunks)
  • essenty/build.gradle.kts (2 hunks)
  • essenty/essenty-compose/build.gradle.kts (2 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RCircleIcon.kt (2 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RIcon.kt (2 hunks)
  • savedstate/build.gradle.kts (2 hunks)
  • test/build.gradle.kts (1 hunks)
Files skipped from review due to trivial changes (2)
  • buildSrc/src/main/kotlin/pro.respawn.android-library.gradle.kts
  • buildSrc/src/main/kotlin/pro.respawn.shared-library.gradle.kts
Files skipped from review as they are similar to previous changes (5)
  • buildSrc/src/main/kotlin/ConfigureMultiplatform.kt
  • buildSrc/src/main/kotlin/Util.kt
  • core/build.gradle.kts
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RCircleIcon.kt
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RIcon.kt
Additional comments not posted (16)
test/build.gradle.kts (1)

3-3: Addition of Maven Publish plugin alias.

The addition of alias(libs.plugins.maven.publish) is correct and aligns with the goal of enhancing the build process by facilitating artifact publishing.

android/build.gradle.kts (1)

3-3: Addition of Maven Publish plugin alias.

The addition of alias(libs.plugins.maven.publish) is correct and aligns with the goal of enhancing the build process by facilitating artifact publishing.

debugger/debugger-common/build.gradle.kts (2)

5-5: Addition of Maven Publish plugin alias.

The addition of alias(libs.plugins.maven.publish) is correct and aligns with the goal of enhancing the build process by facilitating artifact publishing.


14-14: Repositioning of configureAndroidLibrary(this) call.

Repositioning configureAndroidLibrary(this) after setting the namespace ensures that the namespace is correctly defined during the library's configuration. This change improves the initialization order.

debugger/debugger-client/build.gradle.kts (3)

5-5: Streamlined plugin declaration approved.

The use of alias(libs.plugins.maven.publish) improves maintainability by centralizing plugin management.


17-17: Verify the impact of removing the signing plugin.

Ensure that the removal of the signing plugin does not affect the signing process of published artifacts.


17-17: Verify the new publishing strategy.

The removal of publishMultiplatform() suggests a change in the publishing process. Ensure that the new strategy is correctly implemented and documented.

debugger/debugger-plugin/build.gradle.kts (2)

5-5: Streamlined plugin declaration approved.

The use of alias(libs.plugins.maven.publish) improves maintainability by centralizing plugin management.


22-22: Verify the new publishing strategy.

The removal of publishMultiplatform() suggests a change in the publishing process. Ensure that the new strategy is correctly implemented and documented.

essenty/build.gradle.kts (3)

6-6: Streamlined plugin declaration approved.

The use of alias(libs.plugins.maven.publish) improves maintainability by centralizing plugin management.


6-6: Verify the impact of removing the signing plugin.

Ensure that the removal of the signing plugin does not affect the signing process of published artifacts.


6-6: Verify the new publishing strategy.

The removal of publishMultiplatform() suggests a change in the publishing process. Ensure that the new strategy is correctly implemented and documented.

essenty/essenty-compose/build.gradle.kts (2)

6-6: Good change for maintainability.

Using an alias for the maven-publish plugin improves the maintainability and readability of the build script.


11-11: Ensure configureAndroidLibrary is correctly defined.

The reordering improves readability. Verify that the configureAndroidLibrary function is correctly defined and used.

Verification successful

The configureAndroidLibrary function is correctly defined and used.

The function is defined in buildSrc/src/main/kotlin/ConfigureAndroid.kt and is utilized across multiple build scripts, confirming its correctness.

  • Definition found in: buildSrc/src/main/kotlin/ConfigureAndroid.kt
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the definition of `configureAndroidLibrary`.

# Test: Search for the function definition. Expect: Correct definition and usage.
rg --type kotlin 'fun configureAndroidLibrary'

Length of output: 48


Script:

#!/bin/bash
# Description: Search for any occurrence of `configureAndroidLibrary` in the codebase.

# Test: Search for the term `configureAndroidLibrary` to find its definition and usage.
rg 'configureAndroidLibrary'

Length of output: 832

savedstate/build.gradle.kts (1)

7-7: Good change for maintainability.

Using an alias for the maven-publish plugin improves the maintainability and readability of the build script.

compose/build.gradle.kts (1)

8-8: Good change for maintainability.

Using an alias for the maven-publish plugin improves the maintainability and readability of the build script.

coderabbitai[bot]
coderabbitai bot previously approved these changes Jul 30, 2024
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

Outside diff range, codebase verification and nitpick comments (1)
.github/workflows/desktop-linux.yml (1)

26-26: Incompatibility with Java 22 Detected

The build configuration targets Java 17, not Java 22, as indicated by the idePluginJvmTarget setting in Config.kt. To ensure compatibility with Java 22, update the idePluginJvmTarget and any related settings to reflect Java 22. Additionally, review the codebase for any Java 22-specific features or changes that might affect compatibility.

  • buildSrc/src/main/kotlin/Config.kt: Update idePluginJvmTarget to Java 22.
Analysis chain

Verify compatibility with Java 22.

The Java version has been updated to 22. Ensure that the codebase and dependencies are compatible with this version to prevent any runtime issues.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with Java 22.

# Test: Check for deprecated or removed features in Java 22.
rg --type java 'deprecated|removed' -A 5

Length of output: 42


Script:

#!/bin/bash
# Description: Check for usage of specific Java features or APIs that might be affected by Java 22 changes.

# Search for usage of features or APIs that are known to have changes in Java 22.
# This includes checking for specific classes or methods that might have changed.
rg --type java 'javax\.swing|java\.awt|java\.util\.concurrent|java\.nio' -A 5

# Check build configuration files for Java version settings.
rg 'sourceCompatibility|targetCompatibility|java.version' --glob '*build*' -A 3

Length of output: 570


Script:

#!/bin/bash
# Description: Find the definition of Config.idePluginJvmTarget.target to determine the Java version used.

# Search for the definition of Config.idePluginJvmTarget.target in the codebase.
rg 'Config\.idePluginJvmTarget\.target' -A 3

Length of output: 572


Script:

#!/bin/bash
# Description: Search for the definition of Config and idePluginJvmTarget to find the Java version.

# Search for the definition of Config in the codebase.
rg 'class Config|object Config' -A 5

# Search for idePluginJvmTarget within Config.
rg 'idePluginJvmTarget' -A 5

Length of output: 2425

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 1140ee6 and 6cc9525.

Files ignored due to path filters (1)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar
Files selected for processing (40)
  • .github/ci-gradle.properties (2 hunks)
  • .github/workflows/ci.yml (1 hunks)
  • .github/workflows/desktop-linux.yml (1 hunks)
  • .github/workflows/desktop-macos.yml (1 hunks)
  • .github/workflows/desktop-win.yml (1 hunks)
  • .github/workflows/docs.yml (1 hunks)
  • .github/workflows/publish.yml (2 hunks)
  • .github/workflows/pull-request.yml (1 hunks)
  • .idea/runConfigurations/Run_Web_Sample_App.xml (1 hunks)
  • android/build.gradle.kts (1 hunks)
  • build.gradle.kts (4 hunks)
  • buildSrc/src/main/kotlin/Config.kt (3 hunks)
  • buildSrc/src/main/kotlin/ConfigureMultiplatform.kt (3 hunks)
  • buildSrc/src/main/kotlin/Util.kt (2 hunks)
  • buildSrc/src/main/kotlin/pro.respawn.android-library.gradle.kts (2 hunks)
  • buildSrc/src/main/kotlin/pro.respawn.shared-library.gradle.kts (2 hunks)
  • compose/build.gradle.kts (2 hunks)
  • core/build.gradle.kts (2 hunks)
  • core/src/androidMain/kotlin/pro/respawn/flowmvi/dsl/AndroidDsl.kt (1 hunks)
  • core/src/commonMain/kotlin/pro/respawn/flowmvi/plugins/CompositePlugin.kt (2 hunks)
  • core/src/jvmMain/kotlin/pro/respawn/flowmvi/dsl/JvmDsl.kt (1 hunks)
  • debugger/debugger-client/build.gradle.kts (3 hunks)
  • debugger/debugger-common/build.gradle.kts (2 hunks)
  • debugger/debugger-plugin/build.gradle.kts (2 hunks)
  • debugger/server/src/commonMain/kotlin/pro/respawn/flowmvi/debugger/server/Configuration.kt (1 hunks)
  • essenty/build.gradle.kts (2 hunks)
  • essenty/essenty-compose/build.gradle.kts (2 hunks)
  • gradle.properties (1 hunks)
  • gradle/libs.versions.toml (5 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • gradlew (3 hunks)
  • gradlew.bat (1 hunks)
  • sample/build.gradle.kts (3 hunks)
  • sample/libs.versions.toml (3 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/features/lce/LCEScreen.kt (1 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RCircleIcon.kt (2 hunks)
  • sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RIcon.kt (2 hunks)
  • savedstate/build.gradle.kts (2 hunks)
  • settings.gradle.kts (2 hunks)
  • test/build.gradle.kts (1 hunks)
Files skipped from review due to trivial changes (6)
  • .idea/runConfigurations/Run_Web_Sample_App.xml
  • buildSrc/src/main/kotlin/pro.respawn.shared-library.gradle.kts
  • debugger/server/src/commonMain/kotlin/pro/respawn/flowmvi/debugger/server/Configuration.kt
  • gradlew
  • gradlew.bat
  • settings.gradle.kts
Additional context used
GitHub Check: Codacy Static Code Analysis
buildSrc/src/main/kotlin/ConfigureMultiplatform.kt

[notice] 4-4: buildSrc/src/main/kotlin/ConfigureMultiplatform.kt#L4
Unused import

build.gradle.kts

[warning] 1-1: build.gradle.kts#L1
The file does not contain a package declaration.

Additional comments not posted (76)
buildSrc/src/main/kotlin/pro.respawn.android-library.gradle.kts (1)

Line range hint 1-10:
Verify the removal of publishing functionality.

The maven-publish and signing plugins, along with publishAndroid(this), have been removed. Ensure that this aligns with the project's objectives and that any dependent configurations or tasks are updated accordingly.

.github/workflows/pull-request.yml (1)

Line range hint 1-10:
Verify the workflow changes and their alignment with intended behavior.

The workflow name has been changed to "PR automation," and branch restrictions have been removed. Ensure this aligns with the intended workflow behavior and doesn't trigger on undesired branches.

gradle/wrapper/gradle-wrapper.properties (1)

3-3: Verify compatibility with the upgraded Gradle version.

The Gradle version has been upgraded from 8.7 to 8.9. Ensure that all plugins and dependencies are compatible with this new version to prevent any build issues.

Verification successful

No Gradle version compatibility issues found, but unresolved issues noted

The upgrade to Gradle 8.9 does not appear to introduce any compatibility issues based on the current build files. However, there are unresolved issues related to Kotest and Ktor/Compose-Desktop noted in the comments:

  • Kotest issue: core/build.gradle.kts mentions a TODO linked to a GitHub issue.
  • Ktor/Compose-Desktop issue: debugger/app/build.gradle.kts has a TODO about solving issues with these libraries.

Consider investigating these issues further to ensure they do not affect the build process.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility with the upgraded Gradle version.

# Test: Check for any known compatibility issues with plugins or dependencies.
rg --type gradle 'version' --glob 'build.gradle*' -A 2

Length of output: 2152


Script:

#!/bin/bash
# Description: Search for explicit Gradle version constraints or known compatibility issues in build files.

# Check for any explicit Gradle version constraints in the build files.
rg --type gradle 'gradleVersion' --glob 'build.gradle*' -A 2

# Check for any known compatibility issues mentioned in comments or documentation.
rg --type gradle 'compatibility|issue|problem' --glob 'build.gradle*' -A 5

Length of output: 927

test/build.gradle.kts (1)

3-3: Approved: Addition of Maven Publish plugin alias.

The addition of alias(libs.plugins.maven.publish) is correct and enhances the build configuration by facilitating artifact publishing.

android/build.gradle.kts (1)

3-3: Approved: Addition of Maven Publish plugin alias.

The inclusion of alias(libs.plugins.maven.publish) is appropriate for enhancing artifact management and distribution capabilities.

debugger/debugger-common/build.gradle.kts (2)

5-5: Approved: Use of Maven Publish plugin alias.

Switching to alias(libs.plugins.maven.publish) improves consistency in plugin management.


14-14: Verify the impact of removing publishMultiplatform().

The removal of publishMultiplatform() might affect how multiplatform publishing is handled. Ensure that the new configuration covers all necessary publishing requirements.

Verification successful

No impact from removing publishMultiplatform().

The function publishMultiplatform() is not defined or used in the codebase, indicating that its removal does not affect the build process.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the impact of removing `publishMultiplatform()` on the build process.

# Test: Search for usages of `publishMultiplatform()` to ensure its removal does not impact the build.
rg --type kotlin $'publishMultiplatform()'

Length of output: 43


Script:

#!/bin/bash
# Search for the definition of `publishMultiplatform` in the codebase.
rg --type kotlin 'fun publishMultiplatform'

# Search for any usage of `publishMultiplatform` across the codebase.
rg --type kotlin 'publishMultiplatform'

Length of output: 85

core/build.gradle.kts (1)

4-5: Integrate plugins correctly.

The addition of the atomicfu and maven.publish plugins seems appropriate for enhancing coroutine support and facilitating artifact publishing. Ensure that these plugins are configured correctly in the rest of the build script.

debugger/debugger-client/build.gradle.kts (2)

5-5: Standardize plugin usage.

Using an alias for the maven.publish plugin enhances maintainability by centralizing dependency management. Ensure that this change is reflected in all relevant build configurations.


17-17: Verify removal of publishMultiplatform().

The removal of publishMultiplatform() might affect the module's ability to publish multiplatform artifacts. Verify that this change aligns with the project's publishing strategy and doesn't introduce any issues.

Verification successful

Removal of publishMultiplatform() Verified

The removal of publishMultiplatform() does not appear to impact the current publishing strategy, as no direct dependencies or configurations were found related to it. The existing publishing setup seems unaffected by this change.

  • References to publishing are primarily found in debugger/ideplugin/build.gradle.kts and utility files, with no mention of publishMultiplatform.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the impact of removing `publishMultiplatform()` on multiplatform publishing.

# Test: Search for occurrences of `publishMultiplatform` to ensure no unintended dependencies.
rg --type kotlin 'publishMultiplatform'

Length of output: 39


Script:

#!/bin/bash
# Searching for project configuration files that might reference the publishing strategy.
fd -e gradle -e kts -e md -e yaml -e yml -e toml

Length of output: 1017


Script:

#!/bin/bash
# Searching for references to publishing strategies in the project files.
rg 'publishing'

Length of output: 540

debugger/debugger-plugin/build.gradle.kts (2)

5-5: Ensure consistent plugin management.

Replacing maven-publish with an alias improves consistency across the project. Verify that all relevant configurations are updated accordingly.


22-22: Check the implications of removing publishMultiplatform().

The removal of publishMultiplatform() could impact the multiplatform publishing process. Confirm that this change is intentional and aligns with the project's deployment strategy.

essenty/build.gradle.kts (2)

6-6: Good use of plugin aliasing.

Switching to an alias for the maven-publish plugin can enhance maintainability and consistency across the project. Ensure that the alias libs.plugins.maven.publish is correctly configured in your libs.versions.toml or equivalent file.


6-6: Verify the new publishing configuration.

The removal of publishMultiplatform() suggests a change in how publishing is handled. Ensure that the new configuration aligns with your publishing requirements and that all necessary tasks are still executed.

Verification successful

Let's adjust the search command to ensure it correctly targets the relevant Gradle files and re-run the verification.


Verify the new Maven Publish configuration.

The project now uses the Maven Publish plugin, as indicated by the alias(libs.plugins.maven.publish) and publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, false) in the Gradle files. Ensure this new setup aligns with your publishing requirements and covers all necessary tasks.

  • Check build.gradle.kts for the publishToMavenCentral configuration.
  • Confirm that all necessary publishing tasks are defined and executed as expected.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the new publishing configuration after removing `publishMultiplatform()`.

# Test: Check for any new or updated publishing configurations in the build scripts.
rg --type gradle 'publish'

Length of output: 175


Script:

#!/bin/bash
# Description: Verify the new publishing configuration after removing `publishMultiplatform()`.

# Test: Check for any new or updated publishing configurations in all Gradle files.
rg 'publish' --glob '*.gradle.kts' --glob '*.gradle'

Length of output: 1302

essenty/essenty-compose/build.gradle.kts (3)

6-6: Good use of plugin aliasing.

Switching to an alias for the maven-publish plugin can enhance maintainability and consistency across the project. Ensure that the alias libs.plugins.maven.publish is correctly configured in your libs.versions.toml or equivalent file.


11-11: Reorganization of Android configuration.

Moving configureAndroidLibrary(this) within the android block improves readability by grouping related configurations together. This change is beneficial for maintainability.


6-6: Verify changes in publishing and dependencies management.

The removal of publishMultiplatform() and the dependencies block indicates a shift in strategy. Ensure that the new setup aligns with your project's requirements and that all necessary dependencies are correctly managed.

Verification successful

Publishing and Dependency Management Updated Successfully

The project has transitioned to using the maven.publish plugin and structured dependencies across various modules. This setup appears consistent with modern practices and should meet the project's requirements effectively. No further action is needed.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the new setup for publishing and dependency management.

# Test: Check for any new or updated configurations related to publishing and dependencies.
rg --type gradle 'publish|dependencies'

Length of output: 190


Script:

#!/bin/bash
# Description: Locate .gradle.kts files and search for publishing and dependency configurations.

# Find all .gradle.kts files and search for 'publish' or 'dependencies' configurations.
fd --extension gradle.kts --exec rg 'publish|dependencies' {}

Length of output: 1704

.github/ci-gradle.properties (3)

1-2: Increased memory settings for Gradle and Kotlin.

The increased memory settings can enhance performance for larger builds. Ensure that your build environment has sufficient resources to accommodate these changes.


20-20: Consider the impact of disabling the Gradle daemon.

Disabling the Gradle daemon can lead to longer build times as it will not persist between builds. Monitor the impact on build performance and consider enabling it if build times increase significantly.


27-27: ```shell
#!/bin/bash

Re-run the search for the release property without specifying the file type to capture all instances.

rg 'release'


</blockquote></details>
<details>
<summary>.github/workflows/ci.yml (2)</summary><blockquote>

`32-32`: **Verify Gradle wrapper validation action.**

Ensure that `gradle/actions/wrapper-validation@v3` is correctly configured and meets the project's validation requirements.

---

`28-28`: **Verify Java version compatibility.**

Ensure that all project dependencies and tools are compatible with Java 22, as upgrading may introduce compatibility issues.

</blockquote></details>
<details>
<summary>savedstate/build.gradle.kts (1)</summary><blockquote>

`7-7`: **Verify alias configuration for `maven-publish`.**

Ensure that `libs.plugins.maven.publish` is correctly defined in the version catalog and aligns with the project's plugin management strategy.

<details>
<summary>Verification successful</summary>



---

<!-- [monologue]
[task review_file_2/3 line_1/2] Verify alias configuration for `maven-publish`.
[observations] The alias `maven-publish` is defined in `gradle/libs.versions.toml` with the ID `com.vanniktech.maven.publish` and references the version `maven-publish-plugin`.
[analysis] The alias `libs.plugins.maven.publish` is correctly defined in the version catalog, pointing to the appropriate plugin ID and version. This aligns with the project's plugin management strategy.
[actions] Conclude the verification process by confirming the alias configuration.
-->

**Alias configuration for `maven-publish` is correct.**

The alias `libs.plugins.maven.publish` is properly defined in `gradle/libs.versions.toml` with the correct plugin ID and version reference.

- **Location**: `gradle/libs.versions.toml`
- **Alias Definition**: `maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "maven-publish-plugin" }`



</details>


<details>
<summary>Scripts executed</summary>

The following scripts were executed for the analysis:

Script:

```shell
#!/bin/bash
# Description: Verify the alias configuration for `maven-publish`.

# Test: Check the version catalog for the alias definition.
rg --type toml 'maven.publish' -A 1

Length of output: 385

core/src/androidMain/kotlin/pro/respawn/flowmvi/dsl/AndroidDsl.kt (4)

13-13: Deprecation of I.send() looks good.

The deprecation message is clear, and the suggested replacement intent(this) is appropriate.


20-20: Deprecation of A.send() looks good.

The deprecation message is clear, and the suggested replacement action(this) is appropriate.


27-27: Deprecation of I.emit() looks good.

The deprecation message is clear, and the suggested replacement emit(this) is appropriate.


34-34: Deprecation of A.emit() looks good.

The deprecation message is clear, and the suggested replacement emit(this) is appropriate.

core/src/jvmMain/kotlin/pro/respawn/flowmvi/dsl/JvmDsl.kt (4)

34-34: Deprecation notice for emit() function in ActionReceiver.

The deprecation annotation for the emit() function in ActionReceiver correctly suggests using emit(this). Ensure that all usages of this function are updated accordingly in the codebase.

Verification successful

Deprecation Update Verified: emit() Function in ActionReceiver

The codebase does not contain any outdated usages of the deprecated emit() function in ActionReceiver. All instances appear to have been updated appropriately. No further action is needed.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of the deprecated `emit()` function in `ActionReceiver` are updated.

# Test: Search for the deprecated `emit()` function usage in `ActionReceiver`. Expect: No occurrences of the old usage.
rg --type kotlin -A 5 $'.emit()' | grep 'ActionReceiver'

Length of output: 1702


27-27: Deprecation notice for emit() function.

The deprecation annotation for the emit() function correctly guides developers to use emit(this). Ensure that all usages of this function are updated accordingly in the codebase.

Verification successful

Deprecation notice for emit() function verified.

The search results indicate that there are no remaining occurrences of the deprecated emit() function usage without parameters. The usages found are either already using the recommended emit(this) form or are likely different overloads not related to the deprecation. Thus, the deprecation notice has been correctly addressed in the codebase.

  • No occurrences of the deprecated emit() usage without parameters were found.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of the deprecated `emit()` function are updated.

# Test: Search for the deprecated `emit()` function usage. Expect: No occurrences of the old usage.
rg --type kotlin -A 5 $'.emit()'

Length of output: 21235


20-20: Deprecation notice for send() function in ActionReceiver.

The deprecation annotation for the send() function in ActionReceiver correctly suggests using action(this). Ensure that all usages of this function are updated accordingly in the codebase.

Verification successful

No occurrences of deprecated send() in ActionReceiver found.

The search did not reveal any direct calls to the deprecated send() method in ActionReceiver. It appears that all usages have been updated or are not present in the codebase.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all usages of the deprecated `send()` function in `ActionReceiver` are updated.

# Test: Search for the deprecated `send()` function usage in `ActionReceiver`. Expect: No occurrences of the old usage.
rg --type kotlin -A 5 $'.send()' | grep 'ActionReceiver'

Length of output: 2606


Script:

#!/bin/bash
# Description: Search for actual function calls to the deprecated `send()` method in `ActionReceiver`.

# Test: Look for direct calls to `send()` in Kotlin files to ensure they are updated.
rg --type kotlin '\.send\('

Length of output: 1448


13-13: Deprecation notice for send() function.

The deprecation annotation for the send() function correctly guides developers to use intent(this) instead. Ensure that all usages of this function are updated accordingly in the codebase.

compose/build.gradle.kts (1)

8-8: Switch to alias for maven-publish plugin.

The use of an alias for the maven-publish plugin indicates a more modular approach to plugin management. Ensure that this change is consistent with the rest of the build configuration.

gradle.properties (1)

30-30: ```shell
#!/bin/bash

Description: Re-verify the impact of release=true by searching for its usage across all files.

Test: Search for the usage of release configuration across all files. Expect: Proper handling and usage of release configuration.

rg 'release'


</blockquote></details>
<details>
<summary>.github/workflows/desktop-macos.yml (1)</summary><blockquote>

`26-26`: **Verify compatibility with Java 22.**

The Java version has been updated to 22. Ensure that the codebase and dependencies are compatible with this version to prevent any runtime issues.

</blockquote></details>
<details>
<summary>.github/workflows/desktop-win.yml (1)</summary><blockquote>

`26-26`: **Verify compatibility with Java 22.**

The Java version has been updated to 22. Ensure that the codebase and dependencies are compatible with this version to prevent any runtime issues.

</blockquote></details>
<details>
<summary>.github/workflows/docs.yml (2)</summary><blockquote>

`32-32`: **Upgrade Java version to 22.**

The Java version has been updated from 21 to 22. Ensure compatibility with all project dependencies and the build environment.

---

`36-36`: **Update Gradle wrapper validation action reference.**

The action for validating the Gradle wrapper has been changed to `gradle/actions/wrapper-validation@v3`. Ensure this action is available and correctly configured in the workflow.

</blockquote></details>
<details>
<summary>sample/libs.versions.toml (4)</summary><blockquote>

`3-3`: **Upgrade `apiresult` version.**

The `apiresult` version has been upgraded from `2.0.0-alpha01` to `2.0.0-beta02`. Verify that this upgrade does not introduce breaking changes.

```shell
#!/bin/bash
# Description: Verify `apiresult` version upgrade impact.

# Test: Search for `apiresult` usage in the project to ensure compatibility.
rg --type kotlin 'apiresult'

4-4: Upgrade koin version.

The koin version has been upgraded from 3.6.0-wasm-alpha2 to 4.0.0-RC1. Ensure that this upgrade is compatible with the project's current setup.

#!/bin/bash
# Description: Verify `koin` version upgrade impact.

# Test: Search for `koin` usage in the project to ensure compatibility.
rg --type kotlin 'koin'

5-5: Upgrade kmputils version.

The kmputils version has been incremented from 1.4.1 to 1.4.2. Check for any changes in the library that might affect the project.

#!/bin/bash
# Description: Verify `kmputils` version upgrade impact.

# Test: Search for `kmputils` usage in the project to ensure compatibility.
rg --type kotlin 'kmputils'

18-18: Add kmputils-compose library.

A new entry for kmputils-compose has been added. Ensure that this addition is correctly integrated into the project and does not cause conflicts.

#!/bin/bash
# Description: Verify `kmputils-compose` library integration.

# Test: Search for `kmputils-compose` usage in the project to ensure proper integration.
rg --type kotlin 'kmputils-compose'
core/src/commonMain/kotlin/pro/respawn/flowmvi/plugins/CompositePlugin.kt (2)

30-30: Enhance exception handling in compositePlugin.

The onException parameter now uses foldException, which improves the structure and clarity of exception handling. Ensure that this change is thoroughly tested.

#!/bin/bash
# Description: Verify `foldException` usage in `compositePlugin`.

# Test: Search for test cases covering `compositePlugin` to ensure exception handling is tested.
rg --type kotlin 'compositePlugin' --context 5

46-50: Introduce foldException function.

The new foldException function provides a structured way to handle exceptions across plugins. Ensure that this function is used correctly and consistently.

#!/bin/bash
# Description: Verify `foldException` function usage.

# Test: Search for `foldException` usage in the project to ensure consistency.
rg --type kotlin 'foldException'
sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RIcon.kt (1)

11-11: Update to ripple from rememberRipple.

The change from rememberRipple to ripple in the RIcon composable function could improve performance by avoiding unnecessary recompositions. Ensure that this change aligns with your UI behavior expectations.

Also applies to: 60-60

buildSrc/src/main/kotlin/Util.kt (2)

54-57: Graceful handling of missing local.properties.

The updated localProperties function now prints a warning and exits gracefully if the file is missing. This is a good practice for improving user experience and error handling.


68-71: Reminder: Ensure proper initialization and testing.

The new Config.version function constructs a version string based on the isRelease parameter. Ensure that versionName is properly initialized and consider adding unit tests to verify the function's behavior.

.github/workflows/publish.yml (5)

38-38: Switch to gradle/actions/wrapper-validation@v3.

The action for validating the Gradle wrapper has been updated. Verify that this aligns with your workflow requirements and provides the necessary functionality.


54-58: Restructure environment variables for Maven Central publishing.

The environment variables for Sonatype have been restructured for clarity and security. Ensure that the new variables are correctly configured in your secrets.


62-62: Upgrade changelog builder action to version 5.

The changelog builder action has been upgraded. Ensure that the new version supports all required features and does not introduce breaking changes.


59-59: Update publishing command to publishToMavenCentral.

The command for publishing has been streamlined. Verify that this change aligns with your publishing process and meets all necessary requirements.

Verification successful

Publishing Command Update Verified

The new publishing command publishToMavenCentral is correctly implemented in the .github/workflows/publish.yml file. This aligns with the intended update to streamline the publishing process. No references to the old command were found, confirming the transition.

  • .github/workflows/publish.yml: The command ./gradlew publishToMavenCentral --no-configuration-cache is used.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the publishing process with the new command.

# Test: Check for references to the old publishing command. Expect: No occurrences of the old command.
rg 'publishAllPublicationsToSonatypeRepository'

Length of output: 47


Script:

#!/bin/bash
# Check for references to the new publishing command in the GitHub Actions workflow files.
rg 'publishToMavenCentral' -A 5 --glob '**/.github/workflows/*.yml'

Length of output: 216


Script:

#!/bin/bash
# Check for references to the new publishing command in the GitHub Actions workflow files with a corrected search pattern.
rg 'publishToMavenCentral' -A 5 .github/workflows/

Length of output: 435


34-34: Upgrade Java version to 22.

The Java version has been upgraded from 21 to 22. Ensure compatibility with your project dependencies and test thoroughly to avoid runtime issues.

sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/ui/widgets/RCircleIcon.kt (1)

74-74: Update to Material Design 3 ripple effect.

The change from rememberRipple to ripple aligns with Material Design 3 guidelines, ensuring consistency with the latest design standards. Verify that all dependencies and imports are compatible with Material Design 3.

buildSrc/src/main/kotlin/ConfigureMultiplatform.kt (3)

57-62: Standardize compiler options for Android target.

The addition of compiler options for the Android target ensures consistency with the JVM target. This is a good practice for maintaining uniformity across platforms.


66-71: Add compiler options for JVM target.

The introduction of compiler options for the JVM target aligns it with the Android target, enhancing consistency and maintainability. Ensure that these settings are compatible with all intended JVM environments.


114-122: Centralize compiler options for all targets.

The centralized configuration of compiler options across all targets simplifies the management of build settings and ensures consistency. This approach is beneficial for maintainability.

buildSrc/src/main/kotlin/Config.kt (3)

18-22: Versioning update to 3.0.1-beta01.

The increment in versionCode and the addition of the -beta01 postfix indicate a new beta release. This is consistent with semantic versioning practices.


35-35: Add application name constant.

The introduction of the name constant provides a clear identifier for the application, enhancing readability and maintainability.


66-66: Add compiler argument for data class visibility.

The addition of -Xconsistent-data-class-copy-visibility enhances the compiler's handling of data classes, potentially improving code consistency and safety.

sample/src/commonMain/kotlin/pro/respawn/flowmvi/sample/features/lce/LCEScreen.kt (1)

128-128: Verify the impact of animation change on UX.

The change from animateItemPlacement() to animateItem() may alter the animation behavior. Ensure this change aligns with the intended user experience.

build.gradle.kts (3)

1-2: Verify Maven publishing configurations.

Ensure that the imports for MavenPublishBaseExtension and SonatypeHost are correctly integrated and that the Maven publishing setup aligns with the project's goals.

Verification successful

Maven publishing configurations are correctly integrated.

The MavenPublishBaseExtension and SonatypeHost are properly used in the build.gradle.kts file, indicating that the Maven publishing setup is aligned with standard practices. No issues were found.

  • MavenPublishBaseExtension is accessed via extensions.findByType.
  • SonatypeHost.CENTRAL_PORTAL is used in publishToMavenCentral.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the Maven publishing configurations by checking the usage of `MavenPublishBaseExtension` and `SonatypeHost`.

# Test: Search for the usage of `MavenPublishBaseExtension` and `SonatypeHost`. Expect: Ensure correct integration.
rg --type kotlin 'MavenPublishBaseExtension|SonatypeHost'

Length of output: 374

Tools
GitHub Check: Codacy Static Code Analysis

[warning] 1-1: build.gradle.kts#L1
The file does not contain a package declaration.


105-107: Review doctor settings for project health.

The doctor block settings, such as warnWhenJetifierEnabled, warnWhenNotUsingParallelGC, and disallowMultipleDaemons, are important for maintaining project health. Ensure these settings align with the project's performance goals.


44-73: Review POM configuration settings.

Ensure that the POM configuration settings, such as name, description, url, licenses, developers, and scm, are correctly set to reflect the project's metadata.

Verification successful

POM Configuration Settings Verified

The POM configuration settings in build.gradle.kts are correctly set using the Config object, which contains appropriate metadata for the project. No issues found.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the POM configuration settings by checking the usage of `pom { ... }`.

# Test: Search for the POM configuration settings. Expect: Ensure correct metadata setup.
rg --type kotlin 'pom \{'

Length of output: 62


Script:

#!/bin/bash
# Search for the definition of the `Config` object or class to verify its properties related to POM configuration.
rg 'object Config|class Config'

Length of output: 232


Script:

#!/bin/bash
# Search for properties in the `Config` object related to POM configuration.
rg 'val (name|description|url|licenseName|licenseUrl|vendorId|vendorName|developerUrl|supportEmail|scmUrl)' buildSrc/src/main/kotlin/Config.kt

Length of output: 1007

sample/build.gradle.kts (2)

Line range hint 13-33: Verify BuildConfig generation.

Ensure that the BuildConfig generation logic is correctly implemented and aligns with the project's configuration settings.

#!/bin/bash
# Description: Verify the BuildConfig generation by checking the usage of `BuildConfig`.

# Test: Search for the BuildConfig generation logic. Expect: Ensure correct implementation.
rg --type kotlin 'BuildConfig'

52-59: Verify Android compilation settings.

Ensure that the Android compilation settings, such as jvmTarget and freeCompilerArgs, are correctly configured and align with the project's goals.

#!/bin/bash
# Description: Verify the Android compilation settings by checking the usage of `androidTarget().compilations.all`.

# Test: Search for the Android compilation settings. Expect: Ensure correct configuration.
rg --type kotlin 'androidTarget\(\)\.compilations\.all'
gradle/libs.versions.toml (12)

2-2: Approved: Update activity to 1.9.1.

This minor version update is likely to include bug fixes or small improvements.


13-13: Approved: Update fragment to 1.8.2.

This patch version update likely includes bug fixes and should be safe to apply.


20-20: Approved: Update kotlin to 2.0.10.

This minor version update likely includes improvements or bug fixes.


22-22: Approved: Update kotlin-io to 0.5.1.

This update likely includes enhancements or bug fixes.


23-23: Approved: Update kotlinx-atomicfu to 0.25.0.

This minor version update likely includes improvements or bug fixes.


27-27: Approved: Update serialization to 1.7.1.

This patch version update likely includes bug fixes and should be safe to apply.


85-85: Approved: Specify lifecycle-savedstate version as 2.8.4.

This change ensures consistency across builds.


130-130: Approved: Update atomicfu plugin ID to org.jetbrains.kotlinx.atomicfu.

This change aligns with the official naming convention.


140-140: Approved: Add maven-publish plugin with ID com.vanniktech.maven.publish.

This addition likely supports artifact publishing.


24-24: Verify compatibility for ktor update to 3.0.0-beta-2.

This beta version update might introduce new features or fixes. Ensure compatibility with existing code.


3-3: Verify compatibility for compose update to 1.7.0-alpha01.

Moving to an alpha version might introduce new features but could also be less stable. Ensure compatibility with existing code.


14-14: Verify build with gradleAndroid 8.6.0-rc01.

Ensure that the project builds correctly with this release candidate version.

@Nek-12 Nek-12 merged commit de1d1f5 into master Aug 8, 2024
2 of 3 checks passed
@Nek-12 Nek-12 deleted the 3.0.1-beta01 branch August 8, 2024 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autorelease Automatically create a release using PR title
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant