[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