# Руководство по участию в проекте (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 символов. - **Комментарии:** На русском языке, имена функций, классов и переменных — на английском. - **Эмодзи:** Избегайте использования эмодзи в кодовой базе, коммитах и документации. - **Тестирование:** Все изменения в логике бэкенда должны сопровождаться или покрываться тестами: ```bash 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)**.