Skip to content

Latest commit

 

History

History
131 lines (90 loc) · 5.81 KB

File metadata and controls

131 lines (90 loc) · 5.81 KB

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

Спасибо за интерес к проекту. Любой вклад приветствуется: код, документация, баг-репорты, идеи.

Как внести вклад

Идеи и предложения

  • Новые функции: 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
  1. Виртуальное окружение и установка:

    python -m venv venv
    venv\Scripts\activate   # Windows
    # или source venv/bin/activate  # Linux/macOS
    
    pip install -e .

    Зависимости заданы в pyproject.toml (pygame).

  2. Pre-commit (если в репозитории есть .pre-commit-config.yaml):

    pip install pre-commit
    pre-commit install

Процесс

  1. Ветка от актуального main: feature/краткое-имя или fix/краткое-имя.
  2. Изменения: следуйте стилю проекта, добавляйте/обновляйте документацию к новому API.
  3. Перед PR:
    • ruff check . и при необходимости ruff format .
    • Запуск демо (например python demo.py или нужное из spritePro/demoGames/), чтобы ничего не сломать.
  4. 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. Ценится любой вклад: код, документация, баг-репорты, идеи, переводы.


Полезные ссылки: Pygame, PEP 8, Git.