ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Mikhail Yakshin <greycat@altlinux.org>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] Maintainer's toolbox (was: I: gear-tarimport)
Date: Fri, 02 Feb 2007 01:37:26 +0300
Message-ID: <45C26BA6.7060203@altlinux.org> (raw)
In-Reply-To: <20070131124213.GF6627@mw.local.seiros.ru>

Денис Смирнов wrote:
> On Wed, Jan 31, 2007 at 01:22:15PM +0300, Mikhail Yakshin wrote:
> 
>>> Я только за. Потому как по моему личному мнению наличие в сизифе каждого
>>> пакета с именем "<firmname>..." это неявная бага. Если пакет seiros-.*
>>> используется только у меня, то ему не место в сизифе. А если используется
>>> не только мной, то почему бы не объединить все подобные утилиты в один
>>> пакет?
> MY> Ура =) Очень близкая мысль :)
> 
> :)
> 
> Ещё бы ты принял мою мысль о том чтобы жестоко пилить пакеты вроде spt3 и
> comfort на более мелкие пакеты, и мы могли бы наконец объединить наши
> усилия вместо того чтобы трепаться :)

spt3 распилен, пожалуйста, смотри. Как пилить comfort - я пока не очень
понимаю, предлагай.

>>> Сейчас я его использую в следующем случае:
>>>  - rpmbb <spec>
>>>  - В BUILD имеем несобравшийся пакет
>>>  - переименовываю то что пытаюсь править в .orig и запускаю make (чтобы не
>>>    пересобирать весь пакет)
>>>  - повторяю предыдущий шаг до тех пор пока пакет не соберется
>>>  - ptch > 1.patch
>>>  - переношу этот патч в каталог с git, и либо привязываю его как новый
>>>    патч к пакету, либо набираю patch -p0 < 1.patch
> MY> Вот, отлично, еще одна схема workflow у нас появилась :) Как бы ее 
> MY> проапгрейдить для git'а? Например, чтобы собираемый патч автоматически 
> MY> привязывался к пакету в git'е и прописывался как "PatchX: ..." и %patch 
> MY> что-то там?
> 
> Ещё пока не выработалась схема по правильной работе с патчами в git.
> Вообще-то они должны быть в отдельных бранчах. Хранить патчи в виде патчей
> при использовании git это очень нехорошо.

Значит, нам нужен как минимум обратный инструмент - который после
srpmimport конвертит "Patch: ..." + "%patch-что-то-там", заводя их в git.

>>> Вообще многие такие вещи имеет смысл бить на пакеты из-за очень большого
>>> объема requires.
> MY> Согласен. Но некий базовый workflow-пакет с разумным объемом requires 
> MY> IMHO имеет право на существование.
> 
> Думаю скорее группа пакетов для разных workflow. Например gear-svnupdate
> не должен лежать там же где все остальное. Потому что он хочет svn,
> который не всем нужен.

Нам хотя бы один базовый пока набросать %)

> MY> Что бы мне лично хотелось видеть в утилите, которая собирает:
> MY> 1. Возможность запуска без параметров для сборки того пакета, в 
> MY> директории с репозитарием которого я сейчас нахожусь. (Распространяется 
> MY> не только на саму директорию с .git, но и все ее поддиректории).
> 
> Гм. Думал Виталий не будет протестовать против патча :)
> 
> MY> 2. Возможность запуска, указав только имя пакета (пакет найдется в 
> MY> репозитарии $HOME/git/имя-пакета) - типа "rpmbb samba". При 
> MY> невозможности найти такой репозитарий должна быть выведена подсказка, 
> MY> какими способами заполучить такой репозитарий себе (скачать, создать, 
> MY> импортировать и т.п).
> 
> Тогда вопрос о правильной схеме размещения. У меня, например, из-за обилия
> пакетов структура такая:
> git/ALTLinux -- там хранится все пакеты что я отправил на git.alt
> git/ALTLinux/asterisk -- все связаное с астериском
> git/ALTLinux/appliance -- appliance-*
> и т. д. Я не представляю как это сделать пригодным для всех способом.

