From 50326fa1b7345fec54bbde1d1a53e7e1e9cc8c1d Mon Sep 17 00:00:00 2001 From: dschlueter Date: Mon, 22 Jun 2026 12:06:36 +0200 Subject: [PATCH] Docs: Alte jamulix/GitHub-Verweise auf Forgejo umgestellt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README, HILFE.md, welcome.html: Clone-/Release-/Profil-/Issue-Links und UI-Link auf https://kitux.de/forgejo/dschlueter/typewriter_tutor - README CI/CD-Abschnitt abgerüstet: tote GitHub-Actions-Badges entfernt, auf reale lokale Validierung per Pre-commit-Hook reduziert - CI_CD.md gelöscht (beschrieb die bereits entfernten .github/workflows) - tests/README.md: CI-Beispielkommentar host-neutral formuliert Co-Authored-By: Claude Sonnet 4.6 --- CI_CD.md | 319 ----------------------------------------- HILFE.md | 4 +- README.md | 29 ++-- templates/welcome.html | 6 +- tests/README.md | 2 +- 5 files changed, 16 insertions(+), 344 deletions(-) delete mode 100644 CI_CD.md diff --git a/CI_CD.md b/CI_CD.md deleted file mode 100644 index 404ac77..0000000 --- a/CI_CD.md +++ /dev/null @@ -1,319 +0,0 @@ -# CI/CD Integration - Typewriter Trainer - -Dieses Dokument beschreibt die Continuous Integration und Continuous Deployment (CI/CD) Setup für den Typewriter Trainer. - -## Übersicht - -Die Test-Suite ist vollständig in CI/CD-Pipelines integriert und bietet: - -- ✅ **Automatische Tests** bei jedem Push und Pull Request -- ✅ **Multi-Python-Version Support** (3.9, 3.10, 3.11, 3.12) -- ✅ **Coverage Reports** mit HTML-Visualisierung -- ✅ **Pre-commit Hooks** für lokale Validierung -- ✅ **Code Quality Checks** (flake8 Linting) - -## GitHub Actions Workflows - -### 1. Tests Workflow (`.github/workflows/tests.yml`) - -**Trigger:** -- Push auf `main` und `develop` Branches -- Pull Requests auf `main` und `develop` -- Manuell über `workflow_dispatch` - -**Jobs:** - -#### Test Job -- Führt Tests auf Python 3.9, 3.10, 3.11, 3.12 aus -- Installiert Dependencies aus `requirements.txt` -- Führt Unit Tests aus (schnell, < 1 Sekunde) -- Führt Integration Tests aus (~3 Sekunden) -- Führt alle Tests kombiniert aus -- Matrix-Build für Multi-Version-Kompatibilität - -#### Test Summary Job -- Läuft nach allen Tests (immer, auch bei Fehlern) -- Generiert Test-Zusammenfassung in GitHub Actions Summary -- Zeigt Anzahl der Tests und Status an - -#### Lint Job -- Code Quality Check mit flake8 -- Prüft auf Syntax-Fehler und undefined names -- Complexity und Line-Length Checks (nicht blockierend) - -**Badge Status:** -```markdown -![Tests](https://github.com/jamulix/typewriter/actions/workflows/tests.yml/badge.svg) -``` - -### 2. Coverage Workflow (`.github/workflows/coverage.yml`) - -**Trigger:** -- Push auf `main` und `develop` Branches -- Pull Requests auf `main` und `develop` -- Manuell über `workflow_dispatch` - -**Features:** -- Generiert Test Coverage Report mit `coverage.py` -- Erstellt HTML Coverage Report als Artifact -- Berechnet Coverage-Prozentsatz -- Generiert dynamisches Coverage-Badge (grün ≥90%, gelb ≥60%, rot <60%) -- Kommentiert Coverage auf Pull Requests -- Speichert HTML-Report für 30 Tage - -**Badge Status:** -```markdown -![Coverage](https://github.com/jamulix/typewriter/actions/workflows/coverage.yml/badge.svg) -``` - -**Coverage Report anzeigen:** -1. Gehe zu Actions → Coverage Workflow → Latest Run -2. Lade "coverage-report" Artifact herunter -3. Öffne `htmlcov/index.html` im Browser - -## Lokale Test-Ausführung - -### Alle Tests ausführen - -```bash -# Alle Tests (Unit + Integration) -python -m unittest discover -s tests -p "test_*.py" -v - -# Nur Unit Tests (schnell) -python -m unittest tests.test_lesson_service tests.test_statistics_service tests.test_settings_service -v - -# Nur Integration Tests -python -m unittest tests.test_integration_progress tests.test_integration_statistics -v -``` - -### Coverage Report generieren - -**Mit Script:** -```bash -./run_coverage.sh -``` - -**Manuell:** -```bash -# Coverage installieren -pip install coverage - -# Tests mit Coverage ausführen -coverage run -m unittest discover -s tests -p "test_*.py" - -# Terminal Report -coverage report -m - -# HTML Report -coverage html -# Öffne htmlcov/index.html im Browser -``` - -## Pre-commit Hooks - -### Automatische Test-Validierung vor jedem Commit - -Der Pre-commit Hook führt automatisch alle Tests aus, bevor ein Commit erstellt wird. - -**Installation:** -```bash -# Hook ist bereits installiert in .git/hooks/pre-commit -# Falls nicht, kopiere aus Template: -cp .githooks/pre-commit .git/hooks/pre-commit -chmod +x .git/hooks/pre-commit -``` - -**Funktionsweise:** -1. ✅ Führt Unit Tests aus -2. ✅ Führt Integration Tests aus -3. ✅ Blockiert Commit bei Test-Fehlern -4. ✅ Zeigt farbiges Output für bessere Übersicht - -**Hook überspringen (nicht empfohlen):** -```bash -git commit --no-verify -m "message" -``` - -## Test-Statistiken - -### Gesamt-Übersicht - -| Kategorie | Anzahl | Status | -|-----------|--------|--------| -| **Gesamt Tests** | 80 | ✅ 100% | -| **Unit Tests** | 54 | ✅ Bestanden | -| **Integration Tests** | 26 | ✅ Bestanden | -| **Ausführungszeit** | ~2.9s | ⚡ Schnell | - -### Unit Tests Breakdown - -| Service | Tests | Coverage | -|---------|-------|----------| -| LessonService | 17 | Navigation & Validierung | -| StatisticsService | 15 | Berechnungen (ZPM/WPM) | -| SettingsService | 22 | Validierungen | - -### Integration Tests Breakdown - -| Service | Tests | Coverage | -|---------|-------|----------| -| ProgressService | 12 | CRUD & State Management | -| StatisticsService | 14 | DB Operations & Daily Practice | - -## Coverage Konfiguration - -Die Coverage-Konfiguration ist in `.coveragerc` definiert: - -```ini -[run] -source = . -omit = - */tests/* - */venv/* - */migrations/* - setup.py - -[report] -precision = 2 -show_missing = True - -[html] -directory = htmlcov -``` - -**Ausgeschlossene Dateien:** -- Test-Dateien selbst -- Virtual Environments -- Migrations -- Setup-Scripts - -## Best Practices - -### Für Entwickler - -1. **Immer Tests schreiben** für neue Features -2. **Lokale Tests ausführen** vor dem Push: - ```bash - python -m unittest discover tests -v - ``` -3. **Coverage checken** für neue Code-Bereiche: - ```bash - ./run_coverage.sh - ``` -4. **Pre-commit Hook aktiv lassen** für automatische Validierung - -### Für Pull Requests - -1. ✅ Alle Tests müssen bestehen (automatisch geprüft) -2. ✅ Coverage sollte nicht sinken -3. ✅ Lint-Checks sollten bestehen -4. ✅ Review GitHub Actions Summary - -### Für Releases - -1. Erstelle Branch von `develop` -2. Alle Tests auf `main` müssen grün sein -3. Coverage Report prüfen -4. Merge nach `main` → automatische Tests laufen - -## Troubleshooting - -### Tests schlagen in CI fehl, aber lokal nicht - -**Mögliche Ursachen:** -- Python-Version unterschiedlich (CI tested 3.9-3.12) -- Dependencies nicht korrekt in `requirements.txt` -- Plattform-spezifische Unterschiede (Linux vs. macOS/Windows) - -**Lösung:** -```bash -# Teste mit verschiedenen Python-Versionen lokal -python3.9 -m unittest discover tests -v -python3.11 -m unittest discover tests -v -``` - -### Coverage Report zeigt falsche Werte - -**Lösung:** -```bash -# Lösche alte Coverage-Daten -rm -rf .coverage htmlcov/ - -# Neu generieren -./run_coverage.sh -``` - -### Pre-commit Hook blockiert Commit - -**Das ist gewollt!** Der Hook verhindert, dass fehlerhafte Tests in den Code kommen. - -**Lösung:** -1. Prüfe Test-Output: `python -m unittest discover tests -v` -2. Fixe die fehlschlagenden Tests -3. Commit erneut - -**Nur in Notfällen umgehen:** -```bash -git commit --no-verify -m "message" -``` - -### GitHub Actions schlagen fehl mit "Module not found" - -**Lösung:** -- Stelle sicher, dass alle Dependencies in `requirements.txt` sind -- Prüfe ob `requirements.txt` im Repository committed ist - -## Workflow-Diagramm - -``` -┌─────────────────────────────────────────────────────────────┐ -│ Developer Workflow │ -└─────────────────────────────────────────────────────────────┘ - - 1. Code ändern - │ - ↓ - 2. Lokale Tests (optional) - │ ./run_coverage.sh - ↓ - 3. git add / git commit - │ - ↓ - 4. Pre-commit Hook - │ ✅ Unit Tests - │ ✅ Integration Tests - │ ❌ Blockiert bei Fehler - ↓ - 5. git push - │ - ↓ - ┌────────────────────────┐ - │ GitHub Actions │ - ├────────────────────────┤ - │ • Tests (Multi-Python) │ - │ • Coverage Report │ - │ • Lint Check │ - │ • Artifact Upload │ - └────────────────────────┘ - │ - ↓ - 6. Review & Merge -``` - -## Weitere Ressourcen - -- **Test-Dokumentation:** `tests/README.md` -- **GitHub Actions Docs:** https://docs.github.com/actions -- **Coverage.py Docs:** https://coverage.readthedocs.io -- **Python unittest:** https://docs.python.org/3/library/unittest.html - -## Zusammenfassung - -✅ **80 Tests**, alle bestanden (100% Erfolgsrate) -✅ **GitHub Actions** für automatische Tests -✅ **Coverage Reports** mit HTML-Visualisierung -✅ **Pre-commit Hooks** für lokale Validierung -✅ **Multi-Python-Version** Support (3.9-3.12) -✅ **Code Quality** Checks mit flake8 - -Die Test-Suite ist **produktionsbereit** und vollständig in CI/CD integriert! 🎉 diff --git a/HILFE.md b/HILFE.md index fae1945..68b7df1 100644 --- a/HILFE.md +++ b/HILFE.md @@ -419,8 +419,8 @@ Der Text scrollt **automatisch**, sodass: ## 📞 Weitere Hilfe - 📖 **Projekt-Dokumentation**: Siehe README.md -- 🐛 **Bug melden**: GitHub Issues -- 💡 **Feature-Vorschlag**: GitHub Discussions +- 🐛 **Bug melden**: [Forgejo Issues](https://kitux.de/forgejo/dschlueter/typewriter_tutor/issues) +- 💡 **Feature-Vorschlag**: [Forgejo Issues](https://kitux.de/forgejo/dschlueter/typewriter_tutor/issues) - 📧 **Support**: Siehe README für Kontakt --- diff --git a/README.md b/README.md index c070bec..a9a5417 100644 --- a/README.md +++ b/README.md @@ -56,11 +56,11 @@ Ein moderner, webbasierter Tipptrainer mit **adaptivem Metronom** und umfangreic 1. **Repository klonen oder Download:** ```bash -git clone https://github.com/jamulix/typewriter.git -cd typewriter +git clone https://kitux.de/forgejo/dschlueter/typewriter_tutor.git +cd typewriter_tutor ``` -Alternativ: [Neuestes Release herunterladen](https://github.com/jamulix/typewriter/tags) +Alternativ: [Neuestes Release herunterladen](https://kitux.de/forgejo/dschlueter/typewriter_tutor/tags) 2. **Virtuelle Umgebung erstellen (empfohlen):** ```bash @@ -205,9 +205,9 @@ Die Statistik-Seite (`/statistics`) bietet: - **Datenexport**: CSV und JSON-Download Ihrer Statistiken - **Verlaufsanalyse**: Sehen Sie Ihre Fortschritte über mehrere Sitzungen -## 🧪 Tests & CI/CD +## 🧪 Tests -Das Projekt enthält eine umfassende Test-Suite mit **80 Tests** (100% Erfolgsrate) und vollständiger CI/CD-Integration. +Das Projekt enthält eine umfassende Test-Suite mit **80 Tests** (100% Erfolgsrate) und lokaler Validierung per Pre-commit-Hook. ### Test-Übersicht @@ -256,18 +256,12 @@ python test_metronome_velocity.py - ✅ **App-Tests**: Statistik-Berechnungen, API-Endpoints, Input-Validierung, CSV/JSON-Export - ✅ **Metronom-Tests**: 5 Anpassungsregeln, Realistische Szenarien, Edge Cases -### CI/CD Integration +### Lokale Validierung -**GitHub Actions Workflows:** +Die Validierung läuft lokal über einen Git-Pre-commit-Hook (aktuell ist keine serverseitige CI eingerichtet). -![Tests](https://github.com/jamulix/typewriter/actions/workflows/tests.yml/badge.svg) -![Coverage](https://github.com/jamulix/typewriter/actions/workflows/coverage.yml/badge.svg) - -- ✅ **Automatische Tests** bei jedem Push und Pull Request -- ✅ **Multi-Python-Version** Support (3.9, 3.10, 3.11, 3.12) -- ✅ **Coverage Reports** mit HTML-Visualisierung -- ✅ **Pre-commit Hooks** für lokale Validierung -- ✅ **Code Quality Checks** (flake8 Linting) +- ✅ **Pre-commit Hook** führt Unit- und Integrationstests vor jedem Commit aus und blockiert bei Fehlern +- ✅ **Coverage Reports** mit HTML-Visualisierung (lokal via `./run_coverage.sh`) **Pre-commit Hook Installation:** ```bash @@ -276,11 +270,8 @@ cp .githooks/pre-commit .git/hooks/pre-commit chmod +x .git/hooks/pre-commit ``` -Der Pre-commit Hook führt automatisch alle Tests vor jedem Commit aus und blockiert bei Fehlern. - **Weitere Informationen:** - 📖 Service Tests: [`tests/README.md`](tests/README.md) -- 📖 CI/CD Setup: [`CI_CD.md`](CI_CD.md) - 📖 Metronom Tests: [`README_METRONOME_TESTS.md`](README_METRONOME_TESTS.md) ## 🔧 Entwicklung @@ -532,7 +523,7 @@ MIT License - siehe [LICENSE](LICENSE) Datei für Details. **Dieter Schlüter** 📧 dieter.schlueter@linix.de -🌐 [GitHub: @jamulix](https://github.com/jamulix) +🌐 [Forgejo: @dschlueter](https://kitux.de/forgejo/dschlueter) --- diff --git a/templates/welcome.html b/templates/welcome.html index 371f4dc..90ec135 100644 --- a/templates/welcome.html +++ b/templates/welcome.html @@ -120,9 +120,9 @@
Entwickelt mit ❤️ für effektives Tipptraining
- - - GitHub + + + Forgejo | © 2025 Dieter Schlüter
diff --git a/tests/README.md b/tests/README.md index ffd95a9..b172870 100644 --- a/tests/README.md +++ b/tests/README.md @@ -227,7 +227,7 @@ Für vollständige Integration Tests (mit Datenbank, Flask-Context, etc.) siehe Diese Tests können einfach in CI/CD-Pipelines integriert werden: ```bash -# In GitHub Actions / GitLab CI +# In CI/CD (z.B. Forgejo Actions / GitLab CI) python -m unittest discover tests -v ```