Decompose icon indicating copy to clipboard operation
Decompose copied to clipboard

Remove extensions-compose-jetpack module

Open arkivanov opened this issue 3 years ago • 6 comments

Since one of the recent releases of JetBrains (MPP) Compose, a library that depends on JetBrains Compose can be used in an Android project that depends on Jetpack Compose. This makes the extensions-compose-jetpack module useless, the extensions-compose-jetbrains module can be used instead. Further, extensions-compose-jetbrains module can be renamed to just extensions-compose.

This task should be done only after JetBrains Compose versions are aligned with Jetpack Compose. Currently stable versions of JetBrains Compose are based on Jetpack Compose 1.1.0 alpha/beta versions.

arkivanov avatar Jan 01 '22 12:01 arkivanov

It seems that the major and minor versions are now aligned, and any difference in patch versions should not break anything. Perhaps we can remove extensions-compose-jetpack module now, and rename extensions-compose-jetbrains module to extensions-compose.

arkivanov avatar Mar 23 '22 22:03 arkivanov

The only concert left is the release cycles. It seems that JetBrains Compose is being released a couple of weeks after Jetpack Compose. Waiting for a JetBrains Compose release may be inconvenient. Let's wait for Jetpack Compose 1.2.0 and see how it goes.

arkivanov avatar Mar 26 '22 23:03 arkivanov

Sure, there were discussions about release cycles for JetBrains and Jetpack Compose. Do you know what the current plan states at? I'm not following the topic, unfortunately, I'd be glad to know.

moffpage avatar Apr 07 '22 17:04 moffpage

@moffpage It is already possible to have a library that depends on JetBrains Compose, and use such a library in a project with Jetpack Compose. This should work.

Also, according to the latest information I have, both Jetpack and JetBrains Compose's versions are now aligned. E.g. for Jetpack Compose 1.1.x we have JetBrains Compose 1.1.y, and for Jetpack Compose 1.2.x we will have JetBrains Compose 1.2.y. The patch version (the third component of the version) should not bother, as the binary compatibility should be maintained.

The only concern for now is that JetBrains Compose is released with weeks delay after Jetpack Compose. If we remove the extensions-compose-jetpack module now and Jetpack Compose e.g. 1.2.0 will be released, we might need to wait some time for JetBrains Compose 1.2.y before we could release a new version of Decompose.

I want to wait for Jetpack Compose 1.2.x and see how it goes. Probably we can remove the extensions-compose-jetpack module after that.

arkivanov avatar Apr 07 '22 18:04 arkivanov

Yeah, let's see how it goes!

moffpage avatar Apr 10 '22 12:04 moffpage

Jetpack Compose 1.2.0 was more than a week ago, and there is still no stable release of JetBrains Compose (the latest version at the moment is 1.2.0-alpha01-dev753). It looks like extensions-compose-jetpack module should stay for now.

arkivanov avatar Aug 04 '22 19:08 arkivanov

Maybe it should be renamed to extensions-compose-multiplatform?

Knoxvillekm avatar Apr 19 '23 13:04 Knoxvillekm

Yep, either extensions-compose-multiplatform or just extensions-compose for simplicity. Once extensions-compose-jetpack is removed.

arkivanov avatar Apr 19 '23 14:04 arkivanov

Postponed, maybe in a future v3.0.

arkivanov avatar Jul 13 '23 20:07 arkivanov

I think it's time to reconsider this.

arkivanov avatar Sep 12 '23 10:09 arkivanov

I think it's not bad working with the Multiplatform releases only, even if it takes a few weeks for the major releases to be in sync again with Jetpack Compose.

Technically, besides the package naming and a few annotations there are only minor differences in the tests that can be ignored if we keep the multiplatform implementation as base.

I personally prefer renaming the extension to extensions-compose, for simplicity like you said.

malliaridis avatar Sep 14 '23 16:09 malliaridis

Thanks for the input @malliaridis!

arkivanov avatar Sep 15 '23 14:09 arkivanov

Starting with Decompose v3, the extensions-compose-jetpack module is removed, the extensions-compose-jetbrains module is renamed to extensions-compose, all code is moved from com.arkivanov.decompose.extensions.compose.jetbrains package to com.arkivanov.decompose.extensions.compose. Will be out with the next v3 release.

arkivanov avatar Dec 07 '23 11:12 arkivanov