Участие в разработке mGBA

mGBA - это проект с открытым исходным кодом, который приветствует вклад сообщества. Независимо от того, исправляете ли вы ошибки, добавляете функции, улучшаете документацию или помогаете с тестированием, ваш вклад ценен.

Способы участия

Вклад в код

  • Исправление ошибок: Исправление сообщённых ошибок или проблем
  • Новые функции: Реализация запрошенных функций или улучшений
  • Улучшения производительности: Оптимизация кода для лучшей производительности
  • Поддержка платформ: Добавление или улучшение поддержки конкретных платформ
  • Рефакторинг кода: Улучшение качества кода и поддерживаемости

Вклад без кода

  • Отчёты об ошибках: Сообщение об ошибках с подробной информацией
  • Запросы функций: Предложение новых функций или улучшений
  • Документация: Улучшение документации и руководств
  • Тестирование: Тестирование новых сборок и сообщение о проблемах
  • Переводы: Перевод интерфейса mGBA на другие языки

Рабочий процесс разработки

Форк и клонирование

  1. Сделайте форк репозитория mGBA на GitHub
  2. Клонируйте ваш форк локально:
git clone https://github.com/YOUR_USERNAME/mgba.git
cd mgba

Создание ветки

git checkout -b feature/your-feature-name
# или
git checkout -b fix/bug-description

Внесение изменений

  • Внесите ваши изменения в кодовую базу
  • Тщательно протестируйте ваши изменения
  • Следуйте стандартам кодирования и руководящим принципам стиля
  • Напишите или обновите тесты, если применимо

Коммит изменений

Напишите ясные, описательные сообщения коммитов:

git add .
git commit -m "Краткое описание изменений

Подробное объяснение того, что было изменено и почему."

Отправка и создание Pull Request

git push origin feature/your-feature-name

Затем создайте Pull Request на GitHub с:

  • Ясным описанием изменений
  • Ссылкой на связанные проблемы, если применимо
  • Информацией о тестировании
  • Скриншотами или примерами, если уместно

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

Стиль кода

  • Следуйте существующему стилю кода в кодовой базе
  • Используйте последовательные отступы (пробелы, а не табы)
  • Пишите ясный, самодокументируемый код
  • Добавляйте комментарии для сложной логики
  • Держите функции сфокусированными и краткими

Соглашения об именовании

  • Используйте описательные имена переменных и функций
  • Следуйте соглашениям об именовании C для кода C
  • Используйте camelCase для кода C++
  • Избегайте сокращений, если они не широко понятны

Тестирование

Перед отправкой pull request:

  • Протестируйте ваши изменения на нескольких платформах, если возможно
  • Убедитесь, что существующая функциональность всё ещё работает
  • Протестируйте граничные случаи и условия ошибок
  • Проверьте на утечки памяти или регрессии производительности
  • Протестируйте с различными играми и ROM

Сообщение об ошибках

При сообщении об ошибках включите:

  • Подробное описание проблемы
  • Шаги для воспроизведения проблемы
  • Ожидаемое vs. фактическое поведение
  • Информацию о системе (ОС, CPU, GPU, версия mGBA)
  • Информацию о ROM (название игры, регион, версия, если известна)
  • Сообщения об ошибках или логи, если доступны
  • Скриншоты или видео, если применимо

Запрос функций

При запросе функций:

  • Опишите функцию ясно и подробно
  • Объясните случай использования или мотивацию
  • Предоставьте примеры того, как это будет работать
  • Учтите сложность реализации
  • Проверьте, существуют ли уже похожие функции

Документация

Участие в документации:

  • Улучшайте существующую документацию для ясности
  • Добавляйте отсутствующую документацию для функций
  • Исправляйте ошибки или устаревшую информацию
  • Добавляйте примеры кода или учебные пособия
  • Переводите документацию на другие языки

Лицензия

Участвуя в разработке mGBA, вы соглашаетесь, что ваш вклад будет лицензирован под Mozilla Public License 2.0 (MPL 2.0), той же лицензией, что и сам mGBA.

Начать: Проверьте документацию Архитектура для понимания структуры кодовой базы mGBA перед внесением вклада в код.

Связанные статьи

Для получения дополнительной информации о разработке mGBA: