diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
index fe1bfba..c75e718 100644
--- a/poky/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -189,8 +189,8 @@
                                 <ulink url='&YOCTO_WIKI_URL;/wiki/Releases'>Yocto Project</ulink>
                                 releases for which the current version is
                                 compatible.
-                                This variable is a good way to indicate how
-                                up-to-date your particular layer is.
+                                This variable is a good way to indicate if
+                                your particular layer is current.
                                 </para></listitem>
                         </itemizedlist>
                         </para></listitem>
@@ -3237,30 +3237,22 @@
                 post-installation script to be delayed until the first boot.
                 For example, the script might need to be executed on the
                 device itself.
-                To delay script execution until boot time, use the following
-                structure in the post-installation script:
-                <literallayout class='monospaced'>
-     pkg_postinst_<replaceable>PACKAGENAME</replaceable>() {
-     if [ x"$D" = "x" ]; then
-          # Actions to carry out on the device go here
-     else
-          exit 1
-     fi
-     }
-                </literallayout>
+                To delay script execution until boot time, you must explicitly
+                mark post installs to defer to the target.
+                You can use <filename>pkg_postinst_ontarget()</filename> or
+                call
+                <filename>postinst-intercepts defer_to_first_boot</filename>
+                from <filename>pkg_postinst()</filename>.
+                Any failure of a <filename>pkg_postinst()</filename> script
+                (including exit 1) triggers an error during the
+                <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-rootfs'><filename>do_rootfs</filename></ulink>
+                task.
             </para>
 
             <para>
-                The previous example delays execution until the image boots
-                again because the environment variable <filename>D</filename>
-                points to the directory containing the image when
-                the root filesystem is created at build time but is unset
-                when executed on the first boot.
-            </para>
-
-            <para>
-                If you have recipes that use <filename>pkg_postinst</filename>
-                scripts and they require the use of non-standard native
+                If you have recipes that use
+                <filename>pkg_postinst</filename> function
+                and they require the use of non-standard native
                 tools that have dependencies during rootfs construction, you
                 need to use the
                 <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_WRITE_DEPS'><filename>PACKAGE_WRITE_DEPS</filename></ulink>
@@ -3279,8 +3271,8 @@
                 <filename>pkg_prerm</filename>, and
                 <filename>pkg_postrm</filename>, respectively.
                 These scrips work in exactly the same way as does
-                <filename>pkg_postinst</filename> with the exception that they
-                run at different times.
+                <filename>pkg_postinst</filename> with the exception
+                that they run at different times.
                 Also, because of when they run, they are not applicable to
                 being run at image creation time like
                 <filename>pkg_postinst</filename>.
@@ -4264,7 +4256,7 @@
                         You need to be sure that your development host is
                         set up to use the Yocto Project.
                         For information on how to set up your host, see the
-                        "<link linkend='setting-up-the-development-host-to-use-the-yocto-project'>Preparing the Build Host</link>"
+                        "<link linkend='dev-preparing-the-build-host'>Preparing the Build Host</link>"
                         section.
                         </para></listitem>
                     <listitem><para>
@@ -5321,104 +5313,215 @@
             </para>
         </section>
 
-        <section id='platdev-building-targets-with-multiple-configurations'>
-            <title>Building Targets with Multiple Configurations</title>
+        <section id='dev-building-images-for-multiple-targets-using-multiple-configurations'>
+            <title>Building Images for Multiple Targets Using Multiple Configurations</title>
 
             <para>
-                Bitbake also has functionality that allows you to build
-                multiple targets at the same time, where each target uses
-                a different configuration.
+                You can use a single <filename>bitbake</filename> command
+                to build multiple images or packages for different targets
+                where each image or package requires a different configuration
+                (multiple configuration builds).
+                The builds, in this scenario, are sometimes referred to as
+                "multiconfigs", and this section uses that term throughout.
             </para>
 
             <para>
-                In order to accomplish this, you setup each of the configurations
-                you need to use in parallel by placing the configuration files in
-                your current build directory alongside the usual
-                <filename>local.conf</filename> file.
+                This section describes how to set up for multiple
+                configuration builds and how to account for cross-build
+                dependencies between the multiconfigs.
             </para>
 
-            <para>
-                Follow these guidelines to create an environment that supports
-                multiple configurations:
-                <itemizedlist>
-                    <listitem><para>
-                        <emphasis>Create Configuration Files</emphasis>:
-                        You need to create a single configuration file for each
-                        configuration for which you want to add support.
-                        These files would contain lines such as the following:
-                        <literallayout class='monospaced'>
-     MACHINE = "A"
-                        </literallayout>
-                        The files would contain any other variables that can
-                        be set and built in the same directory.
-                        <note>
-                            You can change the
-                            <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>
-                            to not conflict.
-                        </note></para>
+            <section id='dev-setting-up-and-running-a-multiple-configuration-build'>
+                <title>Setting Up and Running a Multiple Configuration Build</title>
 
