Files

3.4 KiB

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

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


1. Сообщение об ошибках и предложения (Issues)

Нам известно, что проект не идеален. Перед созданием нового issue:

  1. Проверьте существующие закрытые и открытые задачи, чтобы избежать дублирования.
  2. При сообщении об ошибке укажите:
    • Шаги для воспроизведения проблемы.
    • Ожидаемое и фактическое поведение.
    • Версию окружения (Python, ОС, браузер).
  3. При предложении новой функциональности опишите ее практическую ценность и сценарии использования.

2. Разработка и стандарты кода

Окружение

  • Стек: Python 3.14+, Django 6.0+, Poetry.
  • Фронтенд: Tailwind CSS, Alpine.js, HTMX (сборка описана в frontend-assembly/README.md).

Стандарты кодовой базы

  • Стиль Python: PEP8, Black, isort. Отступы 4 пробела, длина строки до 180-200 символов.
  • Комментарии: На русском языке, имена функций, классов и переменных — на английском.
  • Эмодзи: Избегайте использования эмодзи в кодовой базе, коммитах и документации.
  • Тестирование: Все изменения в логике бэкенда должны сопровождаться или покрываться тестами:
    python hypn0/manage.py test hypn0_site
    

3. Процесс подачи изменений (Pull Requests / Merge Requests)

  1. Сделайте форк репозитория и создайте отдельную ветку для задачи: git checkout -b feature/awesome-shape или git checkout -b fix/scoring-gravity.
  2. Внесите изменения, соблюдая стиль проекта.
  3. Убедитесь, что все автоматические тесты проходят успешно.
  4. Оформите краткий и понятный коммит.
  5. Откройте Pull Request с описанием сути изменений и ссылкой на связанный issue (если есть).

4. Лицензирование контрибуций

Отправляя код или документацию в репозиторий Hypn0, вы соглашаетесь с тем, что ваш вклад будет лицензирован на условиях общей лицензии проекта:

  • Исходный код: PolyForm Noncommercial License 1.0.0.
  • Сгенерированная графика: Creative Commons Zero 1.0 Universal (CC0 1.0).