EU-Utility/plugins/integration_tests/COMPATIBILITY_MATRIX.md

285 lines
8.3 KiB
Markdown

# EU-Utility Compatibility Matrix
This document provides a comprehensive compatibility matrix for EU-Utility across different platforms and configurations.
## Legend
| Symbol | Meaning |
|--------|---------|
| ✅ | Full Support |
| ⚠️ | Limited/Partial Support |
| ❌ | Not Supported |
| 🔧 | Requires Configuration |
| 📦 | Optional Dependency |
---
## Platform Support
| Feature | Windows 10/11 | Windows 7/8 | Ubuntu 22.04+ | macOS 13+ | WSL2 |
|---------|---------------|-------------|---------------|-----------|------|
| Core Application | ✅ | ⚠️ Limited | ✅ | ✅ | ⚠️ |
| Window Manager | ✅ | ✅ | ⚠️ | ❌ | ❌ |
| Global Hotkeys | ✅ | ✅ | ✅ | ✅ | ✅ |
| Native Hotkeys | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ |
| System Tray | ✅ | ✅ | ✅ | ✅ | ✅ |
| Notifications | ✅ | ✅ | ✅ | ✅ | ✅ |
---
## Feature Compatibility
### Window Management
| Feature | Windows | Linux | macOS |
|---------|---------|-------|-------|
| Find EU Window | ✅ | ❌ | ❌ |
| Window Focus Detection | ✅ | ❌ | ❌ |
| Bring to Front | ✅ | ❌ | ❌ |
| Window Position | ✅ | ❌ | ❌ |
| Screenshot (specific window) | ✅ | ⚠️ | ⚠️ |
### File Operations
| Feature | Windows | Linux | macOS |
|---------|---------|-------|-------|
| File Locking | ✅ portalocker | ✅ fcntl | ✅ fcntl |
| Long Paths (>260) | ✅* | ✅ | ✅ |
| Unicode Paths | ✅ | ✅ | ✅ |
| Atomic Writes | ✅ | ✅ | ✅ |
| Cross-Platform Paths | ✅ | ✅ | ✅ |
*Requires Windows 10 1607+ with registry modification
### OCR Engines
| Engine | Windows | Linux | macOS | GPU Support | Notes |
|--------|---------|-------|-------|-------------|-------|
| EasyOCR | ✅ | ✅ | ✅ | ✅ CUDA/MPS | Auto-downloads models |
| Tesseract | ✅ | ✅ | ✅ | ❌ | Requires installation |
| PaddleOCR | ✅ | ✅ | ✅ | ✅ | Chinese optimized |
| Windows OCR | ✅ | ❌ | ❌ | ⚠️ | Windows 10 1809+ |
### Network & APIs
| Feature | Windows | Linux | macOS | Dependencies |
|---------|---------|-------|-------|--------------|
| HTTP Client | ✅ | ✅ | ✅ | requests, urllib |
| HTTPS/SSL | ✅ | ✅ | ✅ | certifi |
| WebSocket | ✅ | ✅ | ✅ | websockets |
| MQTT | ✅ | ✅ | ✅ | paho-mqtt 📦 |
| gRPC | ⚠️ | ⚠️ | ⚠️ | grpcio 📦 |
### External Integrations
| Integration | Windows | Linux | macOS | Auth Required |
|-------------|---------|-------|-------|---------------|
| Discord Webhooks | ✅ | ✅ | ✅ | Webhook URL |
| Home Assistant REST | ✅ | ✅ | ✅ | Long-Lived Token |
| Home Assistant MQTT | ✅ | ✅ | ✅ | Broker credentials |
| Spotify | ✅ | ✅ | ✅ | OAuth2 |
| Twitch | ✅ | ✅ | ✅ | OAuth2 |
| Stream Deck | ✅ | ⚠️ | ❌ | API Key |
---
## Python Dependencies
### Core Dependencies (Required)
| Package | Windows | Linux | macOS | Version |
|---------|---------|-------|-------|---------|
| PyQt6 | ✅ | ✅ | ✅ | 6.4+ |
| pywin32 | ✅ | ❌ | ❌ | 227+ |
| pynput | ✅ | ✅ | ✅ | 1.7+ |
| pillow | ✅ | ✅ | ✅ | 9.0+ |
| requests | ✅ | ✅ | ✅ | 2.28+ |
### Optional Dependencies
| Package | Purpose | Windows | Linux | macOS |
|---------|---------|---------|-------|-------|
| easyocr | OCR Engine | ✅ | ✅ | ✅ |
| pytesseract | OCR Engine | ✅ | ✅ | ✅ |
| paddleocr | OCR Engine | ✅ | ✅ | ✅ |
| paho-mqtt | MQTT Client | ✅ | ✅ | ✅ |
| aiohttp | Async HTTP | ✅ | ✅ | ✅ |
| websockets | WebSocket | ✅ | ✅ | ✅ |
| psutil | System Info | ✅ | ✅ | ✅ |
| portalocker | File Lock | ✅ | 📦 | 📦 |
| plyer | Mobile features | ⚠️ | ✅ | ⚠️ |
---
## Plugin Compatibility
### Built-in Plugins
| Plugin | Windows | Linux | macOS | Requirements |
|--------|---------|-------|-------|--------------|
| Dashboard | ✅ | ✅ | ✅ | None |
| Universal Search | ✅ | ✅ | ✅ | Internet |
| Loot Tracker | ✅ | ✅ | ✅ | None |
| Skill Scanner | ✅ | ✅ | ✅ | OCR Engine |
| Game Reader (OCR) | ✅ | ✅ | ✅ | OCR Engine |
| Spotify Controller | ✅ | ✅ | ✅ | Spotify App |
| DPP Calculator | ✅ | ✅ | ✅ | None |
| Crafting Calc | ✅ | ✅ | ✅ | Nexus API |
| Codex Tracker | ✅ | ✅ | ✅ | Internet |
| Mission Tracker | ✅ | ✅ | ✅ | None |
### Integration Test Plugins
| Plugin | Windows | Linux | macOS | Requirements |
|--------|---------|-------|-------|--------------|
| Discord Tester | ✅ | ✅ | ✅ | Webhook URL |
| Home Assistant Tester | ✅ | ✅ | ✅ | HA Instance |
| Browser Extension Tester | ✅ | ✅ | ✅ | Chrome/Firefox |
| Platform Compatibility | ✅ | ✅ | ✅ | None |
| Service Fallback | ✅ | ✅ | ✅ | None |
---
## Browser Extension Support
| Browser | Native Messaging | WebSocket | HTTP API |
|---------|-----------------|-----------|----------|
| Chrome | ✅ | ✅ | ✅ |
| Firefox | ✅ | ✅ | ✅ |
| Edge | ✅ | ✅ | ✅ |
| Safari | ❌ | ✅ | ✅ |
| Opera | ⚠️ | ✅ | ✅ |
| Brave | ✅ | ✅ | ✅ |
---
## Hardware Acceleration
| Feature | Windows | Linux | macOS | Requirements |
|---------|---------|-------|-------|--------------|
| GPU OCR (CUDA) | ✅ | ✅ | ❌ | NVIDIA GPU |
| GPU OCR (MPS) | ❌ | ❌ | ✅ | Apple Silicon |
| Hardware Cursor | ✅ | ⚠️ | ⚠️ | Windows API |
| D3D/Vulkan Overlay | ❌ | ❌ | ❌ | Future |
---
## Known Limitations
### Windows
- Windows 7/8: Limited support, some features require Windows 10+
- Windows 10 1607+: Required for long path support
- Windows Defender: May flag some PyInstaller executables
### Linux
- Window Manager: No direct EU window interaction
- Hotkeys: Requires xbindkeys or similar
- Distribution: Tested on Ubuntu 22.04+, may vary on others
- Wayland: Limited testing, mostly X11
### macOS
- Window Manager: No direct EU window interaction
- Notarization: Unsigned builds may require manual approval
- ARM64: Native support on Apple Silicon
### WSL
- GUI: Requires WSLg or X server
- Performance: Reduced compared to native
- Integration: Limited Windows interop
---
## Installation Requirements
### Minimum Requirements
| Resource | Minimum | Recommended |
|----------|---------|-------------|
| RAM | 4 GB | 8 GB |
| Disk | 500 MB | 2 GB (with OCR models) |
| CPU | Dual Core | Quad Core |
| Display | 1280x720 | 1920x1080 |
| Internet | Optional | Recommended |
### Python Version
| Version | Support | Notes |
|---------|---------|-------|
| 3.11 | ✅ Recommended | Best performance |
| 3.12 | ✅ | Fully supported |
| 3.10 | ⚠️ | Works, not recommended |
| 3.9 | ❌ | Not supported |
---
## Troubleshooting
### Common Issues by Platform
#### Windows
| Issue | Solution |
|-------|----------|
| "VCRUNTIME not found" | Install Visual C++ Redistributable |
| Window not found | Run EU as administrator |
| Hotkeys not working | Check for conflicts with other apps |
#### Linux
| Issue | Solution |
|-------|----------|
| `display not found` | Set DISPLAY environment variable |
| Permission denied | Check file permissions |
| Missing dependencies | Install via package manager |
#### macOS
| Issue | Solution |
|-------|----------|
| "App is damaged" | Allow in Security & Privacy settings |
| Hotkeys not registering | Grant accessibility permissions |
---
## Testing Matrix
### Automated Tests
| Test Suite | Windows | Linux | macOS |
|------------|---------|-------|-------|
| Unit Tests | ✅ | ✅ | ✅ |
| Integration Tests | ✅ | ✅ | ⚠️ |
| E2E Tests | ⚠️ | ❌ | ❌ |
| Performance Tests | ✅ | ⚠️ | ⚠️ |
### Manual Testing
| Feature | Windows | Linux | macOS |
|---------|---------|-------|-------|
| Plugin Loading | Tested | Tested | Tested |
| Hotkey Registration | Tested | Tested | Tested |
| Overlay Display | Tested | Tested | Tested |
| OCR Accuracy | Tested | Tested | Limited |
| Webhook Delivery | Tested | Tested | Tested |
---
## Version History
| Version | Date | Notable Changes |
|---------|------|-----------------|
| 2.0.0 | 2024-XX | Full integration test suite added |
| 1.5.0 | 2024-XX | Linux compatibility improvements |
| 1.0.0 | 2024-XX | Initial release (Windows only) |
---
## Contributing
To report compatibility issues:
1. Run `python scripts/platform_detector.py --json`
2. Include the output in your issue
3. Describe the specific feature that doesn't work
4. Include error messages and logs
## License
This compatibility matrix is part of EU-Utility and is licensed under the MIT License.