Contributing Guide¶
Dieses Dokument beschreibt, wie Du Bug-Reports, Feature-Requests oder Code-Beiträge einreichen kannst. Es gilt der Code of Conduct.
Issues und Feature-Requests¶
- Prüfe zunächst, ob das Problem oder die Idee bereits als Issue existiert.
- Falls nicht: Neues Issue erstellen.
- Für offene Fragen oder Brainstorming: Discussions nutzen.
Bug-Reports sollten enthalten: Schritte zum Reproduzieren, erwartetes vs. tatsächliches Verhalten, Umgebung (OS, Version), Fehlermeldung/Logs.
Feature-Requests sollten enthalten: Problembeschreibung, vorgeschlagene Lösung, ggf. Alternativen.
Development Setup¶
# 1. Repository forken (GitHub UI)
# 2. Fork klonen
git clone https://github.com/Dein-Name/wotiti.git
cd wotiti
# 3. Abhängigkeiten installieren
pip install uv
uv sync --group dev
# 4. Branch erstellen
git checkout -b feature/beschreibender-name
Code-Style¶
WoTiTi nutzt Ruff als Linter und Formatter:
uv run ruff check src/ # Lint
uv run ruff format src/ # Format
uv run pytest # Tests
Konventionen:
- Max. 120 Zeichen Zeilenlänge
- Type Hints und Docstrings bei Funktionen/Klassen
- Neue Features sollten Tests haben
- Conventional Commits:
feat:,fix:,docs:,refactor:,test:
Pull Request Workflow¶
# Code schreiben, lokal testen
uv run python src/main.py
uv run ruff check src/ --fix && uv run ruff format src/
uv run pytest
# Commit und Push
git commit -m "feat: Beschreibende Commit-Message"
git push origin feature/beschreibender-name
Anschließend Pull Request auf GitHub erstellen. Vor dem Submit prüfen:
- [ ] Feature funktioniert lokal
- [ ] Keine Linting-Fehler
- [ ] Tests bestanden
- [ ] Commit-Messages sind aussagekräftig
Dokumentation¶
Markdown-Dateien unter docs/ bearbeiten. Lokale Vorschau:
mkdocs serve
# → http://localhost:8000
Release Process (Maintainer)¶
# Version in pyproject.toml aktualisieren
./build.sh # Linux
.\build_windows.ps1 # Windows
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin v1.2.0
# GitHub Release erstellen + Binaries hochladen