Welcome to OpenAtom openEuler!
OpenAtom openEuler (openEuler for short) is an open source project incubated and operated by the OpenAtom Foundation.
openEuler is an open source operating system (OS) oriented to digital infrastructure that fits into any server, cloud computing, edge computing, and embedded deployment. This secure, stable, and easy-to-use open source OS is compatible with multiple computing architectures. openEuler suits operational technology (OT) applications and empowers the convergence of OT and information and communications technology (ICT).
The openEuler open source community works with global developers to build an open, diversified, and architecture-inclusive software ecosystem. It covers all scenarios of digital facilities, and empowers enterprises to develop their hardware and software as well as application ecosystems.
1. Experience openEuler
1.1 Experience the openEuler OS
openEuler community versions include long-term support (LTS) versions and innovation versions, as described in openEuler Community Version Lifecycle Management. You can download and experience openEuler community versions.
1.2 Experience Original Open Source Projects
Experience a range of original open source projects in the openEuler community.
- StratoVirt: enterprise-class virtualization platform oriented to cloud data centers
- A-Tune: AI-based tuning engine
- iSula: lightweight container solution
- secGear: security application development kit for confidential computing
- pkgship: software package dependency management with detailed dependency graphs
- BiSheng JDK: open source version of Huawei JDK, a high-performance, production-ready OpenJDK distribution
- Compass-CI: open source software platform for continuous integration (CI) with an open and comprehensive test system
- More
2. Sign the CLA
Sign the openEuler Contributor License Agreement (CLA) before contributing to the community. Choose a CLA type based on whether you are contributing as an individual, an employee, or on behalf of a corporation.
- Individual CLA: participating in the community as an individual
- Corporate CLA: participating in the community on behalf of a corporation
- Employee CLA: participating in the community as a corporation employee
References:
[1] openEuler CLA Signing Guide
[2] A Guide to Signing the openEuler Corporation CLA
3. Find SIGs to Participate In
Special interest groups (SIGs) are a crucial part in the openEuler community organizational structure. The community is organized into SIGs to better coordinate and manage workflows. SIGs are open to everyone. For details about SIGs, see openEuler SIG Role Division and Management.
So, the right way to start participating in the community is to find a SIG or project that interests you.
- Currently, the openEuler community has more than 100 SIGs. View the openEuler SIG list to find the SIG you want to join.
- If you cannot find a SIG that you are interested in, send an email to community@openeuler.org. You are advised to use "[Development Process Question]" in the email subject and write down the characteristics of the SIG or project that you are looking for in the content. We are glad to help.
- If you cannot find a SIG that interests you in the existing SIGs, and you have a strong interest in a certain development direction and wish to establish a relevant SIG, you can apply for setting up a new SIG.
4. Contribute to the Community
After signing the CLA and joining a SIG, you can start your contribution journey. To maintain the friendly environment for development and collaboration, observe the openEuler Community Code of Conduct and openEuler Community Code of Conduct for Development when you engage in community contributions.
4.1 Contribute Original Open Source Projects
If you want to contribute your original open source project to the openEuler community and make it a part of the openEuler releases, you need to:
Open the source code of your project under an open source license.
Use the mailing list to schedule a Technical Committee (TC) regular meeting and apply to contribute your project to the community.
With approval from the TC, you can integrate your work into openEuler using either of the following methods:
Method 1: Develop a project in the community and integrate it into openEuler.
Creating an original project directly in openEuler code repositories is like hosting the project in the openEuler community. This is the practice of iSula and A-Tune.
If you have a great idea that you want to implement in the openEuler community, follow the procedure below to get deeply involved in the openEuler community.
Apply for setting up an open source project in regular meetings of the TC.
If the TC determines that your proposal is valuable and deserves further development, a repository will be created in https://gitee.com/openeuler.
The project will be continuously developed and incubated within openEuler until it reaches maturity. At that point, a repository can be created in src-openeuler to provide the relevant spec file for packaging the project into an RPM file, which will eventually be used by people around the world with openEuler releases.
Method 2: Develop a project in another community and integrate it into openEuler.
Assuming that you already have a project on GitHub, GitLab, or Gitee, simply add the software to src-openeuler by referring to Adding a New Software Package.
4.2 Contribute Code
The openEuler community has two repositories:
Code repository: https://gitee.com/openeuler
Software package repository: https://gitee.com/src-openeuler
The openeuler repository stores source code.
The src-openeuler repository stores the software packages required for building the OS.
4.2.1 Submit and Handle Issues
Issues serve as a platform for documenting and tracking developer ideas, feedback, tasks, and software defects. By engaging with issues, you can easily participate in SIGs and projects that interest you, contributing to the community effectively. QuickIssue allows you to quickly search for and submit issues. Generally, issues are used to:
Report bugs.
Submit suggestions.
Record tasks to complete.
Give feedback on missing documentation or installation problems.
Ask and discuss questions.
Issue list
Enter the home page of the SIG or project that interests you from the community code repository, then click Issues on the toolbar to check the issue list, for example, the issue list of the community repository.
Issue submission
You can submit issues regarding bugs or requests to related repositories in the community. For details, see the Issue Submission and Handling Guide. To attract more attention, you can also attach the issue link to an email and send it to a mailing list.
Issue discussion
Each issue may have discussions from other participants. If you are interested, you can share your thoughts in the comment area.
Issue assignment
If you want to handle one of the issues, you can assign it to yourself. You only need to comment /assign or /assign @yourself. The community bot will assign the issue to you and your name will be displayed in the assignee list.
QuickIssue allows you to quickly search for and submit issues. For details, see Introduction to the QuickIssue Service.
4.2.2 Submit Code
Development environment setup
If you want to submit code, you need to prepare an openEuler development environment. For details, see Development Environment Preparations.
If you want to download, modify, build, or verify an openEuler software package, see Software Package Building.
Development precautions
The programming languages, development environments, and coding conventions used by SIG projects may vary. A contributor guide, which is typically provided as a CONTRIBUTING.md file on the SIG home page or a README.md file within the project repository, offers essential information for you to understand and participate in coding.
Code download and branching
To submit code, you also need to know how to download code from Gitee and merge code through pull request (PRs). The openEuler community hosts code on Gitee. For details, see Gitee Workflow. Gitee provides similar experience to GitHub. If you have used GitHub before, you can have a quick look at or even skip this chapter.
Build modification and local verification
After modifying code on a local branch, you can perform building and verification locally by referring to Software Package Building.
PR submission
When you submit a PR, you are starting to contribute code to the community. The Pull Request Submission Guide will familiarize you with PR submission requirements. To increase the chances of your PR being accepted, you should:
Comply with any coding conventions of the SIG.
Write good commit messages.
When submitting a large amount of code, you are advised to break down the code into a series of smaller, logically contained commits. This will make it easier for reviewers to understand your thoughts.
Attach appropriate SIG and committer labels to your PR. The community bot will send you a message to guide you through the entire PR process.
Note: If your PR does not draw enough attention, you can seek help from the SIG mailing list or send email to dev@openeuler.org.
4.2.3 Contribute Software Packages or Package Community Components
If you find a software package missing from openEuler, you can add it to supplement openEuler and help expand its functionality.
When a software package is added on Gitee, openEuler automatically creates a repository with the same name in openEuler:Factory of the Open Build Service (OBS). In this way, every time code is submitted to the created Gitee repository, a code compilation check is automatically triggered. Adding a New Software Package describes the detailed process.
You can also participate in community component packaging. For details, see the openEuler Packaging Guide.
If you find that some software packages are missing or the existing packages do not satisfy your needs, you can help supplement openEuler by using openEuler User Repo (EUR). For details, see Introduction to the openEuler User Software Repository and How to Use the openEuler User Repository.
4.2.4 Review Code
openEuler is an open community and every community member is expected to be an active reviewer. For details about responsibilities of different contributor roles, see Community Membership.
As a SIG committer or maintainer, you have the responsibility and permission to review code. It is strongly recommended that you comply with the Code of Conduct and respect others to foster a collaborative environment and improve yourself. When reviewing PRs, consider the key points outlined in The Gentle Art Of Patch Review. This resource emphasizes fostering an encouraging environment for new contributors instead of giving nit-picking comments. To this end, please keep the following points in mind during your review:
Is the idea behind the contribution sound?
Is the contribution architected correctly?
Is the contribution polished?
4.2.5 Test
Testing is the responsibility of all contributors. The QA SIG is the official organization responsible for testing activities related to the community version. If you want to carry out testing activities on your own infrastructure, see Community Test System.
A successful release of the community version requires multiple types of testing activities. Different tests target different code segments and require varying execution environments. For details, see Community Developer Test Contribution Guide.
4.2.6 Report Community Security Issues
- openEuler Community Security Issue Handling Process briefly introduces the process of handling security issues.
- openEuler Security Disclosure describes how to report security vulnerabilities.
4.3 Make Non-Code Contributions
If you are not interested in coding, you can make Non-Code Contributions. This section will describe some common non-code community work.
4.3.1 openEuler Call for X
openEuler Call for X is a program that encourages community members and open source enthusiasts to contribute, share experiences, and exchange resources. Through openEuler Call for X, you can participate in community by sharing your valuable experiences and contribute technical tutorials.
Contact: events@openeuler.sh
4.3.2 Other Community Work
Participating in community communication through mailing lists and community forum, helping new members engage and contribute to the community
Maintaining community communication tool and organizing community meetings
Participating in community conference organization as an openEuler evangelist, including meetups, live broadcast, and openEuler Developer Day.
Participating in community publicity, promotion, and content creation, including document bug catching, blog writing, and success story writing.
Participating in community infrastructure construction by joining the infrastructure SIG
Participating in community visual design by joining the OpenDesign SIG
Participating in community translation by joining the G11N SIG
5. Grow with the Community
openEuler TC
The openEuler TC makes technical decisions and coordinates technical resources. For details, see the TC home page.
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 Role Description.