[devel] Java ABI-хеши в Provides/Requires для автоматического выявления пакетов, требующих пересборки
Ivan Khanas
xeno на altlinux.org
Чт Июл 9 20:01:18 MSK 2026
21.05.26 5:41 PM, Ivan Khanas пишет:
>
> Коллеги, сейчас у нас для Java-зависимостей в основном используется
> координатная схема: пакет продолжает предоставлять
> mvn(groupId:artifactId), пока сохраняются Maven-координаты артефакта.
>
> Но такая схема не позволяет понять, сохранился ли фактический
> публичный API внутри jar. В результате библиотека может формально
> оставаться тем же самым провайдером mvn(...), хотя её бинарно значимый
> Java API уже изменился, и проблема обнаруживается только позже, когда
> начинают ломаться зависимые пакеты.
>
> Предлагаю для Java-библиотек сделать механизм совместимости на уровне
> RPM-зависимостей, аналогичный тому, как для so используется стабильный
> ABI-контракт.
>
> Для каждого пакета, который экспортирует mvn(groupId:artifactId),
> можно дополнительно генерировать Provides от канонического снимка его
> публичного/protected Java API, например java-abi(groupId:artifactId) =
> <hash>.
>
> Тогда зависимые Java-пакеты при сборке будут получать не только
> обычный Requires: mvn(groupId:artifactId), но и точный Requires:
> java-abi(groupId:artifactId) = <hash>, соответствующий ABI провайдера
> на момент сборки.
>
> После изменения API у библиотеки поменяется и java-abi(...)-хеш, и
> зависимые пакеты автоматически окажутся несогласованными уже на уровне
> RPM-зависимостей. Это даст формальный механизм для выявления случаев,
> когда после обновления Java-артефакта требуется пересборка зависимых
> пакетов.
>
Приступаю к реализации задумки, если у кого-либо есть возражения, прошу
их высказать.
>
>
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20260709/74cb9c51/attachment.html>
Подробная информация о списке рассылки Devel