[devel] sandman на cvs.altlinux.org

Ivan Zakharyaschev =?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Ср Авг 13 21:05:35 MSD 2003


	Hello!

On Tue, 5 Aug 2003, Alexander Bokovoy wrote:

> On Mon, Aug 04, 2003 at 12:50:35PM +0300, Alexander Bokovoy
> wrote:

> Итак, опус прикладывается:
> ===============================================================
> ==============

....

> Предлагаемое решение для ALT Linux Sisyphus.
>
> Sandman может быть использован для организации
> версионированного
> хранилища для ALT Linux Sisyphus следующим образом:
>
> 1) Любой пакет, приходящий в ALT Linux Sisyphus, после
> пересборки
>    автоматически помещается в sandman:
>
> 	rpmcpio foo-1.2.3-alt1.src.rpm | sandcl addsources foo
>
> 	commitlog=$(rpmquery --lastchange -p
> foo-1.2.3-alt1.src.rpm)
>
>
> 	cvs commit -m "$commitlog" foo
>
> 	где foo в последней строке -- spec-файл пакета foo.

Возможное усовершенствование: вместо --lastchange использовать
--changes-since <S:V-R последнего релиза в этой ветке>.

Зачем:
Номера официально регистрируемых в Sandman релизов могут по
каким-то причинам идти не непосредственно друг за другом.
Например, некоторые промежуточные релизы могут быть сделаны
только для внутреннего тестирования разработчиком. Или другой
пример: в истории моих пакетов, которую я до сих пор храню сам
как умею, часть релизов утеряно, и если я её захочу перенести в
Sandman, то log-и будут выглядет более осмысленно, если они
действительно будут отражать все изменения между commit-ами.

Может, это будет полезно и для пакетов в ветках updates к
дистрибутивам: там в chnagelog-е может быть много записей между
выпущенными как updates релизами.

--changes-since требует большей строгости в формате chnagelog-а
(нужно чтобы у каждой записи были хотя бы Version-Release).

>
>    Sandman принципиально требует того, чтобы в SCM имя
> spec-файла
>    пакета совпадало с именем пакета -- это тот минимум,
> который
>    требуется для обеспечения непротиворечивости хранилища.
>
>    Согласитесь, что, например, иметь пакет openldap и
> spec-файл для
>    него под именем openldap-2.1.21.spec несколько неосмысленно
> -- как
>    должен будет называться spec-файл в случае увеличения
> версии
>    пакета?
>
>    Отбрасывание расширения .spec также необходимо для
> упрощения логики
>    реализации хранилища.
>
> 2)

....

> 4) Каждый выпущенный дистрибутив помещается в хранилище с
>    использованием возможностей sandman по ведению
> множественных
>    репозитариев, при этом spec-файлы соответствующих пакетов
>    помещаются в тот же модуль, но в ветку с именем
> дистрибутива и его
>    версией, например, master_2_2.
>
> 5) Все обновления в безопасности для уже выпущенных
> дистрибутивов
>    автоматически помещаются в sandman в соответствующий
>    репозитарий-ветку. Таким образом, для выпущенных
> дистрибутивов
>    имеется всегда актуальное состояние репозитария и
> сохраняется
>    история изменений. В частности, это позволит несколько
> ослабить
>    требование несобирания новых версий в updates, поскольку
> контроль
>    как зависимостей, так и версий будет значительно проще.
>
> При появлении отдельного сборочного сервера можно будет
> дополнительно
> разрешить использование сборочных функций Sandman для всех
> поддерживаемых репозитариев.

-- 
С наилучшими пожеланиями,
Иван Захарьящев, Москва
::
JabberID: imz at altlinux.org



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