Skip to content

Releases

Релиз v1.0.1 — улучшения в компрессии файлов и подготовка к публикации

Choose a tag to compare

@DFofanov DFofanov released this 05 Nov 09:49

Краткое описание
В этом релизе сосредоточены улучшения функциональности компрессии изображений и PDF, рефакторинг модулей конфигурации и логирования, добавлена и расширена поддержка контейнерной упаковки, а также дополнена документация и тесты для ключевых компонентов.


Что сделано (основные изменения)

  • Компрессоры:
    • Обновлён компрессор изображений (internal/infrastructure/compressors/image_compressor.go) — улучшена обработка форматов и параметры качества для лучшего соотношения сжатие/качество.
    • Добавлена поддержка нескольких реализаций компрессора PDF (pdfcpu_compressor.go, unipdf_compressor.go) — реализованы альтернативные стратегии сжатия для разных типов PDF (сканированные страницы, текстовые PDF).
  • Бизнес-логика и usecase:
    • Упорядочены и расширены usecase'ы для пакетной обработки: compress_images.go, compress_pdf.go, compress_directory.go, process_all_files.go, process_pdfs.go. Это улучшает модульность и позволяет запускать отдельные сценарии обработки.
  • Интерфейсы и CLI/TUI:
    • Контроллер командной строки (interface/controllers/cli_controller.go) дополнен новыми флагами конфигурации и управления режимами обработки.
    • Добавлен адаптер для консольного интерфейса (presentation/tui/manager.go, presentation/tui/logger_adapter.go) для удобного логирования и управления прогрессом в интерактивном режиме.
  • Конфигурация и репозитории:
    • Централизована работа с конфигурацией (internal/infrastructure/config/repository.go, internal/infrastructure/repositories/config_repository.go) — поддержка config.yaml и config.yaml.example.
    • Репозитории для файловой системы (filesystem_repository.go) и конфигурации улучшены для более предсказуемой обработки ошибок и логирования.
  • Логирование:
    • Добавлен логгер для файлов (internal/infrastructure/logging/file_logger.go) и улучшена интеграция с TUI — логирование стало более детализированным и удобным для отладки.
  • Сборка и развёртывание:
    • Обновлены артефакты для контейнеризации: Dockerfile, docker-compose.yml — теперь проще собирать и запускать сервис в контейнере.
    • Скрипты релиза и вспомогательные скрипты: scripts/release-* и gitea-hooks/ для автоматизации публикации и интеграции с Gitea.
  • Тесты и качество:
    • Добавлены/обновлены модульные тесты для сущностей конфигурации и PDF (internal/domain/entities/config_test.go, internal/domain/entities/pdf_test.go) для предотвращения регрессий.
  • Документация:
    • Обновлён README.md и добавлены инструкции в test/README.md и gitea-hooks/README.md. Файл VERSION содержит текущую версию релиза.

Улучшения и пояснения

  • Надёжность: улучшены проверки ошибок в репозиториях и конфигурации, чтобы избежать падений при некорректных параметрах.
  • Модульность: выделение usecase-ов упростило добавление новых режимов обработки и тестирование.
  • Контейнеризация: наличие Dockerfile и docker-compose.yml упрощает тестирование в изолированной среде и развёртывание на серверах/CI.
  • Тестовое покрытие: добавлены тесты для ключевых модулей, что уменьшает риск регрессий в будущих изменениях.