Contributions to the Yocto Project and OpenEmbedded are very welcome. Because the system is extremely configurable and flexible, we recognize that developers will want to extend, configure or optimize it for their specific uses.
The Yocto Project uses a mailing list and a patch-based workflow
that is similar to the Linux kernel but contains important
differences.
In general, a mailing list exists through which you can submit
patches.
You should send patches to the appropriate mailing list so that they
can be reviewed and merged by the appropriate maintainer.
The specific mailing list you need to use depends on the
location of the code you are changing.
Each component (e.g. layer) should have a
README
file that indicates where to send
the changes and which process to follow.
You can send the patch to the mailing list using whichever approach you feel comfortable with to generate the patch. Once sent, the patch is usually reviewed by the community at large. If somebody has concerns with the patch, they will usually voice their concern over the mailing list. If a patch does not receive any negative reviews, the maintainer of the affected layer typically takes the patch, tests it, and then based on successful testing, merges the patch.
The "poky" repository, which is the Yocto Project's reference build environment, is a hybrid repository that contains several individual pieces (e.g. BitBake, Metadata, documentation, and so forth) built using the combo-layer tool. The upstream location used for submitting changes varies by component:
Core Metadata:
Send your patch to the
openembedded-core
mailing list. For example, a change to anything under
the meta
or
scripts
directories should be sent
to this mailing list.
BitBake:
For changes to BitBake (i.e. anything under the
bitbake
directory), send your patch
to the
bitbake-devel
mailing list.
"meta-*" trees: These trees contain Metadata. Use the poky mailing list.
For changes to other layers hosted in the Yocto Project source
repositories (i.e. yoctoproject.org
), tools,
and the Yocto Project documentation, use the
Yocto Project
general mailing list.
For additional recipes that do not fit into the core Metadata, you
should determine which layer the recipe should go into and submit
the change in the manner recommended by the documentation (e.g.
the README
file) supplied with the layer.
If in doubt, please ask on the Yocto general mailing list or on
the openembedded-devel mailing list.
You can also push a change upstream and request a maintainer to pull the change into the component's upstream repository. You do this by pushing to a contribution repository that is upstream. See the "Workflows" section in the Yocto Project Reference Manual for additional concepts on working in the Yocto Project development environment.
Two commonly used testing repositories exist for OpenEmbedded-Core:
"ross/mut" branch:
The "mut" (master-under-test) tree
exists in the poky-contrib
repository
in the
Yocto Project source repositories.
"master-next" branch: This branch is part of the main "poky" repository in the Yocto Project source repositories.
Maintainers use these branches to test submissions prior to merging patches. Thus, you can get an idea of the status of a patch based on whether the patch has been merged into one of these branches.
The following sections provide procedures for submitting a change.