ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа
Date: Fri, 24 Aug 2007 15:15:10 +0400
Message-ID: <20070824111510.GA5470@solemn.turbinal> (raw)
In-Reply-To: <20070823131252.GV9721@osdn.org.ua>

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

On Thu, Aug 23, 2007 at 04:12:53PM +0300, Michael Shigorin wrote:
> On Thu, Aug 23, 2007 at 04:19:40PM +0400, Alexey Tourbin wrote:
> > То что ты предлагаешь я делал 2 года назад.  Для каждого
> > src.rpm пакета хранится список пакетов билдрута от предыдущей
> > его сборки.  То есть таблица <pkg-name> <rpm-file-basename>.
> > (На самом деле достаточно хранить только rpm-file-basename,
> > потому что отрезанием -version-release-*.rpm получается
> > pkg-name).  Теперь достаточно "гнепнуть" (join'ом) старые
> > списки на предмет совпадения pkg-name относительно прибывших
> > пакетов.  Это не только не решает Provides+Obsolets, это не
> > решает даже виртуальных зависимостей.
> 
> Хорошо, а инвалидировать такой кэш на основании сравнения
> выдранных из пакета BR?

Список BR оптимизируется, в этом есть свой смысл.
То есть то, реализовано в /usr/share/buildreqs/optimize_package_list
является не просто оптимизацией, но и "кристализующей" оптимизацией,
проясняющей "смысл понятия".  Например, библиотека lib1 может быть
собрана сначала с backend1, а позднее пересобрана с backend1.
Отсутствие backend1|backend2 в BR при наличии lib1 является БЛАГОМ.

К сожалению, в каких-то эзотерических терминах объяснение получается. :)

> > Например пришёл пакет libstdc++4.2-devel.  Его в предыдущих
> > списках нигде нет.  Значит, наша система "не догадается"
> > пересобрать приплюснутые пакеты.  Такое простое опровержение
> 
> Согласен; хотя на такие варианты можно попробовать тоже найти
> эвристику подешевле, чем --print-uris -- например,
> ^([a-zA-Z_+-]+)[0-9]+(\.[0-9]+)-devel или около того сводится 
> к более общей сущности \1-devel, которая и проверяется на наличие 
> в BR (или по /etc/buildreqs/packages/substitute.d/ -- хотя для
> новой сборки записи ещё нет).
> 
> Я к тому, что если решение задачи "в лоб" оказывается слишком
> дорогим, может иметь смысл разбавить решаемую задачу до 
> "в большинстве практических случаев".

Это не только тестирование для практических случаев.  У меня есть идея,
боюсь что я сейчас не смогу ее четко сформулировать без привлечения
эзотерики.  Смысл идеи в том, что каждый входящий пакет переводит
репозиторий из состояния1 в состояние2.  Переход является
транзакционным, то есть в момент перехода разница между состоянием1
и состоянием2 должна быть четко определена (а сам переход "фиксирует"
эту разницу).  Состояние, в частности, включает в себя статус
пересборки всех пакетов.  То, что мы сейчас обсуждаем, это "как
подешевле выяснить состояние2 в той его части, которая касается
пересобираемости пакетов".  То есть это мини-проблема при bottom-up
подходе.  Но решение ее должно быть надежным, иначе неопределенность
будет наслаиваться, и уже ничего нельзя будет утверждать наверняка.
Так, при переходе состояниеN->состояние(N+1) может выясниться, что
очередной пакет очень много всего сломал, тогда как поломка могла
случиться намного раньше, просто наши регулярные выражения дали сбой.

Другая часть фиксации состояния -- это, например, изменение количества
анметов.

В общем, после того, как пакет собрался в хешере, нужно для него
вычислить новое состояние, на основе целого ряда проверок, как минимум
пересборка и анметы.  Если новое состояние не хуже старого, тогда
фиксация проходит автоматически.  Если же оно является в чем-то хуже
старого, тогда требуется подтверждение или retract вручную, со стороны
maintainer'а пакета и/или со стороны "ответственного товарища".

То что "слишком дорого" это в конечно счете надо смотреть во сколько
это выльется по деньгам.  Прибедняться тоже не надо, кашу из топора
не сваришь, значит нужно обстоятельно прикинуть, чево и сколько хотелось
бы иметь.  И что это дает.  Я считаю что предварительное вычисление
состояния2 дает очень много -- по сути это разница между знанием и
невежеством, между высокой определенностью и высокой неопределенностью.

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

  reply	other threads:[~2007-08-24 11:15 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-21 21:43 [devel] " Alexey Tourbin
2007-08-22  5:25 ` Денис Смирнов
2007-08-22  8:22   ` Хихин Руслан
2007-08-23 10:19 ` Alexey Tourbin
2007-08-23 11:10   ` Michael Shigorin
2007-08-23 11:16     ` Mykola S. Grechukh
2007-08-23 11:18       ` Mykola S. Grechukh
2007-08-23 11:52         ` [devel] [JT] " Michael Shigorin
2007-08-23 12:10           ` Mykola S. Grechukh
2007-08-23 12:11             ` Michael Shigorin
2007-08-23 12:32               ` Alexey Tourbin
2007-08-23 19:05                 ` [devel] статистика Alexey Tourbin
2007-08-23 20:25                   ` Alexey Tourbin
2007-08-23 20:37                   ` Vadim V. Zhytnikov
2007-08-23 19:51                     ` Alexey Tourbin
2007-08-23 21:03                     ` Alexey Tourbin
2007-08-23 21:08                   ` Хихин Руслан
2007-08-23 21:47                     ` Alexey Tourbin
2007-08-23 21:59                       ` Alexey Tourbin
2007-08-23 22:19                       ` Alexey Tourbin
2007-08-23 12:19           ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Alexey Tourbin
2007-08-23 13:12             ` Michael Shigorin
2007-08-24 11:15               ` Alexey Tourbin [this message]
2007-08-25  9:15                 ` Alexey I. Froloff
2007-08-25  9:33                   ` Alexey Tourbin
2007-08-25 10:16                     ` Alexey I. Froloff
2007-08-25 11:25                       ` Igor Vlasenko
2007-08-25 11:36                         ` Igor Vlasenko
2007-08-25 11:48                           ` Michael Shigorin
2007-08-25 11:53                             ` Mykola S. Grechukh
2007-08-25 21:58                               ` Igor Vlasenko
2007-08-25 22:43                                 ` Alexey Tourbin
2007-08-25 23:35                                   ` Igor Vlasenko
2007-08-26 13:38                                   ` Alexey I. Froloff
2007-08-25 18:33                       ` Alexey Tourbin
2007-08-25 19:32                         ` [devel] incominger Michael Shigorin
2007-08-25 20:13                         ` [devel] [JT] Re: RFC: тестирование входящих пакетов полной пересборкой сизифа Денис Смирнов
2007-08-23 13:23   ` [devel] " Alexey Tourbin
2007-08-24 12:51     ` Alexey Tourbin
2007-08-24 21:23     ` [devel] статистика [2] Alexey Tourbin
2007-08-25 14:57       ` [devel] Критерий значимости пакета (Was: статистика) Alexey Rusakov
2007-08-25 20:10         ` Денис Смирнов
2007-08-25 20:28           ` Alexey Tourbin
2007-08-25 22:47             ` Денис Смирнов
2007-08-25 23:55               ` Alexey Tourbin
2007-08-29 20:39       ` [devel] статистика [2] Dmitry V. Levin

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=20070824111510.GA5470@solemn.turbinal \
    --to=at@altlinux.ru \
    --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