where can i see changes in the compose compiler? ...
# compose
a
where can i see changes in the compose compiler? I noticed stuff breaking going from 2.0.10 to 2.0.20 in my library without changing any library code
j
Like, commits? Or something else?
You can run
git log v2.0.20..v2.0.10 plugins/compose
on a clone of the repo
I don't think GItHub lets you filter to a range in a directory https://github.com/JetBrains/kotlin/commits/master/plugins/compose
today i learned 2
b
Strong skipping is enabled by default in 2.0.20, could it be that?
a
Thanks for the pointers @jw. was looking for any sort of change log But I just realized there is a section on the compiler on What's new in Kotlin 2.0.20 @Ben Trengrove [G] i'll check when i can. not sure what strong skipping is and how it can affect behavior though
b
Basically previously unskippable composables become skippable and lambdas are remembered for you https://developer.android.com/develop/ui/compose/performance/stability/strongskipping
a
ok that makes it a bit clearer. i can see how this might cause issues btw, i disabled it and everything works like before even with the 2.0.20 compiler 👌
b
I'd love to know what broke for you though, do you have an example?
a
The BottomSheet component of my library breaks. When it is enabled even though the anchor points are calculated correctly (same values) the sheet does not 'rest' at the right places. I don't have time to check right now, but it might be either the BottomSheet code itself (the file I already linked) or the old version of AnchoredDraggable I copied from Compose in my library.
if you want to test it out yourself you can clone the repo and use the
demo-sheet
configuration on android. add strong skipping and try it out.
h
Do I miss something or do the docs don’t mention libraries? Does a library author need to recompile and publish a new version?
b
No, they don't have to. Composables in libraries would follow the rules of whatever they were compiled with, either with or without strong skipping mode
a
@Ben Trengrove [G] does this also mean that if my library does not enable strong skipping mode, an app consuming my library can still enable strong skipping mode without affecting the behavior of my lib?
b
Correct
🙏 1