n8n_node_librebooking/CONTRIBUTING.md

239 lines
4.7 KiB
Markdown

# Beitragen zum LibreBooking n8n Node
Vielen Dank für dein Interesse, zu diesem Projekt beizutragen! 🎉
## Inhaltsverzeichnis
- [Code of Conduct](#code-of-conduct)
- [Wie kann ich beitragen?](#wie-kann-ich-beitragen)
- [Entwicklungsumgebung einrichten](#entwicklungsumgebung-einrichten)
- [Code-Richtlinien](#code-richtlinien)
- [Pull Request Prozess](#pull-request-prozess)
- [Bug Reports](#bug-reports)
- [Feature Requests](#feature-requests)
## Code of Conduct
Dieses Projekt folgt einem [Code of Conduct](CODE_OF_CONDUCT.md). Mit deiner Teilnahme erklärst du dich einverstanden, diesen einzuhalten.
## Wie kann ich beitragen?
### Bugs melden
- Überprüfe zunächst, ob der Bug bereits gemeldet wurde
- Erstelle ein Issue mit einer klaren Beschreibung
- Füge Schritte zur Reproduktion hinzu
- Gib deine Umgebung an (OS, Node.js Version, n8n Version)
### Features vorschlagen
- Erstelle ein Issue mit dem Label "enhancement"
- Beschreibe den Use Case
- Erkläre, warum diese Funktion nützlich wäre
### Code beitragen
1. Forke das Repository
2. Erstelle einen Feature-Branch
3. Implementiere deine Änderungen
4. Schreibe Tests (falls möglich)
5. Erstelle einen Pull Request
## Entwicklungsumgebung einrichten
### Voraussetzungen
- Node.js 18.x oder höher
- npm 8.x oder höher
- n8n (global installiert)
- Git
### Setup
```bash
# Repository klonen
git clone https://github.com/DEIN-REPO/n8n-nodes-librebooking.git
cd n8n-nodes-librebooking
# Dependencies installieren
npm install
# Build ausführen
npm run build
# Für Entwicklung: Watch-Modus
npm run dev
```
### Lokales Testen
```bash
# Node mit n8n verlinken
npm link
# In n8n-Verzeichnis verlinken
cd $(npm root -g)/n8n
npm link n8n-nodes-librebooking
# n8n starten
n8n start
```
### Mit Docker testen
```bash
docker-compose up --build
```
## Code-Richtlinien
### TypeScript
- Verwende strenge Typisierung (`strict: true`)
- Vermeide `any` wo möglich
- Dokumentiere komplexe Funktionen mit JSDoc
### Formatierung
```bash
# Code formatieren
npm run format
# Linting prüfen
npm run lint
# Linting mit automatischer Korrektur
npm run lintfix
```
### Commit Messages
Wir folgen [Conventional Commits](https://www.conventionalcommits.org/):
```
feat: Neue Funktion hinzugefügt
fix: Bug behoben
docs: Dokumentation aktualisiert
style: Formatierung geändert (kein Code)
refactor: Code umstrukturiert
test: Tests hinzugefügt/geändert
chore: Build-Prozess/Tools geändert
```
Beispiele:
```
feat(reservation): Check-In Operation hinzugefügt
fix(auth): Session-Token wird jetzt korrekt erneuert
docs: Installationsanleitung aktualisiert
```
### Projektstruktur
```
n8n-nodes-librebooking/
├── credentials/ # Credential-Definitionen
│ └── LibreBookingApi.credentials.ts
├── nodes/ # Node-Definitionen
│ ├── LibreBooking/
│ │ ├── LibreBooking.node.ts
│ │ └── librebooking.svg
│ └── LibreBookingTrigger/
│ ├── LibreBookingTrigger.node.ts
│ └── librebooking.svg
├── test/ # Tests
├── workflows/ # Beispiel-Workflows
├── dist/ # Kompilierte Dateien (generiert)
└── package.json
```
## Pull Request Prozess
1. **Branch erstellen:**
```bash
git checkout -b feature/meine-funktion
```
2. **Änderungen implementieren:**
- Halte dich an die Code-Richtlinien
- Aktualisiere die Dokumentation
- Füge Tests hinzu (falls sinnvoll)
3. **Testen:**
```bash
npm run lint
npm run build
# Manuell in n8n testen
```
4. **Commit und Push:**
```bash
git add .
git commit -m "feat: Meine neue Funktion"
git push origin feature/meine-funktion
```
5. **Pull Request erstellen:**
- Beschreibe deine Änderungen
- Referenziere relevante Issues
- Warte auf Review
### PR Checkliste
- [ ] Code folgt den Richtlinien
- [ ] Linting/Formatting bestanden
- [ ] Build erfolgreich
- [ ] Dokumentation aktualisiert
- [ ] CHANGELOG.md aktualisiert
- [ ] Keine Secrets/Credentials im Code
## Bug Reports
### Template
```markdown
## Beschreibung
[Klare Beschreibung des Bugs]
## Schritte zur Reproduktion
1. ...
2. ...
3. ...
## Erwartetes Verhalten
[Was sollte passieren?]
## Tatsächliches Verhalten
[Was passiert stattdessen?]
## Umgebung
- OS: [z.B. Ubuntu 22.04]
- Node.js: [z.B. 20.10.0]
- n8n: [z.B. 1.20.0]
- LibreBooking: [z.B. 2.8.5]
## Logs/Screenshots
[Falls vorhanden]
```
## Feature Requests
### Template
```markdown
## Beschreibung
[Beschreibe die gewünschte Funktion]
## Use Case
[Warum wird diese Funktion benötigt?]
## Vorgeschlagene Lösung
[Falls du eine Idee hast]
## Alternativen
[Andere Möglichkeiten, die du in Betracht gezogen hast]
```
---
Vielen Dank für deinen Beitrag! 🙏