Yoko is a CORBA 2.3 compliant ORB implementation to support interprocess communication. It is an open-source project maintained by IBM, forked from Apache Yoko.
curl -s "https://get.sdkman.io" | bashsdk env installsdk env# macOS: brew install python3
# Ubuntu/Debian: sudo apt install python3-pip
# Fedora/RHEL: sudo dnf install python3-pippip install pre-commit && pre-commit install./scripts/setup-bob-worktrees.shgradle buildFork the repository on GitHub, then clone your fork:
git clone https://github.com/YOUR-USERNAME/yoko.git
cd yokogit checkout -b feature/your-feature-nameEdit code, following the coding standards.
gradle testUse Conventional Commits format:
git commit -m "feat(orb): add GIOP 1.3 support"
git commit -m "fix(codec): correct UTF-8 surrogate pair handling"
git commit -m "docs(readme): update build instructions"git push origin feature/your-feature-nameThen create a pull request on GitHub.
- Production code: Java 8 (for backward compatibility)
- Test code: Java 11+ (for modern testing features)
- See
build.gradlefor current version configuration
- All new or changed behavior must have tests
- Test both success and failure paths
- Include edge cases and boundary conditions
- Run full test suite before submitting PR:
gradle test
- Indentation: 4 spaces (no tabs)
- Line endings: No trailing whitespace
- Checkstyle: Enforced via
gradle check - Imports: No star imports, organized by package
- See Coding Standards for complete standards
Follow Conventional Commits: <type>(<scope>): <description>
Types: feat, fix, docs, style, refactor, test, chore
See git log for examples.
When using AI tools for code contributions:
- Review and understand all generated code
- Ensure code meets project standards
- Test thoroughly - AI-generated code must pass all tests
- Take responsibility for the code you submit
- See Open Liberty GenAI Guidelines
- ✅ All tests pass (
gradle test) - ✅ No checkstyle violations (
gradle check) - ✅ Comprehensive tests for new/changed behavior
- ✅ Documentation updated (if applicable)
- ✅ Commit messages follow Conventional Commits format
For non-trivial changes, you must sign the Individual Contributor License Agreement. Trivial changes (typos, formatting) don't require a CLA.
- Submit pull request against
mainbranch - Automated checks run (tests, checkstyle)
- Team reviews code
- Address review feedback
- PR merged when approved
Testify is our internal testing framework for JUnit 5, supporting:
- Multi-threaded test execution
- Forked process testing
- Inter-process communication via Bus
- Flexible test configuration
See Testify documentation for usage details.
For creating or simplifying Yoko IIOP testcases, see the testify-iiop testcase guide.
To preview documentation changes before publishing:
# Install MkDocs Material theme
pip install mkdocs-material
# Serve documentation locally (auto-reloads on changes)
mkdocs serve --config-file config/mkdocs.yml
# Open http://127.0.0.1:8000 in your browser# Build static site to site/ directory
mkdocs build --config-file config/mkdocs.ymlDocumentation is automatically published to GitHub Pages when changes are pushed to main.
- Coding Standards - Complete coding guidelines
- Release Process - For maintainers
- Testify Documentation - Testing framework guide
- Interop Testing - Version compatibility testing
- CORBA Specifications - CORBA standards
- Issue Tracker - Report bugs or request features
- Conventional Commits - Commit message format
Yoko is licensed under the Apache License 2.0. See LICENSE for details.