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]
next prev parent 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