Mitwirken
Willkommen, Mitwirkende!
Wir freuen uns über Beiträge zu Wails! Egal, ob du Fehler behebst, neue Funktionen hinzufügst oder die Dokumentation verbesserst, deine Hilfe wird sehr geschätzt.
Möglichkeiten zur Mitarbeit
1. Probleme melden
Einen Fehler gefunden? Öffne ein Issue mit:
- Klare Beschreibung
- Schritte zur Reproduktion
- Erwartetes vs. tatsächliches Verhalten
- Systeminformationen
- Code-Beispiele
2. Dokumentation verbessern
Verbesserungen der Dokumentation sind immer willkommen:
- Tippfehler und Fehler korrigieren
- Beispiele hinzufügen
- Erklärungen präzisieren
- Inhalte übersetzen
3. Code einreichen
Reiche Code über Pull Requests ein:
- Fehlerbehebungen
- Neue Funktionen
- Leistungsverbesserungen
- Tests
Erste Schritte
Forken und Klonen
bash
# Fork das Repository auf GitHub
# Dann deinen Fork klonen
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
# Upstream-Remote hinzufügen
git remote add upstream https://github.com/wailsapp/wails.git
Vom Quellcode bauen
bash
# Abhängigkeiten installieren
go mod download
# Wails CLI bauen
cd v3/cmd/wails3
go build
# Dein Build testen
./wails3 version
Tests ausführen
bash
# Alle Tests ausführen
go test ./...
# Tests für bestimmte Pakete ausführen
go test ./v3/pkg/application
# Mit Abdeckungsanalyse ausführen
go test -cover ./...
Änderungen vornehmen
Einen Branch erstellen
bash
# main aktualisieren
git checkout main
git pull upstream main
# Feature-Branch erstellen
git checkout -b feature/my-feature
Deine Änderungen vornehmen
- Code schreiben unter Einhaltung der Go-Konventionen
- Tests hinzufügen für neue Funktionalitäten
- Dokumentation aktualisieren, falls erforderlich
- Tests ausführen, um sicherzustellen, dass nichts kaputtgeht
- Änderungen committen mit klaren Nachrichten
Richtlinien für Commits
bash
# Gute Commit-Nachrichten
git commit -m "fix: window focus issue on macOS beheben"
git commit -m "feat: Unterstützung für benutzerdefiniertes Fenster-Chrome hinzufügen"
git commit -m "docs: Bindings-Dokumentation verbessern"
# Verwende konventionelle Commits:
# - feat: Neue Funktion
# - fix: Fehlerbehebung
# - docs: Dokumentation
# - test: Tests
# - refactor: Code-Refactoring
# - chore: Wartung
Pull Request einreichen
bash
# Zu deinem Fork pushen
git push origin feature/my-feature
# Pull Request auf GitHub öffnen
# Klare Beschreibung bereitstellen
# Verwandte Issues referenzieren
Richtlinien für Pull Requests
Gute PR-Beschreibung
## Beschreibung
Kurze Beschreibung der Änderungen
## Änderungen
- Feature X hinzugefügt
- Bug Y behoben
- Dokumentation aktualisiert
## Testing
- Getestet auf macOS 14
- Getestet auf Windows 11
- Alle Tests bestanden
## Verwandte Issues
Behebt #123PR-Checkliste
- Code folgt den Go-Konventionen
- Tests hinzugefügt/aktualisiert
- Dokumentation aktualisiert
- Alle Tests bestanden
- Keine Breaking Changes (oder dokumentiert)
- Commit-Nachrichten klar
Code-Richtlinien
Go-Code-Stil
// ✅ Gut: Klar, dokumentiert, getestet
// ProcessData verarbeitet die Eingabedaten und gibt das Ergebnis zurück.
// Es gibt einen Fehler zurück, wenn die Daten ungültig sind.
func ProcessData(data string) (string, error) {
if data == "" {
return "", errors.New("data cannot be empty")
}
result := process(data)
return result, nil
}
// ❌ Schlecht: Keine Docs, keine Fehlerbehandlung
func ProcessData(data string) string {
return process(data)
}Testing
func TestProcessData(t *testing.T) {
tests := []struct {
name string
input string
want string
wantErr bool
}{
{"gültige Eingabe", "test", "processed", false},
{"leere Eingabe", "", "", true},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := ProcessData(tt.input)
if (err != nil) != tt.wantErr {
t.Errorf("ProcessData() error = %v, wantErr %v", err, tt.wantErr)
return
}
if got != tt.want {
t.Errorf("ProcessData() = %v, want %v", got, tt.want)
}
})
}
}Dokumentation
Schreiben von Docs
Die Dokumentation verwendet Starlight (Astro):
bash
cd docs
npm install
npm run dev
Stil der Dokumentation
- Verwende britisches Englisch als Rechtschreibung
- Beginne mit dem Problem
- Biete funktionierende Beispiele
- Füge Troubleshooting hinzu
- Verweise auf verwandte Inhalte
Community
Hilfe erhalten
- Discord: Tritt unserer Community bei
- GitHub Discussions: Stelle Fragen
- GitHub Issues: Melde Fehler
Verhaltenskodex
Sei respektvoll, inklusiv und professionell. Wir sind alle hier, um großartige Software gemeinsam zu entwickeln.
Anerkennung
Mitwirkende werden anerkannt in:
- Release-Notizen
- Liste der Mitwirkenden
- GitHub-Einblicken
Danke, dass du zu Wails beigetragen hast! 🎉
Nächste Schritte
GitHub Repository
Besuche das Wails-Repository.
Discord-Community
Tritt der Community bei.
Dokumentation
Lies die Docs.