Skip to content

Latest commit

 

History

History
118 lines (66 loc) · 6.71 KB

CONTRIBUTION.md

File metadata and controls

118 lines (66 loc) · 6.71 KB

CONTRIBUTION GUIDE

Welcome to openGemini!

Experience openGemini

Experience the openGemini in the following ways:

GitHub account and Sign the DCO

Registering a GitHub Account

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

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.

Join the openGemini Community

Participate in Community Activities

Learn about and participate in a variety of community activities.

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.

Engage in Community Contributions

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 under 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.

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 [email protected]

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 the ecosystem, making openGemini with a wide technical ecosystem.

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 https://github.com/openGemini and "host" the projects to the openGemini community.

Review Code

openGemini is an open community and everyone involved is expected to be active reviewers. 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

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.

Participate in Non-Code Contributions

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

Grow with the Community

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

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.