Каждый раз, когда приходится обновлять версии Kotlin и Compose, я чувствую себя как тот мужик из мема.
Обновить зависимости так, чтобы ничего не отвалилось, та ещё задача, а в KMP-проектах добавляется ещё больше веселья.
Например, хотим запустить проект на Xcode 16.3 — для этого нужен Kotlin 2.1.21, а для него требуется новый KSP, в котором сломали обратную совместимость. И какая-нибудь либа в проекте, использующая KSP, благополучно перестаёт работать.
К счастью, отключить вторую версию KSP можно в
Хуже этого только борьба с Java-версиями. Когда в каком-нибудь кастомном detekt-правиле забыли указать👍
#Gradle #KSP
Обновить зависимости так, чтобы ничего не отвалилось, та ещё задача, а в KMP-проектах добавляется ещё больше веселья.
Например, хотим запустить проект на Xcode 16.3 — для этого нужен Kotlin 2.1.21, а для него требуется новый KSP, в котором сломали обратную совместимость. И какая-нибудь либа в проекте, использующая KSP, благополучно перестаёт работать.
К счастью, отключить вторую версию KSP можно в
gradle.properties, и это спасёт на какое-то время:ksp.useKSP2=falseХуже этого только борьба с Java-версиями. Когда в каком-нибудь кастомном detekt-правиле забыли указать
jvmToolchain с нужной версией, приключение на весь день точно будет обеспечено #Gradle #KSP
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема KSP
Kotlin Symbol Processing — современная технология для генерации кода, но насколько безопасно использовать библиотеки с KSP в проекте?
При обновлении зависимостей мы попали в следующую ловушку: не все библиотеки, которые мы используем, поддержали KSP2, и при этом новая версия Room крашится, если явно отключить поддержку KSP2 в gradle.properties. Сейчас ещё можно обойти проблему, понизив версии, но начиная с AGP 9 и Kotlin 2.3.0 KSP1 перестанет работать.
Что с этим делать?
🔘 Можно включить режим ждуна и мониторить, когда авторы сторонних библиотек добавят поддержку, но не факт, что это произойдёт.
🔘 Форкнуть библиотеку и реализовать поддержку самостоятельно, что может оказаться нетривиальной задачей, если раньше с KSP вы не работали.
🔘 Избавиться от зависимости на такую библиотеку. Если она не глубоко интегрирована в проект, то проще выбрать этот путь, тогда при очередном обновлении зависимостей проблем не возникнет.
А используете ли вы в своих проектах библиотеки с KSP, кроме Room и Dagger?
#KSP #Android
Kotlin Symbol Processing — современная технология для генерации кода, но насколько безопасно использовать библиотеки с KSP в проекте?
При обновлении зависимостей мы попали в следующую ловушку: не все библиотеки, которые мы используем, поддержали KSP2, и при этом новая версия Room крашится, если явно отключить поддержку KSP2 в gradle.properties. Сейчас ещё можно обойти проблему, понизив версии, но начиная с AGP 9 и Kotlin 2.3.0 KSP1 перестанет работать.
Что с этим делать?
А используете ли вы в своих проектах библиотеки с KSP, кроме Room и Dagger?
#KSP #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤1🤔1