-                        <para>
-                        Furthermore, the configuration file must be located in the
-                        current build directory in a directory named
-                        <filename>multiconfig</filename> under the build's
-                        <filename>conf</filename> directory where
-                        <filename>local.conf</filename> resides.
-                        The reason for this restriction is because the
-                        <filename>BBPATH</filename> variable is not constructed
-                        until the layers are parsed.
-                        Consequently, using the configuration file as a
-                        pre-configuration file is not possible unless it is
-                        located in the current working directory.
-                        </para></listitem>
-                    <listitem><para>
-                        <emphasis>Add the BitBake Multi-Config Variable to you Local Configuration File</emphasis>:
-                        Use the
-                        <filename>BBMULTICONFIG</filename>
-                        variable in your <filename>conf/local.conf</filename>
-                        configuration file to specify each separate configuration.
-                        For example, the following line tells BitBake it should load
-                        <filename>conf/multiconfig/configA.conf</filename>,
-                        <filename>conf/multiconfig/configB.conf</filename>, and
-                        <filename>conf/multiconfig/configC.conf</filename>.
-                        <literallayout class='monospaced'>
-     BBMULTICONFIG = "configA configB configC"
-                        </literallayout>
-                        </para></listitem>
-                    <listitem><para>
-                        <emphasis>Launch BitBake</emphasis>:
-                        Use the following BitBake command form to launch the
-                        build:
-                        <literallayout class='monospaced'>
+                <para>
+                    To accomplish a multiple configuration build, you must
+                    define each target's configuration separately using
+                    a parallel configuration file in the
+                    <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>,
+                    and you must follow a required file hierarchy.
+                    Additionally, you must enable the multiple configuration
+                    builds in your <filename>local.conf</filename> file.
+                </para>
+
+                <para>
+                    Follow these steps to set up and execute multiple
+                    configuration builds:
+                    <itemizedlist>
+                        <listitem><para>
+                            <emphasis>Create Separate Configuration Files</emphasis>:
+                            You need to create a single configuration file for
+                            each build target (each multiconfig).
+                            Minimally, each configuration file must define the
+                            machine and the temporary directory BitBake uses
+                            for the build.
+                            Suggested practice dictates that you do not
+                            overlap the temporary directories
+                            used during the builds.
+                            However, it is possible that you can share the
+                            temporary directory
+                            (<ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>).
+                            For example, consider a scenario with two
+                            different multiconfigs for the same
+                            <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>: "qemux86" built for
+                            two distributions such as "poky" and "poky-lsb".
+                            In this case, you might want to use the same
+                            <filename>TMPDIR</filename>.</para>
+
+                            <para>Here is an example showing the minimal
+                            statements needed in a configuration file for
+                            a "qemux86" target whose temporary build directory
+                            is <filename>tmpmultix86</filename>:
+                            <literallayout class='monospaced'>
+     MACHINE="qemux86"
+     TMPDIR="${TOPDIR}/tmpmultix86"
+                            </literallayout></para>
+
+                            <para>The location for these multiconfig
+                            configuration files is specific.
+                            They must reside in the current build directory in
+                            a sub-directory of <filename>conf</filename> named
+                            <filename>multiconfig</filename>.
+                            Following is an example that defines two
+                            configuration files for the "x86" and "arm"
+                            multiconfigs:
+                            <imagedata fileref="figures/multiconfig_files.png" align="center" width="4in" depth="3in" />
+                            </para>
+
+                            <para>The reason for this required file hierarchy
+                            is because the <filename>BBPATH</filename> variable
+                            is not constructed until the layers are parsed.
+                            Consequently, using the configuration file as a
+                            pre-configuration file is not possible unless it is
+                            located in the current working directory.
+                            </para></listitem>
+                        <listitem><para>
+                            <emphasis>Add the BitBake Multi-configuration Variable to the Local Configuration File</emphasis>:
+                            Use the
+                            <ulink url='&YOCTO_DOCS_REF_URL;#var-BBMULTICONFIG'><filename>BBMULTICONFIG</filename></ulink>
+                            variable in your
+                            <filename>conf/local.conf</filename> configuration
+                            file to specify each multiconfig.
+                            Continuing with the example from the previous
+                            figure, the <filename>BBMULTICONFIG</filename>
+                            variable needs to enable two multiconfigs: "x86"
+                            and "arm" by specifying each configuration file:
+                            <literallayout class='monospaced'>
+     BBMULTICONFIG = "x86 arm"
+                            </literallayout>
+                            </para></listitem>
+                        <listitem><para>
+                            <emphasis>Launch BitBake</emphasis>:
+                            Use the following BitBake command form to launch the
+                            multiple configuration build:
+                            <literallayout class='monospaced'>
      $ bitbake [multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
-                        </literallayout>
-                        Following is an example that supports building a minimal
-                        image for configuration A alongside a standard
-                        <filename>core-image-sato</filename>, which takes its
-                        configuration from <filename>local.conf</filename>:
-                        <literallayout class='monospaced'>
-     $ bitbake multiconfig:configA:core-image-minimal core-image-sato
-                        </literallayout>
-                        </para></listitem>
-                </itemizedlist>
-            </para>
-
-            <para>
-                Support for multiple configurations in this current release of
-                the Yocto Project (&DISTRO_NAME; &DISTRO;) has some known issues:
-                <itemizedlist>
-                    <listitem><para>
-                        No inter-multi-configuration dependencies exist.
-                        </para></listitem>
-                    <listitem><para>
-                        Shared State (sstate) optimizations do not exist.
-                        Consequently, if the build uses the same object twice
+                            </literallayout>
+                            For the example in this section, the following
+                            command applies:
+                            <literallayout class='monospaced'>
+     $ bitbake multiconfig:x86:core-image-minimal multiconfig:arm:core-image-sato
+                            </literallayout>
+                            The previous BitBake command builds a
+                            <filename>core-image-minimal</filename> image that
+                            is configured through the
+                            <filename>x86.conf</filename> configuration file
+                            and builds a <filename>core-image-sato</filename>
+                            image that is configured through the
+                            <filename>arm.conf</filename> configuration file.
+                            </para></listitem>
+                    </itemizedlist>
+                    <note>
+                        Support for multiple configuration builds in the
+                        Yocto Project &DISTRO; (&DISTRO_NAME;) Release does
+                        not include Shared State (sstate) optimizations.
+                        Consequently, if a build uses the same object twice
                         in, for example, two different
                         <filename>TMPDIR</filename> directories, the build
-                        will either load from an existing sstate cache at the
-                        start or build the object twice.
-                        </para></listitem>
-                </itemizedlist>
-            </para>
+                        either loads from an existing sstate cache for that
+                        build at the start or builds the object fresh.
+                    </note>
+                </para>
+            </section>
+
+            <section id='dev-enabling-multiple-configuration-build-dependencies'>
+                <title>Enabling Multiple Configuration Build Dependencies</title>
+
+                <para>
+                    Sometimes dependencies can exist between targets
+                    (multiconfigs) in a multiple configuration build.
+                    For example, suppose that in order to build a
+                    <filename>core-image-sato</filename> image for an "x86"
+                    multiconfig, the root filesystem of an "arm"
+                    multiconfig must exist.
+                    This dependency is essentially that the
+                    <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-image'><filename>do_image</filename></ulink>
+                    task in the <filename>core-image-sato</filename> recipe
+                    depends on the completion of the
+                    <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-rootfs'><filename>do_rootfs</filename></ulink>
+                    task of the <filename>core-image-minimal</filename>
+                    recipe.
+                </para>
+
+                <para>
+                    To enable dependencies in a multiple configuration
+                    build, you must declare the dependencies in the recipe
+                    using the following statement form:
+                    <literallayout class='monospaced'>
+     <replaceable>task_or_package</replaceable>[mcdepends] = "multiconfig:<replaceable>from_multiconfig</replaceable>:<replaceable>to_multiconfig</replaceable>:<replaceable>recipe_name</replaceable>:<replaceable>task_on_which_to_depend</replaceable>"
+                    </literallayout>
+                    To better show how to use this statement, consider the
+                    example scenario from the first paragraph of this section.
+                    The following statement needs to be added to the recipe
+                    that builds the <filename>core-image-sato</filename>
+                    image:
+                    <literallayout class='monospaced'>
+     do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_rootfs"
+                    </literallayout>
+                    In this example, the
+                    <replaceable>from_multiconfig</replaceable> is "x86".
+                    The <replaceable>to_multiconfig</replaceable> is "arm".
+                    The task on which the <filename>do_image</filename> task
+                    in the recipe depends is the <filename>do_rootfs</filename>
+                    task from the <filename>core-image-minimal</filename>
+                    recipe associated with the "arm" multiconfig.
+               </para>
+
+               <para>
+                   Once you set up this dependency, you can build the
+                   "x86" multiconfig using a BitBake command as follows:
+                   <literallayout class='monospaced'>
+     $ bitbake multiconfig:x86:core-image-sato
+                   </literallayout>
+                   This command executes all the tasks needed to create
+                   the <filename>core-image-sato</filename> image for the
+                   "x86" multiconfig.
+                   Because of the dependency, BitBake also executes through
+                   the <filename>do_rootfs</filename> task for the "arm"
+                   multiconfig build.
+               </para>
+
+               <para>
+                   Having a recipe depend on the root filesystem of another
+                   build might not seem that useful.
+                   Consider this change to the statement in the
+                   <filename>core-image-sato</filename> recipe:
+                   <literallayout class='monospaced'>
+     do_image[mcdepends] = "multiconfig:x86:arm:core-image-minimal:do_image"
+                   </literallayout>
+                   In this case, BitBake must create the
+                   <filename>core-image-minimal</filename> image for the
+                   "arm" build since the "x86" build depends on it.
+               </para>
+
+               <para>
+                   Because "x86" and "arm" are enabled for multiple
+                   configuration builds and have separate configuration
+                   files, BitBake places the artifacts for each build in the
+                   respective temporary build directories (i.e.
+                   <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>).
+               </para>
+            </section>
         </section>
 
         <section id='building-an-initramfs-image'>
@@ -7159,13 +7262,12 @@
                         easier-to-use and more flexible replacements for an
                         existing functionality in OE-Core's
                         <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-image-live'><filename>image-live</filename></ulink>
-                        class and <filename>mkefidisk.sh</filename> script.
-                        The difference between
-                        Wic and those examples is
-                        that with Wic the
-                        functionality of those scripts is implemented
-                        by a general-purpose partitioning language, which is
-                        based on Redhat kickstart syntax.</para></listitem>
+                        class.
+                        The difference between Wic and those examples is
+                        that with Wic the functionality of those scripts is
+                        implemented by a general-purpose partitioning language,
+                        which is based on Redhat kickstart syntax.
+                        </para></listitem>
                 </itemizedlist>
             </para>
         </section>
@@ -11400,8 +11502,8 @@
                             within a separately started QEMU or any
                             other virtual machine manager.
                             </para></listitem>
-                        <listitem><para><emphasis>"Systemd-bootTarget":</emphasis>
-                            Choose "Systemd-bootTarget" if your hardware is
+                        <listitem><para><emphasis>"SystemdbootTarget":</emphasis>
+                            Choose "SystemdbootTarget" if your hardware is
                             an EFI-based machine with
                             <filename>systemd-boot</filename> as bootloader and
                             <filename>core-image-testmaster</filename>
@@ -11409,10 +11511,10 @@
                             Also, your hardware under test must be in a
                             DHCP-enabled network that gives it the same IP
                             address for each reboot.</para>
-                            <para>If you choose "Systemd-bootTarget", there are
+                            <para>If you choose "SystemdbootTarget", there are
                             additional requirements and considerations.
                             See the
-                            "<link linkend='selecting-systemd-boottarget'>Selecting Systemd-bootTarget</link>"
+                            "<link linkend='selecting-systemdboottarget'>Selecting SystemdbootTarget</link>"
                             section, which follows, for more information.
                             </para></listitem>
                         <listitem><para><emphasis>"BeagleBoneTarget":</emphasis>
@@ -11458,12 +11560,12 @@
                 </para>
             </section>
 
-            <section id='selecting-systemd-boottarget'>
-                <title>Selecting Systemd-bootTarget</title>
+            <section id='selecting-systemdboottarget'>
+                <title>Selecting SystemdbootTarget</title>
 
                 <para>
                     If you did not set <filename>TEST_TARGET</filename> to
-                    "Systemd-bootTarget", then you do not need any information
+                    "SystemdbootTarget", then you do not need any information
                     in this section.
                     You can skip down to the
                     "<link linkend='qemu-image-running-tests'>Running Tests</link>"
@@ -11472,7 +11574,7 @@
 
                 <para>
                     If you did set <filename>TEST_TARGET</filename> to
-                    "Systemd-bootTarget", you also need to perform a one-time
+                    "SystemdbootTarget", you also need to perform a one-time
                     setup of your master image by doing the following:
                     <orderedlist>
                         <listitem><para><emphasis>Set <filename>EFI_PROVIDER</filename>:</emphasis>
@@ -11543,7 +11645,7 @@
 
                 <para>
                     The final thing you need to do when setting
-                    <filename>TEST_TARGET</filename> to "Systemd-bootTarget" is
+                    <filename>TEST_TARGET</filename> to "SystemdbootTarget" is
                     to set up the test image:
                     <orderedlist>
                         <listitem><para><emphasis>Set up your <filename>local.conf</filename> file:</emphasis>
@@ -11552,7 +11654,7 @@
                             <literallayout class='monospaced'>
      IMAGE_FSTYPES += "tar.gz"
      INHERIT += "testimage"
-     TEST_TARGET = "Systemd-bootTarget"
+     TEST_TARGET = "SystemdbootTarget"
      TEST_TARGET_IP = "192.168.2.3"
                             </literallayout>
                             </para></listitem>
@@ -11687,16 +11789,15 @@
                         To run the tests automatically after the
                         OpenEmbedded build system successfully creates an image,
                         first set the
-                        <ulink url='&YOCTO_DOCS_REF_URL;#var-TEST_IMAGE'><filename>TEST_IMAGE</filename></ulink>
+                        <ulink url='&YOCTO_DOCS_REF_URL;#var-TESTIMAGE_AUTO'><filename>TESTIMAGE_AUTO</filename></ulink>
                         variable to "1" in your <filename>local.conf</filename>
                         file in the
                         <ulink url='&YOCTO_DOCS_REF_URL;#build-directory'>Build Directory</ulink>:
                         <literallayout class='monospaced'>
-     TEST_IMAGE = "1"
+     TESTIMAGE_AUTO = "1"
                         </literallayout>
                         Next, build your image.
-                        If the image successfully builds, the tests will be
-                        run:
+                        If the image successfully builds, the tests run:
                         <literallayout class='monospaced'>
      bitbake core-image-sato
                         </literallayout></para></listitem>
@@ -11969,7 +12070,7 @@
                                     The target controller object used to deploy
                                     and start an image on a particular target
                                     (e.g. QemuTarget, SimpleRemote, and
-                                    Systemd-bootTarget).
+                                    SystemdbootTarget).
                                     Tests usually use the following:
                                     <itemizedlist>
                                         <listitem><para><emphasis><filename>ip</filename>:</emphasis>
