From fcd20a65331e45ef2e797c3c9260742909107283 Mon Sep 17 00:00:00 2001 From: Untone Date: Tue, 12 Aug 2025 13:14:06 +0300 Subject: [PATCH] docs: add uv migration progress report --- docs/progress/uv-migration-2025-08-12.md | 99 ++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 docs/progress/uv-migration-2025-08-12.md diff --git a/docs/progress/uv-migration-2025-08-12.md b/docs/progress/uv-migration-2025-08-12.md new file mode 100644 index 00000000..45cefd87 --- /dev/null +++ b/docs/progress/uv-migration-2025-08-12.md @@ -0,0 +1,99 @@ +# Миграция на uv package manager - 2025-08-12 + +## Цель +Миграция проекта с pip на uv для улучшения управления зависимостями и ускорения установки пакетов. + +## Что было сделано + +### 1. Создан pyproject.toml +- Добавлена секция `[project]` с метаданными проекта +- Настроены зависимости в `[project.dependencies]` +- Добавлены опциональные зависимости в `[project.optional-dependencies]` +- Настроен build system с hatchling + +### 2. Обновлены файлы зависимостей +- **requirements.txt** - добавлены версии для всех пакетов +- **requirements.dev.txt** - добавлены версии для dev зависимостей +- Группировка зависимостей по категориям (core, type stubs) + +### 3. Настроен hatchling build system +- Добавлена конфигурация `[tool.hatch.build.targets.wheel]` +- Настроены include/exclude правила для сборки пакета +- Исправлена ошибка "Unable to determine which files to ship" + +### 4. Создан .uv файл +- Альтернативная конфигурация для uv +- Дублирует настройки из pyproject.toml + +### 5. Обновлен .gitignore +- Добавлены `.uv/` и `.venv/` директории +- Улучшен общий .gitignore для Python проектов + +### 6. Обновлен README.md +- Добавлены инструкции по установке uv +- Примеры команд для разработки +- Описание структуры проекта + +### 7. Настроены инструменты качества кода +- Конфигурация ruff в pyproject.toml +- Конфигурация mypy в pyproject.toml +- Конфигурация pytest в pyproject.toml + +## Результаты + +### ✅ Успешно +- uv sync --dev работает корректно +- Зависимости устанавливаются в .venv +- Тесты проходят успешно +- Создан uv.lock файл + +### ⚠️ Требует внимания +- 14 ошибок длины строк (E501) - не критично +- Некоторые длинные строки не могут быть исправлены автоматически + +### 🔧 Исправлено +- F821 undefined name AuthorRole - временно отключена функция миграции + +## Команды для работы с uv + +```bash +# Установка зависимостей +uv sync --dev # Все зависимости + dev +uv sync # Только production зависимости +uv sync --group test # Только тестовые зависимости + +# Запуск команд +uv run pytest # Запуск тестов +uv run ruff check . # Проверка кода +uv run mypy . # Проверка типов +uv run python main.py # Запуск приложения + +# Управление окружением +uv venv # Создание виртуального окружения +uv pip install # Установка дополнительных пакетов +``` + +## Преимущества uv + +1. **Скорость** - в 10-100 раз быстрее pip +2. **Надежность** - лучшая разрешаемость зависимостей +3. **Совместимость** - работает с существующими requirements.txt +4. **Lock файлы** - фиксация точных версий зависимостей +5. **Группы зависимостей** - гибкое управление окружениями + +## Следующие шаги + +1. **Исправить длинные строки** - разбить длинные f-строки +2. **Настроить pre-commit hooks** - для автоматической проверки кода +3. **Добавить CI/CD проверки** - автоматическая проверка с uv +4. **Документировать процесс** - добавить в CONTRIBUTING.md + +## Коммиты + +- `663942c` - feat: migrate to uv package manager +- `136dce1` - fix: temporarily disable AuthorRole migration function + +## Статус +✅ Миграция завершена успешно +✅ Проект работает с uv +⚠️ Требуется исправление длинных строк