ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Ivan Zakharyaschev <imz@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] Обновление numpy и matplotlib
Date: Sun, 16 Apr 2017 11:30:54 +0300 (MSK)
Message-ID: <alpine.LFD.2.20.1704161100110.1081@imap.altlinux.org> (raw)
In-Reply-To: <99b393d5-c606-5bd0-d1a3-20736a9f050a@ya.ru>

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

On Sun, 16 Apr 2017, Антон Мидюков wrote:

>> >  Так вот, у меня вопрос, почему эти провайдесы у пакета не находятся? Я 
>> >  так понял, только потому, что все эти python субмодули предоставляются 
>> >  одним файлом six.py. Все эти субмодули объявляются внутри этого скрипта. 
>> >  Т.е. скрипт поиска провайдесов такого рода провайдесы не приспособлен 
>> >  находить?
>>
>>  Именно так, да. При желании можно написать автоматический генератор
>>  Provides специально для six. В каком-то смысле, это удобнее, чем
>>  выписывать их вручную, но в это надо вложить свой труд, и неизвестно,
>>  сколько времени это займёт. Это только приветствуется. Тут я бы ещё
>>  обратил внимание на то, что аналогичные Provides как-то должны ещё
>>  появляться в пакете с matplotlib, можно было бы покрыть и эти случаи
>>  автоматическим генератором тоже:
>>
>>  matplotlib.externals.six.moves
>>  matplotlib.externals.six.moves.urllib.parse
>>  matplotlib.externals.six.moves.urllib.request
>> 
> Я не нашёл, какие пакеты зависят от этих провайдесов, потому собрал без них 
> сегодня. И эти модули к тому же не импортируются никак, по крайней мере в 
> новой версии. Я думаю, что они уже устарели. Если это не так, поправьте.

Вот и хорошо. Это была какая-то устаревшая некрасивая штука, и теперь мы 
выяснили, что от неё можно избавиться.

>>  А ещё потом можно будет отправить на повторную сборку обновлённые пакеты,
>>  которым их не хватило --
>>  https://www.altlinux.org/Python3/UNMETS#six..2A_.2814.29 .
>> 
> Ужас. Получается весь этот six состоит из одних провайдесов. Мне кажется, 
> проще переделать скрипт поиска зависимостей, чтобы зависимости типа 
> python3(six.чего-то_там) преобразовывались в зависимость на провайдес 
> python3(six). Или есть прецеденты, когда зависимости вида 
> python3(six.чего-то_там) принадлежали не пакету python3-module-six?

Скорее, таких прецедентов нет. Но есть такое соображение:

вдруг кто-то импортирует python3(six.чего-то_там), а в версии пакета six, 
собранной в Sisyphus этого нет. Тогда у пользователя, установившего этот 
пакет, может неожиданно возникнуть ошибка во время работы. Не хочется 
реагировать на такие bug-и в ручном режиме. А дописывание Provides в 
сочетании с проверкой импортируемости (как в скрипте, который я предложил 
использовать для проверки) сразу после подготовки пакета six заранее даст 
уверенность, что этих ошибок не будет. И при точечном обновлении одного 
или другого пакета у пользователя это будет отслеживаться благодаря 
Requires у пакета-клиента.

Я предлагаю дописывать не такое уж большое количество Provides сразу и 
переложить заботу о работоспособности помещённых в Sisyphus пакетов на 
автоматические проверки (в тех объёмах и с той приблизительностью, которые 
реализованы), а не сталкиваться с этим при использовании. В том списке, 
который у меня записан на wiki, их совсем не много разных (10). Я этой 
простой вещи не сделал сразу, потому что хотел и автоматическую проверку 
импортируемости при сборке включить заодно (на уровне policy в 
rpm-build-python3), но был занят другими делами.

Случай, который послужил началом этого обсуждения, мог бы быть тоже 
автоматически выловлен как UNMET на six.chr (или что там в точности было), 
но по-видимому этого не произошло, потому что поиск Requires не смотрит во 
вложенные блоки (например, внутри условных конструкций), т.е. его 
результат -- этот толкьо приближение, а не полный список необходимых 
всегда модулей (что-то пропущено).

-- 
Best regards,
Ivan

  reply	other threads:[~2017-04-16  8:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-13 14:00 Антон Мидюков
2017-04-14 10:00 ` Ivan Zakharyaschev
2017-04-16  1:58   ` Антон Мидюков
2017-04-16  7:01     ` Ivan Zakharyaschev
2017-04-16  7:48       ` Антон Мидюков
2017-04-16  8:30         ` Ivan Zakharyaschev [this message]
2017-04-16  8:43         ` Ivan Zakharyaschev
2017-04-16 13:32           ` Vladimir D. Seleznev
2017-04-16 14:49             ` Ivan Zakharyaschev
2017-04-16 15:26           ` Антон Мидюков
2017-04-16 16:42             ` Yuri Sedunov
2017-04-16 16:46             ` Ivan Zakharyaschev
2017-04-16 16:50             ` Dmitry V. Levin
2017-04-17  1:35               ` Антон Мидюков
2017-04-16 16:55           ` Ivan Zakharyaschev
2017-04-17  1:39             ` Антон Мидюков
2017-04-17  8:13               ` Ivan Zakharyaschev
2017-04-17  8:14                 ` Ivan Zakharyaschev
2017-04-17  8:49                   ` Антон Мидюков
2017-04-17  8:58                     ` Ivan Zakharyaschev
2017-04-17  9:00                     ` Антон Мидюков
2017-04-17  9:12                       ` Ivan Zakharyaschev
2017-04-28 12:31                         ` Антон Мидюков
2017-04-14 15:13 ` Michael Shigorin
2017-04-14 16:32   ` Ivan Zakharyaschev
2017-04-14 17:03     ` Michael Shigorin
2017-04-14 17:23       ` Ivan Zakharyaschev
2017-04-14 20:31         ` Ivan Zakharyaschev

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=alpine.LFD.2.20.1704161100110.1081@imap.altlinux.org \
    --to=imz@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