[devel] I: git.alt package build acl: ideas

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Июн 17 03:02:12 MSD 2008


On Tue, Jun 17, 2008 at 01:53:10AM +0400, Dmitry V. Levin wrote:
> > Нарушение ACL соответствует ситуации NMU.  Мы можем дать разовое NMU
> > без изменения ACL, но для этого нужно точно знать изменения в пакете
> > (то есть пакет должен собраться).  Тогда либо maintainer пакета,
> > либо арбитр (если maintainer недоступен) может сказать "SKIP ACL OK".
> 
> Мне нравится эта идея.  Каким должен быть механизм подтверждений, чтобы
> быть удобным и мантейнеру, и арбитру?

Это зависит от модели данных в сборочнице.  Она может быть такой:

struct task {
	int id; // ever-increasing номера заданий
	struct packages[]; // пакеты, собираемые в задании
}

struct package {
	struct task *task; // имеется в виду, что пакеты привязаны к
			   // заданиями и рассматриваются в пределах
			   // задания
	char *name;	// имя пакета, на которое можно ссылаться в
			// пределах задания
	
	char *git_repo; // информация про gear-репозитарий
	char *tag;
	sha1 *comitish;

	enum {
		V_UNMETS;
		V_ACL;
	} violations[];	// нарушения пакета
}

Когда мы делаем 'push-build', мы отправляем один или несколько пакетов
на сборку, и создаётся task.  Если все пакеты собрались, и в каждом
пакете пустой список violations, то пакеты автоматически проходят в
Сизиф.  Если хотя бы один пакет не собрался (по грубой причине), то
task автоматически отменяется.  В противном случае пакеты собрались,
но в некоторых из них имеются violations.  Тогда об этом отправляется
письмо по почте (тем, кто может воздействовать на violations).

Механизм подтверждения или отвержения нарушений можно сделать через
git.alt.

ssh git.alt violation <task-id> <package-name> <violation> "permit"|"deny"

Если все нарушения удалось снять, то пакеты из task проходят в сизиф.
В противном случае через некоторое время task автоматически отменятся.

В task надо уметь добавлять новые пакеты (если он не проходит
автоматически).  Это соответствует ситуации, когда пакет что-то ломает
(напр. V_UNMETS).  Тогда в этот task добавляются исправленные пакеты,
и часть violations автоматически снимается (но могут также добавляться
новые violations, напр. V_ACL).

Такая модель позволят наладить транзакционную смену soname'ов (а также
частично её нарушать).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20080617/3289967f/attachment-0002.bin>


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