4.4 KiB
Executable File
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 rootmain.go) - NEW:
pkg/encoding/- Library package for encoding logic (moved fromencoding/) - NEW:
docs/- Centralized documentation with subdirectories:docs/phases/- Development phase documentationdocs/reference/- Technical reference materialsdocs/guides/- User guides and troubleshooting
- NEW:
scripts/- All helper and test scripts (moved from root) - NEW:
tests/- Test organization:tests/artifacts/- Test media filestests/logs/- Test output logstests/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:
Makefilewith targets:make build- Build the gwencoder binarymake clean- Remove build artifactsmake test- Run testsmake install- Install to GOPATH/binmake deps- Download dependenciesmake tidy- Tidy go.modmake 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/
- Phase docs →
Code Organization
- MOVED:
main.go→cmd/gwencoder/main.go - MOVED:
encoding/*.go→pkg/encoding/*.go - UPDATED: Import paths from
gwencoder/encodingtogwencoder/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:
- Build commands: Use
make buildinstead ofgo build - Binary path:
./build/gwencoderinstead of./gwencoder - Import paths:
gwencoder/pkg/encodinginstead ofgwencoder/encoding - 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 developmentPHASE2_IMPLEMENTATION.md- Core encoding featuresPHASE3_COMPLETE.md- Audio standardizationPHASE4_COMPLETE.md- Stream managementPHASE5_SUMMARY.md- Advanced featuresPHASE6_COMPLETE.md- Polish and optimization