architect/_archive/2025-11-cleanup/templates/CONTRIBUTING.template.md

🤝 CONTRIBUTING - Руководство для контрибьюторов

Проект: {PROJECT_NAME}
Последнее обновление: {ДАТА}


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

Спасибо за интерес к проекту {PROJECT_NAME}! Мы рады любому вкладу.


🚀 Быстрый старт

1. Fork и clone

# Fork проекта на GitHub
# Затем клонировать

git clone https://github.com/YOUR_USERNAME/{PROJECT_NAME}.git
cd {PROJECT_NAME}

2. Настроить окружение

# Создать venv
python -m venv venv
source venv/bin/activate

# Установить зависимости
pip install -r requirements.txt
pip install -r requirements-dev.txt  # dev зависимости

# Настроить pre-commit hooks
pre-commit install

3. Создать ветку

git checkout -b feature/my-awesome-feature

4. Внести изменения

См. CODE-GUIDE.md для стандартов кодирования.

5. Тесты

# Запустить тесты
pytest

# С покрытием
pytest --cov=modules

# Coverage должен быть >= 70%

6. Коммит

git add .
git commit -m "feat: add awesome feature"

См. Формат коммитов ниже.

7. Push и PR

git push origin feature/my-awesome-feature

Откройте Pull Request на GitHub.


📋 ТИПЫ ВКЛАДОВ

🐛 Bug Reports

Как сообщить:
1. Проверить нет ли уже такого issue
2. Создать новый issue с шаблоном "Bug Report"
3. Описать:
- Что ожидалось
- Что произошло
- Как воспроизвести
- Версия проекта

✨ Feature Requests

Как предложить:
1. Создать issue с шаблоном "Feature Request"
2. Описать:
- Какую проблему решает
- Предлагаемое решение
- Альтернативы

📝 Документация

Что можно улучшить:
- Опечатки
- Неясные объяснения
- Новые примеры
- Переводы

💻 Код

Что приветствуется:
- Bug fixes
- Новые features (после обсуждения в issue)
- Рефакторинг
- Тесты
- Performance improvements


🔧 WORKFLOW

Git Workflow

main (защищён)
  │
  ├─ develop
  │    │
  │    ├─ feature/new-feature
  │    ├─ fix/bug-fix
  │    └─ refactor/code-improvement
  │
  └─ hotfix/critical-bug

Правила:
- main - production, только releases
- develop - разработка
- feature/* - новые фичи
- fix/* - bug fixes
- hotfix/* - критичные fixes для production

Pull Request процесс

  1. Создать PR из вашей ветки в develop
  2. Описание PR:
    - Что изменено
    - Почему
    - Как тестировать
    - Скриншоты (если UI)
  3. Code Review от мейнтейнеров
  4. CI проходит (тесты, linting)
  5. Merge в develop

📝 СТАНДАРТЫ

Формат коммитов

Conventional Commits:

<type>(<scope>): <subject>

<body>

<footer>

Types:
- feat: Новая функция
- fix: Исправление бага
- docs: Документация
- style: Форматирование (не меняет код)
- refactor: Рефакторинг
- test: Добавление тестов
- chore: Рутинные задачи

Примеры:

feat(auth): add OAuth2 login

Implemented OAuth2 login flow using Google provider.

Closes #123
fix(orders): correct total price calculation

Fixed bug where tax was not included in total.

Fixes #456
docs(readme): update installation instructions

Added troubleshooting section for common errors.

Code Style

Python:
- PEP 8
- Black formatter
- isort для imports
- Type hints обязательны
- Docstrings для функций

Проверка:

# Format
black modules/
isort modules/

# Lint
flake8 modules/
mypy modules/

Тесты

Требования:
- Новый код = новые тесты
- Coverage >= 70%
- Все тесты проходят

Структура:

def test_function_name_expected_behavior():
    """Test that function does X when Y"""
    # Arrange
    input_data = {...}

    # Act
    result = function(input_data)

    # Assert
    assert result == expected

🔍 CODE REVIEW

Что проверяем

Функциональность:
- [ ] Код работает как задумано
- [ ] Нет багов
- [ ] Edge cases обработаны

Качество:
- [ ] Читаемый код
- [ ] Нет дублирования
- [ ] Следует стандартам

Тесты:
- [ ] Новый код покрыт тестами
- [ ] Тесты проходят
- [ ] Coverage не упал

Документация:
- [ ] Docstrings добавлены
- [ ] README обновлён (если нужно)
- [ ] CHANGELOG обновлён

Как давать feedback

✅ Хорошо:

Предлагаю использовать list comprehension для читаемости:
`users = [u for u in all_users if u.is_active]`

❌ Плохо:

Этот код ужасен, переписывай!

📚 РЕСУРСЫ


❓ FAQ

Q: С чего начать если я новичок?
A: Смотрите issues с меткой good first issue.

Q: Как долго ждать review PR?
A: Обычно 1-3 дня.

Q: Нужно ли обсуждать feature перед реализацией?
A: Да, создайте issue для обсуждения.

Q: Какие ветки использовать?
A: feature/* для новых фич, fix/* для багов.


🏆 CONTRIBUTORS

Спасибо всем кто внёс вклад!


Спасибо за ваш вклад в {PROJECT_NAME}! 🎉