<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>18140</bug_id>
          
          <creation_ts>2008-12-08 14:23:01 +0300</creation_ts>
          <short_desc>[FR] gear-changelog: implement a new option to incorporate add_changelog&apos;s output</short_desc>
          <delta_ts>2016-05-11 07:46:37 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>gear</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="inger@altlinux.org">inger</reporter>
          <assigned_to name="Alexey Gladkov">legion</assigned_to>
          <cc>dottedmag</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>php-coder</cc>
    
    <cc>placeholder</cc>
    
    <cc>sem</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82417</commentid>
    <comment_count>0</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2008-12-08 14:23:01 +0300</bug_when>
    <thetext>Хочется ставить один gear для того чтобы заниматься разработкой.
Из rpm-utils уже использую только add_changelog, стало быть ему самое место в gear ;)

При переносе предлагаю сделать следующее изменение: Имя пользователя брать не из .rpmmacros, а из .gitconfig.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82422</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-12-08 14:42:15 +0300</bug_when>
    <thetext>(In reply to comment #0)
&gt; Хочется ставить один gear для того чтобы заниматься разработкой.
&gt; Из rpm-utils уже использую только add_changelog, стало быть ему самое место в gear ;)

Другому для разработки понадобится другой пакет, и он попросит перенести add_changelog туда.  Ну уж нет. ;)

&gt; При переносе предлагаю сделать следующее изменение: Имя пользователя брать
&gt; не из .rpmmacros, а из .gitconfig.

Зачем?  У тебя имя меняется в зависимости от репозитория? :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82423</commentid>
    <comment_count>2</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-12-08 14:45:23 +0300</bug_when>
    <thetext>(In reply to comment #1)

&gt; Зачем?  У тебя имя меняется в зависимости от репозитория? :)

Почтовый адрес может меняться. Да и имя - тоже, если под псевдонимом работать :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82424</commentid>
    <comment_count>3</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2008-12-08 14:46:40 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; Хочется ставить один gear для того чтобы заниматься разработкой.
&gt; &gt; Из rpm-utils уже использую только add_changelog, стало быть ему самое место в gear ;)
&gt; 
&gt; Другому для разработки понадобится другой пакет, и он попросит перенести
&gt; add_changelog туда.  Ну уж нет. ;)
Неверная аналогия. Можно читать не &quot;перенести&quot;, а &quot;добавить аналог&quot;.

Вот тебе use-case. Я ставлю систему, ставлю hasher/gear и помимо этого приходится ставить rpm-utils.

Далее, я настраиваю .gitconfig, а потом ещё лезу в .rpmmacros.

То есть налицо двойная работа. Одно дело, когда у тебя уже всё настроено, а я вот поднимал сборочную среду с нуля и прочувствовал всю двойную работу ;)

&gt; &gt; При переносе предлагаю сделать следующее изменение: Имя пользователя брать
&gt; &gt; не из .rpmmacros, а из .gitconfig.
&gt; 
&gt; Зачем?  У тебя имя меняется в зависимости от репозитория? :)
Кстати хорошая идея ;)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82425</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-12-08 14:49:50 +0300</bug_when>
    <thetext>А как насчёт сборки без git? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82426</commentid>
    <comment_count>5</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2008-12-08 14:51:05 +0300</bug_when>
    <thetext>(In reply to comment #4)
&gt; А как насчёт сборки без git? :)
&gt; 
А для них пусть остаётся rpm-utils ;)


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82427</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-12-08 14:58:00 +0300</bug_when>
    <thetext>Тогда, раз это инструмент для работы с git, может быть gear-changelog дописать слегка?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82429</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-12-08 15:00:13 +0300</bug_when>
    <thetext>(In reply to comment #6)
&gt; Тогда, раз это инструмент для работы с git, может быть gear-changelog дописать
&gt; слегка?

Не против :)
Я его почти для этого и делал ... кстати, gear-changelog генерит changelog по стандарту add_changelog.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82430</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-12-08 15:10:29 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Тогда, раз это инструмент для работы с git, может быть gear-changelog дописать
&gt; &gt; слегка?
&gt; 
&gt; Не против :)
&gt; Я его почти для этого и делал ... кстати, gear-changelog генерит changelog по стандарту
&gt; add_changelog.

Поскольку gear-changelog, в отличие от add_changelog, знает, как зовут spec-файл, им будет удобнее пользоваться.

P.S.  Пора пилить gear на 2 части: то что нужно только для извлечения из gear (для последующей сборки), и то что нужно для разработки под gear.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82431</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-12-08 15:39:36 +0300</bug_when>
    <thetext>(In reply to comment #8)

&gt; 
&gt; Поскольку gear-changelog, в отличие от add_changelog, знает, как зовут spec-файл, им будет
&gt; удобнее пользоваться.

Вот бы понять какой ещё функционал от этой утилиты нужен (inger@?)

&gt; P.S.  Пора пилить gear на 2 части: то что нужно только для извлечения из gear (для
&gt; последующей сборки), и то что нужно для разработки под gear.

А нужно ли проводить эту границу ?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82432</commentid>
    <comment_count>10</comment_count>
    <who name="inger@altlinux.org">inger</who>
    <bug_when>2008-12-08 16:39:50 +0300</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; 
&gt; &gt; 
&gt; &gt; Поскольку gear-changelog, в отличие от add_changelog, знает, как зовут spec-файл, им будет
&gt; &gt; удобнее пользоваться.
&gt; 
&gt; Вот бы понять какой ещё функционал от этой утилиты нужен (inger@?)
Я пока использую только как добавлялку строчки для changelog ;)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109639</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2010-06-02 12:12:09 +0400</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Я пока использую только как добавлялку строчки для changelog ;)

