ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@altlinux.ru>
Subject: [devel] Re: I: Sisyphus-20050816 unmets: +7 (102/46)
Date: Tue, 16 Aug 2005 03:17:52 +0400
Message-ID: <20050815231752.GE19097@solemn.turbinal.org> (raw)
In-Reply-To: <4300FCD0.1060708@parkheights.dyndns.org>

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

On Mon, Aug 15, 2005 at 04:36:32PM -0400, sergey ivanov wrote:
> Мне казалось, что incoming автоматически выбирал более ранние файлы
> чтобы их собрать раньше, и если другой затем попадался зависящий от
> него, то нужная часть вытаскивалась не из Сизифа а из результатов
> предыдущей сборки.

incominger (робот) переупорядочивает пакеты в очереди на пересборку,
это описано в incominger-0.0.7.3/docs/README (ищите гуглом).  При этом
если робот дает сбой, то последствия могут быть гораздо хуже, чем если
бы оставалось старое правило для упорядочивания по BUILDTIME или st_mtime.

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

Только вот как определить пакеты, которые порождают unmet'ы?  Допустим,
в транзакции 100 пакетов, при этом от новой сборки xorg-x11 появляется
unmet у старой сборки ImageMagick.  Можно исключать из транзакции по
одному пакету и смотреть, не уменьшилось ли количество unmet'ов.  Так
в среднем за 50 итераций можно найти xorg-x11.  С другой стороны, в
транзакции могут быть пакеты, который зависят от новой сборки xorg-x11,
так что при исключении из транзакции одного только xorg-x11 количество
unmet'ов не уменьшится.

В общем случае, получается, сначала нужно пробовать исключать по одному
пакету (C(100,1)=100 итераций), потом по два пакета (C(100,2)=4950
итераций), потом по три пакета (C(100,3) итераций) и т.д.  Кажется, это
называется бином Ньютона.  В целом потребуется 2^{100}-1 итераций, т.е.

$ perl -le 'print 2**100-1'
1.26765060022823e+30
$

Мда, астрономично.  Нужен какой-нибудь более хитроумный dependency
solver.  smartpm надо бы поковырять, но там питон. :)

> Ну это лирика, а конкретный вопрос: что делать? Просто touch я в
> incoming/Sisyphus сделал, этого достаточно?

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

Кстати, я написал/дописал утилиту для *упрощенного* поиска unmet'ов.
Казалось бы, куда уж проще, но всё же...

$ ./unmets -s m24-sources.list
ant#1.6.2-alt2  j2se-devel (>= 1.2)
bigloo#2.6d-alt1        j2se1.4-blackdown-devel
emacs-xslt-process#2.2-alt9     j2se1.4-blackdown
kernel-modules-slmdm-std-smp#1:2.7.10-alt19.12  kernel-modules-slmdm-data
kernel-modules-slmdm-std-up#1:2.7.10-alt19.12   kernel-modules-slmdm-data
kernel-modules-slmdm-vs-smp#1:2.7.10-alt19.12.1 kernel-modules-slmdm-data
nvclock#0.6.2-alt2      NVIDIA_GLX
trang#0.1.20030619-alt1 j2se1.4-blackdown
uqm-big#0.3-alt3        uqm-voice (= 0.3)
uqm-bin#0.3-alt1        uqm-content (= 0.3)
uqm-maxi#0.3-alt3       uqm-remix-pack1
uqm-maxi#0.3-alt3       uqm-remix-pack2
uqm-maxi#0.3-alt3       uqm-remix-pack3
uqm-maxi#0.3-alt3       uqm-voice (= 0.3)
xml-commons-resolver#1.1-alt2   j2se (>= 1.4.2)
$

Будет в qa-robot-0.2 (для тех, кто в танке, -- в /raid/at/qa/qa-robot).

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

  reply	other threads:[~2005-08-15 23:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-15 20:08 [devel] " Alexey M. Tourbin
2005-08-15 20:36 ` sergey ivanov
2005-08-15 23:17   ` Alexey Tourbin [this message]
2005-08-15 23:59     ` [devel] " Alexey Gladkov
2005-08-16  0:40       ` Alexey Tourbin
2005-08-16  1:17         ` Alexey Gladkov
2005-08-16 19:44           ` Alexey Gladkov
2005-08-17  8:27             ` [devel] " Anton Farygin
2005-08-16 17:49         ` [devel] " Dmitry V. Levin
2005-08-16 17:51           ` Dmitry V. Levin
2005-08-16 18:06           ` Alexey Tourbin
2005-08-16 18:12             ` Dmitry V. Levin
2005-08-16 18:26               ` Alexey Tourbin
2005-08-16 18:41                 ` [devel] apt-get strips / Dmitry V. Levin
2005-08-16 18:47                   ` [devel] " Alexey Tourbin
2005-08-16 19:06                     ` Dmitry V. Levin
2005-08-17  5:36                   ` [devel] " Alexey I. Froloff
2005-08-16 18:45                 ` [devel] Re: I: Sisyphus-20050816 unmets: +7 (102/46) Alexey Tourbin
2005-08-16 10:28     ` Michael Shigorin
2005-08-15 23:27   ` [devel] " Alexey Gladkov
2005-08-16 20:17   ` Dmitry V. Levin
2005-09-02 21:58 ` [devel] libevas.so.1 Alexey Tourbin
2005-09-02 22:30   ` [devel] libevas.so.1 Alexey Tourbin
2005-09-03 11:11     ` Denis Klykvin

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=20050815231752.GE19097@solemn.turbinal.org \
    --to=at@altlinux.ru \
    --cc=devel@altlinux.ru \
    /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