Спасибо за интерес к проекту. Любой вклад приветствуется: код, документация, баг-репорты, идеи.
- Новые функции: Issue с меткой
feature-request. Опишите задачу, предложите API или пример. - Улучшения: Issue с меткой
enhancement. Текущее и желаемое поведение, по возможности — патч или пример.
Актуальные приоритеты — в ROADMAP.md (сейчас фокус на веб и мобильных платформах).
Перед созданием отчета проверьте существующие Issues и последнюю версию SpritePro.
Шаблон отчета:
**Описание**
Кратко, что пошло не так.
**Шаги для воспроизведения**
1. …
2. …
**Ожидаемое / фактическое поведение**
…
**Минимальный код**
```python
import spritePro as s
# минимальный воспроизводимый примерОкружение
- OS:
- Python:
- SpritePro (pip show spritepro):
### Вклад в код
#### Окружение
1. Форк и клонирование:
```bash
git clone https://github.com/ВАШ_USERNAME/SpritePro.git
cd SpritePro
git remote add upstream https://github.com/NeoXider/SpritePro.git
-
Виртуальное окружение и установка:
python -m venv venv venv\Scripts\activate # Windows # или source venv/bin/activate # Linux/macOS pip install -e .
Зависимости заданы в
pyproject.toml(pygame). -
Pre-commit (если в репозитории есть
.pre-commit-config.yaml):pip install pre-commit pre-commit install
- Ветка от актуального
main:feature/краткое-имяилиfix/краткое-имя. - Изменения: следуйте стилю проекта, добавляйте/обновляйте документацию к новому API.
- Перед PR:
ruff check .и при необходимостиruff format .- Запуск демо (например
python demo.pyили нужное изspritePro/demoGames/), чтобы ничего не сломать.
- Pull Request: опишите изменения, привяжите Issue при наличии.
- PEP 8, типаннотации для публичного API.
- Длина строки: до 100–120 символов (или как в проекте).
- Публичные функции/классы: docstring (Google- или reStructuredText-стиль) с назначением, аргументами и возвращаемым значением.
- Без лишних комментариев в коде; пояснения — в docstring или в документации.
Пример документации метода:
def move(self, dx: float, dy: float) -> None:
"""Сдвигает объект на (dx, dy) в мировых координатах.
Args:
dx: смещение по X
dy: смещение по Y
"""Если в проекте появятся тесты (например, pytest в tests/), при добавлении новой функциональности по возможности добавляйте тесты.
- Новые возможности описываются в
docs/: новый файл или правка существующего (см. DOCUMENTATION_INDEX.md). - Структура раздела: краткое описание, быстрый старт (код), при необходимости — детали API и примеры.
- При добавлении раздела — ссылка из README или DOCUMENTATION_INDEX.
Issue с меткой translation, указание языка. Переводы документации в отдельные файлы или каталоги (например docs/en/) по договорённости в Issue.
Согласованы с ROADMAP.md:
- Веб (Pygbag): документация по сборке под браузер, совместимость API, шаблон проекта.
- Мобильные: сенсорный ввод, адаптивный UI, позже — нативный Android (p4a/Buildozer) при наличии запроса.
- Документация и примеры: туториалы, обновление курса мультиплеера, примеры под веб.
Остальные идеи (инвентарь, диалоги, квесты и т.д.) — по желанию и в Discussion/Issue.
- GitHub Issues — баги и предложения функций.
- GitHub Discussions — вопросы, идеи, обсуждение roadmap.
Участники упоминаются в релизах и при наличии — в CONTRIBUTORS.md. Ценится любой вклад: код, документация, баг-репорты, идеи, переводы.