@@ -15072,6 +15173,31 @@
                 </para>
             </section>
         </section>
+
+        <section id='copying-licenses-that-do-not-exist'>
+            <title>Copying Licenses that Do Not Exist</title>
+
+            <para>
+                Some packages, such as the linux-firmware package, have many
+                licenses that are not in any way common.
+                You can avoid adding a lot of these types of common license
+                files, which are only applicable to a specific package, by using
+                the
+                <ulink url='&YOCTO_DOCS_REF_URL;#var-NO_GENERIC_LICENSE'><filename>NO_GENERIC_LICENSE</filename></ulink>
+                variable.
+                Using this variable also avoids QA errors when you use a
+                non-common, non-CLOSED license in a recipe.
+            </para>
+
+            <para>
+                The following is an example that uses the
+                <filename>LICENSE.Abilis.txt</filename>
+                file as the license from the fetched source:
+                <literallayout class='monospaced'>
+     NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENSE.Abilis.txt"
+                </literallayout>
+            </para>
+        </section>
     </section>
 
     <section id='using-the-error-reporting-tool'>
diff --git a/poky/documentation/dev-manual/dev-manual-intro.xml b/poky/documentation/dev-manual/dev-manual-intro.xml
index f457c80..3a34094 100644
--- a/poky/documentation/dev-manual/dev-manual-intro.xml
+++ b/poky/documentation/dev-manual/dev-manual-intro.xml
@@ -19,7 +19,7 @@
         </para>
 
         <para>
