[devel] Именование пакетов с Python модулями

Ivan A. Melnikov iv на altlinux.org
Ср Фев 13 14:44:49 MSK 2019


On Tue, Feb 12, 2019 at 10:27:25AM +0300, Vladimir Didenko wrote:
> Добрый день.
> 
> Тут возникло разногласие с @lav по поводу именования пакетов с Python модулями
> 
> https://bugzilla.altlinux.org/show_bug.cgi?id=35296
> 
> Поскольку пока убедительных доводов не услышал, прошу помочь
> сообщество с разъяснением следующих вопросов

Попробую начать.

> 1. Как правильно именовать пакет, содержащий питоновский модуль. С
> началом все понятно - python-module-/python3-module. А вот дальше
> вопрос - должна ли оставшаяся часть посимвольно совпадать с именем,
> которое используется для импорта модуля в программе. Например, есть
> модуль service_identity. Является ли именование
> python-module-service_identity единственно правильным или
> предпочтительным по сравнению с python-module-service-identity? Как
> насчет регистра?

Это традиционно оставалось на усмотрение мейнтейнеру.

Насчёт '_' vs '-' я попробовал собрать статистику по втором питону. У меня
получилось, что в Сизифе сейчас 395 пакетов предоставляют top-level
модули, имена которых содержат '_'. Из них:

- у 43 %{NAME} не начинается с 'python-module-';
- у 62 в имени нет ни '_', ни '-' (кроме префикса 'python-module-');
- у 196 в имени есть '-' (помимо префикса  'python-module-');
- у 94 в имени есть '_'.

Таким образом, нельзя утверждать, что какой-то вариант
именования является правильным или неправильным.

> Или другой пример - был питоновский модуль neovim,
> который переименовали в pynvim. Нужно ли переименовать пакет из
> python-module-neovim в python-module-pynvim?

Лично я не вижу в этом никакого смысла.

> 2. Одним из обоснований того, зачем нужно строгое именование, является
> облегчение автоматической генерации spec-файлов, как, например, это
> делается в пакете matrix-synapse -
> http://git.altlinux.org/gears/m/matrix-synapse.git.
[...]

Строгое именование безусловно облегчает работу роботам, однако пока
в Сизифе творится такая неконсистентность, я не вижу повода что-то
переименоввывать.

> 3. Если автоматическое определение зависимостей не справилось, то как
> правильно ее добавить вручную - Requires: python3-module-<name> или
> Requires: python3(<name>)?

Я бы предложил воспользоваться макросами %py_requires и %py3_requires.
Хотя ингода зависимость на python3-module-<name> может быть
оправдана.

--
  wbr,
    iv m.


Подробная информация о списке рассылки Devel