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 --]
next prev parent 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