-            The following list describes what you can get from this manual:
+            This manual provides the following:
             <itemizedlist>
                 <listitem><para>
                     Procedures that help you get going with the Yocto Project.
@@ -44,7 +44,7 @@
         </para>
 
         <para>
-            This manual will not give you the following:
+            This manual does not provide the following:
             <itemizedlist>
                 <listitem><para>
                     Redundant Step-by-step Instructions:
diff --git a/poky/documentation/dev-manual/dev-manual-start.xml b/poky/documentation/dev-manual/dev-manual-start.xml
index d8726b4..3f971ba 100644
--- a/poky/documentation/dev-manual/dev-manual-start.xml
+++ b/poky/documentation/dev-manual/dev-manual-start.xml
@@ -10,8 +10,10 @@
     This chapter provides procedures related to getting set up to use the
     Yocto Project.
     You can learn about creating a team environment that develops using the
-    Yocto Project, how to set up a build host, how to locate Yocto Project
-    source repositories, and how to create local Git repositories.
+    Yocto Project, how to set up a
+    <ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>,
+    how to locate Yocto Project source repositories, and how to create local
+    Git repositories.
 </para>
 
 <section id="usingpoky-changes-collaborate">
@@ -19,69 +21,71 @@
 
     <para>
         It might not be immediately clear how you can use the Yocto
-        Project in a team development environment, or scale it for a large
-        team of developers.
+        Project in a team development environment, or how to scale it for a
+        large team of developers.
         One of the strengths of the Yocto Project is that it is extremely
         flexible.
         Thus, you can adapt it to many different use cases and scenarios.
-        However, these characteristics can cause a struggle if you are trying
+        However, this flexibility could cause difficulties if you are trying
         to create a working setup that scales across a large team.
     </para>
 
     <para>
         To help you understand how to set up this type of environment,
-        this section presents a procedure that gives you the information
-        to learn how to get the results you want.
+        this section presents a procedure that gives you information
+        that can help you get the results you want.
         The procedure is high-level and presents some of the project's most
         successful experiences, practices, solutions, and available
-        technologies that work well.
+        technologies that have proved to work well in the past.
         Keep in mind, the procedure here is a starting point.
-        You can build off it and customize it to fit any
+        You can build off these steps and customize the procedure to fit any
         particular working environment and set of practices.
         <orderedlist>
             <listitem><para>
                 <emphasis>Determine Who is Going to be Developing:</emphasis>
                 You need to understand who is going to be doing anything
                 related to the Yocto Project and what their roles would be.
-                Making this determination is essential to completing the
+                Making this determination is essential to completing
                 steps two and three, which are to get your equipment together
                 and set up your development environment's hardware topology.
                 </para>
 
                 <para>The following roles exist:
-                <itemizedlist>
-                    <listitem><para>
-                        <emphasis>Application Development:</emphasis>
-                        These types of developers do application level work
-                        on top of an existing software stack.
-                        </para></listitem>
-                    <listitem><para>
-                        <emphasis>Core System Development:</emphasis>
-                        These types of developers work on the contents of the
-                        operating system image itself.
-                        </para></listitem>
-                    <listitem><para>
-                        <emphasis>Build Engineer:</emphasis>
-                        This type of developer manages Autobuilders and
-                        releases.
-                        Not all environments need a Build Engineer.
-                        </para></listitem>
-                    <listitem><para>
-                        <emphasis>Test Engineer:</emphasis>
-                        This type of developer creates and manages automated
-                        tests needed to ensure all application and core
-                        system development meets desired quality standards.
-                        </para></listitem>
-                </itemizedlist>
+                    <itemizedlist>
+                        <listitem><para>
+                            <emphasis>Application Developer:</emphasis>
+                            This type of developer does application level work
+                            on top of an existing software stack.
+                            </para></listitem>
+                        <listitem><para>
+                            <emphasis>Core System Developer:</emphasis>
+                            This type of developer works on the contents of the
+                            operating system image itself.
+                            </para></listitem>
+                        <listitem><para>
+                            <emphasis>Build Engineer:</emphasis>
+                            This type of developer manages Autobuilders and
+                            releases.
+                            Not all environments need a Build Engineer.
+                            </para></listitem>
+                        <listitem><para>
+                            <emphasis>Test Engineer:</emphasis>
+                            This type of developer creates and manages automated
+                            tests that are used to ensure all application and
+                            core system development meets desired quality
+                            standards.
+                            </para></listitem>
+                    </itemizedlist>
                 </para></listitem>
             <listitem><para>
                 <emphasis>Gather the Hardware:</emphasis>
                 Based on the size and make-up of the team, get the hardware
                 together.
-                Any development, build, or test engineer should be using
-                a system that is running a supported Linux distribution.
-                Systems, in general, should be high performance (e.g. dual,
-                six-core Xeons with 24 Gbytes of RAM and plenty of disk space).
+                Ideally, any development, build, or test engineer uses
+                a system that runs a supported Linux distribution.
+                These systems, in general, should be high performance
+                (e.g. dual, six-core Xeons with 24 Gbytes of RAM and plenty
+                of disk space).
                 You can help ensure efficiency by having any machines used
                 for testing or that run Autobuilders be as high performance
                 as possible.
@@ -107,11 +111,12 @@
                 <emphasis>Use Git as Your Source Control Manager (SCM):</emphasis>
                 Keeping your
                 <ulink url='&YOCTO_DOCS_REF_URL;#metadata'>Metadata</ulink>
