- Add PR checks workflow (tests, lint, security, commitlint) - Add release workflow (build, publish to Gitea, deploy docs) - Add pre-commit hooks (ruff, format, commitlint) - Add CONTRIBUTING.md with development guidelines - Add commitlint configuration - Rename master → main branch - Configure ruff, pytest, coverage in pyproject.toml
2.4 KiB
2.4 KiB
Contributing to kwork-api
Development Setup
# Clone repository
git clone https://git.much-data.ru/much-data/kwork-api.git
cd kwork-api
# Install UV (if not installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync --group dev
# Install pre-commit hooks
uv run pre-commit install
Branch Naming
feature/description— новые фичиfix/description— багфиксыdocs/description— документацияrefactor/description— рефакторинг
Commit Messages
Используем Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
feat— новая фичаfix— исправление багаdocs— документацияstyle— форматированиеrefactor— рефакторингtest— тестыchore— обслуживаниеci— CI/CD
Примеры:
feat(validation): add /api/validation/checktext endpoint
fix(auth): handle expired token error
docs(api): update client examples
Pre-commit Hooks
Автоматически запускаются перед коммитом:
- ruff check — линтинг с авто-исправлением
- ruff format — форматирование кода
- commitlint — проверка формата коммита
Перед push:
- pytest — запуск тестов
Pull Requests
- Создай ветку от
main - Вноси изменения с правильными коммитами
- Запушь ветку
- Создай PR в
main - Дождись прохождения CI
- После review — merge
CI/CD
PR Checks:
- ✅ Тесты с coverage
- ✅ Линтинг
- ✅ Форматирование
- ✅ Безопасность (secrets scan)
- ✅ Commitlint (PR title)
Release (merge в main):
- 📦 Сборка пакета
- 🚀 Публикация в Gitea Packages
- 📚 Деплой документации
Tag (v):*
- 🏷️ Создание релиза
- 📦 Публикация версии
Versioning
Используем Semantic Versioning:
MAJOR.MINOR.PATCH(например,1.2.3)- Теги:
v1.2.3
Для создания релиза:
git tag v1.2.3
git push origin v1.2.3