[devel] Зависимости ruby-libs и libruby и новая политика 2.0
Vladimir D. Seleznev
vseleznv на altlinux.org
Вт Фев 5 19:34:51 MSK 2019
On Tue, Feb 05, 2019 at 05:44:09PM +0300, Скрылевъ Малъ wrote:
>
>
> 01.02.2019, 09:40, "Vitaly Chikunov" <vt на altlinux.org>:
> > On Mon, Jan 28, 2019 at 10:45:27PM +0300, Скрылевъ Малъ wrote:
> >> > Гемы и "модули по старинке" не одним и тем-же require подцепляются?
> >> > Следовательно, нет никакой разницы "что именно они представляют" и
> >> > в какие папки попадает.
> >>
> >> Одним и тем же require, однако side_ruby модули не видны в дереве гемов. Так что разные.
> >
> > Если не одним и тем же require, то разные, а если одним и тем же, то не
> > важно где они лежат.
> >
> > Но, я хочу развить эту мысль:
> >
> >> Было бы логично, чтоб в префиксе указывалось то к чему относится модуль.
> >> Например, модуль для руби скорее всего относится к руби, а не к гему.
> >> Модуль для rails к rails, а не к gem или rubyapps.
> >
> > Так как gem-ы это всего лишь вид паковки, то (согласно моей идее) его
> > нужно добавлять не как префикс, а как суффикс к названию пакета.
> >
> Принципиально я не против суффикса -gem. Однако есть 2 замечания:
>
> первое это то, что изменение префикса на суффикс, додаст бардака в принципы формирования пакетов, хотя бы потому, что в подсистемах перла и пифона, по сю пору используются префиксы.
>
> второе объясню на примере:
> есть вот пакет libyajl из исходника yajl, будет логически конфликтовать в похожим на него бисером с таким же названием и суффиксом "-gem".
>
>
> > Наподобие того как есть суффиксы -static -devel и т.д. Например
> > ruby-memcached-gem - значит этот пакет упадет в дерево гемов.
> >
> > В таком варианте остается желанный префикс ruby, не меняется полиси в
> > этом отношении и добавляются отсылки к gem.
>
> Собственно вот проект документа новой политики руби, о котором была речь на совещании:
>
> https://www.altlinux.org/Ruby_Policy_2.0
Вместо префикса gem- и суффикса -gem для наглядности лучше использовать
префикс rubygem-. Нерубишникам будет понятно, что пакет относится к
руби, рубишники увидят, что собирается модуль из gem'ов.
По политике.
Если в путях модулей, собранных из RubyGems есть версия Ruby
(/usr/lib/ruby/gems/2.5.0/), то значит, что эти модули жёстко зависят от
этой версии. Если у нас не предполагается держать несколько версий руби
в репозитории/системе, то, пожалуй, помимо зависимостей в RubyGems на
requires ruby >= 2.5.0
надо добавлять конфликты
conflicts ruby >= 2.6.0
а также писать эту версию в префиксе имени модуля:
rubygem2.5.0-modulename. Хотя тут надо спросить совета у более опытных
участников команды devel@, как в случае наличия версии интерпретатора в
путях модулей действовать.
--
С уважением,
Владимир Селезнев
Подробная информация о списке рассылки Devel