Docker Compose v2 no longer requires the version field and shows warnings.
Removes version: '3.8' from both docker-compose.yml and docker-compose.integration.yml
for cleaner configuration.
Implements complete integration test suite that validates the entire
video processing system in a containerized environment.
## Core Features
- **Video Processing Pipeline Tests**: Complete E2E validation including
encoding, thumbnails, sprites, and metadata extraction
- **Procrastinate Worker Integration**: Async job processing, queue
management, and error handling with version compatibility
- **Database Migration Testing**: Schema creation, version compatibility,
and production-like migration workflows
- **Docker Orchestration**: Dedicated test environment with PostgreSQL,
workers, and proper service dependencies
## Test Infrastructure
- **43 integration test cases** covering all major functionality
- **Containerized test environment** isolated from development
- **Automated CI/CD pipeline** with GitHub Actions
- **Performance benchmarking** and resource usage validation
- **Comprehensive error scenarios** and edge case handling
## Developer Tools
- `./scripts/run-integration-tests.sh` - Full-featured test runner
- `Makefile` - Simplified commands for common tasks
- `docker-compose.integration.yml` - Dedicated test environment
- GitHub Actions workflow with test matrix and artifact upload
## Test Coverage
- Multi-format video encoding (MP4, WebM, OGV)
- Quality preset validation (low, medium, high, ultra)
- Async job submission and processing
- Worker version compatibility (Procrastinate 2.x/3.x)
- Database schema migrations and rollbacks
- Concurrent processing scenarios
- Performance benchmarks and timeouts
Files Added:
- tests/integration/ - Complete test suite with fixtures
- docker-compose.integration.yml - Test environment configuration
- scripts/run-integration-tests.sh - Test runner with advanced options
- .github/workflows/integration-tests.yml - CI/CD pipeline
- Makefile - Development workflow automation
- Enhanced pyproject.toml with integration test dependencies
Usage:
```bash
make test-integration # Run all integration tests
./scripts/run-integration-tests.sh -v # Verbose output
./scripts/run-integration-tests.sh -k # Keep containers for debugging
make docker-test # Clean Docker test run
```
Redis was included but not actually used by the video processor.
Only PostgreSQL is needed for Procrastinate job queue functionality.
- Remove redis service from docker-compose.yml
- Remove Redis dependencies from app and demo services
- Update README to reflect simplified service architecture
- Add v0.2.0 changelog with Procrastinate 3.x migration and Docker support
- Include Docker Quick Start section with service descriptions
- Add new examples (docker_demo.py, web_demo.py) to examples table
- Update test coverage section reflecting 43 passing tests
- Highlight new features: compatibility layer, migration utilities, Docker environment
Core Features:
- 360° video detection via metadata, aspect ratio, and filename patterns
- Automatic projection type identification (equirectangular, cubemap, etc.)
- 360° thumbnail generation with multiple viewing angles (front, back, up, down, stereographic)
- 360° sprite sheet creation for immersive video players
- Enhanced metadata extraction with spherical video information
Configuration:
- Optional 360° settings in ProcessorConfig with validation
- Bitrate multipliers for 360° content (typically 2.5x for quality)
- Configurable thumbnail projections and generation options
- Graceful degradation when optional dependencies unavailable
Architecture:
- Modular design with optional dependency detection
- Video360Detection class for intelligent 360° identification
- Thumbnail360Generator for perspective and stereographic projections
- Video360Utils for bitrate/resolution recommendations
- Extended VideoProcessingResult with 360° outputs
Testing & Examples:
- Comprehensive test suite covering detection, configuration, and integration
- Working example demonstrating 360° processing workflow
- Proper error handling and dependency validation
Backward Compatibility:
- All existing functionality preserved
- 360° features completely optional and isolated
- Clear error messages when dependencies missing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add video-360 extra for core 360° processing (py360convert, opencv, numpy, scipy)
- Add spatial-audio extra for spatial audio processing (librosa, soundfile)
- Add metadata-360 extra for enhanced metadata extraction (exifread)
- Add video-360-full extra for complete 360° feature set
- Update README with installation options and feature documentation
- Maintain backward compatibility with existing basic installation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
✨ Features:
- Multi-format encoding (MP4, WebM, OGV) with two-pass encoding
- Professional quality presets (Low, Medium, High, Ultra)
- Thumbnail generation and seekbar sprite creation
- Background processing with Procrastinate integration
- Type-safe configuration with Pydantic V2
- Modern Python tooling (uv, ruff, pytest)
- Comprehensive test suite and documentation
🛠️ Tech Stack:
- Python 3.11+ with full type hints
- FFmpeg integration via ffmpeg-python
- msprites2 fork for professional sprite generation
- Procrastinate for scalable background tasks
- Storage abstraction layer (local + future S3)
📚 Includes examples, API documentation, and development guides
🚀 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>