Changes between Version 4 and Version 5 of ru/WorkingGuideLines


Ignore:
Timestamp:
06/15/09 06:17:10 (15 years ago)
Author:
andrew_b
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ru/WorkingGuideLines

    v4 v5  
    66 
    77Наш рабочий процесс делится на несколько частей: 
    8    * Создание тикета (с приаттаченным патчем); 
     8   * создание тикета (с приложенным патчем); 
    99   * просмотр патча, обсуждение, пересмотр; 
    1010   * применение патча 
     
    1212== Руководство по созданию тикетов == 
    1313 
    14 Для облегчения процесса создания тикетов здесь приводятся некоторые рекомендации: 
    15    * Если вы хотите быть ответственным за тикет, то просто установите себя владельцем(owner) тикета и поменяйте статус тикета на 'accepted' (принят). Теперь Вы должны наблюдать за тикетом - есть патч или нет патча. В обоих случаях вы должны создать ветку (branch) для последующей работы в ней. 
    16    * Патчи с багфиксами разрешено применять к последней стабильной ветке. Эти ветки называются: mc-X.Y (например: mc-4.6). Патчи с новыми возможностями и реструктуризацией(рефакторингом) недопустимы в стабильных ветках -  эти патчи нужно применять к основной ветке 'master'. Просьба также выбрать правильное направление (milestone) для данного тикета: для багфиксинга выберите последнее направление от стабильной ветки (напр. 4.6.2). Для остальных патчей или пожеланий выберите направление по умолчанию (в наст. время это 4.7) 
    17    * Создайте на основе необходимой ветки другую ветку (например, для багфиксинга создайте ветку от ветки mc-4.6). Все создаваемые ветки должны быть созданы на основе самого последнего коммита из родительской ветки. Новые ветки должны следовать правилу наименования: {{{XYZ-<здесь_некоторое_описание>}}}; где XYZ - это номер тикета; описание должно быть осмысленным и коротким, по возможности. Патчи из тикета не применяются непосредственно к родительской ветке, чтобы мы могли обсудить и пересмотреть при необходимости эти патчи. 
    18    * После создания ветки вы должны добавить к ключевым словам тикета (keywords) слово '''review''' для того, чтобы другие разработчики смогли [http://www.midnight-commander.org/report/9 увидеть] ваш тикет как готовый к обзору и обсуждению. Вы можете не добавлять ключевого слова '''review'''; в этом случае ветка считается нестабильной и подлежит дальнейшей разработке. 
     14Для облегчения процесса создания тикетов здесь приводятся некоторые рекомендации. 
     15 
     16   * Если вы хотите быть ответственным за тикет, то просто установите себя владельцем (owner) тикета и поменяйте статус тикета на 'accepted' (принят). Теперь вы должны наблюдать за тикетом - есть патч или нет патча. В обоих случаях вы должны создать ветку (branch) для последующей работы в ней. 
     17   * Патчи с исправлениями разрешено применять только к последней стабильной ветке. Эти ветки называются: mc-X.Y (например: mc-4.6). Патчи с новыми возможностями и реструктуризацией (рефакторингом) недопустимы в стабильных ветках - эти патчи нужно применять к основной ветке 'master'. Просьба также выбрать правильное направление (milestone) для данного тикета: для исправления выберите последнее направление от стабильной ветки (напр. 4.6.2). Для остальных патчей или пожеланий выберите направление по умолчанию (в наст. время это 4.7) 
     18   * Создайте на основе необходимой ветки другую ветку (например, для исправления создайте ветку от ветки mc-4.6). Все создаваемые ветки должны быть созданы на основе самого последнего коммита из родительской ветки. Новые ветки должны следовать правилу наименования: {{{XYZ-<здесь_некоторое_описание>}}}; где XYZ - это номер тикета; описание должно быть осмысленным и коротким, по возможности. Патчи из тикета не применяются непосредственно к родительской ветке, чтобы мы могли их обсудить и при необходимости пересмотреть. 
     19   * После создания ветки вы должны добавить к ключевым словам тикета (keywords) слово '''review''' для того, чтобы другие разработчики смогли [http://www.midnight-commander.org/report/9 увидеть] ваш тикет как готовый к обзору и обсуждению. Вы можете не добавлять ключевого слова '''review''', в этом случае ветка считается нестабильной и подлежит дальнейшей разработке. 
    1920 
    2021== Руководство по обзору тикетов == 
    2122 
    22 Так же, как существует руководство по созданию тикетов, так же существует и руководство по обзору тикетов. 
    23    * Список тикетов, которые необходимо просмотреть, находится по адресу: http://www.midnight-commander.org/report/9 ; 
    24    * Вы можете просмотреть и протестировать патч, просто переключившись на ветку для этого тикета; 
     23Так же, как существует руководство по созданию тикетов, существует и руководство по обзору тикетов. 
     24   * Список тикетов, которые необходимо просмотреть, находится по адресу: http://www.midnight-commander.org/report/9. 
     25   * Вы можете просмотреть и протестировать патч, просто переключившись на ветку для этого тикета. 
    2526   * Если посмотреть на патч, то необходимо проверить: 
    2627      * является ли патч вкладывающимся в общую концепцию проекта или патч является "хаком"? 
     
    2829      * код делает то, что должен делать (что было задекларировано в комментарии к патчу)? 
    2930      * добавляет ли код новые баги (ошибки)? 
    30    * Если патч вам нравится (вы не нашли багов и вы согласны с идеей в патче), то вы должны добавить к ключевым словам тикета слово: {{{vote-<login>}}}; где логин - это ваш логин в trac. Если же патч не совсем безгрешный, то вы должны убрать ключевое слово '''review''' и потом можете выбрать дальнейшие ключевые слова: 
    31       * Если необходимо просто "почистить" патч (убрать лишние пробелы, повставлять отступы и т.д.), то добавьте ключевое слово '''cleanup'''; 
    32       * Если в в патче присутствуют ошибки (или патч является "хаком"), то необходимо добавить ключевое слово '''rework'''; 
    33       * Если в патче присутствуют кардинальные изменения, сделающие master несовместимым со стабильной веткой, то такие тикеты должны быть заморожены до момента выпуска релиза на основе ветки master (и перед созданием новой стабильной ветки). Такие тикеты должны быть помечены ключевым стовом '''frozen'''. 
    34    * В настоящее время необходимы голоса двух разработчиков, чтобы патч был применён к родительской ветке (либо к стабильной ветке; либо к "master"). Если кто-либо вторым добавляет свой голос, то ему необходимо также добавить ключевое слово '''approved''' (утверждено) к списку существующих ключевых слов. Ключевое слово '''review''' должно быть убрано; 
    35    * Голосование всегда производится за последний патч в ветке; 
     31   * Если патч вам нравится (вы не нашли багов и согласны с идеей в патче), то вы должны добавить к ключевым словам тикета слово {{{vote-<login>}}}, где логин - это ваш логин в Trac. Если же патч не совсем безгрешный, то вы должны заменить ключевое слово '''review''' на  одно из следующих: 
     32      * если необходимо просто "почистить" патч (убрать лишние пробелы, повставлять отступы и т. д.), то добавьте ключевое слово '''cleanup'''; 
     33      * если в в патче присутствуют ошибки (или патч является "хаком"), то необходимо добавить ключевое слово '''rework'''; 
     34      * если в патче присутствуют кардинальные изменения, сделающие master несовместимым со стабильной веткой, то такие тикеты должны быть заморожены до момента выпуска релиза на основе ветки master (и перед созданием новой стабильной ветки). Такие тикеты должны быть помечены ключевым стовом '''frozen'''. 
     35   * В настоящее время необходимы голоса двух разработчиков, чтобы патч был применён к родительской ветке (либо к стабильной ветке, либо к "master"). Если кто-либо вторым добавляет свой голос, то ему необходимо также добавить ключевое слово '''approved''' (утверждено) к списку существующих ключевых слов. Ключевое слово '''review''' должно быть убрано. 
     36   * Голосование всегда производится за последний патч в ветке. 
    3637   * В ходе обсуждения в тикете либо в ходе просмотра патчей разработчики могут убирать свои голоса из списка ключевых слов при возникновении каких-либо проблем. 
    3738 
     
    3940 
    4041   * Владелец (ответственный) тикета теперь может внести исправления (находящиеся в ветке {{{XYZ-<здесь_некоторое_описание>}}}) в родительскую ветку.  Если исправления были багфиксингом, то они должны примениться к стабильной ветке (mc-X.Y) 
    41    * В этом случае (багфиксинг на стабильную ветку) изменения считаются утерянными относительно ветки 'master'. Пожалуйста, '''НИКОГДА(!!!)''' не производите перебазирование (rebase) стабильного бранча относительно "master" чтобы объединить исправления! 
    42    * Обязательно в первом описании коммита указывайте номер тикета относительно которого был создан бранч, примерно так Ticket #123 (ticket summary) 
     42   * В этом случае (исправление на стабильную ветку) изменения считаются утерянными относительно ветки 'master'. Пожалуйста, '''НИКОГДА(!!!)''' не производите перебазирование (rebase) стабильного бранча относительно "master", чтобы объединить исправления! 
     43   * Обязательно в первом описании коммита указывайте номер тикета, относительно которого был создан бранч, примерно так: 
     44{{{ 
     45Ticket #123 (ticket summary) 
     46}}} 
    4347 
    44    '''Перед внесением изменений в обязательном порядке нужно перебазировать (rebase) свою ветку относительно родительской.''' 
     48'''Перед внесением изменений в обязательном порядке нужно перебазировать (rebase) свою ветку относительно родительской'''. 
    4549 
    4650   Пример слияния с master: 
    4751{{{ 
    4852  $ git checkout 123_branch_name     // переключение на нужную ветвь 
    49   $ git rebase origin master         // перебазирование нужной ветви относительно "master" 
     53  $ git rebase origin/master         // перебазирование нужной ветви относительно "master" 
    5054  $ git checkout master              // переключение на ветвь "master" 
    5155  $ git pull                         // обновление текущей ветви 
     
    5559  $ git branch -d 123_branch_name    // локальное удаление ветви 123_branch_name на клиентском хосте    
    5660}}} 
    57    * Если слияние "merge" произошло с ошибкой (из-за конфликтов), то необходимо вручную исправить конфликты и продолжить слияние (merge) 
    58    * Теперь вы можете просто закрыть тикет с причиной закрытия "Fixed" (исправлено), необходимо также добавить ключевое слово '''commited-master''' если слияние происходило с ветвью "master". Состояние тикета поменяется на "testing" 
    59    * после этого перейдите на страницу http://midnight-commander.org/timeline и скопируйте от туда ссылку на результат слияния и добавьте ее в последнем комментарии примерно так 
     61   * Если слияние "merge" произошло с ошибкой (из-за конфликтов), то необходимо вручную исправить конфликты и продолжить слияние (merge). 
     62   * Теперь вы можете просто закрыть тикет с причиной закрытия "Fixed" (исправлено), необходимо также добавить ключевое слово '''commited-master''', если слияние происходило с ветвью "master". Состояние тикета поменяется на "testing". 
     63   * После этого перейдите на страницу http://midnight-commander.org/timeline, скопируйте оттуда ссылку на результат слияния и добавьте ее в последнем комментарии примерно так: 
    6064{{{ 
    6165Fixed: Changeset [http://midnight-commander.org/changeset/f8a487de01fda23370deb4efcdf6e4182c98e827 f8a487de01fda23370deb4efcdf6e4182c98e827] 
     
    6569Fixed: changeset:f8a487de01fda23370deb4efcdf6e4182c98e827 
    6670}}} 
    67    * после некоторого периода тестирования билет будет закрыт окончательно тикет-админом. 
     71   * после некоторого периода тестирования тикет будет закрыт окончательно тикет-админом. 
    6872 
    69 Если Вы не знакомы с git - пожалуйста, ознакомьтесь с нашим небольшим [wiki:ru/GitGuideLines руководством по git] 
    70  
     73Если Вы не знакомы с git, пожалуйста, ознакомьтесь с нашим небольшим [wiki:ru/GitGuideLines руководством по git].