Хочется ставить один gear для того чтобы заниматься разработкой. Из rpm-utils уже использую только add_changelog, стало быть ему самое место в gear ;) При переносе предлагаю сделать следующее изменение: Имя пользователя брать не из .rpmmacros, а из .gitconfig.
(In reply to comment #0) > Хочется ставить один gear для того чтобы заниматься разработкой. > Из rpm-utils уже использую только add_changelog, стало быть ему самое место в gear ;) Другому для разработки понадобится другой пакет, и он попросит перенести add_changelog туда. Ну уж нет. ;) > При переносе предлагаю сделать следующее изменение: Имя пользователя брать > не из .rpmmacros, а из .gitconfig. Зачем? У тебя имя меняется в зависимости от репозитория? :)
(In reply to comment #1) > Зачем? У тебя имя меняется в зависимости от репозитория? :) Почтовый адрес может меняться. Да и имя - тоже, если под псевдонимом работать :)
(In reply to comment #1) > (In reply to comment #0) > > Хочется ставить один gear для того чтобы заниматься разработкой. > > Из rpm-utils уже использую только add_changelog, стало быть ему самое место в gear ;) > > Другому для разработки понадобится другой пакет, и он попросит перенести > add_changelog туда. Ну уж нет. ;) Неверная аналогия. Можно читать не "перенести", а "добавить аналог". Вот тебе use-case. Я ставлю систему, ставлю hasher/gear и помимо этого приходится ставить rpm-utils. Далее, я настраиваю .gitconfig, а потом ещё лезу в .rpmmacros. То есть налицо двойная работа. Одно дело, когда у тебя уже всё настроено, а я вот поднимал сборочную среду с нуля и прочувствовал всю двойную работу ;) > > При переносе предлагаю сделать следующее изменение: Имя пользователя брать > > не из .rpmmacros, а из .gitconfig. > > Зачем? У тебя имя меняется в зависимости от репозитория? :) Кстати хорошая идея ;)
А как насчёт сборки без git? :)
(In reply to comment #4) > А как насчёт сборки без git? :) > А для них пусть остаётся rpm-utils ;)
Тогда, раз это инструмент для работы с git, может быть gear-changelog дописать слегка?
(In reply to comment #6) > Тогда, раз это инструмент для работы с git, может быть gear-changelog дописать > слегка? Не против :) Я его почти для этого и делал ... кстати, gear-changelog генерит changelog по стандарту add_changelog.
(In reply to comment #7) > (In reply to comment #6) > > Тогда, раз это инструмент для работы с git, может быть gear-changelog дописать > > слегка? > > Не против :) > Я его почти для этого и делал ... кстати, gear-changelog генерит changelog по стандарту > add_changelog. Поскольку gear-changelog, в отличие от add_changelog, знает, как зовут spec-файл, им будет удобнее пользоваться. P.S. Пора пилить gear на 2 части: то что нужно только для извлечения из gear (для последующей сборки), и то что нужно для разработки под gear.
(In reply to comment #8) > > Поскольку gear-changelog, в отличие от add_changelog, знает, как зовут spec-файл, им будет > удобнее пользоваться. Вот бы понять какой ещё функционал от этой утилиты нужен (inger@?) > P.S. Пора пилить gear на 2 части: то что нужно только для извлечения из gear (для > последующей сборки), и то что нужно для разработки под gear. А нужно ли проводить эту границу ?
(In reply to comment #9) > (In reply to comment #8) > > > > > Поскольку gear-changelog, в отличие от add_changelog, знает, как зовут spec-файл, им будет > > удобнее пользоваться. > > Вот бы понять какой ещё функционал от этой утилиты нужен (inger@?) Я пока использую только как добавлялку строчки для changelog ;)
(В ответ на комментарий №10) > Я пока использую только как добавлялку строчки для changelog ;) Эта бага ещё актуальна ?
Есть такая неприятность, что VERSION RELEASE, которые попадают в заголовок changelog entry, берутся из commit-а в то время, как их значения скорее всего были отредактированы как раз на этом этапе подготовки пакета. Т.е. changelog оказывается неправильным. В связи с этим сложилась такая практика -- просто обрезать первую строчку от gear-changelog и добавлять с помощью add_changelog или команд в vi/emacs или т.п., которые читают текущий файл. (Спрашивал у sem@, glebfm@, ldv@, себя.) Когда хочется совсем автоматизировать процесс, это мешает. По-быстрому поправил самым незатратным с точки зрения переписывания кода способом в http://git.altlinux.org/people/imz/packages/gear.git Судя по небольшому опросу, сохранение опции для старого поведения не очень-то кому-то и нужно. Кажется, такое тяжеловатое в работе решение для исправления этого уже хорошо, потому что убирает лишнее неудобство при использовании. Комбинировать с add_changelog больше не придётся. Предлагаю опубликовать. Проверил работу gear-changelog --no-rules и просто функции gear_describe_current() с эпохами и без, вне git-репозитория и без .gear (сообщает об ошибке тогда). Как-то так: $ (set -e; . gear-sh-functions; . gear-sh-functions-describe-current; cd ~/tests/test-git/; gear_describe_current || echo $?; echo "$pkg_name" "$pkg_epoch" "$pkg_version" "$pkg_release"; ) Собирается в http://git.altlinux.org/tasks/164290/
Тут конечно не лучшее место чтобы делать review, но за неимением другого... > + --describe-nevr describe as "%{NAME} [%{EPOCH}:]%{VERSION} %{RELEASE}" Вы добавили эпоху через двоеточее чтобы потом искать это двоеточее и разделять второй аргумент на части. Не лучше ли не вводить новый разделитель, а использовать имеющийся (проблел) ? В этом случае весь парсинг будет состоять из подсчёта количества аргументов. > +++ b/gear-sh-functions-describe-current Зачем создавать ещё один sh-functions ради двух функций ? Описание в этом файле лучше было бы приложить как описание к patchset'у. > +gear_describe_current() > +{ > + set_NVR $(gear --commit --describe-nevr) > +} Нужно использовать результат get_NVR_from_spec. Как найти specfile есть в gear-commit. > +++ b/gear-changelog Вам всего лишь нужно было заменить в этой утилите find_specfile на эвристику из gear-commit, возможно вынеся её в общий файл. Это не требует создания дополнительных опций в gear (--describe-nevr).
Попробую реализовать в ближайшие дни.
(In reply to comment #13) > Тут конечно не лучшее место чтобы делать review, но за неимением другого... Спасибо! > > > + --describe-nevr describe as "%{NAME} [%{EPOCH}:]%{VERSION} %{RELEASE}" > > Вы добавили эпоху через двоеточее чтобы потом искать это двоеточее и разделять > второй аргумент на части. Не лучше ли не вводить новый разделитель, а > использовать имеющийся (проблел) ? В этом случае весь парсинг будет состоять из > подсчёта количества аргументов. Да, так и есть. Склонился в сторону от подсчёта количества аргументов, не имея сильных предпочтений. (Отчасти из-за того, что двоеточие уже было в предыдущей реализации -- изменения поведения --describe.) > > > +++ b/gear-sh-functions-describe-current > > Зачем создавать ещё один sh-functions ради двух функций ? Хотелось явно отделить от тех функций, на которые можно будет рассчитывать всегда, мой временный хак (до поры реализации чтения нужной мета-информации напрямую из рабочей директории). > Описание в этом файле лучше было бы приложить как описание к patchset'у. > > > +gear_describe_current() > > +{ > > + set_NVR $(gear --commit --describe-nevr) > > +} > > Нужно использовать результат get_NVR_from_spec. Как найти specfile есть в > gear-commit. > > > +++ b/gear-changelog > > Вам всего лишь нужно было заменить в этой утилите find_specfile на эвристику из > gear-commit, возможно вынеся её в общий файл. Это не требует создания > дополнительных опций в gear (--describe-nevr). Да, такой вариант кажется мне более разумным с самого начала, и я буду рад его реализации, заранее спасибо, если у Вас получится!
(In reply to comment #14) > Попробую реализовать в ближайшие дни. http://git.altlinux.org/people/legion/packages/gear.git Дим, посмотри пожалуйста.
(In reply to comment #16) > (In reply to comment #14) > > Попробую реализовать в ближайшие дни. Спасибо! > http://git.altlinux.org/people/legion/packages/gear.git > > Дим, посмотри пожалуйста. К http://git.altlinux.org/people/legion/packages/gear.git?p=gear.git;a=commitdiff;h=9fce6fe2e85a0faaaf8d12e6c7ee5b6ca5a76752 : ещё эпоха нужна для RPM changelog-а -- http://git.altlinux.org/people/legion/packages/gear.git?p=gear.git;a=commitdiff;h=542604480dfcbb60cc9d47fef4498899d13478b6
(In reply to comment #17) > ещё эпоха нужна для RPM changelog-а -- > http://git.altlinux.org/people/legion/packages/gear.git?p=gear.git;a=commitdiff;h=542604480dfcbb60cc9d47fef4498899d13478b6 Исправил.
gear-2.0.7-alt1 -> sisyphus: * Fri May 06 2016 Dmitry V. Levin <ldv@altlinux> 2.0.7-alt1 - gear-changelog, gear-edit-spec: look for specfile using the same algorithm as gear-commit (by Alexey Gladkov and me; closes: #18140).