[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