# Requirements Update Dokumentation ## Datum: 2025-01-12 ## Überblick der Änderungen Die `requirements.txt` wurde umfassend aktualisiert, um die Stabilität, Sicherheit und Funktionalität der MYP Platform zu verbessern. ## Wichtige Verbesserungen ### 🔒 Versionsspezifikationen - **Ansatz**: Minimale Versionsangaben für maximale Flexibilität - **Nur kritische Pakete**: Versionsangaben nur bei Core-Framework-Paketen mit bekannten Breaking Changes - **Behalten**: `Flask>=2.3.0,<3.0.0`, `SQLAlchemy>=2.0.0,<3.0.0`, `cryptography>=41.0.0` - **Entfernt**: Versionsangaben bei Utility-Paketen und Extensions für bessere Kompatibilität ### 📊 Neue Kategorien hinzugefügt #### Testing & Development - `pytest>=7.4.0` - Moderne Test-Framework - `pytest-flask>=1.2.0` - Flask-spezifische Tests - `pytest-cov>=4.1.0` - Code Coverage - `coverage>=7.3.0` - Coverage-Berichte #### Code Quality - `flake8>=6.1.0` - Code-Linting - `black>=23.9.0` - Code-Formatierung - `isort>=5.12.0` - Import-Sortierung #### Zusätzliche Utilities - `humanize>=4.8.0` - Benutzerfreundliche Formatierung - `validators>=0.22.0` - Erweiterte Validierung - `Send2Trash>=1.8.2` - Sichere Dateilöschung - `ping3>=4.0.4` - Netzwerk-Diagnose - `netifaces>=0.11.0` - Netzwerk-Interface-Info - `cachelib>=0.10.0` - Caching-Funktionen - `py7zr>=0.20.0` - 7-Zip-Komprimierung ### 🚀 Performance-Optimierungen (optional) ``` # uwsgi>=2.0.21; sys_platform != "win32" # gevent>=23.7.0 # redis>=5.0.0 # celery>=5.3.0 ``` ### 🔄 Aktualisierte Pakete #### Core Framework - Flask: `2.3.0+` - Neueste stabile Version - SQLAlchemy: `2.0.0+` - Moderne ORM-Features - Werkzeug: `2.3.0+` - Kompatibilität mit Flask #### Sicherheit - cryptography: `41.0.0+` - Aktuelle Sicherheits-Fixes - bcrypt: `4.0.0+` - Verbesserte Hash-Performance - PyJWT: `2.8.0+` - JWT-Token-Handling #### Data Processing - pandas: `2.0.0+` - Moderne DataFrame-API - openpyxl: `3.1.0+` - Excel-Export-Verbesserungen - Pillow: `10.0.0+` - Aktuelle Bildverarbeitung ## Plattform-spezifische Pakete ### Windows - `pywin32>=306` - Windows-API-Zugriff - `wmi>=1.5.1` - Windows Management Interface - `colorama>=0.4.6` - Farbige Konsolen-Ausgabe ### Linux - `RPi.GPIO>=0.7.1` - Raspberry Pi GPIO-Kontrolle ### Production - `gunicorn>=21.2.0` - Unix WSGI-Server - `waitress>=2.1.2` - Windows-kompatibel ## Installation ### Vollständige Installation ```bash pip install -r requirements.txt ``` ### Nur Production-Pakete (ohne Dev-Tools) ```bash pip install -r requirements.txt --no-deps # Dann manuell nur die benötigten Pakete installieren ``` ### Performance-Pakete aktivieren Entkommentieren Sie die gewünschten Pakete in der Datei: ```bash # uwsgi>=2.0.21; sys_platform != "win32" ``` ## Kompatibilität - **Python**: 3.8+ (empfohlen: 3.11+) - **Betriebssysteme**: Windows 10+, Linux, macOS - **Architektur**: x86_64, ARM64 ## Migrationsleitfaden ### Von alter requirements.txt 1. Virtuelles Environment erstellen: ```bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate ``` 2. Dependencies installieren: ```bash pip install --upgrade pip pip install -r requirements.txt ``` 3. Anwendung testen: ```bash python app.py --debug ``` ### Troubleshooting #### Häufige Probleme 1. **PyP100 Installation**: - Windows: Möglicherweise Visual C++ Build Tools erforderlich - Lösung: Microsoft C++ Build Tools installieren 2. **weasyprint Installation**: - Linux: Zusätzliche System-Dependencies erforderlich - Ubuntu/Debian: `sudo apt install libpango-1.0-0 libharfbuzz0b libpangoft2-1.0-0` 3. **psutil Windows-Probleme**: - Lösung: Neueste Version verwenden oder pre-compiled wheel #### Fallback-Installation Bei Problemen einzelne Pakete separat installieren: ```bash pip install Flask>=2.3.0 pip install SQLAlchemy>=2.0.0 # ... weitere Core-Pakete ``` ## Wartung ### Regelmäßige Updates ```bash # Sicherheitsupdates prüfen pip list --outdated # Spezifische Pakete aktualisieren pip install --upgrade Flask SQLAlchemy # Vollständiges Update (Vorsicht!) pip install --upgrade -r requirements.txt ``` ### Dependency-Pinning für Production Für Production-Deployments: ```bash pip freeze > requirements-lock.txt ``` ## Nächste Schritte 1. **Testing**: Vollständige Test-Suite mit pytest ausführen 2. **Security Audit**: `pip-audit` für Sicherheitslücken 3. **Performance**: Optional Performance-Pakete aktivieren 4. **Monitoring**: Dependency-Updates überwachen ## Changelog ### 2025-01-12 - ✅ Umfassende Aktualisierung mit Versionsspezifikationen - ✅ Neue Test- und Development-Tools hinzugefügt - ✅ Code-Quality-Tools integriert - ✅ Erweiterte Utility-Pakete - ✅ Performance-Optimierungen vorbereitet - ✅ Verbesserte Plattform-Kompatibilität