From: Andrey Savchenko <bircoph@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] I: gyle --test-only by default
Date: Thu, 21 Mar 2019 02:50:47 +0300
Message-ID: <20190321025047.ae935f21dec1f51f429e72e6@altlinux.org> (raw)
In-Reply-To: <20190320153937.GA32073@altlinux.org>
[-- Attachment #1: Type: text/plain, Size: 5651 bytes --]
On Wed, 20 Mar 2019 18:39:37 +0300 Dmitry V. Levin wrote:
> On Wed, Mar 20, 2019 at 04:09:44PM +0300, Andrey Savchenko wrote:
> > On Wed, 20 Mar 2019 16:04:22 +0300 Dmitry V. Levin wrote:
> > > On Wed, Mar 20, 2019 at 03:56:23PM +0300, Andrey Savchenko wrote:
> > > > On Wed, 20 Mar 2019 15:51:00 +0300 Dmitry V. Levin wrote:
> > > > > On Wed, Mar 20, 2019 at 03:47:13PM +0300, Andrey Savchenko wrote:
> > > > > [...]
> > > > > > Наша система зависимостей на порядок проще, поэтому при надлежащей
> > > > > > реализации проблем с временем быть не должно.
> > > > >
> > > > > У меня есть основания полагать, что это, к сожалению, не так.
> > > >
> > > > Прошу озвучить эти основания. У нас есть только BuildRequires
> > > > и Requires. С точки зрения обсуждаемой задачи BuildPreReq можно
> > > > приравнять к BuildRequires.
> > >
> > > У нас есть Provides, Requires, Conflicts, BuildRequires.
> > >
> > > (ещё существует BuildConflicts, но для вычисления сборочной среды
> > > BuildConflicts не участвует и про него можно забыть).
> > >
> > > Все эти 4 вида зависимостей бывают версионированными с диапазоном версий.
> > > У виртуальных пакетов (тех сущностей, которые фигурируют в Provides)
> > > бывают альтернативные провайдеры, и выбор провайдера из множества
> > > не является произвольным.
> >
> > Все эти виды зависимостей есть и в portage, все они могут быть
> > версионированными, вирутальными, с диапазонами значений, вида A или
> > B или C. Но кроме этого есть зависимости по флагам, со своими
> > пересечениями, объединениями и условными зависимостями. И всё это
> > работает за разумное время.
>
> Ну я же сильно упростил.
Я тоже сильно упростил, умолчав про слоты, профили, попакетную
настройку USE-флагов, сильные и слабые зависимости, сборочные хост
зависимости для кросс-компилирования, логические ограничения на
комбинации флагов и многое другое.
И со всей этой неимоверной сложностью обсуждаемая задача решена
и работает за разумное время (да, бывают баги, да, не всегда
идеально, но работает), поэтому у меня волосы встают дыбом, когда
мне говорят, что в Альте, на существенно более простой системе
зависимостей, это якобы невозможно.
> BuildRequires являются некоей функцией исходного
> кода и сборочной среды, они вычисляются путём выполнения произвольного
> кода внутри hasher chroot.
Замечательно. Но ведь наша сборочница гарантирует
воспроизводимость; значит, это не произвольный код, а вполне
детерминированное состояние по входным параметрам; значит, это всё
выстраивается в виде графа зависимостей между атомарными элементами
и задача вполне разрешима.
> Т.е. у нас зависимости гораздо более гибкие, но за эту гибкость приходится
> платить.
>
> > Поэтому вполне возможна реализация решения подобной задачи за
> > разумное время и в Альте.
>
> Для того, чтобы эта задача имела решение за разумное время, нам нужно
> отказаться от избыточной гибкости и перейти на декларативные сборочные
> зависимости.
Не вижу такой необходимости. Любой гибкой зависимости в конечном
счёте отвечает конкретный пакет, поэтому можно выстроить
отображение гибких зависимостей на конкретные пакеты, их
предоставляющие, поэтому задача сводится к задаче поиска на
попакетных зависимостях с операторами AND, OR, NOT.
Разумеется, решение этой задачи не пишется на коленке за полчаса
и для её выполнения за разумное время наверняка понадобится более
производительный язык, чем шелл.
Best regards,
Andrew Savchenko
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-03-20 23:50 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-17 12:03 [devel] I: gyle: --fail-early " Dmitry V. Levin
2019-03-17 12:30 ` Yuri Sedunov
2019-03-17 12:36 ` Dmitry V. Levin
2019-03-18 6:36 ` Ivan A. Melnikov
2019-03-18 11:56 ` Dmitry V. Levin
2019-03-18 2:03 ` [devel] I: gyle --test-only " Dmitry V. Levin
2019-03-18 5:10 ` Anton Farygin
2019-03-18 7:55 ` Sergey V Turchin
2019-03-19 9:22 ` Andrey Cherepanov
2019-03-19 9:42 ` Paul Wolneykien
2019-03-19 9:51 ` Andrey Cherepanov
2019-03-19 9:59 ` Anton Farygin
2019-03-19 10:03 ` Grigory Ustinov
2019-03-19 10:06 ` Michael Shigorin
2019-03-19 10:15 ` Alexey V. Vissarionov
2019-03-19 10:36 ` Andrey Cherepanov
2019-03-19 10:43 ` Anton Farygin
2019-03-19 19:14 ` Alexey V. Vissarionov
2019-03-19 21:05 ` Igor Vlasenko
2019-03-19 21:25 ` Anton Farygin
2019-03-19 21:36 ` Alexey V. Vissarionov
2019-03-20 7:22 ` Sergey V Turchin
2019-03-20 7:32 ` Sergey V Turchin
2019-03-20 10:07 ` Igor Vlasenko
2019-03-20 10:20 ` Sergey V Turchin
2019-03-20 10:34 ` Sergey Afonin
2019-03-20 10:55 ` Igor Vlasenko
2019-03-20 12:08 ` Sergey Afonin
2019-03-20 13:14 ` Igor Vlasenko
2019-03-21 4:50 ` Anton Farygin
2019-03-21 7:59 ` Andrey Savchenko
2019-03-21 8:14 ` Anton Farygin
2019-03-21 3:37 ` Alexey Tourbin
2019-03-19 21:43 ` Igor Vlasenko
2019-03-20 4:22 ` Anton Farygin
2019-03-20 10:09 ` Igor Vlasenko
2019-03-20 10:22 ` Sergey V Turchin
2019-03-20 12:28 ` Dmitry V. Levin
2019-03-20 13:01 ` Igor Vlasenko
2019-03-20 13:05 ` Dmitry V. Levin
2019-03-21 0:31 ` Dmitry V. Levin
2019-03-21 4:36 ` [devel] железо на сборочнице Anton Farygin
2019-03-21 5:55 ` Sergey Afonin
2019-03-19 21:42 ` [devel] I: gyle --test-only by default Dmitry V. Levin
2019-03-20 9:18 ` Alexey V. Vissarionov
2019-03-20 9:42 ` Anton Farygin
2019-03-20 9:46 ` Anton Farygin
2019-03-20 10:06 ` Sergey V Turchin
2019-03-20 10:38 ` Ivan Zakharyaschev
2019-03-20 11:08 ` Igor Vlasenko
2019-03-20 11:21 ` Alexey V. Vissarionov
2019-03-20 11:51 ` Andrey Savchenko
2019-03-20 12:03 ` Aleksey Novodvorsky
2019-03-20 12:33 ` Andrey Savchenko
2019-03-20 12:48 ` Dmitry V. Levin
2019-03-20 13:01 ` Andrey Savchenko
2019-03-20 13:09 ` Dmitry V. Levin
2019-03-20 13:16 ` Andrey Savchenko
2019-03-20 13:24 ` [devel] предлагаю продолжить летом (was: I: gyle --test-only by default) Michael Shigorin
2019-03-20 13:29 ` Andrey Savchenko
2019-03-20 13:31 ` Igor Vlasenko
2019-03-20 13:34 ` [devel] I: gyle --test-only by default Alexey V. Vissarionov
2019-03-20 12:33 ` Alexey V. Vissarionov
2019-03-20 12:37 ` Ivan Zakharyaschev
2019-03-20 12:39 ` Dmitry V. Levin
2019-03-20 12:47 ` Andrey Savchenko
2019-03-20 12:51 ` Dmitry V. Levin
2019-03-20 12:56 ` Andrey Savchenko
2019-03-20 13:04 ` Dmitry V. Levin
2019-03-20 13:09 ` Andrey Savchenko
2019-03-20 13:16 ` Anton Farygin
2019-03-20 15:39 ` Dmitry V. Levin
2019-03-20 23:50 ` Andrey Savchenko [this message]
2019-03-21 0:18 ` Dmitry V. Levin
2019-03-20 13:56 ` Sergey V Turchin
2019-03-20 13:12 ` Alexey V. Vissarionov
2019-03-21 3:58 ` Alexey Tourbin
2019-03-21 4:24 ` Alexey V. Vissarionov
2019-03-23 23:17 ` Dmitry V. Levin
2019-03-20 12:57 ` Dmitry V. Levin
2019-03-20 13:33 ` Alexey V. Vissarionov
2019-03-20 13:52 ` Sergey V Turchin
2019-03-19 10:15 ` Grigory Ustinov
2019-03-19 11:37 ` Anton V. Boyarshinov
2019-03-19 12:12 ` Grigory Ustinov
2019-03-19 17:40 ` Ivan Zakharyaschev
2019-03-19 10:09 ` Anton Farygin
2019-03-19 10:59 ` Andrey Savchenko
2019-03-19 11:03 ` Anton Farygin
2019-03-19 11:05 ` Andrey Savchenko
2019-03-19 11:11 ` Anton Farygin
2019-03-19 11:15 ` Andrey Cherepanov
2019-03-19 11:20 ` Anton Farygin
2019-03-19 11:28 ` Andrey Cherepanov
2019-03-19 11:38 ` Anton Farygin
2019-03-19 12:00 ` Andrey Cherepanov
2019-03-19 12:01 ` Anton Farygin
2019-03-19 12:05 ` Anton Farygin
2019-03-18 12:31 ` [devel] I: gyle: --fail-early " Anton Farygin
2019-03-18 13:28 ` [devel] I: gyle: --test-early, --fail-only " 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=20190321025047.ae935f21dec1f51f429e72e6@altlinux.org \
--to=bircoph@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