[devel] ACL in branches
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Мар 7 13:39:59 MSK 2009
On Sat, Mar 07, 2009 at 12:17:49PM +0300, Dmitriy M. Maslennikov wrote:
> 2009/3/6 Alexey Tourbin <at на altlinux.ru>:
> > Во-вторых, что можно противопоставить автоматике? Только
> > квалифицированное тестирование вручную. А квалифицированные тестеры
> > которые хорошо разбираются во всякой специфике это либо сами
> > разработчики либо прикладные специалисты. Их просто не получится по
> > количеству и по времени запрячь в какое-то предварительное тестирование
> > перед выкладываением пакетов в сизиф. Можно через какое-то время
> > надеяться на feedback. А автоматика работает достаточно быстро,
> > и её легко запрячь на проверку предварительных условий.
> >
> > Ну я и говорю что стабильность это скорее демагогия. Она вроде бы
> > поддерживается на плохо формализуемом конвенциональном принципе "в
> > бранчи не следует заливать экспериментальный софт". Но его туда всё
> > равно заливают. Потому что каждый думает, что его пакет хороший и в
> > проблемах не виноват. Что тогда даёт этот бранч? Если все эти
> > конвенциональные соображения трудно сформулировать и трудно проверить.
> >
> > И что тогда можно придумать, чтобы всем было хорошо?
> >
> > И какого же рода вещи таким образом можно протестировать? И важно
> > чтобы проверка не лажалась, то есть чтобы уровень false positives был
> > не больше 0.1%. Иначе мы просто будем зарубать нормальные пакеты.
> >
> > Возможна ли такая протестированность в предварительном режиме, перед
> > тем, как пакеты попадают в Сизиф? У нас как процесс устроен:
> > предварительное тестирование, попадание пакета в сизиф, дальше широкое
> > тестирование (всем миром). Вопрос в том что можно сделать на первой
> > стадии за конечное время. Ответ в том что тут впрягается автоматика
> > которая отлавливает грубые нарушения.
> Вот вам все и говорят здесь, что процесс не правильно устроен. Удобнее
> было бы, если сначала собранные пакеты попадали в созданный специально
> под задачу (например, обновление X-сервера) box или pocket, и
> появлялся анонс: "тестируем X-сервер все, кому он интересен".
Желание тестировать пакеты перед выкладыванием конечно похвальное,
но это как бы слишком круто что ли. У нас в день прходит около 100
пакетов (в сизиф). В пиковые рабочие часы мы просто не успеваем их
собирать, несмотря на неплохие в целом показатели производительности
сборочнцы. То есть всё равно очередь накапливается на час вперёд,
это если не брать очень сложных пакетов/заданий, которые появляются
относительно редко.
И сколько реально нужно свободных человеко-часов, чтобы говорить
о предварительном тестировании вручную хотя бы энной части этих 100
пакетов? Получается не то чтобы утопия, но, короче, очень круто.
А что касается X-сервера, то мейнтейнер вроде бы не очень комплексует,
когда выкладывает новые сборки, в которых есть известные проблемы по
сравнению с предыдущими сборками. Эти проблемы ему даже обычно известны
заранее. Не похоже, чтобы дополнительные возможности предварительного
тестирования могли радикально повлиять на политику мейнтейнера. Он
вроде сам немного тестирует перед выкладыванием.
> Это
> коренным образом отличается от дедала, так как в специальном покете
> нет "мусора" из пакетов не относящихсяк делу. Если никто тестировать
> не захотел, то это проблемы коммунити, если же выявлены проблемы, то
> пакеты не принимаются и ничего ни у кого неожиданно не портят. Сейчас
> мы просто пропускаем этап тестирования вообще. И даже не планируем его
> в будущем, а просто пытаемся убедить все, что такой этап не нужен/не
> возможен/бесполезен.
Я считаю, что это действительно с трудом возможно и отчасти бесполезно.
Потому что пакеты работают не изолированно. В рантайме собственный код
пакета комбинируется с кодом зависимостей пакета (причем транзитивно,
то есть с зависимостями зависимостей и т.д.). Пока Вы тестировали
что-то одно, кто-то залил что-то другое. И это может сделать Ваши
усилия если не бесполезными, то лишенными гарантии.
Кстати, поэтому имеет смысл налаживать автоматическое тестирование
при сборке пакета, что-то типа 'make test'. Пусть кто-то хочет
разломать Ваш пакет, но у Вас при сборке выполняется 'make test'.
Тогда облом 'make test' при тестовой пересборке является индикатором,
что новый входящий пакет не согласуется с Вашим существующим пакетом.
А вручную получается что каждый день надо всё заново тестировать, потому
что мало ли что где изменилось.
> Сейчас либо его организует каждый как хочет
> (просит соседа, выкладывает в своем собственном репозитории и т. п.),
> а единой инфраструктуры с анонсами, поиском, возможностью вешать баги
> именно на pocket'ы просто нет. Поэтому все постоянно ломается и
> репозитарий вцелом находится в перманентно разломанном виде.
Есть соображения насчёт модели репозитария, которые лишают карманную
инфраструктуру привлекательности. Соображения следующие:
1) Репозитарий пакетов в каждый момент времени может находится только
в одном состоянии.
2) Возможны строго последовательные (сериализованные) переходы, при
которых репозитарий переходит из одного состояния в другое состояние.
3) Каждый переход должен быть подготовлен на текущем состоянии
репозитария.
Последнее условие, в частности, запрещает копировать пакеты из одного
бранча в другой.
Карманы почему плохо согласуются с моделью? Потому что карманы дают
множество параллельных состояний. Не факт, что эти параллельные
состояния удастся "состыковать" и привести к виду последовательных
согласовнных транзакций.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20090307/ff675a2e/attachment-0001.bin>
Подробная информация о списке рассылки Devel