Skip to content

Latest commit

 

History

History
123 lines (94 loc) · 7.03 KB

File metadata and controls

123 lines (94 loc) · 7.03 KB

Руководство по участию в проекте

Огромное спасибо за ваш интерес к нашему проекту! Мы приветствуем любой вклад, будь то исправление ошибок, добавление новых функций или улучшение документации.

Этот документ содержит набор рекомендаций, которые помогут вам легко и правильно внести свои изменения.

Начало работы

  1. Форкните репозиторий на GitHub.
  2. Склонируйте ваш форк на локальную машину:
    git clone https://github.com/method-hub/wp-file-system.git
  3. Установите все зависимости с помощью Composer:
    composer install

После этого настройте рабочее окружение для тестирования.

Настройка тестового окружения

Проект использует скрипт ./bin/install-wp-tests.sh, который устанавливает wordpress-test-lib для unit и integration тестов. Вам понадобится запущенный MySQL сервис на компьютере. Установите тестовое окружение wordpress-test-lib с помощью данной команды:

./bin/install-wp-tests.sh wordpress_test root [password] 127.0.0.1:[port]

Для E2E тестов проект использует Playwright и @wordpress/env. Для запуска сквозных тестов есть следующие команды:

composer.json/package.json

{
    "test:e2e": "npx playwright test",
    "test:ui": "npx playwright test --ui",
    "test:headed": "npx playwright test --headed"
}
  • test:e2e: Запуск E2E тестирования;
  • test:ui: Запуск E2E тестирования с открытым окном браузера;
  • test:headed: Запуск E2E тестирования с возможностью наблюдать интерактивное взаимодействие с сайтом.

Команды для управления контейнерами:

package.json

{
    "wp-env": "wp-env",
    "env:start": "wp-env start",
    "env:stop": "wp-env stop"
}
  • wp-env: CLI утилита по работе с тестовым окружением;
  • env:start: Запуск тестового окружения, базы данных и сайта;
  • env:stop: Остановка тестового окружения.

Вы можете использовать тестовую базу данных, которую поднимает при тестировании @wordpress/env для установки базы данных units и integrations тестов. Для этого сначала выполните команду env:start, а потом запустите скрипт установки wordpress-test-lib:

./bin/install-wp-tests.sh wordpress_test root password ['host']:['port']

Используя данный подход, вам больше не нужно разворачивать базу данных для модульных тестов локально.

Для получения дополнительной информации читайте официальную документацию: Playwright, wp-env.

Процесс внесения изменений (Workflow)

  1. Создайте новую ветку для вашей задачи из актуальной ветки develop. Пожалуйста, используйте осмысленные названия, например feature/add-new-button или fix/user-login-bug.
    git checkout -b feature/ваша-новая-фича
  2. Внесите свои изменения в код.
  3. Обязательно проверьте стиль кода. Наш проект использует PHP_CodeSniffer для поддержания единого стандарта.
    • Для проверки кода на наличие ошибок стиля выполните:
      composer lint
    • Для автоматического исправления большинства проблем с форматированием выполните:
      composer lint-fix
    Важно: Pull Request'ы с ошибками стиля кода не будут приняты.
  4. Сделайте коммит ваших изменений. Пишите четкие и информативные сообщения к коммитам.
  5. Отправьте (push) вашу ветку в ваш форк на GitHub.
  6. Создайте Pull Request в основной репозиторий проекта. В описании подробно опишите, какие изменения вы внесли и какую проблему они решают.

Стандарты кодирования

Проект использует стандарт PSR12.

Основной файл конфигурации .phpcs.xml.dist

Все правила форматирования и стиля кода для этого проекта определены в файле .phpcs.xml.dist. Этот файл является "контрактом" для всей команды и гарантирует, что весь код, попадающий в репозиторий, соответствует единому стандарту. Он используется нашими CI/CD-системами для автоматической проверки каждого Pull Request'а.

Локальное переопределение с помощью .phpcs.xml

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

Вы можете создать в корне проекта файл .phpcs.xml (он уже добавлен в .gitignore и не попадет в репозиторий). PHP_CodeSniffer автоматически обнаружит его и будет использовать вместо .phpcs.xml.dist.

Лицензия

Внося свой вклад в этот проект, вы соглашаетесь с тем, что ваши изменения будут распространяться под лицензией GNU General Public License v2.0 (or later), так же как и сам WordPress.