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.