ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: Mikhail Yakshin <greycat@altlinux.org>
To: ALT Linux Sisyphus discussion list <sisyphus@lists.altlinux.org>
Subject: [sisyphus] I: comfort-0.1-alt1 in incoming
Date: Thu, 18 Jan 2007 01:45:03 +0300
Message-ID: <45AEA6EF.7020501@altlinux.org> (raw)

Всех приветствую!

Хочу сообщить, что в incoming ушел пакет, за отсутствием у меня фантазии
именованный comfort. Это некий относительно причесанный набор скриптов,
которые надеются облегчить жизнь рядовому разработчику и/или
пользователю Сизифа.

Думаю, мало кому нравится писать для выполнения простых, в общем-то,
действий, вроде отправки собранного пакета в Сизиф (который надо еще не
забыть подписать и неплохо бы прогнать через sisyphus_check) или
вспоминания, кто же мейнтейнер того или иного пакета, чтобы вытянуть его
копию из git. Очень многие пишут некие скрипты и макросы, облегчающие
эти рутинные задачи. Есть etersoft-build-utils, решающий часть этих
задач. Раскиданы по wiki и рассылкам с десяток скриптов разной степени
работоспособности и общности, тоже решающий часть этих задач. Идея
пакета - свести их как-то к общему знаменателю.

Мне кажется, что такой пакет был бы особенно полезен начинающим
осваивать мейнтейнерство, сборку пакетов, работу Сизифа и, возможно,
что-то подобное стоит осветить в книге по Сизифу.

Конечно, это очень далекое от идеала решение - но, надеюсь, можно будет
его развить и доработать до того состояния, когда бы он хотя бы немножко
нравился не только мне одному.

========================================================================

Основные цели - минимум команд, минималистичный синтаксис и набор
параметров у каждой. Все команды, относящиеся к разработке чего-то в
Сизифе, называются Sisyphus-* (облегчает completion). Структуризация
задач, мелкие подзадачи реализуются в виде отдельных скриптов. Везде
есть разумные умолчания и автодетекты, но при желании они легко
перенастраиваются через ~/.Sisyphusrc. Везде, где подразумевается
workflow, каждая предыдущая команда выдает подсказки в виде готовых
следующих команд, которые можно тупо скопировать и выполнить.

========================================================================

Настройка: после инсталляции пакета можно пытаться пользоваться им, как
есть, а можно настроить в ~/.Sisyphusrc следующие переменные (привожу
тут же их значения по умолчанию):

GIT_DIR=$HOME/git - директория, в которой будут раскладываться локальные
копии git-репозитариев с git.altlinux.org;

BUILD_DIR=$HOME/hasher - временная рабочая директория, в которой будут
проводиться сборка hasher'ом;

ALT_SSH_KEY=$HOME/.ssh/id_dsa - ssh-ключ, который будет использоваться
при работе с сетевыми ресурсами ALT; если он еще не добавлен в агент на
момент вызова какого-то скрипта, которому оно понадобится - скрипт сам
предложит ввести пассфразу, чтобы его добавить;

ALT_USER=$USER - имя пользователя @altlinux.org;

ARCH - (либо x86_64, либо i586, в зависимости от хост-системы) -
архитектура, под которому будут проводиться сборки по умолчанию.

Подразумевается, что у пользователя, из под которого будем работать,
настроен hasher (см. hasher-add) и в ~/.ssh/config есть хосты
incoming.alt и git.alt.

========================================================================

Скрипты, которые есть или должны быть в пакете (у каждого есть краткий
--help, которого должно быть достаточно для быстрого освоения скрипта) и
краткое описание workflow:

0. Sisyphus-setup - некий wizard, который проверяет все установки и
настройки (как системные, так и пользовательские) и приводит их в
рабочее состояние.

