Skip to content

Latest commit

 

History

History
243 lines (178 loc) · 5.26 KB

File metadata and controls

243 lines (178 loc) · 5.26 KB

WindowsBridge – Contributing Guide

Vielen Dank für Ihr Interesse, zu WindowsBridge beizutragen! Dieses Dokument beschreibt, wie Sie das Projekt verbessern können.

Code of Conduct

Wir verpflichten uns, eine einladende und inklusive Umgebung zu schaffen. Bitte behandeln Sie alle mit Respekt.

Wie Sie beitragen können

1. Bug-Reports

Falls Sie einen Fehler finden:

  1. Überprüfen Sie, ob der Bug bereits bekannt ist
  2. Erstellen Sie ein Issue mit:
    • Systeminfo (OS, Version)
    • Reproduktionsschritte
    • Erwartetes vs. tatsächliches Verhalten
    • Logs (falls vorhanden)

2. Feature-Requests

Für neue Features:

  1. Beschreiben Sie die gewünschte Funktionalität
  2. Begründen Sie den Nutzen
  3. Geben Sie Beispiele für die Verwendung

3. Code-Beiträge

Falls Sie Code ändern möchten:

# 1. Fork das Projekt
git clone https://github.com/[DEIN_USERNAME]/windowsbridge.git
cd windowsbridge

# 2. Feature-Branch erstellen
git checkout -b feature/my-feature

# 3. Änderungen durchführen
# Beachten Sie die Code-Richtlinien (siehe unten)

# 4. Tests ausführen
make test

# 5. Committen & Pushen
git commit -am "Add my feature"
git push origin feature/my-feature

# 6. Pull Request erstellen

Code-Richtlinien

Bash-Scripts

  • Shebang: #!/bin/bash
  • Indentation: 2 Spaces (kein Tab)
  • Variablen: UPPERCASE für Konstanten, lowercase für lokal
  • Funktionen: snake_case Naming
  • Kommentare: Dokumentieren Sie komplexe Logik
  • Error Handling: Nutzen Sie set -e und Trap-Handler
  • Logging: Verwenden Sie die Logging-Funktionen

Beispiel:

#!/bin/bash

# Copyright (c) 2026 Stefan. Licensed under Apache-2.0

setup_logging() {
    local log_file="$HOME/.config/windowsbridge/mymodule.log"
    mkdir -p "${log_file%/*}"
    touch "$log_file"
}

log_info() {
    echo "[INFO] $1"
}

main() {
    setup_logging
    log_info "Starte Modul..."
    # Ihre Logik hier
}

main "$@"

Python-Scripts

  • Style: PEP 8
  • Indentation: 4 Spaces
  • Type Hints: Wo möglich verwenden
  • Docstrings: Für alle Funktionen/Klassen
  • Error Handling: Try/Except mit aussagekräftigen Meldungen

Dokumentation

  • Format: Markdown
  • Sprache: Deutsch (oder Englisch mit Genehmigung)
  • Struktur: Klar hierarchisiert (H1, H2, H3...)
  • Beispiele: Code-Snippets mit Syntax-Highlighting
  • Links: Interne Links verwenden

Testing

Vor dem Committen:

# Syntax prüfen
make lint

# Tests ausführen
make test

# Oder einzeln
make test-system
make test-wine
make test-gaming

Commit-Nachricht-Format

<typ>: <kurze Beschreibung>

<ausführliche Beschreibung>

Closes #123

Typen:

  • feat: Neue Funktionalität
  • fix: Bugfix
  • docs: Dokumentation
  • test: Tests
  • refactor: Code-Reorganisation ohne Funktionsänderung
  • style: Formatierung/Linting
  • chore: Build/Tooling/Dependencies

Beispiel:

feat: Add GPU detection for Intel drivers

Implementiert automatische GPU-Erkennung für Intel-Grafikkarten
über lspci-Output-Parsing.

Closes #42

Pull Request-Prozess

  1. Branch-Naming: feature/xyz oder fix/xyz
  2. Beschreibung: Erklären Sie, was Sie changed und warum
  3. Tests: Alle Tests müssen bestanden sein
  4. Dokumentation: Aktualisieren Sie die Docs, falls nötig
  5. Reviews: Seien Sie offen für Feedback

Lizenzierung

Durch Beiträge akzeptieren Sie, dass Ihr Code unter Apache-2.0 lizenziert wird.

Copyright (c) 2026 Stefan

Licensed under the Apache License, Version 2.0...

Entwicklung starten

# Dependencies
sudo apt-get install shellcheck python3

# Repository klonen
git clone https://github.com/stefanxyz/windowsbridge.git
cd windowsbridge

# Änderungen durchführen
nano modules/system_setup.sh

# Testen
make test

# Hilfe
make help

Dateistruktur verstehen

windowsbridge/
├── installer.sh              # Haupt-Orchestrator
├── modules/
│   ├── system_setup.sh       # System-Vorbereitung
│   ├── wine_setup.sh         # Wine-Installation
│   ├── gaming_setup.sh       # Gaming-Setup
│   ├── updater.sh            # Update-Routinen
│   ├── gui_launcher.py       # GUI-Interface
│   └── test_*.sh             # Tests
├── docs/                     # Dokumentation
└── README.md                 # Übersicht

Häufige Beitrag-Szenarien

Scenario 1: Bug in GPU-Erkennung fixen

git checkout -b fix/gpu-detection-nvidia
# Bearbeite modules/system_setup.sh
make test-system
git commit -am "fix: Korrigiere GPU-Erkennung für NVIDIA"

Scenario 2: Neue Test hinzufügen

git checkout -b feature/test-dxvk-validation
# Bearbeite modules/test_wine.sh
# Füge DXVK-Validierungs-Test hinzu
make test-wine
git commit -am "test: Add DXVK validation test"

Scenario 3: Dokumentation verbessern

git checkout -b docs/expand-troubleshooting
# Bearbeite docs/troubleshooting.md
git commit -am "docs: Expand troubleshooting section"

Hilfe & Fragen

  • 📖 Siehe README.md für Übersicht
  • 🆘 Öffnen Sie ein Issue für Fragen
  • 💬 Diskutieren Sie in Discussions

Danksagungen

Alle Beitragenden werden in CHANGELOG.md aufgeführt!


Vielen Dank für Ihre Unterstützung! ❤️