ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: devel@lists.altlinux.org
Subject: [devel] Х. Вынос сборочницы в пространство пользователя.
Date: Sat, 23 Mar 2019 14:38:42 +0200
Message-ID: <20190323123842.GA21660@dad.imath.kiev.ua> (raw)

Уважаемые господа!

Продолжаю цикл писем, посвященный предложениям по улучшению
нашей сборочницы.

Письма I - VIII можно посмотреть здесь:
  https://www.altlinux.org/Girar/Parallel

Я решил пока часть 2 Письма IХ пропустить,
вкратце, там планировал сказать, что на erlangish
commit = проверки целостности andalso merge .

Письмо Х. Вынос сборочницы в пространство пользователя.
-------------------------------------------------

В прошлом письме был ответ на вопрос "Кто виноват?" -
ответ - виновата недостаточная параллелизация работы
сборочницы, и, в особенности,
логическая ошибка в дизайне commit.

Пора ответить на вопрос "Что делать".

Что надо сделать?

1) исправление ошибок.

2. Вынос сборочницы в пространство пользователя.

Сборочница у нас одна, на живой системе.
Никто ее там чинить, отлаживать, оптимизировать не даст.

Но ее часть можно вынести в "userspace":

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

К примеру:

Делаем
$ gb-mk-task -b sisyphus[=/path/to/sisyphus] /path/to/task1dir /path/to/srpm1 \
  /path/to/gitdir2=commit del=name rebuild=name

получаем готовую task1dir, точно такую же, как если бы мы ее
создали через интерфейс gyle и скачали с team.alt.

$ gb-task-show /path/to/task1dir
id=task1dir locked=no shared=no fail_early=yes test_only=yes repo=sisyphus owner=viy state=NEW try=1 iter=1
 100:srpm=srpm1.src.rpm
 100:userid=viy
 100:pkgname=srpm1
 200:dir=/path/to/srpm1dir
 200:tag_name=1.2-alt1
 200:tag_id=f61de636d910096267d958a7189628e11651290a
 200:tag_author=Igor Vlasenko (ALT Linux Sisyphus) <viy@altlinux.org>
 200:fetched=2019-03-13T11:05:54
 200:userid=viy
 200:pkgname=dd
да, то что надо.

$ gb-build-check --arches="i586 x86_64" --hurry /path/to/task1dir
собирается так же, как и на сборочнице.

с другой консоли можно посмотреть статус
$ gb-task-ls  /path/to/task1dir
#/path/to/task1dir BUILDING [locked] #1 sisyphus srpm=dd-1.2-alt1.src.rpm ...

можно даже сделать свой форк сизифа и тестировать на нем:

$ gb-commit -b sisyphus /path/to/task1dir
   [--hardlink|--symlink|--copy] \
   --inrepo=/path/to/sisyphus1 \
   --outrepo=/path/to/sisyphus2

Что это даст?

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

Позволит эксперименты.
Например, реализовать альтернативный алгоритм
или проверку, или опимизацию, прогнать через
бенчмарки, сравнить.

Даст удобный инструмент майнтайнерам.

Я тоже не собираюсь остаться в стороне.

 On Wed, Mar 20, 2019, Aleksey Novodvorsky wrote:
 Андрей, инициатива наказуема. :)
 Представьте план-проспект работ, за которые Вы могли бы взяться, с
 описанием светлого будущего по завершении.

У меня есть своя сборочница, но она сейчас встроена в
скрипты для автоматизации работы нод кластера
Automated Package Maintainance Cluster
[ https://watch.altlinux.org/pub/monitor/ ]

Я хочу ее выдрать оттуда, и сделать более универсальной,
чтобы она могла принимать на вход и tasks в формате girar,
как описанные выше гипотетические пока скрипты
gb-build-check
gb-commit

затем добавить туда node resource manager
и реализовать в них различные алгоритмы параллелизации
сборки тяжелых task'ов, о которых я писал.
  https://www.altlinux.org/Girar/Parallel

Получится альтернативная реализация
gb-build-check, которую по желанию можно будет
запускать на сборочнице вместо стандартной.


-- 

I V


                 reply	other threads:[~2019-03-23 12:38 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20190323123842.GA21660@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --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