Коллеги, поясните пожалуйста, как разруливаются зависимые задачи при использовании PR ?
Поясню на примере. Есть 3 высокоуровневые задачи:
1) вывести на экран число 42
2) прочитать информацию из файла и записать в другой файл
3) прочитать информацию из файла и вывести её на экран.
Для реализации этих задач создаём базис, 2 низкоуровневые задачи
а) абстракция вывода на экран
б) аобстракция работы с файлами
Низкоуровневые задачи одинаково приоритетны для высокоуровневых и одинаково абстрактны чтобы, например, не иметь соблазна реализовать низкоуровневую задачу в рамках (ветке) высокоуровневой.
Реализуем низкоуровневые в своих ветках, пушим, создаём PR.
И... наступает ступор. Т.к. пока не пройдёт ревью и они не попадут в dev — мы не можем приступать к реализации ни одной из высокоуровнеых задач!
Создавать бранч высокоуровневой задачи от бранча низкоуровневой как-то неправильно. Да и невозможно в случае задачи-3, ей нужны обе низкоуровневые задачи одновременно.
Предположим, других задач сейчас больше нет.
Что делать ?
I) Сидеть сложа руки, пока не пройдёт ревью и dev станет актуальным ?
II) Сделать высокоуровневые задачи в своей локальной ветке. Затем перенести вручную файлы высокоуровневой задачи "на авось", в её бранч от старого dev. В таком случае проверить этот ручной перенос не получится. Даже простой build, не говоря про какие-то тесты.
III) Бранчеваться от "старого" dev, мержить "подвисшие" PR задачи в этот бранч ?
Для случаев II) и III) также непонятно как гарантировать правильную очередность слияний зависимых PR.