[devel] Python Modules Policy:
Алексей Любимов
=?iso-8859-1?q?avl_=CE=C1_l14=2Eru?=
Вт Фев 10 18:51:18 MSK 2004
>Не вопрос. Мы с Андреем уже договорились (в джаббере) до того, что
>
>1. Он проставляет Obsoletes: pythonN в python{N+1} или делает
> аналогичные изменения, о точном решении будет сообщено
> дополнительно ориентировочно в конце недели.
>2. _Одновременная_ сборка пакетов под разные версии питона является
> на данный момент ненужной ввиду своей трудоемкости.
>
реально это означает, что поддержка python22 отменяется.
Или, проще говоря, на зоп* в сизифе и все, что посложнее "hello world"
можно забить.
>3. Андрей думает над целесообразностью сборки пакетов вида
> python<N>-ModuleName из исходника вида python-ModuleName
>
Если будет строго выполнен пункт 2, то это имхо лишнее...
Уж если у кого дойдут руки, то можно делать пакеты python22-ModuleName
то есть схема пакет и compat-пакет, а не ПакетВерсия1 и ПакетВерсия2
>5. В полиси для питоньих модулей вносится обязательный
> Requires: python = %<pversion>, где %<pversion> совпадает с
> %__python_version того питона, для которого производилась сборка.
>
Это понятно.
>Предлагается подумать над следующими двумя полиси:
>6. Программы на python, не зависящие от конкретной версии питона
> (epydoc, python-doc-tools), собираются _без_ байткода и,
> соответственно, без привязки к точной версии питона, используется
> #!/usr/bin/env python ...
>
А где же они лежать будут? по логике все равно в python?.?/site-packages/
По моему, это излишнее усложнение. Поддерживается один питон, так и
пусть поддерживается.
Наоборот скорее от сорцов надо избавлятся (только без размножения пакетов).
>7. Программы, имеющие такую привязку (н-р, идущие вместе с конкретной
> версией питона) иcпользуют #!/usr/bin/env python<version> ...
> и могут таскать за собой байткод.
>
В скриптах? и вы согласны переписывать все скрипты в модуле при переходе
версий???
>8. Некоторое время назад Андрей предлагал в "боевых" пакетах таскать
> только байткод, а .py заворачивать в отдельные пакеты "для
> интересующихся" (по моему разумению, по схеме, напоминающей то, что
> делает Алекс Отт для емакса, хотя _это мои предположения_)
>
И наплодить еще дубликатов-пакетов пачку.
У меня вот зреет какое то общее средство под кодовым названием stripper.
В пакеты кладутся схемы файлов в виде регэкспов.
Также пишуться глобальные регэкспы типа __nodoc__ = /usr/share/doc/.*
__noman__ = /usr/share/man/.* /.*
__nopy_source__ = *.py
__nopy_pyc__ = *.pyc
В любой момент, включая установку пакета, можно вызвать stripper
пакет(ы) и он обрежет по правилам файлы и перенесет их в архив или
вернет обратно.
Также можно поставить правила по умолчанию и они будут срабатывать при
установке пакетов сами.
Незрело, конечно, но по моему, вполне может получится...
Подробная информация о списке рассылки Devel