jpath.ru icon indicating copy to clipboard operation
jpath.ru copied to clipboard

Workflow по Pull Request в ядро

Open b2z opened this issue 7 years ago • 8 comments

Обсудили с @Septdir. Вырисовывается такой вариант:

  • делается PR в наш форк репозиторий (fork) Joomla! CMS
  • как только все вопросы улажены (оформлен текст PR, протестировано), то мерджим в отдельную ветку
  • далее эту ветку проталкиваем как PR в основной репозиторий (upstream) Joomla! CMS, но уже с английским описанием https://help.github.com/articles/creating-a-pull-request-from-a-fork/
  • если необходимо внести изменения, то они вносятся в ветку нашего форк репозитория Joomla! CMS

b2z avatar Oct 29 '18 07:10 b2z

Начинаю тестировать!

Создание форка

Если у вас нет форка joomla/joomla-cms то можно сделать форк JoomlaRu/joomla-cms Если у вас уже есть форк joomla/joomla-cms, то еще одни форк делать не нужно, да и не получиться.

Septdir avatar Oct 29 '18 14:10 Septdir

Код PR

Все тоже самое что в Joomla можно прям с офф доки скопировать, но добавить строку
Не забудьте сделать новую ветку перед началом работы над PR

Создание самого PR

Схема так же. Самое важное выбрать правильную ветку для сравнения JoomlaRu/joomla-cms Если форк делался с JoomlaRu/joomla-cms то она будет по умолчанию.
Иначе можно как я вчера отправить PR в Joomla

pr-1 pr-2

Septdir avatar Oct 29 '18 14:10 Septdir

Блокируем ветки!

Самое главное заблокировать ветки Если ветка не заблокирована то PR можно будет мерждить в ветку staging А нам этого не нужно. pr-m-1

Поэтому блокируем ветку. Уже давно искал как просто полностью заблокировать merge в ветку, но не нашел. Поэтому вот такой вариант. pr-m-2 И получаем вот такую блокировку pr-m-3

Septdir avatar Oct 29 '18 14:10 Septdir

Создаем отдельную ветку для PR

Создаем новую ветку. С staging все просто. А вот если надо с другой ветки то тут либо через локальную репу + команду

git checkout -b {NEW_branch_name} {SOURCE_branch_name}
git push origin {NEW_branch_name}

Либо через Github Desktop

Либо поменять в настройках ветку по умолчанию и тогда можно будет сделать прямо на github.

Именовать предлагаю по номеру pr к примеру path-23, где 23 id PR

Septdir avatar Oct 29 '18 15:10 Septdir

Меняем ветку

После создания ветки меняем ветку в PR pr-m-4

И и тогда PR можно мерджить.

pr-m-5

Septdir avatar Oct 29 '18 15:10 Septdir

Остаются тесты Travis CI и appveyor то не проблема, я конечно не спец, но в крайнем случае настроить смогу. А вот drone лично я ни разу не настаивал. И Human тест нужен.

Может с кем нибудь из Joomla посоветоваться?
_Цель у нас благая, глядишь подсобят, если не делом то хоть советом и гайдами =)

Septdir avatar Oct 29 '18 15:10 Septdir

Так, немного сумбурно, но в целом идея понятна. Нормально доку сделаем и будет гуд.

Я только вот что не понял - если необходимо внести изменения, то они вносятся в ветку нашего форк репозитория Joomla! CMS. Это точно будет работать?

b2z avatar Oct 29 '18 20:10 b2z

Насчет сумбурно.

Согласен полностью. Пока это скорее не более чем заметки, причем вторая часть вообще касается только тех кто будет модерировать.

Так, что наверное надо будет 2 руководства сделать.

Насчёт изменений.

Тут все работает как со стандартными PR.

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

Если же он или кто либо еще хочет сделать изменении после того мы создали PR в оригинальный репозиторий то это делается через PR в созданную нами ветку.

Вот пример PR с PR внутри. https://github.com/joomla/joomla-cms/pull/20229

К тому же если исправления мелкие, ну типа пропущенного пробела или просто доработки, то мы можем и сами это сделать в ново созданной ветки которая связана с PR. Заодно и человеку подсобим,


Завтра попробую сделать чтобы сообщения об успешном тестировании можно было прямо из патч тестера отправлять.

Если получиться можно будет PR сделать чтобы эту функцию добавили, если сочтут нужной конечно. А пока плагин сделать.


P.S Если дело пойдет, то можно будет весь этот процесс с созданием веток и PR в оригинал автоматизировать. Вплоть до такого.

В админе нажал на одну копку: Create Branch (сохраняем название исконной ветки в переменной) > Merge PR (в новую ветку) > Create PR(в Joomla/joomla-cms можно через трайслейт прогнать, потом поправить)
Насчет создания PR в Joomla не уверен но судя по доке можно*

Septdir avatar Oct 29 '18 20:10 Septdir