Contributing to the OTOBO Open Source Project
OTOBO is open source under the GitHub organization RotherOSS (https://github.com/RotherOSS/otobo). If you want to report bugs or contribute your own code, follow this workflow:
1. GitHub Workflow
1.1 Fork & Clone
- Create a fork of
https://github.com/RotherOSS/otobo
. - Clone your fork locally:bash
git clone https://github.com/<your-user>/otobo.git cd otobo
1.2 Branching
Create a new branch for each change:
bash
git checkout -b feature/<short-description>
Example:
bash
git checkout -b feature/add-hello-world-module
1.3 Commit & Push
Implement your code.
Add meaningful commit messages:
bashgit add . git commit -m "Adds HelloWorld module with basic functionality"
Push your branch:
bashgit push origin feature/add-hello-world-module
1.4 Pull Request
- Open your fork on GitHub.
- Click on Compare & pull request.
- Briefly describe in the PR text what your feature/bugfix does and why it's important.
- Select the correct target branch (usually
master
ordevelopment
).
2. Code Style & Tests
2.1 CodePolicy
RotherOSS uses the CodePolicy tool (https://github.com/RotherOSS/CodePolicy) to check coding standards.
Installation:
bashcpanm CodePolicy
Run in the repo root:
bashCodePolicy --check .
2.2 Perl Modules & POD
- Every
Kernel::System::*
andKernel::Modules::*
module must include POD documentation. - Declare dependencies in
our @ObjectDependencies
. - Pay attention to
use strict; use warnings;
.
2.3 Unit Tests
OTOBO uses Mojolicious tests and [Test::More]. Place your tests in t/
:
bash
prove -l t/MyModule.t
3. Issue Management & Reviews
3.1 Opening Issues
- First, search for existing issues.
- Create an issue with a title, reproduction steps, logs, and screenshots (if necessary).
3.2 Labels & Templates
- Use the labels bug, enhancement, question.
- Follow the issue and PR templates in the repo.
3.3 Code Reviews
- Respond promptly to review comments in the PR.
- Add tests or change the style if reviewers suggest it.
- After approval, your PR will be merged.
4. Community & Support
- GitHub Discussions: https://github.com/RotherOSS/otobo/discussions
- Mailing List & Chat: You can find links on https://otobo.com/ in the "Community" section.
- Documentation: Developer docs at https://doc.otobo.org/ ("How to Contribute").
Happy contributing to OTOBO