Skip to main content

How to Contribute to Apache Ozone

Thank you for your interest in contributing to Apache Ozone! This guide will help you understand the various ways you can contribute to the project and how to get started.

Ways to Contribute

Apache Ozone welcomes contributions in many forms, not just code. Here are various ways you can contribute:

Code Contributions

Finding Issues to Work On

Making Code Changes

  1. Set Up Development Environment

    • Fork and clone the repository
    • Enable the build-branch GitHub Actions workflow in your fork
  2. Create a Branch

    • Ensure a Jira issue exists for your task (e.g., HDDS-1234)
    • Create a branch for your work: git checkout -b HDDS-1234
  3. Develop Your Changes

  4. Submit Your Contribution

    • Push changes to your fork
    • Wait for the build-branch workflow to complete
    • Create a pull request following the template used. (PRs pushed to master first and then if needed to a release branch)
    • Update the Jira issue status to "Patch Available"
    • Once the PR is merged close the Jira if completely resolved.

Reviewing Code and Design

Code reviews are a crucial part of the Apache Ozone development process. Reviewing others' code not only helps maintain quality but is also an excellent way to learn about the codebase.

How to Review Pull Requests

  1. Browse Open PRs: Visit the open pull requests on GitHub
  2. Choose PRs to Review: Start with PRs in areas you're familiar with or interested in learning
  3. Run the Code: When possible, check out the PR branch and test it locally
  4. Review Checklist:
    • Does the code follow project style guidelines?
    • Are there sufficient tests for the new functionality?
    • Is the documentation updated?
    • Is the design sound and consistent with the rest of the codebase?
    • Does the code address the issue described in the linked Jira?

Documentation

Testing

  • Unit Tests: Write JUnit tests for Java code
  • Acceptance Tests: Create Docker + Robot Framework tests
  • Application integration test: Report any issues integrating with third party applications.
  • Performance Testing: Run benchmarks with ozone freon and report findings

Visual Design & Art

Ozone welcomes contributions in design and visual arts:

  • Logos and Icons: Create variations of the Ozone logo for different contexts
  • Diagrams: Design architectural and conceptual diagrams for documentation
  • Website Design: Improve the look and feel of the Ozone website
  • Slide Decks: Design templates for presentations about Ozone

Share your artwork through the GitHub Discussions or on the dev mailing list dev@ozone.apache.org.

Bug Reports and Feature Requests

  • Report bugs or suggest features through Jira
  • Search existing issues before creating a new one
  • Provide detailed steps to reproduce bugs

Community Support

Getting Help

Details for how to reach the community can be found here

Recognition

All contributions are recognized in Apache Ozone:

  • Code contributions are recorded in Git history
  • Documentation improvements help the entire community
  • Testing helps ensure project quality
  • Bug reports guide project improvement
  • Evangelism: write blog posts, submit talks at conferences, commenting on social media

Your contributions, large or small, are valued and appreciated by the Ozone community!