ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Morozov <morozov@altlinux.org>
To: devel@lists.altlinux.org
Subject: Re: [devel] python3.x(qwe) vs python3(qwe)
Date: Tue, 2 Feb 2010 16:54:18 +0600
Message-ID: <201002021654.18586.morozov@altlinux.org> (raw)
In-Reply-To: <20100202060656.GE7665@wrars-comp.wrarsdomain>

В сообщении от Вторник 02 февраля 2010 12:06:56 автор Andrey Rahmatullin 
написал:
> On Mon, Feb 01, 2010 at 12:03:14AM +0600, Alexey Morozov wrote:
> > Тогда надо кардинально менять схему упаковки. В своём нынешнем виде и
> > заявленных целях (кстати, если не секрет, есть где-нибудь место, где эти
> > цели явно проартикулированны?)
> 
> Только не говори, что ты не имеешь отношения к нашему Python Policy.

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

На мой взгляд, основная проблема нынешней схемы:

с одной стороны, используются механизмы привязывания модуля к определённой 
версии при сборке пакета (собственно, для большинства модулей эти механизмы 
вытекают из схемы их расположения, %_libdir/pythonX.Y, а для меньшей части - 
из привязок к libpython). При этом, замечу, основная цель выбранного 
расположения, - борьба с несовместимостями между версиями и архитектурами в 
питоньем байткоде, - выглядит для меня достаточно умозрительной here and now.

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

Как из этого выходить? Фиг знает. Можно, например, отказаться от принципа 
"инсталлируется apt'ом - значит работоспособно" (да-да, я знаю, что это плохо 
:) ). 

Кстати, вероятнее всего, 90-ста процентам тех пакетов, которые используют 
питон в качестве языка скриптования, совсем необязателен "полноценный питон" 
со сколько-нибудь полной библиотекой, достаточно libpython. Соответственно, 
масштаб революции в репозитории можно будет сильно уменьшить, если в момент 
заливки нового питона предоставлять libpython-compat для уходящей версии.

Второй вариант - научиться автоматически блокировать в репозитории пакеты, 
которые явно или неявно связаны с питоном, чтобы заливка новой версии не 
превращалась в увлекательную игру с Ахиллесом и черепахой в главных ролях. Но 
тут, чес-гря, я не знаю, каковы будут трудозатраты на реализацию такого 
решения.

Дебиановцы, повторюсь, пошли по третьему пути. source-level пакеты 
распространяются в виде .py, которые при инсталляции раскладываются вместе со 
сгенерёнными тут же .pyc в каталоги, соответствующие установленным на 
конкретной машине версиям python'а. Отдельно решается вопрос с архитектурно-
зависимыми, "бинарными" пакетами.

Насколько я понимаю, на сегодняшний день у них наиболее чётко проработана 
схема с поддержкой нескольких версий питона одновременно, и эта схема как 
никакая другая рассчитана на независимую, "распределённую" процедуру 
обновления пакетов в репозитории. В том числе, и обновлении питона и его 
запчастей.

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

АМ


  reply	other threads:[~2010-02-02 10:54 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-31  1:48 Евгений Ростовцев
2010-01-31  9:33 ` Денис Смирнов
2010-01-31 10:50   ` Sergey Y. Afonin
2010-02-01  9:24     ` Ivan A. Melnikov
2010-02-01  9:40       ` Sergei Epiphanov
2010-01-31 12:24   ` Евгений Ростовцев
2010-01-31 18:03     ` Alexey Morozov
2010-02-01  9:48       ` Евгений Ростовцев
2010-02-05  6:58                   ` Евгений Ростовцев
2010-02-05  7:01                     ` Andrey Rahmatullin
2010-02-05 10:30                       ` Michael Shigorin
2010-02-05  9:26                     ` [devel] pygtk (was: python3.x(qwe) vs python3(qwe)) Michael Shigorin
2010-02-02  6:06       ` [devel] python3.x(qwe) vs python3(qwe) Andrey Rahmatullin
2010-02-02 10:54         ` Alexey Morozov [this message]
2010-02-02 11:02           ` Alexey Morozov
2010-02-02 12:16           ` Andrey Rahmatullin
2010-02-02 12:19           ` Andrey Rahmatullin
2010-02-02 12:23             ` Dmitry V. Levin
2010-02-02 12:36               ` Andrey Rahmatullin
2010-02-02 12:31             ` Alexey Morozov
2010-02-02 12:32               ` Andrey Rahmatullin
2010-02-02  9:45       ` Ivan Fedorov
2010-02-02 10:07         ` Andrey Rahmatullin
2010-02-02 12:19           ` Dmitry V. Levin
2010-02-02 12:42             ` Alexey Morozov
2010-02-02 14:23               ` Dmitry V. Levin
2010-02-02 14:33                 ` Andrey Rahmatullin
2010-02-02 14:39                   ` Dmitry V. Levin
2010-02-05  0:33                     ` Dmitry V. Levin
2010-02-05  0:54                       ` Dmitry V. Levin
2010-02-10 17:02                         ` Dmitry V. Levin
2010-02-02 10:58         ` Alexey Morozov
2010-02-02 15:38   ` Michael Shigorin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201002021654.18586.morozov@altlinux.org \
    --to=morozov@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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