Эта бага ещё актуальна ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156472</commentid>
    <comment_count>12</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-05-04 16:51:17 +0300</bug_when>
    <thetext>Есть такая неприятность, что 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 &quot;$pkg_name&quot; &quot;$pkg_epoch&quot; &quot;$pkg_version&quot; &quot;$pkg_release&quot;; )


Собирается в http://git.altlinux.org/tasks/164290/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156520</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2016-05-05 13:45:41 +0300</bug_when>
    <thetext>Тут конечно не лучшее место чтобы делать review, но за неимением другого...

&gt; +  --describe-nevr      describe as &quot;%{NAME} [%{EPOCH}:]%{VERSION} %{RELEASE}&quot;

Вы добавили эпоху через двоеточее чтобы потом искать это двоеточее и разделять второй аргумент на части. Не лучше ли не вводить новый разделитель, а использовать имеющийся (проблел) ? В этом случае весь парсинг будет состоять из подсчёта количества аргументов.

&gt; +++ b/gear-sh-functions-describe-current

Зачем создавать ещё один sh-functions ради двух функций ?
Описание в этом файле лучше было бы приложить как описание к patchset&apos;у.

&gt; +gear_describe_current()
&gt; +{
&gt; +    set_NVR $(gear --commit --describe-nevr)
&gt; +}

Нужно использовать результат get_NVR_from_spec. Как найти specfile есть в gear-commit.

&gt; +++ b/gear-changelog

Вам всего лишь нужно было заменить в этой утилите find_specfile на эвристику из gear-commit, возможно вынеся её в общий файл. Это не требует создания дополнительных опций в gear (--describe-nevr).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156521</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2016-05-05 13:46:55 +0300</bug_when>
    <thetext>Попробую реализовать в ближайшие дни.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156525</commentid>
    <comment_count>15</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-05-05 14:00:26 +0300</bug_when>
    <thetext>(In reply to comment #13)
&gt; Тут конечно не лучшее место чтобы делать review, но за неимением другого...

Спасибо!

&gt; 
&gt; &gt; +  --describe-nevr      describe as &quot;%{NAME} [%{EPOCH}:]%{VERSION} %{RELEASE}&quot;
&gt; 
&gt; Вы добавили эпоху через двоеточее чтобы потом искать это двоеточее и разделять
&gt; второй аргумент на части. Не лучше ли не вводить новый разделитель, а
&gt; использовать имеющийся (проблел) ? В этом случае весь парсинг будет состоять из
&gt; подсчёта количества аргументов.

Да, так и есть. Склонился в сторону от подсчёта количества аргументов, не имея сильных предпочтений. (Отчасти из-за того, что двоеточие уже было в предыдущей реализации -- изменения поведения --describe.)

&gt; 
&gt; &gt; +++ b/gear-sh-functions-describe-current
&gt; 
&gt; Зачем создавать ещё один sh-functions ради двух функций ?

Хотелось явно отделить от тех функций, на которые можно будет рассчитывать всегда, мой временный хак (до поры реализации чтения нужной мета-информации напрямую из рабочей директории).

&gt; Описание в этом файле лучше было бы приложить как описание к patchset&apos;у.
&gt; 
&gt; &gt; +gear_describe_current()
&gt; &gt; +{
&gt; &gt; +    set_NVR $(gear --commit --describe-nevr)
&gt; &gt; +}
&gt; 
&gt; Нужно использовать результат get_NVR_from_spec. Как найти specfile есть в
&gt; gear-commit.
&gt; 
&gt; &gt; +++ b/gear-changelog
&gt; 
&gt; Вам всего лишь нужно было заменить в этой утилите find_specfile на эвристику из
&gt; gear-commit, возможно вынеся её в общий файл. Это не требует создания
&gt; дополнительных опций в gear (--describe-nevr).

Да, такой вариант кажется мне более разумным с самого начала, и я буду рад его реализации, заранее спасибо, если у Вас получится!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156575</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2016-05-06 00:35:42 +0300</bug_when>
    <thetext>(In reply to comment #14)
&gt; Попробую реализовать в ближайшие дни.

http://git.altlinux.org/people/legion/packages/gear.git

Дим, посмотри пожалуйста.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156576</commentid>
    <comment_count>17</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-05-06 02:44:32 +0300</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)
&gt; &gt; Попробую реализовать в ближайшие дни.

Спасибо!

&gt; http://git.altlinux.org/people/legion/packages/gear.git
&gt; 
&gt; Дим, посмотри пожалуйста.

К 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156581</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2016-05-06 13:05:02 +0300</bug_when>
    <thetext>(In reply to comment #17)
&gt; ещё эпоха нужна для RPM changelog-а --
&gt; http://git.altlinux.org/people/legion/packages/gear.git?p=gear.git;a=commitdiff;h=542604480dfcbb60cc9d47fef4498899d13478b6

Исправил.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156701</commentid>
    <comment_count>19</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2016-05-11 07:46:37 +0300</bug_when>
    <thetext>gear-2.0.7-alt1 -&gt; sisyphus:

* Fri May 06 2016 Dmitry V. Levin &lt;ldv@altlinux&gt; 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).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>