Skip to content

Contributing im OTOBO Open-Source-Projekt

OTOBO ist Open Source unter der GitHub-Organisation RotherOSS (https://github.com/RotherOSS/otobo). Wenn du Bugs melden oder eigenen Code beisteuern willst, folge diesem Workflow:


1. GitHub-Workflow

1.1 Fork & Clone

  1. Lege dir einen Fork von https://github.com/RotherOSS/otobo an.
  2. Klone dein Fork lokal:
    bash
    git clone https://github.com/<dein-user>/otobo.git
    cd otobo

### 1.2 Branching

Erstelle für jede Änderung einen neuen Branch:

```bash
git checkout -b feature/<kurze-beschreibung>
```

Beispiel:

```bash
git checkout -b feature/add-hello-world-module
```

### 1.3 Commit & Push

1. Implementiere deinen Code.
2. Füge sinnvolle Commit-Messages hinzu:

   ```bash
   git add .
   git commit -m "Adds HelloWorld module with basic functionality"
   ```
3. Push deinen Branch:

   ```bash
   git push origin feature/add-hello-world-module
   ```

### 1.4 Pull Request

1. Öffne deinen Fork auf GitHub.
2. Klick auf **Compare & pull request**.
3. Beschreibe im PR-Text kurz, was dein Feature/Bugfix macht und warum es wichtig ist.
4. Wähle den richtigen Ziel-Branch (meist `master` oder `development`).

---

## 2. Code Style & Tests

### 2.1 CodePolicy

RotherOSS nutzt das Tool **CodePolicy** ([https://github.com/RotherOSS/CodePolicy](https://github.com/RotherOSS/CodePolicy)), um Coding-Standards zu prüfen.

* Installation:

  ```bash
  cpanm CodePolicy
  ```
* Ausführen im Repo-Root:

  ```bash
  CodePolicy --check .
  ```

### 2.2 Perl-Module & POD

* Jedes `Kernel::System::*` und `Kernel::Modules::*` Modul muss POD-Dokumentation enthalten.
* Deklariere Abhängigkeiten in `our @ObjectDependencies`.
* Achte auf `use strict; use warnings;`.

### 2.3 Unit-Tests

OTOBO benutzt Mojolicious-Tests und \[Test::More]. Lege deine Tests in `t/` ab:

```bash
prove -l t/MyModule.t
```

---

## 3. Issue-Management & Reviews

### 3.1 Issues öffnen

* Suche zuerst nach bestehenden Issues.
* Erstelle ein Issue mit Titel, Reproduktions-Schritten, Logs und Screenshots (falls nötig).

### 3.2 Labels & Templates

* Nutze die Labels **bug**, **enhancement**, **question**.
* Folge den Issue- und PR-Templates im Repo.

### 3.3 Code Reviews

* Reagiere zeitnah auf Review-Kommentare im PR.
* Ergänze Tests oder ändere Stil, wenn Reviewer es vorschlagen.
* Nach Approval wird dein PR gemerged.

---

## 4. Community & Support

* **GitHub Discussions:** [https://github.com/RotherOSS/otobo/discussions](https://github.com/RotherOSS/otobo/discussions)
* **Mailingliste & Chat:** Links findest du auf [https://otobo.com/](https://otobo.com/) im Bereich „Community“.
* **Dokumentation:** Developer-Docs auf [https://doc.otobo.org/](https://doc.otobo.org/) („How to Contribute“).

Viel Erfolg beim Mitgestalten von OTOBO!