Участие в разработке mGBA
mGBA - это проект с открытым исходным кодом, который приветствует вклад сообщества. Независимо от того, исправляете ли вы ошибки, добавляете функции, улучшаете документацию или помогаете с тестированием, ваш вклад ценен.
Способы участия
Вклад в код
- Исправление ошибок: Исправление сообщённых ошибок или проблем
- Новые функции: Реализация запрошенных функций или улучшений
- Улучшения производительности: Оптимизация кода для лучшей производительности
- Поддержка платформ: Добавление или улучшение поддержки конкретных платформ
- Рефакторинг кода: Улучшение качества кода и поддерживаемости
Вклад без кода
- Отчёты об ошибках: Сообщение об ошибках с подробной информацией
- Запросы функций: Предложение новых функций или улучшений
- Документация: Улучшение документации и руководств
- Тестирование: Тестирование новых сборок и сообщение о проблемах
- Переводы: Перевод интерфейса mGBA на другие языки
Рабочий процесс разработки
Форк и клонирование
- Сделайте форк репозитория mGBA на GitHub
- Клонируйте ваш форк локально:
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:
- Сборка из исходников - Полное руководство по компиляции mGBA из исходного кода на разных платформах
- Обзор архитектуры - Понимание структуры кодовой базы mGBA, компонентов и принципов проектирования
- API скриптинга Lua - Документация API для понимания интерфейса скриптов
- Руководство по устранению неполадок - Решения распространённых проблем разработки и сборки