Ok, понял, в ближайшее время сделаю такую возможность неплоского
размещения пакетов.

determine_package() переделаю так, чтобы он, если указан полный путь
(типа "ALTLinux/asterisk/some-package") - собирал бы его, если нет - то
искал бы соответствующую директорию find'ом; если найдена одна - то
собирал бы оттуда; если их несколько - то ругался бы на то, что не может
однозначно определить, что собирать (как rpm -e, когда под критерий
подпадает >1 пакета).

> MY> 5. Утилиту(ы) с единым синтаксисом для сборки в rpmbuild и hasher - 
> MY> отличающуюся либо суффиксом в названии (build-rpmbuild, build-hasher), 
> MY> либо какой-то опцией (build --engine=rpmbuild, build --engine=hasher). 
> MY> Второе даже предпочительнее, т.к. можно этот самый engine по умолчанию 
> MY> задать через конфиг, кому как удобнее.
> 
> Сейчас так и есть с etersoft-build-utils (правда первый вариант). Так как
> отличия в одной букве утилиты, это вполне приемлимо. И даже удобнее чем
> второй вариант.

Я понял целую одну вещь: есть 2 подхода к именованию утилит:

1. Именовать в жестком unix-style - имена из 2-3, максимум 4 букв, все
аббревиативно, подобрано специально для запоминания. Типичные
представители - программы из coreutils, например.

Плюсы - быстро набирать, при 2-3-4 keystrokes спложно конкурировать с
ними по скорости набора.
Минусы - надо запоминать их все; при наличии множественных вариантов,
незначительно отличающихся друг от друга, получаем сложновоспринимаемые
наборы символов; надо продумывать названия так, чтобы они как можно
лучше ассоциировались с какими-то действиями.

2. Именовать, надеясь на комплишен. Имена тогда значительно длиннее и
максимально описательны. Возникает проблема completion space. Фактически
обязательно использование completion. Как правило, вводится некий
префикс наименования семейства утилит (git-*, gear-*, hsh-*, Sisyphus-*).

В качестве чуть альтернативной реализации - это когда делается одна
"объединяющая" утилита (как в cvs, svn, git, gem) у которой первый
параметр - команда, которую надо выполнить. Удобно, если есть умный
комплишен а ля zsh или bash-completions, довольно неудобно, если нет.

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

