Comments 6
Спасибо за статью и доклад на Joker 2024 - было интересно.
Хотел воспользоваться вашей библиотекой для патчинга байт кода, но нашел ее только в вашем репозитории SPYT.
Она доступна в каком либо общедоступном репозитории чтобы ее можно подключить как зависимость в билд тулзе? (Maven/Gradle)
Есть ли какие то готовые примеры по ее использованию помимо доклада?
Спасибо! Да, сейчас библиотека доступна только в нашем репозитории, и в целом она адаптирована под патчинг именно Спарка. Но из неё можно взять основной класс SparkPatchAgent и аннотации, и слегка доработать их чтобы подходило под проект с другой структурой и зависимостями.
А от идеи попытаться ваши изменения внести в оригинальный проект вы совсем отказались? Старые версии могли бы работать через манки патчинг, а новые в будущем работали бы уже напрямую с Spark
Мде. 3.14дец, но что поделать. Увы, но со спарком такие фокусы это проза жизни. Местами он действительно плохо спроектирован, и проще заманкипатчить, чем пытаться расширить что-то официальным способом. Слишком многое в ядре (написанном на скале), помечено как @DeveloperApi, и даже в жабу не экспозится, и фиг ты что с этим сделаешь, если надо поменять.
А ишьи они по полгода рассматривают, даже если есть пулреквест, — а потом бот их закрывает, так как никто из разработчиков не изъявляет желания ревьюить чужие контрибы.
(Как бы преодолеть мне лень, чтобы написать таки статейку на тему «как я курочил спарк»... Хотя, после миграции на 3.4 большую часть подобного у меня получилось в своей кодовой базе или обойти или убрать. Но в одном месте всё равно до сих пор приходится в кишки залазить, хотя уже и без патчинга.)
YTsaurus SPYT: как мы перешли от форка Apache Spark к использованию оригинальной версии