[devel] копировать нельзя отменить

Alexey Borovskoy alb на altlinux.ru
Вс Май 3 04:47:02 MSD 2009


* Воскресенье 03 мая 2009 Dmitry V. Levin

> On Sun, May 03, 2009 at 12:48:07AM +0400, Wartan Hachaturow 
wrote:
> > 2009/5/2 Dmitry V. Levin <ldv@>:
> > > Это всё слова.  Попробуй расписать в деталях, как это
> > > будет работать.
> >
> > Ну, в принципе, всё довольно очевидно.
>
> Это только в принципе очевидно, а не в деталях.
>
> > Общая схема такая: вначале есть Сизиф. Сизиф целиком в
> > некоторый момент бранчуется, и этот бранч называется словом
> > "testing". Дальше основная разработка происходит в Сизифе,
>
> До этого момента всё ещё очевидно.
>
> > пакеты же автоматически
> > мигрируют в testing. Критерии миграции для Debian описаны
> > тут: http://www.debian.org/devel/testing
> > Их можно адаптировать с учётом меньшего user base.
>
> А вот тут и начинаются те самые детали.

У нас есть git.alt. Который отлавливает наиболее распространенные 
ошибки и разломы репо.

> Например, как на практике трактовать п.5,
> The operation of installing the package into "testing" must
> not break any packages currently in "testing".
> Как правильно определить, что такое "break"?

break -- невозможность дистапгрейда. тоесть новый пакет дает 
несовместимость по зависмостям.

Если стейбл собирается гит.альтом, то у него нету анмитов в 
пределах стейбла.

Если анстейбл собирается гит.альтом, то у него нету анмитов в 
пределах стейбла.

Перенос части анстейбла в стейбл порождает анмит. Анмит при 
переносе будет всегда, пока стейбл не будет пересобран.

Пересборка части анстейбла в пакетной базе стейбла порождает 
временный анмит. Анмит будет всегда, пока не будет произведена 
полная пересборка стейбла.

Перенос и пересборка требуют тестовой пересбоки всего стейбла.
При этом из анстейбла берутся все переносимые пакеты и все их 
зависимости. Тоесть из анстейбла выбирается такой себе минирепо 
и вбрасывается-пересобирается в стейбле.

Все это требует чудовищные машинные ресурсы.
Почему бы не замещать стейлб анстейблом полностью? Тоесть 
анстейбл пересобирается полностью, раз в неделю например. У него 
исчезают внутренние анмиты. И после этого анстейбл путем полного 
копирования переезжает в стейбл.

> Допустим, например, что перенос пакета A в "testing" не
> порождает новых анметов.  Спрашивается,
> - если перенос пакета A в "testing" ломает устанавливаемость
> пакета B из "testing", это "break" или нет, и почему?

Значит надо перенести не только А но и В. Это же тестинг. И вот 
тут нужны карманы гит.альт.

Как же перенести А в тестинг. А сломает тестинг на момент 
переноса и до пересборки тестинга. Но можно сделать следующее: 
перенести В вместе с А, или пересобрать А с В в окружении 
тестинга.

> - если перенос пакета A в "testing" ломает сборку пакета B из
> "testing", это "break" или нет, и почему?

Значит надо перенести не только А но и В. Или починить сборку В.

> - если перенос пакета A в "testing" ломает устанавливаемость
> пересобранного с ним пакета B из "testing", это "break" или
> нет, и почему?

Значит надо перенести не только А но и В.

> Вот более-менее реалистичный пример: новая версия gcc может
> вызвать изменение soname в пересобранном с ним libapt, что, в
> свою очередь, вызовет изменение зависимостей клиентов libapt. 
> Вопрос, перенос такого обновления gcc в "testing" без
> пересобранного с ним libapt и всех его клиентов -- это "break"
> или нет, и почему?

Надо перенести новую версию gcc и всех кто от нее зависит.

P.S. Я где-то ошибаюсь и причем очень сильно. Но не могу понять 
где именно.

-- 
Алексей.
GPG key fingerprint
DBB3 1832 13C6 5C96 4A58  4AFF 78F7 159F 66AD 8D7E


Подробная информация о списке рассылки Devel