1. Начало работы с пакетом:
1.1. Создание пустого пакета - Sisyphus-create, который создает пакет по
шаблону
1.2. Импорт существующих SRPMок из архива Сизифа -
Sisyphus-archive-import <имя-пакета>
1.3. Клонирование существующего пакета из git у его последнего
мейнтейнера - Sisyphus-clone <имя-пакета>

Во всех трех случаях должны корректно настриваться remote / origin.

2. Работа с пакетом - cg-add, cg-commit, cg-delete, cg-pull и т.п.

3. Сборки
3.1. Sisyphus-build - сборка в hasher
3.2. Sisyphus-rebuild - пересборка в hasher
3.3. Sisyphus-rpmbuild - сборка rpmbuild в хост-системе

4. Тестирование - некие утилиты для виртуализации в hasher chroot,
переноса туда частей окружения пользователя, установки тестируемого
пакета и тестирования его там.

5. Релиз
4.1. Sisyphus-push - перемещает пакет в git, если его там нет - то
создает у себя в /people/USER/ такой репозитарий, и делает git push.
(Некий аналог cg-push и gear-upload).
4.2. Sisyphus-publish [имя-SRPM..] - закачивает пакет в incoming,
предварительно делая sisyphus_check, если нужно, подписывая его.

6. Поддержание в актуальном состоянии
6.1. Утилита/утилиты, которые бы реализовывали обновление версий -
оболочка над gear-update-archive, gear-update-directory, git-cvsimport,
git-svn и т.п.
6.2. Утилиты, принимающие патчи и облегчающие merge веток.

========================================================================

Скрипты, полезные пользователю и администратору:

apt - оболочка над многими apt-* (с тем, чтобы писать "apt i", а не
"apt-get install"); в качестве добавочной функции имеет команду "apt k"
или "apt kernel", по которой запускается скрипт Виталия Липатова,
обновляющий текущее ядро со всеми его модулями до последнего в Сизифе.

rpm-last-used - для каждого пакета, переданного в аргументах (можно
запускать, как "rpm-last-used `rpm -qa`"), выдает время последнего
обращения к файлам этого пакета, т.е. в идеале - время последнего
использования пакета. Отсортировав полученный список по первой колонке,
можно посмотреть, какие пакеты в системе висят уже давно, но при этом
уже год, например, не используются - и принять решение об их удалении.

rpm-lost-files - ищет файлы, не принадлежащие никаким пакетам и выводит их.

rpm-obsolete-libs - ищет библиотеки, которые могут быть никому не нужны
(поставились по зависимостям и не удалились); некий аналог недавно
промелькнувшей тут команды "apt-cache list-nodeps | grep ^lib" с помощью
apt-scripts.

========================================================================

Если это кому-то интересно/полезно или есть какие-то комментарии или
мысли - прошу высказываться.

-- 
WBR, Mikhail Yakshin AKA GreyCat
ALT Linux [http://www.altlinux.ru] [xmpp:greycat@altlinux.org]


             reply	other threads:[~2007-01-17 22:45 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-17 22:45 Mikhail Yakshin [this message]
2007-01-18  5:14 ` Хихин Руслан
2007-01-18  6:15 ` Evgenii Terechkov
2007-01-22 13:49 ` Alexey Shabalin
2007-01-22 19:09   ` Mikhail Yakshin
2007-01-22 19:48     ` Sergey Vlasov
2007-01-22 13:53 ` Vitaly Ostanin
2007-01-22 19:28   ` Mikhail Yakshin
2007-01-23 10:44     ` [sisyphus] " Vitaly Ostanin
2007-01-23 10:56       ` Mikhail Yakshin
2007-01-23 11:41         ` Vitaly Ostanin
2007-01-23 21:13           ` Mikhail Yakshin
2007-01-23 11:37       ` Sergey Vlasov
2007-01-23 21:26         ` Mikhail Yakshin
2007-01-23 21:44           ` Dmitry V. Levin

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=45AEA6EF.7020501@altlinux.org \
    --to=greycat@altlinux.org \
    --cc=sisyphus@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 Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git