ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Re: [sisyphus] Питоньи модуля
  @ 2004-01-10 11:58 ` Andrey Orlov
  2004-01-11  3:28   ` Alexey Morozov
  0 siblings, 1 reply; 5+ messages in thread
From: Andrey Orlov @ 2004-01-10 11:58 UTC (permalink / raw)
  To: sisyphus, devel

Hi!

Если кратко - проблема поставлена интересная, но конкретно
к ситуации с питоном такой подход излишен. Далее подробно.

On Friday 09 January 2004 18:36, Alexey Morozov wrote:
> Во-вторых, коль скоро у нас одновременно болтаются две и более версии
> питона, причем, модули для них тоже нужно собирать отдельно, то в имя
> пакета вносится и версия питона.

Были у мня такие идеи, но я пришел к мнению, что это излишне. Все пакеты 
нужно портировать на последнию версию питона, пакетов собранные 
под старые версии не держать. Старые версии питона, типа python22 остаются
исключительно для целей разработки и тестирования, соответственно,
предполагается что те, кому они нужны - в состоянии пересобрать все остальное сами.

Затачивать дистрибутив под две версии питона, устанавливаемые по выбору, я не вижу
необходимости - это все-таки не emacs-nox vs emacs-X11, которые имеют не пересекающиеся
возможности, в данном случае python23 полностью перекрывает python22, аналогичная
ситуация была и с python21 vs python22.

> По поводу построения, я нацарапал нечто, что собирает из одного src.rpm
> (python-ZSI-1.4.1-alt2.src.rpm) один или два бинарных модуля, в

Надо будет посмотреть. Но, вообще гря, Zope пропатченный и собранный для python22
иногда не собирался с python21. Точнее, собирался но не работал. То же самое - MySQLdb.
Кроме того, зачастую новые версии пакетов затачиваются исключительно под новую версию
python и перестают пересобираться со старыми версиями, в них так и пишут "required". Таким
образом, пересобрать новую версию пакета под оба питона  сразу - в общем случе, нереально. 
Тем более автоматически. Надо либо откатываться на старую версию, либо делать бакпорт.

> Комментарии?

Излишне: затраты времени на поддержку не окупятся иллюзорным выигрышем, который
для пользователя морально-устаревшего компилятора (интерпретатора) очень быстро 
грозит обернутся  проигрышем. Исключения бывают - типа двух gcc в нашем дистрибутиве -
но, насколько я понимаю, дублирования пакетов там не происходит - софт разбит на две группы,
каждая из которых собирается своим компилятором.  Если бы с питоном была 
аналогичная проблема (например, Zope работающий исключительно с py21) - я бы с вами 
согласился. Но, такой проблемы нет.