Есть поклонники как одного стиля, так и другого. Поэтому, чтобы не
мешать друг другу и не ломать копий - все равно это абсолютно вопрос
привычки/удобства для конкретного человека - предлагаю сделать и так, и
так - ровно как с опциями (-f и --force). Сделать симлинками или
алиасами 2 варианта вызова - и длинный, и короткий.

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


  reply	other threads:[~2007-02-01 22:37 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-24 13:47 [devel] Import cvs to git Vitaly Ostanin
2007-01-24 17:00 ` Sergey Vlasov
2007-01-25 17:05   ` [devel] I: gear-tarimport (was: Re: Import cvs to git) Aleksey Avdeev
2007-01-25 19:59     ` [devel] I: gear-tarimport Mikhail Yakshin
2007-01-25 21:19       ` Alexey I. Froloff
2007-01-25 22:59         ` Mikhail Yakshin
2007-01-26  6:44           ` Kirill Maslinsky
2007-01-26 10:57             ` Mikhail Yakshin
2007-01-27 10:10               ` Anton Farygin
2007-01-27 13:08               ` Kirill Maslinsky
2007-01-27 14:16                 ` Mikhail Yakshin
2007-01-27 15:08                 ` [devel] git: plumbing or porcelain Dmitry V. Levin
2007-01-27 13:47               ` [devel] I: gear-tarimport Alexey I. Froloff
2007-01-27 15:22               ` [devel] comfort Dmitry V. Levin
2007-01-27 20:48                 ` [devel] [flame] было про сomfort, стало про spt Denis Medvedev
2007-01-28 17:05                   ` Nick S. Grechukh
2007-01-28 18:48                     ` Konstantin A. Lepikhov
2007-01-28 19:28                       ` Nick S. Grechukh
2007-01-28 19:47                         ` Konstantin A. Lepikhov
2007-01-28 19:52                           ` Nick S. Grechukh
2007-01-28 20:06                             ` Konstantin A. Lepikhov
2007-01-28 20:11                       ` [devel] [flame] было про сomfort , " Hihin Ruslan
2007-01-28 20:25                         ` Konstantin A. Lepikhov
2007-01-28 21:03                           ` Hihin Ruslan
2007-01-28 21:29                             ` Konstantin A. Lepikhov
2007-01-29  5:40                               ` Hihin Ruslan
2007-01-28 21:28                           ` Denis Medvedev
2007-01-28 21:41                             ` Konstantin A. Lepikhov
2007-01-29  6:46                               ` Denis Medvedev
2007-01-29 15:03                     ` [devel] mkmar Dmitry V. Levin
2007-02-02 11:23               ` [devel] I: gear-tarimport Nick S. Grechukh
2007-01-27 13:57           ` Alexey I. Froloff
2007-01-27 14:30             ` Mikhail Yakshin
2007-01-27 14:51               ` Alexey I. Froloff
2007-01-27 15:39                 ` Mikhail Yakshin
2007-01-27 17:49                   ` Michael Shigorin
2007-01-27 17:57                   ` Sviatoslav Sviridov
2007-01-28 15:20                     ` Alexey Tourbin
2007-01-28  5:10               ` Денис Смирнов
2007-01-28 15:13                 ` Mikhail Yakshin
2007-01-28 16:24                   ` Alexey I. Froloff
2007-01-28 20:32                   ` [devel] I: gear-tarimport (habits) Michael Shigorin
2007-01-28 21:14                     ` Alexey Tourbin
2007-01-28 23:37                   ` [devel] I: gear-tarimport Kirill A. Shutemov
2007-01-29 18:45                   ` Денис Смирнов
2007-01-29 20:27                     ` Mikhail Yakshin
2007-01-29 20:35                       ` Alexey Tourbin
2007-01-29 21:32                         ` Mikhail Yakshin
2007-01-29 21:45                           ` Eugene Ostapets
2007-01-29 21:56                             ` Alexey Tourbin
2007-01-29 21:59                               ` Eugene Ostapets
2007-01-29 22:58                                 ` Alexey I. Froloff
2007-01-30  4:30                                   ` Andrey Rahmatullin
2007-01-30 12:02                                   ` Денис Смирнов
2007-01-30 12:00                               ` Денис Смирнов
2007-01-30 11:57                           ` Денис Смирнов
2007-01-30 11:55                         ` Денис Смирнов
2007-01-30 12:06                           ` Led
2007-01-30 12:16                             ` Денис Смирнов
2007-01-30 12:43                               ` Led
2007-01-30 19:55                                 ` Денис Смирнов
2007-01-30 22:03                                   ` Dmitry V. Levin
2007-01-31  9:18                                   ` [devel] ~/.config/ (was gear-tarimport) Led
2007-01-31  9:22                                     ` Eugene Ostapets
2007-01-31  9:35                                       ` Mikhail Yakshin
2007-01-31  9:37                                         ` Eugene Ostapets
2007-01-31 11:36                                         ` Денис Смирнов
2007-01-31 12:24                                           ` Mikhail Yakshin
2007-01-31 12:46                                             ` Денис Смирнов
2007-01-31 13:01                                               ` Mikhail Yakshin
2007-01-31 14:11                                                 ` Денис Смирнов
2007-02-02 19:06                                                   ` Kirill Maslinsky
2007-02-02 23:20                                                     ` Денис Смирнов
2007-01-31 13:13                                               ` Sergey Vlasov
2007-01-31 18:02                                             ` Alexey I. Froloff
2007-01-31  9:48                                       ` Led
2007-01-31  9:57                                         ` Damir Shayhutdinov
2007-01-31 10:05                                           ` Eugene Ostapets
2007-01-31 10:21                                             ` Damir Shayhutdinov
2007-01-31 10:30                                               ` Eugene Ostapets
2007-01-31 10:43                                                 ` Led
2007-01-31 10:43                                                   ` Mikhail Yakshin
2007-01-31 10:47                                                   ` Eugene Ostapets
2007-01-31 10:56                                                     ` Led
2007-02-03  6:46                                                     ` Vitaly Lipatov
2007-01-31 11:38                                                   ` Денис Смирнов
2007-01-31 11:41                                                     ` Led
2007-01-31 11:42                                               ` Денис Смирнов
2007-01-31 11:49                                                 ` Dmitry V. Levin
2007-01-31 12:26                                                 ` Mikhail Yakshin
2007-01-31 12:43                                                   ` Денис Смирнов
2007-01-31 12:54                                                     ` Damir Shayhutdinov
2007-01-31 14:09                                                       ` Денис Смирнов
2007-01-31 14:22                                                         ` Damir Shayhutdinov
2007-01-31 14:24                                                           ` Damir Shayhutdinov
2007-01-31 15:17                                                             ` Денис Смирнов
2007-01-31 15:16                                                           ` Денис Смирнов
2007-01-31 15:27                                                             ` Damir Shayhutdinov
2007-01-31 16:30                                                               ` Денис Смирнов
2007-01-31 16:37                                                                 ` Damir Shayhutdinov
2007-01-31 16:45                                                                   ` Денис Смирнов
2007-01-31 16:48                                                                 ` Damir Shayhutdinov
2007-01-31 17:09                                                                   ` Денис Смирнов
2007-01-31 12:59                                                     ` Led
2007-01-31 14:08                                                       ` Денис Смирнов
2007-01-31 14:28                                                         ` Mikhail Yakshin
2007-01-31 15:14                                                           ` Денис Смирнов
2007-01-31 16:37                                                           ` Денис Смирнов
2007-01-31 10:06                                           ` Led
2007-01-31  9:59                                         ` Eugene Ostapets
2007-01-31 11:34                                         ` Денис Смирнов
2007-01-31 11:33                                     ` Денис Смирнов
2007-01-31  9:33                                 ` [devel] I: gear-tarimport Mikhail Yakshin
2007-01-31  9:55                                   ` Mikhail Gusarov
2007-01-31 10:04                                   ` Mikhail Gusarov
2007-01-31 10:33                                     ` Mikhail Yakshin
2007-01-31 10:40                                       ` Eugene Ostapets
2007-01-30 11:55                       ` Денис Смирнов
2007-01-30 12:04                         ` Led
2007-01-31 10:22                         ` Mikhail Yakshin
2007-01-31 12:42                           ` Денис Смирнов
2007-02-01 22:37                             ` Mikhail Yakshin [this message]
2007-02-01 23:58                               ` [devel] Maintainer's toolbox (was: I: gear-tarimport) Денис Смирнов
2007-02-02  9:21                                 ` [devel] Maintainer's toolbox Mikhail Yakshin
2007-02-02 10:16                                   ` Michael Shigorin
2007-02-02 15:16                                     ` Mikhail Yakshin
2007-02-03 21:29                                       ` [devel] [JT] " Michael Shigorin
2007-02-02 14:59                                   ` [devel] " Денис Смирнов
2007-02-02 15:31                                     ` Mikhail Yakshin
2007-02-09  0:47                                       ` Денис Смирнов
2007-01-27 15:10             ` [devel] I: gear-tarimport Mikhail Gusarov
2007-02-02 11:21               ` Led
2007-01-27 18:32           ` Alexey I. Froloff
2007-01-28 14:44             ` Mikhail Yakshin
2007-01-27 11:54       ` Aleksey Avdeev
2007-01-27 12:54         ` Mikhail Yakshin
2007-01-27 13:07           ` Aleksey Avdeev
2007-01-25 18:34 ` [devel] Import cvs to git Sergey Vlasov

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=45C26BA6.7060203@altlinux.org \
    --to=greycat@altlinux.org \
    --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