Giter VIP home page Giter VIP logo

Comments (13)

CherryPerry avatar CherryPerry commented on May 28, 2024 1

Started publishing 2.0.1 release with new Kotlin version, please try tomorrow.

from reaktive.

arkivanov avatar arkivanov commented on May 28, 2024

Thanks for the question. The utils module was renamed to utils-internal and is no longer part of the public API. If you are using atomics from that module, you can try kotlinx-atomicfu library, which became available since the introduction of the utils module. Alternatively, you can copy whatever you need to your project from the old utils module.

from reaktive.

rickytribbia avatar rickytribbia commented on May 28, 2024

We're not using anything directly from utils package, but I think that it's listed as dependency (as utils-internal) in the .pom file of the 2.0.0 coroutines-interop library in maven repo and gradle try to find this package but without success.

from reaktive.

arkivanov avatar arkivanov commented on May 28, 2024

I have checked the published artifacts and couldn't find any references to the old utils module (see reaktive-2.0.0.pom). Reaktive has checks for the published artifacts and they all were resolved at the time of publication.

Where do you see the utils module being listed as dependency? Also could you please provide the full build failure log?

from reaktive.

rickytribbia avatar rickytribbia commented on May 28, 2024

Look at this, for example: reaktive-watchosarm64.pom

from reaktive.

arkivanov avatar arkivanov commented on May 28, 2024

Thanks. I can only see the following dependency on utils-internal module, not utils module.

<dependency>
  <groupId>com.badoo.reaktive</groupId>
  <artifactId>utils-internal-watchosarm64</artifactId>
  <version>2.0.0</version>
  <scope>compile</scope>
</dependency>

Could you please provide the full build failure log?

from reaktive.

CherryPerry avatar CherryPerry commented on May 28, 2024

@rickytribbia Are you using the following API to export the lib?

iosX64("iosx64").binaries {
    framework {
        export("com.badoo.reaktive:utils:$version")
    }

You might need to update dependency to utils-internal here too.

from reaktive.

CherryPerry avatar CherryPerry commented on May 28, 2024

@arkivanov https://twitter.com/kotlin/status/1727977805424611653 related?

from reaktive.

rickytribbia avatar rickytribbia commented on May 28, 2024

The important things in my build.gradle.kts file:

    cocoapods {
        summary = "ProjectXY Shared Module"
        homepage = "ProjectXY.com"
        ios.deploymentTarget = "13.1"
        podfile = project.file("../ProjectXYiOS/Podfile")
        framework {
            baseName = "shared"
            isStatic = false
            export(libs.kermit.simple)
            when (val target = this.compilation.target.name) {
                "iosX64" -> {
                    export("com.badoo.reaktive:reaktive-iosx64:${libs.versions.reaktive.get()}")
                }

                "iosSimulatorArm64" -> {
                    export("com.badoo.reaktive:reaktive-iossimulatorarm64:${libs.versions.reaktive.get()}")
                }

                "iosArm64" -> {
                    export("com.badoo.reaktive:reaktive-iosarm64:${libs.versions.reaktive.get()}")
                }

                else -> error("Unsupported target: $target")
            }
            embedBitcode(DISABLE)
        }
    }

    sourceSets {
        val commonMain by getting {
            dependencies {
                ...

                api(libs.reaktive)
                implementation(libs.reaktive.annotations)
                implementation(libs.reaktive.coroutines)

                ...
            }
        }
        val commonTest by getting {
            dependencies {
                implementation(kotlin("test"))
                implementation("com.badoo.reaktive:reaktive-testing:${libs.versions.reaktive.get()}")
                ...
            }
        }
        val androidMain by getting {
            dependencies {
                ...
            }
        }
        val androidInstrumentedTest by getting
        val iosX64Main by getting
        val iosArm64Main by getting
        val iosSimulatorArm64Main by getting
        val iosMain by creating {
            dependencies {
                ...
            }
        }
        val iosX64Test by getting
        val iosArm64Test by getting
        val iosSimulatorArm64Test by getting
        val iosTest by creating {
        }

        ...
    }

and the .toml:

[versions]

...

reaktive = "2.0.0"

...

[libraries]
...

reaktive = { module = "com.badoo.reaktive:reaktive", version.ref = "reaktive" }
reaktive-annotations = { module = "com.badoo.reaktive:reaktive-annotations", version.ref = "reaktive" }
reaktive-coroutines = { module = "com.badoo.reaktive:coroutines-interop", version = "2.0.0" }

...

[plugins]
...

[bundles]

and the build failure log is this one attached:

reaktive_build_not_find_utils

from reaktive.

arkivanov avatar arkivanov commented on May 28, 2024

You might need to update dependency to utils-internal here too.

The utils-internal module shouldn't be used, as it contains only internal API, which is subject to change.

related?

I doubt it. Event there is an issue with generated klibs, there should be no mention of the old utils module. It just doesn't exist anymore. But we can update Kotlin to 1.9.21 anyway, maybe it will fix the issue.

Currently the issue looks like due to a problem with build cache. I recommend to try running the build with --rerun-tasks --no-build-cache flags.

from reaktive.

arkivanov avatar arkivanov commented on May 28, 2024

Also worth checking transitive dependencies, if there any other dependency that still uses Reaktive v1. E.g. MVIKotlin is still not updated. I'm not sure, but different incompatible versions may cause issues with compiler plugins like KSP.

from reaktive.

rickytribbia avatar rickytribbia commented on May 28, 2024

@arkivanov

 ./gradlew kspKotlinIosArm64 --rerun-tasks --no-build-cache
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

...

> Task :shared:kspKotlinIosArm64 FAILED
e: Could not find "com.badoo.reaktive:utils" in [/Users/[...]/projectXY, /Users/[...]/.konan/klib, /Users/[...]/.konan/kotlin-native-prebuilt-macos-aarch64-1.9.20/klib/common, /Users/[...]/.konan/kotlin-native-prebuilt-macos-aarch64-1.9.20/klib/platform/ios_arm64]

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':shared:kspKotlinIosArm64'.
> Compilation finished with errors

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 12s
7 actionable tasks: 7 executed

from reaktive.

arkivanov avatar arkivanov commented on May 28, 2024

Thanks. The issue looks indeed related to https://twitter.com/kotlin/status/1727977805424611653, which refers to KT-62515. Though, I don't understand how the utils module can be mentioned in the error at all, as it doesn't exist anymore.

I will update Kotlin to 1.9.21 and we'll see if it fixes the issue.

from reaktive.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.