-                and any software you are developing under the
-                control of an SCM system that is compatible
-                with the OpenEmbedded build system is advisable.
-                Of the SCMs BitBake supports, the
-                Yocto Project team strongly recommends using
+                (i.e. recipes, configuration files, classes, and so forth)
+                and any software you are developing under the control of an SCM
+                system that is compatible   with the OpenEmbedded build system
+                is advisable.
+                Of the SCMs BitBake supports, the Yocto Project team strongly
+                recommends using
                 <ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink>.
                 Git is a distributed system that is easy to backup,
                 allows you to work remotely, and then connects back to the
@@ -129,20 +134,19 @@
                 being used to generate the web interface that lets you view the
                 repositories.
                 The <filename>gitolite</filename> software identifies users
-                using SSH keys and allows branch-based
-                access controls to repositories that you can control as little
-                or as much as necessary.
-
+                using SSH keys and allows branch-based access controls to
+                repositories that you can control as little or as much as
+                necessary.
                 <note>
                    The setup of these services is beyond the scope of this
                    manual.
-                   However, sites such as these exist that describe how to
-                   perform setup:
+                   However, sites such as the following exist that describe
+                   how to perform setup:
                    <itemizedlist>
                        <listitem><para>
                            <ulink url='http://git-scm.com/book/ch4-8.html'>Git documentation</ulink>:
-                           Describes how to install <filename>gitolite</filename>
-                           on the server.
+                           Describes how to install
+                           <filename>gitolite</filename> on the server.
                            </para></listitem>
                        <listitem><para>
                            <ulink url='http://gitolite.com'>Gitolite</ulink>:
@@ -150,8 +154,8 @@
                             </para></listitem>
                         <listitem><para>
                             <ulink url='https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools'>Interfaces, frontends, and tools</ulink>:
-                            Documentation on how to create interfaces and frontends
-                            for Git.
+                            Documentation on how to create interfaces and
+                            frontends for Git.
                             </para></listitem>
                     </itemizedlist>
                 </note>
@@ -161,23 +165,22 @@
                 As mentioned earlier, application developers are creating
                 applications on top of existing software stacks.
                 Following are some best practices for setting up machines
-                that do application development:
+                used for application development:
                 <itemizedlist>
                     <listitem><para>
-                        Use a pre-built toolchain that
-                        contains the software stack itself.
+                        Use a pre-built toolchain that contains the software
+                        stack itself.
                         Then, develop the application code on top of the
                         stack.
                         This method works well for small numbers of relatively
                         isolated applications.
                         </para></listitem>
                     <listitem><para>
-                        When possible, use the Yocto Project
-                        plug-in for the
+                        When possible, use the Yocto Project plug-in for the
                         <trademark class='trade'>Eclipse</trademark> IDE
                         and SDK development practices.
                         For more information, see the
-                        "<ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>"
+                        <ulink url='&YOCTO_DOCS_SDK_URL;'>Yocto Project Application Development and the Extensible Software Development Kit (eSDK)</ulink>
                         manual.
                         </para></listitem>
                     <listitem><para>
@@ -186,27 +189,29 @@
                         toolchain downloads or as updates through a package
                         update mechanism using <filename>opkg</filename>
                         to provide updates to an existing toolchain.
-                        The exact mechanics of how and when to do this are a
-                        question for local policy.
+                        The exact mechanics of how and when to do this depend
+                        on local policy.
                         </para></listitem>
                     <listitem><para>
-                        Use multiple toolchains installed locally
-                        into different locations to allow development across
+                        Use multiple toolchains installed locally into
+                        different locations to allow development across
                         versions.
                         </para></listitem>
                 </itemizedlist>
                 </para></listitem>
             <listitem><para>
                 <emphasis>Set up the Core Development Machines:</emphasis>
-                As mentioned earlier, these types of developers work on the
-                contents of the operating system itself.
+                As mentioned earlier, core developers work on the contents of
+                the operating system itself.
                 Following are some best practices for setting up machines
                 used for developing images:
                 <itemizedlist>
                     <listitem><para>
-                        Have the Yocto Project build system itself available on
-                        the developer workstations so developers can run their own
-                        builds and directly rebuild the software stack.
+                        Have the
+                        <ulink url='&YOCTO_DOCS_REF_URL;#build-system-term'>OpenEmbedded build system</ulink>
+                        available on the developer workstations so developers
+                        can run their own builds and directly rebuild the
+                        software stack.
                         </para></listitem>
                     <listitem><para>
                         Keep the core system unchanged as much as
@@ -228,8 +233,9 @@
                 Autobuilders are often the core of the development
                 environment.
                 It is here that changes from individual developers are brought
-                together and centrally tested and subsequent decisions about
-                releases can be made.
+                together and centrally tested.
+                Based on this automated build and test environment, subsequent
+                decisions about releases can be made.
                 Autobuilders also allow for "continuous integration" style
                 testing of software components and regression identification
                 and tracking.</para>
@@ -239,22 +245,23 @@
                 The Yocto Project team has found this implementation
                 works well in this role.
                 A public example of this is the Yocto Project
-                Autobuilders, which we use to test the overall health of the
-                project.</para>
+                Autobuilders, which the Yocto Project team uses to test the
+                overall health of the project.</para>
 
                 <para>The features of this system are:
                 <itemizedlist>
                     <listitem><para>
-                         Highlights when commits break the build.
-                         </para></listitem>
-                    <listitem><para>
-                        Populates an sstate cache from which
-                        developers can pull rather than requiring local
-                        builds.
+                        Highlights when commits break the build.
                         </para></listitem>
                     <listitem><para>
-                        Allows commit hook triggers,
-                        which trigger builds when commits are made.
+                        Populates an
+                        <ulink url='&YOCTO_DOCS_OM_URL;#shared-state-cache'>sstate cache</ulink>
+                        from which developers can pull rather than requiring
+                        local builds.
+                        </para></listitem>
+                    <listitem><para>
+                        Allows commit hook triggers, which trigger builds when
+                        commits are made.
                         </para></listitem>
                     <listitem><para>
                         Allows triggering of automated image booting
@@ -275,19 +282,19 @@
                         Allows scheduling of builds so that resources
                         can be used efficiently.
                         </para></listitem>
