# CI Policy Evaluation ## Überblick Das Experiment **ci_policy_evaluation** befasst sich mit der Entwicklung und Evaluierung einer CI-Policy zur Verarbeitung von Warnungen und Entscheidungen innerhalb eines Continuous-Integration-Workflows. Es beinhaltet ein Python-Analysetool, das Entscheidungslogiken auf Backtest-CSV-Daten anwendet, sowie Mechanismen zur Berichterstattung der Ergebnisse. **Link zum Artikel:** [CI Policy – Tag 132–1716 – Festgenagelt: WARN ist jetzt eine Regel, kein Bauchgefühl](https://donau2space.de/tag-132-1716-ci-policy-v0-1-festgenagelt-warn-ist-jetzt-eine-regel-kein-bauchgefuehl/) **Git Repository:** [https://git.donau2space.de/Mika/ci_policy_evaluation](https://git.donau2space.de/Mika/ci_policy_evaluation) ### Hinweis Alle Inhalte wurden per KI generiert. Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert. --- ## Inhalt des Repositories ### 1. policy_definition - **Art:** doc_only - **Ziel:** mixed - **Sprache:** YAML - **Beschreibung:** Definition der CI-Policy als maschinenlesbare YAML-Datei. Sie legt die Entscheidungskriterien für die Status PASS, WARN und FAIL fest. - **Datenstruktur:** `CIPolicy` (JSON) - Felder: `status`, `rules` ### 2. python_analysis_script - **Art:** python_script - **Ziel:** Linux-Userspace - **Sprache:** Python - **Beschreibung:** Python-Skript zur Analyse von Backtest-CSV-Daten. Es wendet die CI-Policy an und bestimmt Entscheidungsergebnisse. - **API-Funktion:** - `analyze_backtest(csv_file)` → Gibt die Analyse- und Entscheidungsergebnisse (`decision_results`) zurück. - **Datenstruktur:** `DecisionResult` - Felder: `timestamp`, `decision`, `margin`, `flaky_flag`, `subset_flip_count`, `mischfenster_p95` ### 3. ci_report_hook - **Art:** python_script - **Ziel:** Linux-Userspace - **Sprache:** Python - **Beschreibung:** Minimaler CI-Report-Hook. Zeichnet Daten zu Entscheidungen und Metriken pro CI-Lauf auf. - **API-Funktion:** - `record_ci_run(run_id, decision, margin, flaky_flag, subset_flip_count, mischfenster_p95)` → Speichert die CI-Run-Daten. - **Datenstruktur:** `CIReport` - Felder: `timestamp`, `run_id`, `decision`, `margin`, `flaky_flag`, `subset_flip_count`, `mischfenster_p95` --- ## Installation & Nutzung ### Voraussetzungen - Python ≥ 3.9 - Linux-System mit Zugriff auf Shell und Python-Umgebung ### Installation 1. Repository klonen: ```bash git clone https://git.donau2space.de/Mika/ci_policy_evaluation cd ci_policy_evaluation ``` 2. Virtuelle Umgebung anlegen und Abhängigkeiten installieren: ```bash python -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### Nutzung - **Analyse starten:** ```bash python python_analysis_script.py --input backtest_data.csv ``` - **CI-Report-Hook ausführen:** ```bash python ci_report_hook.py --run-id RUN1234 --decision WARN --margin 0.12 ``` --- ## Typische Use-Cases - Evaluation von CI-Entscheidungsrichtlinien in Entwicklungsumgebungen - Statistische Analyse von Warnungen und Fehlermustern - Automatisierte Dokumentation von CI-Laufdaten - Berichterstellung auf Basis von Backtest-Auswertungen --- ## Struktur & mögliche Erweiterungen - Erweiterung der Policy-Definition zur Einbindung weiterer Metriken - Integration eines Web-basierten Dashboards zur Visualisierung der CI-Entscheidungen - Ergänzung einer CLI-Schnittstelle zur automatisierten Batchanalyse - Aufnahme von historischen Vergleichsdaten zur Policy-Optimierung --- ## Lizenz Projektlizenz: **MIT License** Alle Inhalte wurden maschinell mit KI-Unterstützung erstellt. Nutzung, Veränderung und Weiterentwicklung erfolgen auf eigene Verantwortung und Gefahr. Der Autor übernimmt keine Haftung für Korrektheit oder Eignung zu einem bestimmten Zweck.