Глава 23 · Часть II · Планируем SafeSort на GitHub
Создаём Issues и добавляем в Project
Каждая часть SafeSort формулируется как Issue до того, как написана хоть одна строка кода.
SafeSort · Часть 2 из 6Планирование
Прежде чем писать код, каждая часть SafeSort формулируется как Issue — запись, описывающая задачу, до того как появилась хоть одна строка кода.
| Часть Issue | Пример для SafeSort |
|---|---|
| Title | «Add directory scanner» |
| Problem | SafeSort не умеет находить файлы в каталоге |
| Expected outcome | scan() обходит каталог и возвращает список FileInfo |
| Acceptance criteria | чек-лист: принимает Path, исключает .git/.venv, не следует по символическим ссылкам, покрыт тестами |
Все 14 задач SafeSort действительно оформлены так в реальном репозитории — не отредактированы задним числом, а созданы как формулировка задачи до начала работы над ней:
Один Issue — не всегда один Pull Request
В репозитории SafeSort 9 из 14 Issues закрыты Pull Request — но не «каждый своим»: коллизии имён (Issue №6) оказались достаточно тесно связаны с планом перемещений (Issue №3), чтобы попасть в один PR №17; то же с манифестом и undo (Issues №7 и №8 — один PR №19). Остальные пять Issues (обработка ошибок файловой системы, настройки и логирование, тестовый набор, CI, подготовка релиза) не имеют собственного выделенного PR: эта работа вошла в код по мере реализации соответствующих модулей и была закрыта записью, объясняющей, где именно она оказалась — реальная история проекта, а не выдуманная ради красивой таблицы «14 Issues → 14 PR».
Issue добавляется в Project
Все 14 Issues репозитория SafeSort действительно добавлены в настоящий Project «SafeSort — первый релиз» (виден только участникам организации, как и отмечено в начале этой части) — это видно на скриншотах Board и Table в следующих разделах этой части главы.
Официальная документация
Перевод и учебная адаптация официальной документации GitHub. Исходный материал — CC BY 4.0.
Коротко
- Issue формулирует задачу — что нужно сделать и как проверить результат — до того, как написан код.
- У каждого Issue SafeSort есть Title, Problem, Expected outcome и чек-лист Acceptance criteria.
- Issue существует в репозитории независимо от Project; добавление в Project — отдельный шаг.