-               </itemizedlist>
-               </para></listitem>
-           <listitem><para>
-               <emphasis>Set up Test Machines:</emphasis>
-               Use a small number of shared, high performance systems
-               for testing purposes.
-               Developers can use these systems for wider, more
-               extensive testing while they continue to develop
-               locally using their primary development system.
-               </para></listitem>
-           <listitem><para>
-               <emphasis>Document Policies and Change Flow:</emphasis>
-               The Yocto Project itself uses a hierarchical structure and a
+                </itemizedlist>
+                </para></listitem>
+            <listitem><para>
+                <emphasis>Set up Test Machines:</emphasis>
+                Use a small number of shared, high performance systems
+                for testing purposes.
+                Developers can use these systems for wider, more
+                extensive testing while they continue to develop
+                locally using their primary development system.
+                </para></listitem>
+            <listitem><para>
+                <emphasis>Document Policies and Change Flow:</emphasis>
+                The Yocto Project uses a hierarchical structure and a
                 pull model.
                 Scripts exist to create and send pull requests
                 (i.e. <filename>create-pull-request</filename> and
@@ -330,16 +337,20 @@
                     <listitem><para>
                         Maintain your Metadata in layers that make sense
                         for your situation.
-                        See the "<link linkend='understanding-and-creating-layers'>Understanding
-                        and Creating Layers</link>" section for more information on
-                        layers.
+                        See the
+                        "<ulink url='&YOCTO_DOCS_OM_URL;#the-yocto-project-layer-model'>The Yocto Project Layer Model</ulink>"
+                        section in the Yocto Project Overview and Concepts
+                        Manual and the
+                        "<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>"
+                        section for more information on layers.
                         </para></listitem>
                     <listitem><para>
                         Separate the project's Metadata and code by using
                         separate Git repositories.
                         See the
                         "<ulink url='&YOCTO_DOCS_OM_URL;#yocto-project-repositories'>Yocto Project Source Repositories</ulink>"
-                        section for information on these repositories.
+                        section in the Yocto Project Overview and Concepts
+                        Manual for information on these repositories.
                         See the
                         "<link linkend='locating-yocto-project-source-files'>Locating Yocto Project Source Files</link>"
                         section for information on how to set up local Git
@@ -360,7 +371,8 @@
                         </para></listitem>
                     <listitem><para>
                         The Yocto Project community encourages you
-                        to send patches to the project to fix bugs or add features.
+                        to send patches to the project to fix bugs or add
+                        features.
                         If you do submit patches, follow the project commit
                         guidelines for writing good commit messages.
                         See the "<link linkend='how-to-submit-a-change'>Submitting a Change to the Yocto Project</link>"
@@ -369,10 +381,12 @@
                     <listitem><para>
                         Send changes to the core sooner than later
                         as others are likely to run into the same issues.
-                        For some guidance on mailing lists to use, see the list in the
+                        For some guidance on mailing lists to use, see the list
+                        in the
                         "<link linkend='how-to-submit-a-change'>Submitting a Change to the Yocto Project</link>"
                         section.
-                        For a description of the available mailing lists, see the
+                        For a description of the available mailing lists, see
+                        the
                         "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing Lists</ulink>"
                         section in the Yocto Project Reference Manual.
                         </para></listitem>
@@ -382,22 +396,28 @@
     </para>
 </section>
 
-<section id='setting-up-the-development-host-to-use-the-yocto-project'>
+<section id='dev-preparing-the-build-host'>
     <title>Preparing the Build Host</title>
 
     <para>
-        This section provides procedures to set up your development host to
-        use the Yocto Project.
-        You can use the Yocto Project on a native Linux development host or
-        you can use
+        This section provides procedures to set up a system to be used as your
+        <ulink url='&YOCTO_DOCS_REF_URL;#hardware-build-system-term'>build host</ulink>
+        for development using the Yocto Project.
+        Your build host can be a native Linux machine (recommended) or it can
+        be a machine (Linux, Mac, or Windows) that uses
         <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
         which leverages
-        <ulink url='https://www.docker.com/'>Docker Containers</ulink>,
-        to prepare any Linux, Mac, or Windows development host.
+        <ulink url='https://www.docker.com/'>Docker Containers</ulink>.
+        <note>
+            You cannot use a build host that is using the
+            <ulink url='https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux'>Windows Subsystem for Linux</ulink>
+            (WSL).
+            The Yocto Project is not compatible with WSL.
+        </note>
     </para>
 
     <para>
-        Once your development host is set up to use the Yocto Project,
+        Once your build host is set up to use the Yocto Project,
         further steps are necessary depending on what you want to
         accomplish.
         See the following references for information on how to prepare for
@@ -432,7 +452,7 @@
 
         <para>
             Follow these steps to prepare a native Linux machine as your
-            Yocto Project development host:
+            Yocto Project Build Host:
             <orderedlist>
                 <listitem><para>
                     <emphasis>Use a Supported Linux Distribution:</emphasis>
@@ -450,8 +470,8 @@
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Have Enough Free Memory:</emphasis>
-                    You should have at least 50 Gbytes of free disk space
-                    for building images.
+                    Your system should have at least 50 Gbytes of free disk
+                    space for building images.
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Meet Minimal Version Requirements:</emphasis>
@@ -480,14 +500,14 @@
                 <listitem><para>
                     <emphasis>Install Development Host Packages:</emphasis>
                     Required development host packages vary depending on your
-                    build machine and what you want to do with the Yocto
+                    build host and what you want to do with the Yocto
                     Project.
                     Collectively, the number of required packages is large
                     if you want to be able to cover all cases.</para>
 
                     <para>For lists of required packages for all scenarios,
                     see the
-                    "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
+                    "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-build-host'>Required Packages for the Build Host</ulink>"
                     section in the Yocto Project Reference Manual.
                     </para></listitem>
             </orderedlist>
@@ -514,7 +534,7 @@
 
         <para>
             With
-            <ulink url='https://git.yoctoproject.org/cgit/cgit.cgi/crops/about/'>CROPS</ulink>,
+            <ulink url='https://github.com/crops/crops/blob/master/README.md'>CROPS</ulink>,
             which leverages
             <ulink url='https://www.docker.com/'>Docker Containers</ulink>,
             you can create a Yocto Project development environment that
@@ -525,66 +545,101 @@
 
         <para>
             Follow these general steps to prepare a Windows, Mac, or Linux
-            machine as your Yocto Project development host:
+            machine as your Yocto Project build host:
             <orderedlist>
                 <listitem><para>
-                    <emphasis>Go to the Docker Installation Site:</emphasis>
+                    <emphasis>Determine What Your Build Host Needs:</emphasis>
                     <ulink url='https://www.docker.com/what-docker'>Docker</ulink>
                     is a software container platform that you need to install
-                    on the host development machine.
-                    To start the installation process, see the
-                    <ulink url='https://docs.docker.com/engine/installation/'>Docker Installation</ulink>
-                    site.
+                    on the build host.
+                    Depending on your build host, you might have to install
+                    different software to support Docker containers.
+                    Go to the Docker installation page and read about the
+                    platform requirements in
+                    "<ulink url='https://docs.docker.com/install/#supported-platforms'>Supported Platforms</ulink>"
+                    your build host needs to run containers.
                     </para></listitem>
                 <listitem><para>
-                    <emphasis>Choose Your Docker Edition:</emphasis>
-                    Docker comes in several editions.
-                    For the Yocto Project, the stable community edition
-                    (i.e. "Docker CE Stable") is adequate.
-                    You can learn more about the Docker editions from the
-                    site.
+                    <emphasis>Choose What To Install:</emphasis>
+                    Depending on whether or not your build host meets system
+                    requirements, you need to install "Docker CE Stable" or
+                    the "Docker Toolbox".
+                    Most situations call for Docker CE.
+                    However, if you have a build host that does not meet
+                    requirements (e.g. Pre-Windows 10 or Windows 10 "Home"
+                    version), you must install Docker Toolbox instead.
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Go to the Install Site for Your Platform:</emphasis>
                     Click the link for the Docker edition associated with
-                    your development host machine's native software.
-                    For example, if your machine is running Microsoft
+                    your build host's native software.
+                    For example, if your build host is running Microsoft
                     Windows Version 10 and you want the Docker CE Stable
                     edition, click that link under "Supported Platforms".
                     </para></listitem>
                 <listitem><para>
-                    <emphasis>Understand What You Need:</emphasis>
-                    The install page has pre-requisites your machine must
-                    meet.
-                    Be sure you read through this page and make sure your
-                    machine meets the requirements to run Docker.
-                    If your machine does not meet the requirements, the page
-                    has instructions to handle exceptions.
-                    For example, to run Docker on Windows 10, you must have
-                    the pro version of the operating system.
-                    If you have the home version, you need to install the
-                    <ulink url='https://docs.docker.com/toolbox/overview/#ready-to-get-started'>Docker Toolbox</ulink>.
-                    </para>
-
-                    <para>Another example is that a Windows machine needs to
-                    have Microsoft Hyper-V.
-                    If you have a legacy version of the the Microsoft
-                    operating system or for any other reason you do not have
-                    Microsoft Hyper-V, you would have to enter the BIOS and
-                    enable virtualization.
-                    </para></listitem>
-                <listitem><para>
                     <emphasis>Install the Software:</emphasis>
                     Once you have understood all the pre-requisites, you can
                     download and install the appropriate software.
                     Follow the instructions for your specific machine and
-                    the type of the software you need to install.
+                    the type of the software you need to install:
+                    <itemizedlist>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/docker-for-windows/install/#install-docker-for-windows-desktop-app'>Docker CE for Windows</ulink>
+                            for Windows build hosts that meet requirements.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/docker-for-mac/install/#install-and-run-docker-for-mac'>Docker CE for Macs</ulink>
+                            for Mac build hosts that meet requirements.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/toolbox/toolbox_install_windows/'>Docker Toolbox for Windows</ulink>
+                            for Windows build hosts that do not meet Docker
+                            requirements.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/toolbox/toolbox_install_mac/'>Docker Toolbox for MacOS</ulink>
+                            for Mac build hosts that do not meet Docker
+                            requirements.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/install/linux/docker-ce/centos/'>Docker CE for CentOS</ulink>
+                            for Linux build hosts running the CentOS
+                            distribution.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/install/linux/docker-ce/debian/'>Docker CE for Debian</ulink>
+                            for Linux build hosts running the Debian
+                            distribution.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/install/linux/docker-ce/fedora/'>Docker CE for Fedora</ulink>
+                            for Linux build hosts running the Fedora
+                            distribution.
+                            </para></listitem>
+                        <listitem><para>
+                            Install
+                            <ulink url='https://docs.docker.com/install/linux/docker-ce/ubuntu/'>Docker CE for Ubuntu</ulink>
+                            for Linux build hosts running the Ubuntu
+                            distribution.
+                            </para></listitem>
+                    </itemizedlist>
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Optionally Orient Yourself With Docker:</emphasis>
                     If you are unfamiliar with Docker and the container
                     concept, you can learn more here -
                     <ulink url='https://docs.docker.com/get-started/'></ulink>.
+                    </para></listitem>
+                <listitem><para>
+                    <emphasis>Launch Docker or Docker Toolbox:</emphasis>
                     You should be able to launch Docker or the Docker Toolbox
                     and have a terminal shell on your development host.
                     </para></listitem>
@@ -593,7 +648,7 @@
                     Go to
                     <ulink url='https://github.com/crops/docker-win-mac-docs/wiki'></ulink>
                     and follow the directions for your particular
-                    development host (i.e. Linux, Mac, or Windows).</para>
+                    build host (i.e. Linux, Mac, or Windows).</para>
 
                     <para>Once you complete the setup instructions for your
                     machine, you have the Poky, Extensible SDK, and Toaster
@@ -622,8 +677,8 @@
     <title>Locating Yocto Project Source Files</title>
 
     <para>
-        This section contains procedures related to locating Yocto Project
-        files.
+        This section shows you how to locate and access the
+        source files that ship with the Yocto Project.
         You establish and use these local files to work on projects.
         <note><title>Notes</title>
             <itemizedlist>
@@ -670,7 +725,7 @@
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Select the Repository:</emphasis>
-                    Click on the repository in which you are interested (i.e.
+                    Click on the repository in which you are interested (e.g.
                     <filename>poky</filename>).
                     </para></listitem>
                 <listitem><para>
@@ -704,6 +759,7 @@
                 The procedure in this section exists should you desire a
                 tarball snapshot of any given component.
             </note>
+            Follow these steps to locate and download a particular tarball:
             <orderedlist>
                 <listitem><para>
                     <emphasis>Access the Index of Releases:</emphasis>
@@ -753,7 +809,10 @@
             uses a "DOWNLOADS" page from which you can locate and download
             tarballs of any Yocto Project release.
             Rather than Git repositories, these files represent snapshot
-            tarballs.
+            tarballs similar to the tarballs located in the Index of Releases
+            described in the
+            "<link linkend='accessing-index-of-releases'>Accessing Index of Releases</link>"
+            section.
             <note><title>Tip</title>
                 The recommended method for accessing Yocto Project
                 components is to use Git to clone a repository and work from
@@ -771,18 +830,23 @@
                 <listitem><para>
                     <emphasis>Get to the Downloads Area:</emphasis>
                     Select the "DOWNLOADS" item from the pull-down
-                    "SOFTWARE" tab menu.
+                    "SOFTWARE" tab menu near the top of the page.
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Select a Yocto Project Release:</emphasis>
                     Use the menu next to "RELEASE" to display and choose
-                    a Yocto Project release (e.g. sumo, rocko, pyro, and
-                    so forth.
-                    For a "map" of Yocto Project releases to version numbers,
-                    see the
-                    <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Releases</ulink>
-                    wiki page.
-                    </para></listitem>
+                    a recent or past supported Yocto Project release
+                    (e.g. &DISTRO_NAME_NO_CAP;,
+                    &DISTRO_NAME_NO_CAP_MINUS_ONE;, and so forth).
+                    <note><title>Tip</title>
+                        For a "map" of Yocto Project releases to version
+                        numbers, see the
+                        <ulink url='https://wiki.yoctoproject.org/wiki/Releases'>Releases</ulink>
+                        wiki page.
+                    </note>
+                    You can use the "RELEASE ARCHIVE" link to reveal a menu of
+                    all Yocto Project releases.
+                </para></listitem>
                 <listitem><para>
                     <emphasis>Download Tools or Board Support Packages (BSPs):</emphasis>
                     From the "DOWNLOADS" page, you can download tools or
@@ -799,8 +863,9 @@
         <para>
             Yocto Project maintains an area for nightly builds that contains
             tarball releases at <ulink url='&YOCTO_AB_NIGHTLY_URL;'/>.
-            These builds include Yocto Project releases, SDK installation
-            scripts, and experimental builds.
+            These builds include Yocto Project releases ("poky"),
+            toolchains, Yocto Project plugins for Eclipse, and builds for
+            supported machines.
         </para>
 
         <para>
@@ -808,14 +873,21 @@
             Yocto Project component, use the following procedure:
             <orderedlist>
                 <listitem><para>
-                    <emphasis>Access the Nightly Builds:</emphasis>
+                    <emphasis>Locate the Index of Nightly Builds:</emphasis>
                     Open a browser and go to
                     <ulink url='&YOCTO_AB_NIGHTLY_URL;'/> to access the
                     Nightly Builds.
                     </para></listitem>
                 <listitem><para>
+                    <emphasis>Select a Date:</emphasis>
+                    Click on the date in which you are interested.
+                    If you want the latest builds, use "CURRENT".
+                    </para></listitem>
+                <listitem><para>
                     <emphasis>Select a Build:</emphasis>
-                    Click on any build by date in which you are interested.
+                    Choose the area in which you are interested.
+                    For example, if you are looking for the most recent
+                    toolchains, select the "toolchain" link.
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Find the Tarball:</emphasis>
@@ -831,27 +903,23 @@
     </section>
 </section>
 
-<section id='cloning-and-checking-out-branchs'>
+<section id='cloning-and-checking-out-branches'>
     <title>Cloning and Checking Out Branches</title>
 
     <para>
-        To use the Yocto Project, you need a release of the Yocto Project
-        locally installed on your development system.
-        The locally installed set of files is referred to as the
+        To use the Yocto Project for development, you need a release locally
+        installed on your development system.
+        This locally installed set of files is referred to as the
         <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink>
         in the Yocto Project documentation.
     </para>
 
     <para>
-        You create your Source Directory by using
+        The preferred method of creating your Source Directory is by using
         <ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink> to clone a local
         copy of the upstream <filename>poky</filename> repository.
-        <note><title>Tip</title>
-            The preferred method of getting the Yocto Project Source
-            Directory set up is to clone the repository.
-        </note>
-        Working from a copy of the upstream repository allows you
-        to contribute back into the Yocto Project or simply work with
+        Working from a cloned copy of the upstream repository allows you
+        to contribute back into the Yocto Project or to simply work with
         the latest software on a development branch.
         Because Git maintains and creates an upstream repository with
         a complete history of changes and you are working with a local
@@ -871,21 +939,23 @@
             <orderedlist>
                 <listitem><para>
                     <emphasis>Set Your Directory:</emphasis>
-                    Be in the directory where you want to create your local
-                    copy of poky.
+                    Change your working directory to where you want to
+                    create your local copy of
+                    <filename>poky</filename>.
                     </para></listitem>
                 <listitem><para>
                     <emphasis>Clone the Repository:</emphasis>
-                    The following command clones the repository and uses
+                    The following example command clones the
+                    <filename>poky</filename> repository and uses
                     the default name "poky" for your local repository:
                     <literallayout class='monospaced'>
      $ git clone git://git.yoctoproject.org/poky
      Cloning into 'poky'...
-     remote: Counting objects: 367178, done.
-     remote: Compressing objects: 100% (88161/88161), done.
-     remote: Total 367178 (delta 272761), reused 366942 (delta 272525)
-     Receiving objects: 100% (367178/367178), 133.26 MiB | 6.40 MiB/s, done.
-     Resolving deltas: 100% (272761/272761), done.
+     remote: Counting objects: 416542, done.
+     remote: Compressing objects: 100% (98611/98611), done.
+     remote: Total 416542 (delta 311104), reused 416377 (delta 310939)
+     Receiving objects: 100% (416542/416542), 150.39 MiB | 15.77 MiB/s, done.
+     Resolving deltas: 100% (311104/311104), done.
      Checking connectivity... done.
                     </literallayout>
                     Unless you specify a specific development branch or
@@ -900,8 +970,8 @@
                     <link linkend='checkout-out-by-tag-in-poky'>Checking Out By Tag in Poky</link>"
                     sections, respectively.</para>
 
-                    <para>Once the repository is created, you can change to
-                    that directory and check its status.
+                    <para>Once the local repository is created, you can
+                    change to that directory and check its status.
                     Here, the single "master" branch exists on your system
                     and by default, it is checked out:
                     <literallayout class='monospaced'>
@@ -916,6 +986,10 @@
                     Your local repository of poky is identical to the
                     upstream poky repository at the time from which it was
                     cloned.
+                    As you work with the local branch, you can periodically
+                    use the <filename>git pull &dash;&dash;rebase</filename>
+                    command to be sure you are up-to-date with the upstream
+                    branch.
                     </para></listitem>
             </orderedlist>
         </para>
diff --git a/poky/documentation/dev-manual/dev-manual.xml b/poky/documentation/dev-manual/dev-manual.xml
index d473142..b54c0d6 100644
--- a/poky/documentation/dev-manual/dev-manual.xml
+++ b/poky/documentation/dev-manual/dev-manual.xml
@@ -107,14 +107,14 @@
                 <revremark>Released with the Yocto Project 2.5 Release.</revremark>
             </revision>
             <revision>
-                <revnumber>2.5.1</revnumber>
-                <date>September 2018</date>
-                <revremark>The initial document released with the Yocto Project 2.5.1 Release.</revremark>
+                <revnumber>2.6</revnumber>
+                <date>November 2018</date>
+                <revremark>Released with the Yocto Project 2.6 Release.</revremark>
             </revision>
             <revision>
-                <revnumber>2.5.2</revnumber>
+                <revnumber>2.6.1</revnumber>
                 <date>&REL_MONTH_YEAR;</date>
-                <revremark>The initial document released with the Yocto Project 2.5.2 Release.</revremark>
+                <revremark>Released with the Yocto Project 2.6.1 Release.</revremark>
             </revision>
         </revhistory>
 
diff --git a/poky/documentation/dev-manual/figures/multiconfig_files.png b/poky/documentation/dev-manual/figures/multiconfig_files.png
new file mode 100644
index 0000000..0b59338
--- /dev/null
+++ b/poky/documentation/dev-manual/figures/multiconfig_files.png
Binary files differ
