4.0 KiB
4.0 KiB
Changelog
Все значимые изменения в проекте документируются в этом файле.
Формат основан на Keep a Changelog.
[0.2.0] - 2026-01-21
Добавлено
Core Module (apps.core)
-
Model Mixins (
mixins.py):TimestampMixin— автоматическиеcreated_at,updated_atUUIDPrimaryKeyMixin— UUID вместо auto-increment IDSoftDeleteMixin— мягкое удаление сis_deleted,deleted_atAuditMixin— отслеживаниеcreated_by,updated_byOrderableMixin— полеorderдля сортировкиStatusMixin— статусы draft/active/inactive/archivedSlugMixin— URL-friendly идентификаторы
-
Base Services (
services.py):BaseService— базовый CRUD сервисBaseReadOnlyService— только чтениеTransactionMixin— управление транзакциямиBulkOperationsMixin— массовые операции (bulk_create_chunked, bulk_update_or_create, bulk_delete, bulk_update_fields)QueryOptimizerMixin— декларативная оптимизация запросов (select_related, prefetch_related, only, defer)BackgroundJobService— управление фоновыми задачами
-
Base ViewSets (
viewsets.py):BaseViewSet— базовый CRUD ViewSet с пагинацией, фильтрацией, логированиемReadOnlyViewSet— только чтениеOwnerViewSet— фильтрация по владельцуBulkMixin— массовые операции через API (bulk_create, bulk_update, bulk_delete)
-
Background Job Tracking (
models.py):- Модель
BackgroundJobдля отслеживания Celery задач - API endpoints:
GET /api/v1/jobs/,GET /api/v1/jobs/{task_id}/ - Статусы: pending, started, success, failure, revoked, retry
- Прогресс выполнения и результаты
- Модель
-
Management Commands (
management/commands/base.py):BaseAppCommand— базовый класс для команд- Поддержка
--dry-run,--silent - Прогресс-бар, измерение времени, логирование
-
Прочее:
exceptions.py— кастомные исключения APIpermissions.py— базовые permissions (IsOwner, IsAdminOrReadOnly и др.)pagination.py— CursorPaginationfilters.py— BaseFilterSetcache.py— декораторы кэшированияtasks.py— BaseTask для Celerylogging.py— структурированное логированиеmiddleware.py— RequestIDMiddlewaresignals.py— SignalDispatcherresponse.py— унифицированные API ответыopenapi.py— декоратор для документации
Тестирование
- Переход на
factory_boy+faker(вместо model_bakery + uuid) - Фабрики:
UserFactory,ProfileFactory - 297 тестов
Конфигурация
- API versioning:
/api/v1/ - Отдельный
test.pyдля настроек тестов - Обновлён
pyproject.toml - Правила разработки в
.qoder/rules/main.md
Изменено
- Структура тестов перенесена в
/tests/apps/ - Удалён
conftest.py(pytest не используется) - Обновлены URLs с namespace
Удалено
ruff.toml(конфигурация перенесена в pyproject.toml)CI_CD_SUMMARY.mdcustom_test_runner.py
[0.1.0] - 2026-01-20
Добавлено
- Начальная структура проекта
- Приложение
userс JWT аутентификацией - Базовые модели User и Profile
- Docker конфигурация
- Pre-commit hooks