Autodesk / coroutineworker

Kotlin Coroutine-based workers for native
Apache License 2.0
370 stars 24 forks source link

Deprecate CoroutineWorker, enable the new Memory Model #99

Open C2H6O opened 2 years ago

C2H6O commented 2 years ago

With the release of Kotlin 1.7.20-Beta (https://blog.jetbrains.com/kotlin/2022/08/kotlin-1-7-20-beta/) and the new Memory Model for Kotlin Native becoming the default, there's no longer a need for this library. Version 0.9.0 helps transition over to the new memory model without having to make any changes related to CoroutineWorker code. The latest version of CoroutineWorker uses the same implementation for all platforms.

DanielRBaird commented 2 years ago

As we discussed elsewhere, I think the plan will be to merge this to a separate branch and create a special deprecation release that people can grab if they want to migrate away without dealing with pulling the library out immediately.

benasher44 commented 2 years ago

IMO, we should push people to the new memory model, if it's stable.

DanielRBaird commented 2 years ago

IMO, we should push people to the new memory model, if it's stable.

I believe that it is stable, and generally agree. Are you just suggesting that we should make the deprecation version the primary branch?

We are currently discussing how that branching is going to work exactly. The only things we know for sure is that we want to have a separate branch for support purposes for old things, and we probably want to publish the deprecation version with a name such that people won't update to it accidentally, and will realize they aren't meant to keep it around. It will only exist to make the transition easier.

benasher44 commented 2 years ago

I think we should publish 1.0.0, so it's clearly breaking. Upgrading requires the new memory model. If someone needs maintenance of the existing version that supports the old memory model, we can publish new versions after they make their case via a GitHub issue.

DanielRBaird commented 2 years ago

I think we should publish 1.0.0, so it's clearly breaking. Upgrading requires the new memory model. If someone needs maintenance of the existing version that supports the old memory model, we can publish new versions after they make their case via a GitHub issue.

Sounds reasonable to me.