"feat: Add development and production requirements files"

This commit is contained in:
2025-05-29 19:38:10 +02:00
parent 69353e42a6
commit fa31208220
4 changed files with 361 additions and 37 deletions

168
backend/app/REQUIREMENTS.md Normal file
View File

@@ -0,0 +1,168 @@
# MYP Platform - Requirements Verwaltung
## Übersicht
Die MYP Platform verwendet verschiedene Requirements-Dateien für unterschiedliche Umgebungen:
- `requirements.txt` - Basis-Abhängigkeiten für alle Umgebungen
- `requirements-dev.txt` - Entwicklungsabhängigkeiten (Testing, Debugging, etc.)
- `requirements-prod.txt` - Produktionsabhängigkeiten (optimiert für Performance)
## Installation
### Entwicklungsumgebung
```bash
# Alle Entwicklungsabhängigkeiten installieren
pip install -r requirements-dev.txt
```
### Produktionsumgebung
```bash
# Nur Produktionsabhängigkeiten installieren
pip install -r requirements-prod.txt
```
### Basis-Installation
```bash
# Nur Basis-Abhängigkeiten installieren
pip install -r requirements.txt
```
## Wichtige Aktualisierungen (Januar 2025)
### Core Framework
- **Flask 3.1.1** - Neueste stabile Version mit verbesserter Performance
- **SQLAlchemy 2.0.36** - Moderne APIs und bessere Performance
- **Werkzeug 3.1.3** - Verbesserte Sicherheit
### Sicherheit
- **cryptography 44.0.0** - Neueste Sicherheitsupdates
- **bcrypt 4.2.1** - Verbesserte Passwort-Hashing-Algorithmen
### Performance
- **redis 5.2.1** - Bessere Caching-Performance
- **orjson 3.10.12** - Schnellere JSON-Verarbeitung
- **ujson 5.10.0** - Alternative JSON-Bibliothek für Performance
### Neue Abhängigkeiten
- **pandas 2.2.3** & **numpy 2.2.1** - Für erweiterte Datenanalyse
- **structlog 24.4.0** - Strukturiertes Logging
- **python-dotenv 1.0.1** - Umgebungsvariablen-Management
## Kompatibilität
### Python-Versionen
- **Mindestversion**: Python 3.9
- **Empfohlen**: Python 3.11 oder 3.12
- **Getestet mit**: Python 3.11.9, 3.12.9, 3.13.3
### Betriebssysteme
- **Windows**: Vollständig unterstützt (mit pywin32 und wmi)
- **Linux**: Vollständig unterstützt
- **macOS**: Vollständig unterstützt
## Entwicklungstools
### Code-Qualität
- **black** - Code-Formatierung
- **flake8** - Linting
- **mypy** - Type-Checking
- **pylint** - Erweiterte Code-Analyse
### Testing
- **pytest** - Test-Framework
- **pytest-cov** - Coverage-Berichte
- **pytest-mock** - Mocking-Unterstützung
### Debugging
- **ipdb** - Interaktiver Debugger
- **pudb** - Terminal-basierter Debugger
## Produktions-Optimierungen
### Monitoring
- **sentry-sdk** - Error-Tracking
- **prometheus-client** - Metriken-Sammlung
### Performance
- **gevent** - Asynchrone I/O
- **gunicorn** - WSGI-Server
### Sicherheit
- **flask-talisman** - Sicherheits-Headers
- **flask-cors** - CORS-Unterstützung
## Wartung
### Requirements aktualisieren
```bash
# Alle Pakete auf neueste Versionen prüfen
pip list --outdated
# Sicherheitsupdates prüfen
safety check
# Requirements-Dateien aktualisieren
pip-compile requirements.in
```
### Abhängigkeiten-Analyse
```bash
# Abhängigkeitsbaum anzeigen
pipdeptree
# Sicherheitslücken prüfen
bandit -r .
# Code-Qualität prüfen
flake8 .
mypy .
```
## Troubleshooting
### Häufige Probleme
1. **PyP100 Installation**
- Bei Problemen mit PyP100: `pip install --no-deps PyP100`
2. **Windows-spezifische Pakete**
- pywin32 und wmi werden automatisch nur auf Windows installiert
3. **Cryptography-Probleme**
- Bei Build-Fehlern: Rust-Compiler installieren oder Wheel verwenden
4. **Memory-Probleme bei großen Abhängigkeiten**
- pandas und numpy benötigen ausreichend RAM für Installation
### Performance-Tipps
1. **Pip-Cache nutzen**
```bash
pip install --cache-dir ~/.pip/cache -r requirements.txt
```
2. **Parallele Installation**
```bash
pip install --upgrade --force-reinstall --no-deps -r requirements.txt
```
3. **Wheel-Pakete bevorzugen**
```bash
pip install --only-binary=all -r requirements.txt
```
## Lizenz-Informationen
Alle verwendeten Pakete sind mit der MIT/BSD/Apache-Lizenz kompatibel.
Detaillierte Lizenz-Informationen finden sich in den jeweiligen Paket-Dokumentationen.
---
**Letzte Aktualisierung**: Januar 2025
**Nächste geplante Überprüfung**: April 2025