The Yocto Project is an open source project, led by maintainers and coordinated by the Yocto Project Advisory Board. The governance model is based on the best practices and values of Open Source culture, and pursues the goals set out in the Yocto Project Charter. The Yocto Project functions under the auspices of the Linux Foundation.
The Yocto Project is Open to All Contributors
Because the Yocto Project requires no admission processes, contracts, or membership fees, any individual or organization can use and contribute to the project. The only real requirement is your desire to join and contribute to its success. We welcome all contributions that lead to the success of the project - including software development, documentation, testing, and advocacy. The project also provides a Compliance Program for individuals or organizations to register as Yocto Project Participants, and to register products, board support packages (BSPs), or software layers as Yocto Project Compatible. Anyone who supports the Yocto Project or offers services based on it may be listed on the Supporting Organizations page.
The Yocto Project technical leadership and governance principle is based on meritocracy, which is very similar to how the Linux kernel and many other Open Source projects work. Consequently, sub-system maintainers, software layer and BSP maintainers, and other technical leaders are selected based on the quality and quantity of their contribution to the Yocto Project in relevant areas.
In general, contributors submit patches to the maintainers of repositories, the overall process of which is managed by the project architect.
Administrative and executive leaders from project member organizations participate on the Advisory Board as well as several sub-groups that perform vital non-technical functions for the project, including finance, advocacy and outreach, infrastructure management, and community management, with the workload spread among member organizations.
The Advisory Board also manages resources, and thus provides several workgroups which take care of administrative functions. These include:
- Advocacy & Outreach
- Community Management
The Yocto Project Community
The Yocto Project software is developed and designed using a collaborative effort by an open community of professionals and volunteers – collectively known as contributors. Contributors include anyone that is positively contributing to the Yocto Project. For example, code developers, documenters, interest groups, the Advisory Board, maintainers and technical leaders, the Yocto Project Architect, and people that just use and benefit from the Yocto Project are all considered Contributors.
The following conceptual diagram loosely illustrates how various groups influence one another within the Yocto Community.
Because building a functional operating system requires the coordinated efforts of people in many types of roles, the Yocto Project has a particular mix of roles and responsibilities:
- Architect – The Project Architect holds final authority on project direction, resolves conflicts, and provides overall leadership.
- Sub-system Maintainers – As in most open source projects, project code is divided into logical sub-projects. Maintainers are assigned to these sub-projects. The Maintainer, who is the delegated authority, reviews patches that are submitted by contributors and technical leaders, provides feedback to the developers, and accepts the ones that are appropriate. Project Maintainers armed with open input from the community make nearly every decision on the project. Options for a particular component are normally vetted on an appropriate project mailing list and input is solicited before decisions are made. Contributors are elevated to maintainership though meritocracy. For more information on project maintainers, see the Technical Leadership page.
- BSP/Layer Maintainers – Layer Maintainers and other technical leaders are recognized regular contributors to the project. These leaders work within layers to ensure component excellence and functionality. Contributors are elevated to maintainership though meritocracy. For more information on project maintainers, see the Technical Leadership page.
- Technical Leaders - Technical Leaders, along with a Maintainer, work within sub-projects to ensure component excellence and functionality. Any given sub-project can have zero to many Technical Leaders involved. Contributors are elevated to Technical Leadership though meritocracy.
- Upstream Projects - Many Yocto Project components, such as the Linux kernel, are dependent on upstream projects. The Yocto Project maintains relationships with the maintainers of those projects and contributes code upstream regularly.
- Collaborative Projects - Some Yocto Project components, including the build engine BitBake and the core metadata set
openembedded-core, are maintained in cooperation with other entities. In the cases mentioned, both of these components are co-maintained with the OpenEmbedded Project.
- Advisory Board– The Yocto Project Advisory Board advises the project's technical leadership on project direction and helps set requirements for the project. The Advisory Board's range of responsibilities also includes creating and dissolving working groups to support the fulfillment of the project objectives and defining policies and procedures. Current working groups include groups for Finance, Infrastructure, Advocacy, and Community Management. The Advisory Board meets monthly, and minutes from these meetings are posted on the Yocto Project Wiki.