zoryn task¶
Управление задачами. Команды task show и task ls по умолчанию используют Tasks API для быстрого ответа, с fallback на SSH, если API недоступен. Текущий пользователь определяется из [tasks] user в ~/.zoryn или из email %packager в ~/.rpmmacros (rider@altlinux.org → rider).
zoryn task new¶
Создать новое задание в двоичном репозитории. Обёртка над ssh gyle task new.
Выводит ID нового задания при успехе.
zoryn task show¶
Показать детали задачи сборки.
Режимы вывода:
- по умолчанию — gyle-подобный key=value формат с раскрашенными state, repo, owner.
--brief— компактный вывод сабтасков (package.git=tag).--json— раскрашенный JSON (jq-стиль).
Без TASK_ID показывает последнюю задачу.
zoryn task show 409684 # детали задачи
zoryn task show --brief 409684 # кратко
zoryn task show --json 409684 # JSON
zoryn task show # последняя задача
zoryn task ls¶
Список задач сборки с цветным state.
zoryn task ls [-B repo] [--state STATE] [-p pkg] [--user NAME] [-a|--all]
[--test-only] [--needs-approval ROLE] [-d]
Показывает задачи пользователя из gyle. Фильтры по репозиторию, state, пакету, пользователю, test-only.
-B <repo>/--repo <repo>— через запятую (sisyphus,p11,p10).--state <STATE>— через запятую. Значения:NEW,AWAITING,BUILDING,COMMITTING,PENDING,TESTED,EPERM,FAILING,FAILED,POSTPONED,SWEPT,DONE.-p <pkg>— фильтр по имени пакета.--user <NAME>— задачи пользователя (по умолчанию: текущий;ALL— все пользователи).-a/--all— alias для--user ALL.--test-only— только тестовые задачи.--needs-approval <ROLE>— задачи, требующие approve отmaintилиtester.
zoryn task ls # все задачи
zoryn task ls -B p11 # только p11
zoryn task ls -B sisyphus,p11 # p11 и sisyphus
zoryn task ls --state FAILED # упавшие
zoryn task ls --state FAILED,EPERM # FAILED и EPERM
zoryn task ls -p php # задачи с пакетом php
zoryn task ls --user zerg # задачи пользователя zerg
zoryn task ls --all # всех пользователей
zoryn task ls --test-only # только test-only
zoryn task ls --needs-approval maint # нужен approve maintainer'а
zoryn task ls --needs-approval tester # нужен approve тестировщика
zoryn task download¶
Скачать собранные RPM из задачи в локальный репозиторий hasher.
Скачивает все собранные бинарные RPM. Аргумент — имя пакета или ID задачи. Если аргумент — число, используется как task ID; иначе ищет задачу с указанным пакетом.
По умолчанию путь назначения определяется из hsh --printenv. -o задаёт свой каталог (будет создан).
-b <repo>— целевой репозиторий (по умолчанию:sisyphus, игнорируется при указании task ID).--arch <arch>— архитектура (по умолчанию: изhsh --printenv, илиx86_64с-o).-o, --output <dir>— выходной каталог (по умолчанию: репозиторий hasher).
zoryn task download 404784 # по task ID
zoryn task download ffmpeg # из задачи sisyphus
zoryn task download 404784 -o /tmp/rpms # в свой каталог
zoryn task download libva -b p11 # из задачи p11
zoryn task download ffmpeg --arch i586 # i586 RPM
zoryn task add¶
Добавить сабтаск в задачу. Совместимо с ssh gyle task add.
Действия:
repo <repo> <tag>— добавить gear-сабтаск.<repo>.git=<tag>— короткий вариант repo (для copy-paste изtask ls).del <pkg>...— пометить пакеты на удаление.rebuild <pkg>...— пересобрать пакеты из репозитория.copy <pkg> [<from_repo>]— скопировать предсобранные бинарники.
zoryn task add 123456 repo php-sphinx.git 8.2.30-alt1
zoryn task add 123456 php-sphinx.git=8.2.30-alt1
zoryn task add 123456 del php-sphinx php-foo
zoryn task add 123456 rebuild php-sphinx
zoryn task add 123456 copy php-sphinx p10
zoryn task add --before 100 123456 repo dune.git 3.17.2-alt1
zoryn task run¶
Поставить задачу в очередь на сборку. Обёртка над ssh gyle task run.
zoryn task run [--test-only] [--commit] [--dry-run] [--fail-early] [--fail-late]
[--hurry] [--unhurry] [-m MESSAGE] [TASK_ID] [-d]
Без ID использует последнюю задачу текущего пользователя.
--test-only— остановиться после теста, не коммитить.--commit— коммит после тестов.--dry-run— остановиться перед постановкой в очередь.--fail-early— остановить сборку после первой ошибки.--fail-late— не останавливать после первой ошибки.--hurry/--unhurry— включить/выключить swift-режим.-m MESSAGE— причина сборки (многословные в кавычках).-m -— читать причину из stdin.
zoryn task run # последняя задача
zoryn task run 123456 # конкретная
zoryn task run --test-only -m "fix build for aarch64" 123456
zoryn task run --fail-early --hurry 123456
zoryn task run --dry-run 123456
echo "long reason" | zoryn task run -m - 123456 # причина из stdin
zoryn task abort¶
Отменить запущенную задачу. Обёртка над ssh gyle task abort.
Task ID поддерживает TAB-дополнение из списка задач текущего пользователя.
zoryn task approve¶
Approve сабтаска. Обёртка над ssh gyle task approve.
SUBTASK — номер сабтаска, имя пакета или all для approve всех. Для all выполняется один вызов ssh gyle task approve <id> all — gyle сам проходит только по реально существующим сабтаскам, поэтому ранее удалённые через task delsub подзадачи не приводят к паразитным ошибкам «subtask not found». Комментарий — через -m. Если -m не указан и stdin подан на вход, сообщение читается оттуда.
zoryn task approve 123456 1 # approve сабтаска #1
zoryn task approve 123456 php-sphinx -m "LGTM" # по имени пакета
zoryn task approve 123456 all # все сабтаски
zoryn task approve 123456 1 --revoke # отозвать approve
echo "Checked" | zoryn task approve 123456 1 # сообщение из stdin
zoryn task disapprove¶
Disapprove сабтаска. Обёртка над ssh gyle task disapprove. Синтаксис такой же, как у approve, включая поведение all: выполняется один вызов ssh gyle task disapprove <id> all, и gyle сам проходит по существующим сабтаскам.
zoryn task disapprove 123456 1 -m "Needs fixes"
zoryn task disapprove 123456 all -m "FTBFS"
zoryn task disapprove 123456 1 --revoke
zoryn task delete¶
Удалить сабтаск из задачи по имени пакета или номеру. Также доступна как zoryn task delsub (gyle-совместимый alias).
zoryn task delete <task_id> <package|subtask> [-d]
zoryn task delsub <task_id> <package|subtask> [-d]
Второй аргумент:
4200— номер сабтаска.php-sphinx— имя пакета.php-sphinx.git— имя пакета с.git.php-sphinx.git=8.2.30-alt1— имя с тэгом (для copy-paste изtask ls).
zoryn task rm¶
Удалить задачу.
zoryn task genbatch¶
Сгенерировать batch-конфиг из существующей задачи.
Читает структуру задачи и генерирует batch-конфиг для пересборки. См. Batch configs.
zoryn task refresh¶
Обновляет устаревшие сабтаски в задаче — подтягивает в задачу актуальные версии из репозитория вместо устаревших. По умолчанию сверяет rebuild-сабтаски с веткой задачи; --from <ветка> --types <список> распространяет обновление на другие типы сабтасков.
Опции:
<task_id>— задача для обновления.--from <branch>— ветка репозитория для сверки (по умолчанию — ветка задачи).--types <list>— типы сабтасков для обновления (через запятую). Значения:rebuild(по умолчанию),copy,gear,srpm; плюс сокращенияALL(всё кромеdel) иbuild(=gear,srpm). Обязательно при использовании--from.--dry-run— показать, что будет обновлено, не меняя задачу.
zoryn task refresh 123456 # rebuild-сабтаски на той же ветке
zoryn task refresh 123456 --from sisyphus --types ALL # все типы из sisyphus
zoryn task refresh 123456 --from sisyphus --types copy # только copy-сабтаски
zoryn task refresh 123456 --from sisyphus --types ALL --dry-run
zoryn task batch¶
Собрать цепочку связанных пакетов из batch-конфига.
zoryn task batch <config> [--basedir dir] [--no-build] [--create-task] [--refresh]
[--dry-run] [--test] [--skip pkgs] [-b builder] [-B repo]
[--continue|--abort|--restart] [-d]
Читает список пакетов из конфига и собирает каждый по порядку. Полезно для групп пакетов типа PHP-extensions, где все пакеты делят общие настройки.
Опции:
<config>— имя конфига (из~/.config/zoryn/batch/) или путь к.conf.--basedir <dir>— базовый каталог для пакетов (переопределяет конфиг, обязателен, если не указан).--no-build— пропустить локальную сборку, только commit/tag/push/submit.--create-task— создать новую задачу, если не найдена (добавляет main-пакет автоматически).--refresh— обновить пакеты с локальными изменениями.--dry-run— показать что будет сделано.--test— локальная тестовая сборка без gitery/gyle.--skip <pkgs>— пропустить пакеты (через запятую).-b <name>— билдер для локальных сборок.-B <repo>— целевой репозиторий (по умолчанию:sisyphus). Несколько репозиториев через запятую.--continue— возобновить прерванный batch.--abort— отбросить сохранённое состояние.--restart— начать заново, отбросив старое состояние.
zoryn task batch php-8.4 # ~/.config/zoryn/batch/php-8.4.conf
zoryn task batch ~/configs/mypackages.conf # явный путь
zoryn task batch php-8.4 --basedir ~/packages # переопределить basedir
zoryn task batch php-8.4 --no-build # пропустить локальную сборку
zoryn task batch php-8.4 --create-task # создать задачу, если нет
zoryn task batch php-8.4 --refresh # обновить с локальными изменениями
zoryn task batch php-8.4 --dry-run # предпросмотр
zoryn task batch php-8.4 --test # локальная тестовая сборка
zoryn task batch php-8.4 --test -b arm-server # тест на конкретном билдере
zoryn task batch php-8.4 --skip php-xdebug # пропустить пакеты
zoryn task batch php-8.4 -B p11 # в p11
zoryn task batch php-8.4 -B sisyphus,p11,p10 # 3 ветки с зависимостями
zoryn task batch php-8.4 --continue # возобновить прерванный
zoryn task batch php-8.4 --abort # отбросить состояние
zoryn task batch php-8.4 --restart # заново
zoryn task rebuild¶
Пересобрать пакеты, зависящие от пакета в существующей задаче.
zoryn task rebuild <task_id|package> [-b repo] [--from-log] [--deps-by-pkg <pkg>]
[--dptype=TYPE] [--depth=N] [--up <basedir>]
[--all-subtasks <basedir>] [--skip LIST] [--skip-gyle-done]
[-f|--force] [builder options] [-d]
Запрашивает RDB API о пакетах с двоичными зависимостями на указанный пакет, пересобирает их локально через hasher и добавляет успешные пересборки в задачу.
-b <repo>— целевой репозиторий (по умолчанию:sisyphus).--from-log— парсить affected-пакеты из лога FAILED задачи вместо RDB API.-f, --force— форсировать пересборку всех, игнорировать существующие лог-файлы ошибок.--deps-by-pkg <pkg>— запросить зависимости по имени пакета вместо task ID.--up <basedir>— обновлять пакеты с upstream вместо пересборки (см. ниже).--dptype=TYPE— тип зависимостей для RDB:source(по умолчанию),binary,both.--depth=N— глубина зависимостей (1–4, по умолчанию:1).--skip LIST— пропустить сабтаски по номеру или имени (через запятую,--skip 340,440,vtkaddon).--skip-gyle-done— пропускать уже собранные на gyle (только с--all-subtasks).
Опции билдера — как у zoryn build: --builder=PATTERN, -a/--arch, -B/--build-branch (-b — для целевого репозитория), -p, -s, --fail-if-busy, --skip-busy.
--from-log ищет во всех доступных логах (итерации и попытки) последний с секцией «ACLs of affected packages». Для старых/удалённых задач показывает список affected-пакетов без попыток пересборки.
Режим update (--up)¶
Вместо пересборки обновляет каждый зависимый пакет с upstream:
- Клонирует пакет в
<basedir>/<package>, если нет (черезzoryn clone). - Fetch и checkout ветки
gears/sisyphus. - Запускает
zoryn up. - Если уже актуальная версия: добавить как rebuild-сабтаск.
- Если обновлено: собрать локально и добавить как обычный сабтаск.
- При любой ошибке: немедленная остановка и возврат управления мейнтейнеру.
zoryn task copy¶
Скопировать задачу в другой репозиторий.
Копирует все сабтаски существующей задачи в новую задачу в другом репозитории, используя имена пакетов (SRPM) из Tasks API. Если исходная задача ещё не завершена, новая зависит от неё.
Для rebuild-сабтасков сравнивает EVR (epoch:version-release) между источником и целью. При различии EVR запрашивает интерактивно: копировать или пересобирать. --copy-rebuilds / --rebuild-only пропускают запрос.
-B, --branch <repo>— целевой репозиторий (обязательно).-r, --run— запустить после создания.-c, --commit— автокоммит после успешной сборки (только с--run).--copy-rebuilds— копировать из источника при различии EVR (не спрашивать); тот же EVR всё равно пересобирается.--rebuild-only— всегда пересобирать из цели, даже если EVR различается.-n, --dry-run— предпросмотр без создания задачи.<task_id>— исходная задача.
zoryn task copy -B p11 404765 # копировать в p11
zoryn task copy -B p11 --run 404765 # копировать и запустить test-only
zoryn task copy -B p11 --run --commit 404765 # копировать, запустить, auto-commit
zoryn task copy -B p11 --rebuild-only 404765 # всегда пересобирать
zoryn task copy -B p11 --copy-rebuilds 404765 # копировать при различии EVR
zoryn task copy -B p11 --dry-run 404765 # предпросмотр
zoryn task test-rebuild¶
Экспериментальная
Команда активно развивается и может измениться.
Тест-пересборка зависимых пакетов перед отправкой задачи.
zoryn task test-rebuild <task_id> [--arch <arch>] [--builder <pattern>]
[--package PKG]... [--packages-file FILE]
[--dptype=TYPE] [--depth=N] [--skip-ftbfs] [--verify-failures]
[--continue] [--continue-no-refresh] [--top] [-d]
Скачивает RPM из задачи, через RDB находит зависимые пакеты и тест-пересобирает каждый локально. Помогает убедиться, что пакеты собираются с новыми зависимостями до commit.
<task_id>— ID задачи для тестирования.--arch <arch>— архитектуры (через запятую,x86_64,aarch64).--builder <pattern>— выбор билдеров (см. Паттерны билдеров).--package PKG— добавить пакет в кастомный список (повторяемо). Пропускает авто-запрос RDB. Форматы: имя,name-version,name-version-release, с/без epoch и.rpm.--packages-file FILE— читать список из файла (один пакет на строку,#— комментарий). Комбинируется с--package.--dptype=TYPE— тип зависимостей:source(по умолчанию),binary,both.--depth=N— глубина зависимостей (1–4, по умолчанию:1).--skip-ftbfs— пропустить пакеты, уже сломанные на beehive.--verify-failures— после основной пересборки пересобрать упавшие без RPM из задачи, чтобы отличить регрессии от существующих ошибок.--continue— продолжить с прошлого запуска, обновив список пакетов из RDB.--continue-no-refresh— продолжить без обновления списка.--top— интерактивный TUI с прогрессом.-d, --debug— отладочный вывод.
При использовании --package / --packages-file zoryn получает текущую версию каждого пакета из RDB. Если указанная версия не совпадает, пакет пересобирается с текущей и показывается предупреждение. Отсутствующие в ветке пакеты пропускаются.
Возможности:
- Мультиархитектурная поддержка с параллельным запуском на нескольких билдерах.
- Автоматическое скачивание RPM из задачи по архитектуре.
- Обнаружение зависимых через RDB.
- Кастомный список пакетов через
--package/--packages-file. - Beehive FTBFS detection — показывает уже сломанные на beehive пакеты.
- Инкрементальная пересборка через
--continue/--continue-no-refresh. - Статистика в
rebuild-stats.json. - Мониторинг нагрузки хоста для защиты от перегрузки.
- TUI с
--top. - Постоянная история поиска: Up/Down или Ctrl+R в строке поиска логов.
zoryn task test-rebuild 404809 # базовый тест на локальном билдере
zoryn task test-rebuild 404809 -b @all --arch=x86_64 # на всех x86_64 билдерах
zoryn task test-rebuild 404809 --skip-ftbfs # пропустить сломанные на beehive
zoryn task test-rebuild 404809 --continue # продолжить прерванную
zoryn task test-rebuild 404809 -b @all --top # интерактивный TUI
zoryn task test-rebuild 404809 --verify-failures # проверка, что упавшие — регрессии
zoryn task test-rebuild 404809 --package foo --package bar-1.2.3-alt1
zoryn task test-rebuild 404809 --packages-file ~/rebuild-list.txt
zoryn task manage¶
Интерактивный полноэкранный TUI для просмотра и управления задачами.
zoryn task manage [TASK_ID] [--user NAME] [--state STATE] [--repo REPO]
[--needs-approval GROUP] [--no-color]
Опции:
TASK_ID— открыть задачу сразу (минуя список).--user NAME— фильтр по пользователю (по умолчанию: текущий;ALL— все).--state STATE— фильтр по state (TESTED,FAILED,BUILDING).--repo REPO— фильтр по целевому репозиторию (sisyphus,p11).--needs-approval GROUP— задачи, требующие approve (maintилиtester).--no-color— отключить цвет (также учитываетNO_COLOR).
Возможности:
- Mutt-style навигация в одной панели: список задач → детали → зависимости.
- Approve/disapprove сабтасков, run/abort/commit/test-only задач, переключение share, управление зависимостями.
- Отключение inheritance-проверок git/lastchange.
- Создание новых задач и добавление сабтасков прямо из TUI.
- Поиск задач (
/) и сабтасков (/на детальном экране,n/N— след./пред.). - Постоянная история поиска: Up/Down или Ctrl+R в строке поиска.
- Просмотрщик build-лога и event-лога с подсветкой и переносом по словам.
- Авто-обновление каждые 15 секунд, ручное —
R/F5. - Фильтры по state, repo, user, needs-approval — всё горячими клавишами.
- Read-only режим, когда SSH недоступен.
- Полная клавиатурная навигация и поддержка колеса мыши.
- Выделение текста мышью на любом экране — drag для выделения диапазона, double-click для слова; triple-click на строке в списке задач, содержащей wrap-блок пакетов, выделяет все
pkg=versionэтой задачи. Многострочные выделения склеиваются пробелами (без переносов) и копируются в буфер обмена при отпускании (OSC 52). Одиночный клик на#NNNвсё ещё копирует только цифры.
zoryn task manage # с фильтрами по умолчанию
zoryn task manage --user ALL # все пользователи
zoryn task manage --state TESTED --repo sisyphus # фильтр state и repo
zoryn task manage --needs-approval maint # требует approve maintainer'а
zoryn task manage 410005 # открыть задачу #410005
zoryn task manage --no-color # без цвета
Нажмите F1 в TUI для полной справки по горячим клавишам.
zoryn task log¶
Просмотр build- или event-логов в TUI.
zoryn task log <task_id> # event-лог
zoryn task log <task_id> <subtask> # выбор архитектуры
zoryn task log <task_id> <subtask> --arch x86_64 # build-лог
zoryn task log <task_id> <subtask> --arch x86_64 --srpm # SRPM-лог
Сабтаск — номер или имя пакета (TAB дополняет из задачи):
Опции:
--arch <arch>— архитектура (требует сабтаск).--srpm— смотретьsrpm.logвместо основного лога (требует--arch).--no-color— без цвета.