Add CHANGELOG.md for version tracking

This commit is contained in:
2026-02-19 22:27:22 +03:00
parent 1d23afd8d0
commit 6905196b8d
+139
View File
@@ -0,0 +1,139 @@
# Changelog
Все значимые изменения в проекте Telegram Archiver.
Формат ведётся в соответствии с [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/),
версии — по [Semantic Versioning](https://semver.org/lang/ru/).
---
## [Unreleased]
### Planned
- CLI тестирование с реальным Telegram каналом
- Интеграция с Hugo (экспорт в content/posts/)
- Dockerfile и docker-compose для деплоя
- Поддержка нескольких каналов одновременно
- Прогресс-бар при скачивании (tqdm)
---
## [1.0.0] — 2026-02-19
### Добавлено
#### Core Functionality
- **Архивация Telegram-каналов** в локальную файловую систему
- **Bundle-структура**: `<channel>/<message_id>/index.md + media`
- **Front-matter для Hugo**: `message_id`, `date`, `author`, `reply_to`, `repost_from`, `media_files`
- **Дедупликация по message_id**: пропуск уже скачанных постов
- **Обработка медиа**: фото, видео, документы, аудио, стикеры, GIF
- **Ограничение размера файла**: настраиваемый лимит (по умолчанию 200 MB)
- **Отчёт о больших файлах**: `2big2get.md` с ссылками на файлы > MAX_FILE_SIZE
- **Обработка репостов**: сохранение оригинального канала и message_id
- **Обработка ответов (reply-to)**: относительные ссылки на другие посты
#### Interfaces
- **FastAPI REST API**:
- `GET /health` — проверка здоровья
- `GET /` — информация об API
- `POST /archive` — запуск архивации
- `GET /docs` — Swagger UI документация
- **CLI интерфейс**:
- `--channel` / `-c`: username канала
- `--output-dir` / `-o`: папка для архива
- `--limit` / `-l`: лимит постов
- `--from-message-id` / `-f`: начать с этого ID
- `--force`: перескачать существующие
#### Configuration
- **`.env` конфигурация**: API_ID, API_HASH, PHONE, MAX_FILE_SIZE, OUTPUT_DIR, LOG_LEVEL
- **Pydantic Settings**: валидация credentials, type hints
- **Graceful startup**: сервер запускается даже без .env (с предупреждением)
#### Logging & Observability
- **Логирование в файл**: `YYYYMMDD-channel.log`
- **Логирование в консоль**: stdout с цветным выводом
- **OpenTelemetry ready**: поддержка tracing (отключено по умолчанию)
#### Development Tools
- **Virtual environment**: `uv venv` для создания
- **pyproject.toml**: полная метаданные проекта
- **Pre-commit hooks**: ruff, mypy, pre-commit-hooks
- **Тесты**: pytest для models и config
- **Конфигурация linting**: ruff, mypy, pytest в pyproject.toml
- **DEVELOPMENT.md**: гайд для разработчиков
### Изменено
- **config.py**: credentials сделаны опциональными для graceful startup
- **app/main.py**: улучшены сообщения об ошибках (503 с деталями)
- **.gitignore**: добавлены .venv/, .mypy_cache/, .pytest_cache/
### Исправлено
- Ошибка запуска сервера без .env файла
- Отсутствие валидации credentials до вызова API
- Missing imports при установке зависимостей
### Технические детали
#### Dependencies
```
fastapi>=0.109.0
uvicorn[standard]>=0.27.0
click>=8.1.7
telethon>=1.34.0
pydantic>=2.5.3
pydantic-settings>=2.1.0
python-dotenv>=1.0.0
pyyaml>=6.0.1
opentelemetry-api>=1.22.0
opentelemetry-sdk>=1.22.0
opentelemetry-instrumentation-fastapi>=0.43b0
httpx>=0.26.0
aiofiles>=23.2.1
```
#### Dev Dependencies
```
pytest>=8.0.0
pytest-asyncio>=0.23.0
pytest-cov>=4.1.0
ruff>=0.1.0
mypy>=1.8.0
pre-commit>=3.6.0
```
#### Testing
- Синтаксис: `python -m py_compile` (все файлы)
- Импорты: проверены в virtual environment
- FastAPI server: старт без .env
- Endpoints: `/health`, `/`, `/archive` протестированы
---
## [0.1.0] — 2026-02-19 (Initial Commit)
### Добавлено
- Первоначальная структура проекта
- Базовая реализация Telethon клиента
- Черновик FastAPI приложения
- README.md с описанием
---
## Типы изменений
- **Added** — новые функции
- **Changed** — изменения в существующих функциях
- **Deprecated** — скоро будут удалены
- **Removed** — удалённые функции
- **Fixed** — исправления ошибок
- **Security** — улучшения безопасности
---
## Ссылки
- [Репозиторий проекта](https://gitea.nixg.ru/estorozhenko/c7e.ru)
- [Документация](README.md)
- [Гайд для разработчиков](DEVELOPMENT.md)