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

6.4 KiB
Executable File

Repository Reorganization Reference

This document provides a quick reference for the file reorganization completed on 2025-12-01.

What Moved Where

Source Code

Old Location New Location Notes
main.go cmd/gwencoder/main.go Main application entry point
encoding/audio.go pkg/encoding/audio.go Audio processing package
encoding/av1.go pkg/encoding/av1.go AV1 codec handling
encoding/streams.go pkg/encoding/streams.go Stream management

Documentation

Old Location New Location Category
PHASE1_COMPLETE.md docs/phases/PHASE1_COMPLETE.md Development history
PHASE2_IMPLEMENTATION.md docs/phases/PHASE2_IMPLEMENTATION.md Development history
PHASE3_COMPLETE.md docs/phases/PHASE3_COMPLETE.md Development history
PHASE3_PLAN.md docs/phases/PHASE3_PLAN.md Development history
PHASE4_COMPLETE.md docs/phases/PHASE4_COMPLETE.md Development history
PHASE5_PROGRESS.md docs/phases/PHASE5_PROGRESS.md Development history
PHASE5_SUMMARY.md docs/phases/PHASE5_SUMMARY.md Development history
PHASE5_TESTING_PLAN.md docs/phases/PHASE5_TESTING_PLAN.md Development history
PHASE6_COMPLETE.md docs/phases/PHASE6_COMPLETE.md Development history
PHASE_OVERVIEW.md docs/phases/PHASE_OVERVIEW.md Development history
PLAN_UPDATES.md docs/phases/PLAN_UPDATES.md Development history
TEST_RESULTS.md docs/phases/TEST_RESULTS.md Development history
TEST_RESULTS_PHASE2.md docs/phases/TEST_RESULTS_PHASE2.md Development history
CODEC_EXTENSIBILITY.md docs/reference/CODEC_EXTENSIBILITY.md Technical reference
DEFAULTS_COMPARISON.md docs/reference/DEFAULTS_COMPARISON.md Technical reference
DEFAULT_TRANSCODE_BEHAVIOR.md docs/reference/DEFAULT_TRANSCODE_BEHAVIOR.md Technical reference
FLAG_REFERENCE.md docs/reference/FLAG_REFERENCE.md Technical reference
TROUBLESHOOTING.md docs/guides/TROUBLESHOOTING.md User guide
MISSING_FEATURES.md docs/guides/MISSING_FEATURES.md User guide
TDARR_MERGE_PLAN.md docs/guides/TDARR_MERGE_PLAN.md Integration guide
nextstps.txt docs/nextstps.txt Development notes

Scripts

Old Location New Location Purpose
run_tests.sh scripts/run_tests.sh Main test runner
check_test_progress.sh scripts/check_test_progress.sh Test monitoring
phase5_test.sh scripts/phase5_test.sh Phase 5 tests
phase5_quick_test.sh scripts/phase5_quick_test.sh Quick tests
test_combinations.sh scripts/test_combinations.sh Combination tests

Test Artifacts

Old Location New Location Type
testvid.webm tests/artifacts/testvid.webm Test media
test1_output.log tests/logs/test1_output.log Test log
test2_output.log tests/logs/test2_output.log Test log
test3_output.log tests/logs/test3_output.log Test log
test_output.log tests/logs/test_output.log Test log
test_results.txt tests/logs/test_results.txt Test results
test1_defaults.log tests/logs/test1_defaults.log Test log
phase5_test_results.log tests/logs/phase5_test_results.log Test results
phase5_test_outputs/ tests/outputs/phase5_test_outputs/ Test outputs

Runtime Artifacts

Old Location New Location Type
gwencoder_errors.txt logs/gwencoder_errors.txt Runtime log
gwencoder_log.txt logs/gwencoder_log.txt Runtime log
gwencoder_stats.json logs/gwencoder_stats.json Statistics

Binaries

Old Location New Location Type
gwencoder (root) .archive/gwencoder Archived
main .archive/main Archived
old-gwcod .archive/old-gwcod Archived
(new builds) build/gwencoder Current

Integrations

Old Location New Location Purpose
tdarr/ integrations/tdarr/ Tdarr plugins

New Files

These files were created as part of the reorganization:

File Purpose
Makefile Build automation
.gitignore Git exclusion rules
docs/PROJECT_STRUCTURE.md Structure documentation
CHANGELOG.md Version history
REORGANIZATION.md This file
build/.gitkeep Preserve directory
logs/.gitkeep Preserve directory
tests/artifacts/.gitkeep Preserve directory
tests/logs/.gitkeep Preserve directory
tests/outputs/.gitkeep Preserve directory

Import Path Changes

For developers modifying the code:

Old import:

import "gwencoder/encoding"

New import:

import "gwencoder/pkg/encoding"

Build Command Changes

Old build process:

go build -o gwencoder
./gwencoder --help

New build process:

make build
./build/gwencoder --help

Test Script Changes

Scripts now reference new paths:

  • Test media: ../tests/artifacts/testvid.webm
  • Test results: ../tests/logs/test_results.txt
  • Run from: scripts/ directory

Benefits of This Reorganization

  1. Standard Go Layout: Follows Go community conventions
  2. Separation of Concerns: Clear boundaries between code, docs, tests, scripts
  3. Git Hygiene: Proper exclusion of binaries and artifacts
  4. Documentation: Organized by purpose (phases, reference, guides)
  5. Build System: Makefile simplifies common tasks
  6. CI/CD Ready: Standard structure for automated pipelines
  7. Maintainability: Easier to onboard new contributors
  8. Scalability: Room to add new packages and tools

Quick Reference Commands

# Build the project
make build

# Run tests
cd scripts && ./run_tests.sh

# Clean build artifacts
make clean

# Install to system
make install

# View help
make help

# Run the binary
./build/gwencoder --help

Rollback (If Needed)

If you need to revert to the old structure:

  1. Copy files from .archive/ back to root
  2. Use git checkout to restore original file locations
  3. Note: This is not recommended as the new structure is superior

Questions?

See docs/PROJECT_STRUCTURE.md for detailed documentation of the new layout.