Подводя итог: Наиболее предпочтительный вариант - иметь только последний питон.
Т.е. я бы python22 вообще выкинул. Но для тестирования - полезно. Все свои проекты и
продукты я перевел на 23 и вам советую сделать тоже самое (все-таки на это был почти год
времени). На самом деле, на сегодняшний день я не вижу ни одной реальной потребности 
пользоваться устаревшим интерпретатором. Даже Zope, при всей любви его разработчиков 
к реликтовому софту, начиная с версии 2.6.3 пропатчен ими до python23. Кстати, я скоро 
положу 2.6.3 в сиз (завтра, наверно) кто им пользуется - будьте поосторожнее. В отличие
от моих патчей на Z2.6.2, патчи от разработчиков изменили API некоторых продуктов (
особенно в области секьюрити). Хотя эти изменения можно считать "правильными", но
при переходе можно осыпатся.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Re: [sisyphus] Питоньи модуля
  2004-01-10 11:58 ` [devel] Re: [sisyphus] Питоньи модуля Andrey Orlov
@ 2004-01-11  3:28   ` Alexey Morozov
  2004-01-11 10:45     ` Andrey Orlov
  0 siblings, 1 reply; 5+ messages in thread
From: Alexey Morozov @ 2004-01-11  3:28 UTC (permalink / raw)
  To: ALT Devel discussion list; +Cc: sisyphus

[-- Attachment #1: Type: text/plain, Size: 3798 bytes --]

On Sat, Jan 10, 2004 at 02:58:19PM +0300, Andrey Orlov wrote:
> Были у мня такие идеи, но я пришел к мнению, что это излишне. Все пакеты 
> нужно портировать на последнию версию питона, пакетов собранные 
> под старые версии не держать.
Грустно. Почему - ниже.

> Старые версии питона, типа python22 остаются
> исключительно для целей разработки и тестирования, соответственно,
> предполагается что те, кому они нужны - в состоянии пересобрать все
> остальное сами.
Не понятно, зачем тогда держать такой пакет, если пользоваться им все равно
нельзя.

> Затачивать дистрибутив под две версии питона, устанавливаемые по выбору,
> я не вижу необходимости - это все-таки не emacs-nox vs emacs-X11, которые
> имеют не пересекающиеся возможности, в данном случае python23 полностью
> перекрывает python22, аналогичная ситуация была и с python21 vs python22.
Тогда логичнее было бы делать так:

python-<the last and shining version>
python-compat<any previous version>

Или вообще отказаться от -compat, как таковых. Заливать всю байду (питон
и third-party модуля) разом при апдейте сизифиа и дело с концом.

Но опять же, см. возражения ниже.

> Надо будет посмотреть. Но, вообще гря, Zope пропатченный и собранный для
> python22 иногда не собирался с python21. Точнее, собирался но не работал.
> То же самое - MySQLdb.

> Кроме того, зачастую новые версии пакетов затачиваются исключительно под
> новую версию python и перестают пересобираться со старыми версиями, в них
> так и пишут "required". Таким образом, пересобрать новую версию пакета под
> оба питона  сразу - в общем случе, нереально. 
%define _with_python<bad version> --without-python<bad version>
прямо в спеке?

> каждая из которых собирается своим компилятором.  Если бы с питоном была 
> аналогичная проблема (например, Zope работающий исключительно с py21) -
> я бы с вами  согласился. Но, такой проблемы нет.
То есть, Вы утверждаете, что обратная совместимость есть всегда, и ситуация,
когда я при апгрейде питона и всех модулей получаю неработоспособное
приложения, невозможна, или, во всяком случае, _крайне_ мало вероятна?

Нет, мне это на самом деле крайне интересно знать.

Как тогда это соотносится с:

> положу 2.6.3 в сиз (завтра, наверно) кто им пользуется - будьте
> поосторожнее. В отличие от моих патчей на Z2.6.2, патчи от разработчиков
> изменили API некоторых продуктов (особенно в области секьюрити). Хотя эти
> изменения можно считать "правильными", но при переходе можно осыпатся.

Тут проблема очень простая, на самом деле. По своему предыдущему (непитоньему)
опыту я знаю, что у каждого продукта, если это не наколенный скрипт для
внутреннего потребления, есть maintaince cycle. То есть, грубо говоря, период,
когда мы _вынуждены_ поддерживать ту версию программы, которую установили
заказчику. Причем, поддерживать именно в том виде, в котором установили -
максимум, мелкие патчи, которые не меняют приложение кардинально.

Соответственно, каждое релиз, во-первых, четко позиционируется в дереве
исходников (ну, у нас это таг+бранч в CVS'е + полиси на то, что можно с
этим релизом делать, а что нельзя), а во-вторых, возможность воссоздания
сборочной среды, чтобы не было неожиданностей. Для всяких монструозностей
типа ACE/TAO это было более чем актуально, поскольку совместимости ни взад,
ни вперед никто не обещал.

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

У меня сейчас, возможно, образуется ситуация, когда я буду просто не в
состоянии говорить: "а мы с разработчиками тут переехали на новый [питон],
он рулит, но со старым [питоном] совместимости больше нет, и давайте мы вам
за _ваш_ счет произведём апгрейд". За свой, понятное дело, тоже не очень
хочется :-)). Вот и подпрыгиваю :-).


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Re: [sisyphus] Питоньи модуля
  2004-01-11  3:28   ` Alexey Morozov
@ 2004-01-11 10:45     ` Andrey Orlov
  2004-01-11 19:23       ` [devel] Re: [sisyphus] ðÉÔÏÎØÉ ÍÏÄÕÌÑ Alex Ott
  0 siblings, 1 reply; 5+ messages in thread
From: Andrey Orlov @ 2004-01-11 10:45 UTC (permalink / raw)
  To: devel

On Sunday 11 January 2004 06:28, Alexey Morozov wrote:
> Грустно. Почему - ниже.
> > Старые версии питона, типа python22 остаются
> > исключительно для целей разработки и тестирования, соответственно,
> > предполагается что те, кому они нужны - в состоянии пересобрать все
> Не понятно, зачем тогда держать такой пакет, если пользоваться им все равно
> нельзя.

