docs: add uv migration progress report
This commit is contained in:
99
docs/progress/uv-migration-2025-08-12.md
Normal file
99
docs/progress/uv-migration-2025-08-12.md
Normal file
@@ -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 <pkg> # Установка дополнительных пакетов
|
||||
```
|
||||
|
||||
## Преимущества 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
|
||||
⚠️ Требуется исправление длинных строк
|
||||
Reference in New Issue
Block a user