Welcome to openGemini!

1. Experience openGemini

Experience the openGemini in the following ways:

2. GitHub account and sign the DCO

2.1 Registering a GitHub account

Log in to GitHub and register with a common email address. The email address is used to sign the DCO and configure the SSH public key.

2.2 Sign the DCO

Sign the openGemini DCO (Developer Certificate of Origin) and comply with the original contract. Each time you submit a PR, you need to use the email address to sign the DCO.

3. Join the openGemini community

3.1 Participate in community activities

Learn about and participate in a variety of community activities.

3.2 Find the SIGs to participate In

The openGemini community is organized into SIGs to better manage the work processes. SIGs are open to anyone, and finding your perfect SIG is the first step to contributing to community affairs. 

Currently, The openGemini community has just been established and the SIG is being prepared.

If you fail to find the SIGs you are interested in and want to start a new SIG for maintenance and development in the openGemini community, refer to Application Process

3.3 Engage in community contributions

3.3.1 Submit and address issues

  • Find the issue list

On the GitHub homepage of the SIG project you are interested in, click Issues(for example, the issues of the Community project).  

  • Submit an issue

If you want to report bugs, submit requests, or contribute your comments or suggestions to the openGemini community, submit an issue in the corresponding repository of the openGemini community.

For details about how to submit an issue, see the Issue Submission Guide. To attract more attention, you can also attach the issue link in an email and send it to everyone through the  Mailing Lists.

  • Participate in the discussion on an issue

There are discussions among participants on each issue. If you are interested in an issue, you can also post your comments in the comment box.

  • Find the issues that you want to address

If you want to work on one of those issues, you can assign it to yourself. Type /assign or /assign @your_account_name in the comment box. The system will assign the issue to you and your name will appear in the owner list.

3.3.2 Contribute code

  • Prepare the openGemini development environment

Prepare Go and Python development environment before contributing code.

  • Understand the development precautions of the SIG and the project
  • Download code and pull a branch

Before contributing code, learn how to download code from GitHub and merge code through pull requests (PRs). openGemini code is hosted on the GitHub platform. For details, see GitHub Workflow Guide. If you have used GitHub before, skip this section.

  • Perform modification, building, and local validation

After the modification is complete on the local branch, build and local debugging and verification. For details, see the Code Debugging Guide.

  • Create a PR

Creating a PR means that you are contributing code to the community. For details, see Creating a Pull Request.

To make your PR easier to be accepted, you need to:

    • Follow the coding conventions (if any) of the SIG.
    • Write good commit messages.
    • If you want to commit a large amount of code at a time, it is recommended that you divide the code into a series of smaller pieces, which will make it easier for reviewers to understand your ideas.
    • Mark the PR with appropriate SIG and monitor tags. The CI Bot will walk you through the PR process.

Note: If your PR does not attract enough attention, you can ask for help through the SIG mailing list or

3.3.3 Ecosystem tools contribution

If you find that other third-party software systems and tools do not support openGemini, or openGemini does not support some other operating systems, CPU architectures, and storage systems, you can contribute the capacity to openGemini community. At the same time, the community will release the ecosystem tool development task in ISSUE. You can also take over the task. In fact, the process of contributing tools is the process of helping openGemini thrive in the ecosystem, making openGemini with a wide technical ecosystem.

3.3.4 Contribute original open source projects

If you want to contribute your original openGemini-based open source project or solution to the openGemini community, create original projects directly at and "host" the projects to the openGemini community.

3.3.5 Review code

openGemini is an open community and everyone involved is expected to be an active reviewer. When you are a committer or maintainer of a SIG, you have the responsibility and permission to review code. Everyone in the community is encouraged to pursue excellence and promote collaboration on the ground of the Code of Conduct and mutual respect. The Gentle Art Of Patch Review lists a series of review highlights. Code review activities are expected to promote the active participation of new contributors without causing the contributors to be overwhelmed by minor errors at the beginning. Therefore, during the review, focus on the following:

 1. Whether the idea behind the contribution is reasonable.

 2. Whether the contribution architecture is correct.

 3. Whether the contribution is complete.

4. Test

To successfully release a community version, you need to complete multiple test activities. The location of the test code varies according to the test activity, so do the details of the environment required for successful test running. For details, see Test Contribution Guide for Community Developers.

5. Participate in non-code contributions

If your interest is not in writing code, you can find work of interest in the Non-Code Contributions.

5.1 Community roles

Everyone in the community plays an important part. Roles differ in terms of responsibilities and permissions. Grow, accumulate experience, and gain influence by contributing to the community. For details about roles, responsibilities, and permissions, see Community Membership

5.2 Technical Committee

The openGemini Technical Committee (TC) is the technical decision-making body of the openGemini community. It is responsible for technical decision-making and coordination of technical resources in the openGemini community.