Я уже объяснил. Для разработчиков. Сплит на две альтернативы произошел до моего
появления в AltLinuxTeam и я точно не знаю чем он был вызван. Предположительно -
тем, что Zope не работал с python22. С моим появлением ситуацию с Zope мы разрулили
и по большому счету pythob21 стал не нужен. Но, как у мантейнера Zope, у меня
иной раз возникала в нем необходимость. Просто чбы убедится в том, что некая бага
не привнесена переносом Zope на python22, а воспроизводится на python21.

С официальным переходом Zope на python223 пакет python21 стал не нужен. Сейчас
ситуация повторяется с python22 / 23. 

> Тогда логичнее было бы делать так:
>
> python-<the last and shining version>
> python-compat<any previous version>

Оно сделано так как сделано. Считайте, что это осталоь так по историческим причинам.

> > так и пишут "required". Таким образом, пересобрать новую версию пакета
> > под оба питона  сразу - в общем случе, нереально.
>
> %define _with_python<bad version> --without-python<bad version>
> прямо в спеке?

Тогда вы получите тоже самое что сейчас, только с другой стороны - у вас отвалятся
MySQLdb, psycopg etc. Таким образом, вы опять не будете иметь полного набора
пакетов для обеих версий питона. Я все это уже видел на 21 vs 22. 

Вы все-таки киньте мне на мыло посмотреть ваши макросы и т.п. Если бы я был 100% 
уверен в том, что это невозможно и ненужно - я бы даже обсуждать это не стал ;).

> То есть, Вы утверждаете, что обратная совместимость есть всегда, и
> ситуация, когда я при апгрейде питона и всех модулей получаю
> неработоспособное приложения, невозможна, или, во всяком случае, _крайне_
> мало вероятна?

Я утверждаю прямо противопложенное - в общем случае нет ни обратной, ни
прямой совместимости. Но все продукты переносятся их разработчиками на новые
версии и это вполне естественный процесс. Который нужно поддерживать и форсировать.

> > Как тогда это соотносится с:
> > положу 2.6.3 в сиз (завтра, наверно) кто им пользуется - будьте

Вышеупомянутым образом. Разработчики Z портировали его на py23, причем заявлено
что ближайшие версии Z будут несвместимы с py22 в любых проявлениях. 

> > Тут проблема очень простая, на самом деле. По своему предыдущему
> (непитоньему) опыту я знаю, что у каждого продукта, если это не наколенный
> скрипт для внутреннего потребления, есть maintaince cycle. То есть, грубо
> говоря, период, когда мы _вынуждены_ поддерживать ту версию программы,

Да. Я с этим согласен. Но, как я уже сказал - для перехода на python23 был 1 (один) год.
Времени достаточно. Для дальнейшей поддержки заказчиков есть дистрибутив
master 22 который можно им ставить. В ALM3, вполне возможно, python22 не будет.
Во всяком случае  - мой голос "ЗА".

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

Любой апдейт из Сизифа - это уже кардинальное изменение положения. В то же
время, по опыту патчей к Zope, за редчайшим исключением, переход py21 - py22 и
py22 - py23 не есть кардинальное изменение положения. 

> У меня сейчас, возможно, образуется ситуация, когда я буду просто не в
> состоянии говорить: "а мы с разработчиками тут переехали на новый [питон],
> он рулит, но со старым [питоном] совместимости больше нет, и давайте мы вам
> за _ваш_ счет произведём апгрейд". За свой, понятное дело, тоже не очень
> хочется :-)). Вот и подпрыгиваю :-).

Я вас очень хорошо понимаю. Я прохожу через это каждое лето. В тех случаях, когда
оплата перехода оказывается невозможной - я не апдейчу клиентские сервера до
нового мастера, а ограничиваюсь паккетами из updates. Соответственно, новый софт
клиент не получает и это логично: за новые версии надо платить.

Но всю разработку мы ведем только на последних версиях, соотв. если наш старый
клиент хочет новые фичи, которых не было в старых версиях софта - ему приходится
ставить новую версию и нашего софта, и его окружения. И, по факту, я не в силах
поддерживать в  новых версиях продуктов ни совместимость с python21 / 22, ни 
совместимость с Zope251, ни совместимость с omniORB3: просто не было в них тех
возможностей, которые используют новые версии наших продуктов. И это вполне
естественно. Так что, мое мнение:

 1. Сизифус - для разработчиков, для которых актуален немедленный переход на новые версии
     софта;

 2. Поддержка старых инсталляций осуществляется исключительно за счет updates старых
      дистрибутивов, а не за счет апдейта из сизифа;

 3. Обновление старых инсталляций в связи с переходом на новые версии софта требует
     перехода на послендий оффициальный релиз дистрибутива.

