diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index eda8df21f5..935648b2f9 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -237,7 +237,18 @@
In order to be compliant with the Yocto Project,
a layer must contain a
README file.
-
+
+
+
+ Optionally Test for Compatibility:
+ If you want permission to use the Yocto Project
+ Compatibility logo with your layer or application that
+ uses your layer, perform the steps to apply for
+ compatibility.
+ See the
+ "Making Sure Your Layer is Compatible With Yocto Project"
+ section for more information.
+
@@ -412,6 +423,14 @@
We also recommend the following:
+ If you want permission to use the
+ Yocto Project Compatibility logo with your layer
+ or application that uses your layer, perform the
+ steps to apply for compatibility.
+ See the
+ "Making Sure Your Layer is Compatible With Yocto Project"
+ section for more information.
+ Store custom layers in a Git repository
that uses the
meta-layer_name format.
@@ -428,6 +447,204 @@
+
+ Making Sure Your Layer is Compatible With Yocto Project
+
+
+ When you create a layer used with the Yocto Project, it is
+ advantageous to make sure that the layer interacts well with
+ existing Yocto Project layers (i.e. the layer is compatible
+ with the Yocto Project).
+ Ensuring compatibility makes the layer easy to be consumed
+ by others in the Yocto Project community and allows you
+ permission to use the Yocto Project Compatibility logo.
+
+
+
+ Version 1.0 of the Yocto Project Compatibility Program has
+ been in existence for a number of releases.
+ This version of the program consists of the layer application
+ process that requests permission to use the Yocto Project
+ Compatibility logo for your layer and application.
+ You can find version 1.0 of the form at
+ .
+ To be granted permission to use the logo, you need to be able
+ to answer "Yes" to the questions or have an acceptable
+ explanation for any questions answered "No".
+
+
+
+ A second version (2.0) of the Yocto Project Compatibility
+ Program is currently under development.
+ Included as part of version 2.0 (and currently available) is
+ the yocto-compat-layer.py script.
+ When run against a layer, this script tests the layer against
+ tighter constraints based on experiences of how layers have
+ worked in the real world and where pitfalls have been found.
+
+
+
+ Part of the 2.0 version of the program that is not currently
+ available but is in development is an updated compatibility
+ application form.
+ This updated form, among other questions, specifically
+ asks if your layer has passed the test using the
+ yocto-compat-layer.py script.
+ Tip
+ Even though the updated application form is currently
+ unavailable for version 2.0 of the Yocto Project
+ Compatibility Program, the
+ yocto-compat-layer.py script is
+ available in OE-Core.
+ You can use the script to assess the status of your
+ layers in advance of the 2.0 release of the program.
+
+
+
+
+ The remainder of this section presents information on the
+ version 1.0 registration form and on the
+ yocto-compat-layer.py script.
+
+
+
+ Yocto Project Compatibility Program Application
+
+
+ Use the 1.0 version of the form to apply for your
+ layer's compatibility approval.
+ Upon successful application, you can use the Yocto
+ Project Compatibility logo with your layer and the
+ application that uses your layer.
+
+
+
+ To access the form, use this link:
+ .
+ Follow the instructions on the form to complete your
+ application.
+
+
+
+ The application consists of the following sections:
+
+
+ Contact Information:
+ Provide your contact information as the fields
+ require.
+ Along with your information, provide the
+ released versions of the Yocto Project for which
+ your layer is compatible.
+
+
+ Acceptance Criteria:
+ Provide "Yes" or "No" answers for each of the
+ items in the checklist.
+ Space exists at the bottom of the form for any
+ explanations for items for which you answered "No".
+
+
+ Recommendations:
+ Provide answers for the questions regarding Linux
+ kernel use and build success.
+
+
+
+
+
+
+ yocto-compat-layer.py Script
+
+
+ The yocto-compat-layer.py script,
+ which is currently available, provides you a way to
+ assess how compatible your layer is with the Yocto
+ Project.
+ You should run this script prior to using the form to
+ apply for compatibility as described in the previous
+ section.
+
+ Because the script is part of the 2.0 release of the
+ Yocto Project Compatibility Program, you are not
+ required to successfully run your layer against it
+ in order to be granted compatibility status.
+ However, it is a good idea as it promotes
+ well-behaved layers and gives you an idea of where your
+ layer stands regarding compatibility.
+
+
+
+
+ The script divides tests into three areas: COMMON, BSD,
+ and DISTRO.
+ For example, given a distribution layer (DISTRO), the
+ layer must pass both the COMMON and DISTRO related tests.
+ Furthermore, if your layer is a BSP layer, the layer must
+ pass the COMMON and BSP set of tests.
+
+
+
+ To execute the script, enter the following commands from
+ your build directory:
+
+ $ source oe-init-build-env
+ $ yocto-compat-layer.py your_layer_directory
+
+ Be sure to provide the actual directory for your layer
+ as part of the command.
+
+
+
+ Entering the command causes the script to determine the
+ type of layer and then to execute a set of specific
+ tests against the layer.
+ The following list overviews the test:
+
+
+ common.test_readme:
+ Tests if a README file
+ exists in the layer and the file is not empty.
+
+
+ common.test_parse:
+ Tests to make sure that BitBake can parse the
+ files without error (i.e.
+ bitbake -p).
+
+
+ common.test_show_environment:
+ Tests that the global or per-recipe environment
+ is in order without errors (i.e.
+ bitbake -e).
+
+
+ common.test_signatures:
+ Tests to be sure that BSP and DISTRO layers do not
+ come with recipes that change signatures.
+
+
+ bsp.test_bsp_defines_machines:
+ Tests if a BSP layer has machine configurations.
+
+
+ bsp.test_bsp_no_set_machine:
+ Tests to ensure a BSP layer does not set the
+ machine when the layer is added.
+
+
+ distro.test_distro_defines_distros:
+ Tests if a DISTRO layer has distro configurations.
+
+
+ distro.test_distro_no_set_distro:
+ Tests to ensure a DISTRO layer does not set the
+ distribution when the layer is added.
+
+
+
+
+
+
Enabling Your Layer