Глава 23 · Часть II · Планируем SafeSort на GitHub

Создаём Issues и добавляем в Project

Каждая часть SafeSort формулируется как Issue до того, как написана хоть одна строка кода.

SafeSort · Часть 2 из 6Планирование

Прежде чем писать код, каждая часть SafeSort формулируется как Issue — запись, описывающая задачу, до того как появилась хоть одна строка кода.

Часть IssueПример для SafeSort
Title«Add directory scanner»
ProblemSafeSort не умеет находить файлы в каталоге
Expected outcomescan() обходит каталог и возвращает список FileInfo
Acceptance criteriaчек-лист: принимает Path, исключает .git/.venv, не следует по символическим ссылкам, покрыт тестами

Все 14 задач SafeSort действительно оформлены так в реальном репозитории — не отредактированы задним числом, а созданы как формулировка задачи до начала работы над ней:

Список Issues репозитория Cartesian-School/safesort: 14 закрытых задач, каждая — от scanner до релиза
Настоящие 14 Issues репозитория 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

Issue созданв репозиторииДобавлен вProjectстатус по умолчанию —BacklogГотов к работестатус меняется наReady
Issue существует в репозитории независимо от Project; добавление в Project — отдельное, необязательное действие

Все 14 Issues репозитория SafeSort действительно добавлены в настоящий Project «SafeSort — первый релиз» (виден только участникам организации, как и отмечено в начале этой части) — это видно на скриншотах Board и Table в следующих разделах этой части главы.

Официальная документация
About issues
Creating an issue
Adding items to your project
Перевод и учебная адаптация официальной документации GitHub. Исходный материал — CC BY 4.0.

Коротко

  • Issue формулирует задачу — что нужно сделать и как проверить результат — до того, как написан код.
  • У каждого Issue SafeSort есть Title, Problem, Expected outcome и чек-лист Acceptance criteria.
  • Issue существует в репозитории независимо от Project; добавление в Project — отдельный шаг.