По-моему это логично и в подавляющем большинстве случаев можно объяснить клиенту, 
который выбирает для себя вариант подходящий по деньгам и функционалу.

ЗЫ: Когда я закончил институт и делал свой первый проект, я не придерживался первого
пункта и наступил на очень большие грабли: к моменту сдачи проекта весь софт, на
котором он был построен безнадежно устарел.  С его сдачей возникли проблемы... Теперь
для меня разработка на последних релизах, а лучше даже на альфа- и бета- версиях - непреложное
правило от которого я стараюсь не отходить и другим советую тоже самое.

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Re: [sisyphus] ðÉÔÏÎØÉ ÍÏÄÕÌÑ
  2004-01-11 10:45     ` Andrey Orlov
@ 2004-01-11 19:23       ` Alex Ott
  2004-01-11 21:07         ` [devel] Re: [sisyphus] Питоньи модуля Andrey Orlov
  0 siblings, 1 reply; 5+ messages in thread
From: Alex Ott @ 2004-01-11 19:23 UTC (permalink / raw)
  To: ALT Devel discussion list

Привет

>>>>> "AO" == Andrey Orlov writes:
 AO> ЗЫ: Когда я закончил институт и делал свой первый проект, я не
 AO> придерживался первого пункта и наступил на очень большие грабли: к
 AO> моменту сдачи проекта весь софт, на котором он был построен безнадежно
 AO> устарел.  С его сдачей возникли проблемы... Теперь для меня разработка
 AO> на последних релизах, а лучше даже на альфа- и бета- версиях -
 AO> непреложное правило от которого я стараюсь не отходить и другим
 AO> советую тоже самое.

По моему опыту, житье на альфа-бета версиях очень часто чревато
дополнительной работой, за счет неустойчивости интерфейсов и т.п. Да и
когда разрабатываешь софт не только для одного дистрибутива, а для пачки
линуксов и других юниксов, то тащить за собой кучу лишнего софта или
требовать от заказчика обновления его системы - не всегда приемлимо.  

-- 
With best wishes, Alex Ott
-------------------------------
Jet Infosystems, Moscow, Russia    mailto: ottalex@narod.ru
http://xtalk.msk.su/~ott/          ICQ #22005116



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [devel] Re: [sisyphus] Питоньи модуля
  2004-01-11 19:23       ` [devel] Re: [sisyphus] ðÉÔÏÎØÉ ÍÏÄÕÌÑ Alex Ott
@ 2004-01-11 21:07         ` Andrey Orlov
  0 siblings, 0 replies; 5+ messages in thread
From: Andrey Orlov @ 2004-01-11 21:07 UTC (permalink / raw)
  To: ALT Devel discussion list

On Sunday 11 January 2004 22:23, Alex Ott wrote:
>  AO> устарел.  С его сдачей возникли проблемы... Теперь для меня разработка
>  AO> на последних релизах, а лучше даже на альфа- и бета- версиях -
>  AO> непреложное правило от которого я стараюсь не отходить и другим
>  AO> советую тоже самое.
>
> По моему опыту, житье на альфа-бета версиях очень часто чревато
> дополнительной работой, за счет неустойчивости интерфейсов и т.п. Да и
> когда разрабатываешь софт не только для одного дистрибутива, а для пачки
> линуксов и других юниксов, то тащить за собой кучу лишнего софта или
> требовать от заказчика обновления его системы - не всегда приемлимо.


По моему опыту, к моменту завершения проекта альфа версии становятся релизами. И это
единственный способ выпустить проект, при взгляде на который не хочется сразу отправить
его в музей. Хотя альфа и бета версии чреваты дополнительной работой из-за неустойчиовысти
интерфейсов, но есть существенная экономия на портировании софта под современные
версии в момент сдачи, есть существенная экономия на том, что с современными, хотя и альфа
версиями, не приходится тратить время на обход проблем реликтового софта, которые
в оных альфа-версиях уже решены и без вас. Наконец, использование в разработке альфа-версий
означает, что вы участвуете в разработке оных альфа-версий, а следовательно ваши пожелания
реально могут быть учтены. 

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org ---
----------------------------------------



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-01-11 21:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-10 11:58 ` [devel] Re: [sisyphus] Питоньи модуля Andrey Orlov
2004-01-11  3:28   ` Alexey Morozov
2004-01-11 10:45     ` Andrey Orlov
2004-01-11 19:23       ` [devel] Re: [sisyphus] ðÉÔÏÎØÉ ÍÏÄÕÌÑ Alex Ott
2004-01-11 21:07         ` [devel] Re: [sisyphus] Питоньи модуля Andrey Orlov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git