Files
gwutilz/gwencoder/CHANGELOG.md
2026-03-23 15:48:34 -07:00

4.4 KiB
Executable File

Changelog

All notable changes to the GWEncoder project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

3.0.0 - 2025-12-01

Changed - Major Repository Reorganization

Complete restructuring of the project for better maintainability and standard Go project layout:

Directory Structure

  • NEW: cmd/gwencoder/ - Main application entry point (moved from root main.go)
  • NEW: pkg/encoding/ - Library package for encoding logic (moved from encoding/)
  • NEW: docs/ - Centralized documentation with subdirectories:
    • docs/phases/ - Development phase documentation
    • docs/reference/ - Technical reference materials
    • docs/guides/ - User guides and troubleshooting
  • NEW: scripts/ - All helper and test scripts (moved from root)
  • NEW: tests/ - Test organization:
    • tests/artifacts/ - Test media files
    • tests/logs/ - Test output logs
    • tests/outputs/ - Encoded test outputs
  • NEW: integrations/ - External tool integrations (Tdarr)
  • NEW: logs/ - Runtime logs and statistics (git-ignored)
  • NEW: build/ - Compiled binaries (git-ignored)
  • NEW: .archive/ - Old binaries preserved for reference (git-ignored)

Build System

  • ADDED: Makefile with targets:
    • make build - Build the gwencoder binary
    • make clean - Remove build artifacts
    • make test - Run tests
    • make install - Install to GOPATH/bin
    • make deps - Download dependencies
    • make tidy - Tidy go.mod
    • make help - Show available targets
  • ADDED: .gitignore - Comprehensive exclusion rules for:
    • Binaries and build artifacts
    • Runtime logs and statistics
    • Test outputs and large media files
    • IDE and editor files
    • Temporary files

Documentation

  • UPDATED: README.md - Complete rewrite with:
    • Project structure overview
    • Updated build instructions using Makefile
    • Updated command examples with build/ prefix
    • Quick start guide
    • Development workflow
  • ADDED: docs/PROJECT_STRUCTURE.md - Detailed structure documentation
  • MOVED: All markdown documentation organized by category:
    • Phase docs → docs/phases/
    • Reference docs → docs/reference/
    • Guides → docs/guides/

Code Organization

  • MOVED: main.gocmd/gwencoder/main.go
  • MOVED: encoding/*.gopkg/encoding/*.go
  • UPDATED: Import paths from gwencoder/encoding to gwencoder/pkg/encoding
  • UPDATED: Test scripts to reference new directory structure

Script Updates

  • UPDATED: scripts/run_tests.sh - Uses ../tests/artifacts/ and ../tests/logs/
  • UPDATED: All test scripts to use new directory paths

Added

  • Makefile for streamlined build process
  • .gitignore with comprehensive exclusion rules
  • .gitkeep files to preserve empty directories in git
  • PROJECT_STRUCTURE.md documentation
  • Organized documentation hierarchy

Improved

  • Discoverability: Files grouped by purpose and function
  • Maintainability: Clear separation of source, docs, tests, and scripts
  • CI/CD Ready: Standard Go project layout for automated builds
  • Git Hygiene: Proper exclusion of binaries, logs, and artifacts
  • Documentation: Categorized and easier to navigate
  • Development Experience: Familiar structure for Go developers

Migration Notes

Projects using gwencoder should update:

  1. Build commands: Use make build instead of go build
  2. Binary path: ./build/gwencoder instead of ./gwencoder
  3. Import paths: gwencoder/pkg/encoding instead of gwencoder/encoding
  4. Documentation: Check docs/ directory for all documentation

Technical Details

  • No breaking changes to CLI interface or encoding functionality
  • Import path updates are internal only (for contributors)
  • All functionality preserved from previous versions
  • Binary output and encoding behavior unchanged

[2.x] - Previous Versions

See individual phase documentation in docs/phases/ for historical development notes:

  • PHASE1_COMPLETE.md - Initial development
  • PHASE2_IMPLEMENTATION.md - Core encoding features
  • PHASE3_COMPLETE.md - Audio standardization
  • PHASE4_COMPLETE.md - Stream management
  • PHASE5_SUMMARY.md - Advanced features
  • PHASE6_COMPLETE.md - Polish and optimization