Разработка
Изменения в код JournalPHP предлагаются через pull request в репозиторий github.com/ADamCarraway/journalphp.
Порядок работы
- Сделайте fork репозитория.
- Разверните локальное окружение.
- Создайте ветку от
master:feature/short-description— новая функцияfix/issue-123— исправление ошибки
- Внесите изменения, отформатируйте код и прогоните тесты.
- Откройте pull request в ветку
master.
Задачи и известные ошибки — в GitHub Issues. Перед началом работы над крупной задачей обсудите её в issue.
Архитектура
Новый код следует соглашениям проекта: Actions, репозитории с интерфейсами, сервисы и DTO. Соглашения описаны в разделе Архитектура проекта.
Стиль кода
PHP форматируется Laravel Pint с конфигурацией из pint.json:
docker compose exec app composer pint # отформатировать
docker compose exec app composer pint:test # только проверитьVue-компоненты оформляются в стиле существующего кода в resources/js/.
Тесты
docker compose exec app php artisan test- Тесты находятся в
tests/Unit/иtests/Feature/ - Новая функциональность сопровождается тестами, исправление ошибки — тестом, который её воспроизводит
GitHub Actions запускает тесты для каждого push в master и каждого pull request в master.
Требования к pull request
- Фокус: один PR решает одну задачу
- Заголовок: конкретный, например
fix: reply notification is not sent to comment author - Связь с issue:
Closes #123, если есть связанный issue - Описание: зачем нужно изменение и как его проверить
- Тесты: новый код покрыт тестами, все тесты проходят
- Стиль:
composer pint:testпроходит без ошибок
Зависимости
При перезапуске контейнеров Composer- и npm-зависимости устанавливаются автоматически, если изменились composer.lock или package-lock.json. Установить их вручную:
docker compose exec app composer install
docker compose exec frontend npm installФоновые процессы
После изменений в коде задач и слушателей перезапустите воркеры очередей:
docker compose exec app php artisan horizon:terminateСостояние процессов контейнера app проверяется командами из раздела Решение проблем.
Нормы поведения
Участвуя в проекте, соблюдайте Нормы поведения.