summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
Diffstat (limited to 'documentation')
-rw-r--r--documentation/bsp-guide/bsp.rst4
-rw-r--r--documentation/contributor-guide/identify-component.rst31
-rw-r--r--documentation/contributor-guide/index.rst26
-rw-r--r--documentation/contributor-guide/recipe-style-guide.rst257
-rw-r--r--documentation/contributor-guide/report-defect.rst67
-rw-r--r--documentation/contributor-guide/submit-changes.rst754
-rw-r--r--documentation/dev-manual/common-tasks.rst532
-rw-r--r--documentation/dev-manual/start.rst9
-rw-r--r--documentation/index.rst1
-rw-r--r--documentation/overview-manual/development-environment.rst19
-rw-r--r--documentation/ref-manual/resources.rst7
-rw-r--r--documentation/ref-manual/system-requirements.rst5
12 files changed, 1159 insertions, 553 deletions
diff --git a/documentation/bsp-guide/bsp.rst b/documentation/bsp-guide/bsp.rst
index 8201c93862..67bcd08f2b 100644
--- a/documentation/bsp-guide/bsp.rst
+++ b/documentation/bsp-guide/bsp.rst
@@ -927,8 +927,8 @@ Yocto Project:
927 - The name and contact information for the BSP layer maintainer. 927 - The name and contact information for the BSP layer maintainer.
928 This is the person to whom patches and questions should be sent. 928 This is the person to whom patches and questions should be sent.
929 For information on how to find the right person, see the 929 For information on how to find the right person, see the
930 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 930 :doc:`../contributor-guide/submit-changes` section in the Yocto Project and
931 section in the Yocto Project Development Tasks Manual. 931 OpenEmbedded Contributor Guide.
932 932
933 - Instructions on how to build the BSP using the BSP layer. 933 - Instructions on how to build the BSP using the BSP layer.
934 934
diff --git a/documentation/contributor-guide/identify-component.rst b/documentation/contributor-guide/identify-component.rst
new file mode 100644
index 0000000000..a28391a66a
--- /dev/null
+++ b/documentation/contributor-guide/identify-component.rst
@@ -0,0 +1,31 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Identify the component
4**********************
5
6The Yocto Project and OpenEmbedded ecosystem is built of :term:`layers <Layer>`
7so the first step is to identify the component where the issue likely lies.
8For example, if you have a hardware issue, it is likely related to the BSP
9you are using and the best place to seek advice would be from the BSP provider
10or :term:`layer`. If the issue is a build/configuration one and a distro is in
11use, they would likely be the first place to ask questions. If the issue is a
12generic one and/or in the core classes or metadata, the core layer or BitBake
13might be the appropriate component.
14
15Each metadata layer being used should contain a ``README`` file and that should
16explain where to report issues, where to send changes and how to contact the
17maintainers.
18
19If the issue is in the core metadata layer (OpenEmbedded-Core) or in BitBake,
20issues can be reported in the :yocto_bugs:`Yocto Project Bugzilla <>`. The
21:yocto_lists:`yocto </g/yocto>` mailing list is a general “catch-all” location
22where questions can be sent if you can’t work out where something should go.
23
24:term:`Poky` is a commonly used “combination” repository where multiple
25components have been combined (:oe_git:`bitbake </bitbake>`,
26:oe_git:`openembedded-core </openembedded-core>`,
27:yocto_git:`meta-yocto </meta-yocto>` and
28:yocto_git:`yocto-docs </yocto-docs>`). Patches should be submitted against the
29appropriate individual component rather than :term:`Poky` itself as detailed in
30the appropriate ``README`` file.
31
diff --git a/documentation/contributor-guide/index.rst b/documentation/contributor-guide/index.rst
new file mode 100644
index 0000000000..a832169455
--- /dev/null
+++ b/documentation/contributor-guide/index.rst
@@ -0,0 +1,26 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3================================================
4Yocto Project and OpenEmbedded Contributor Guide
5================================================
6
7The Yocto Project and OpenEmbedded are open-source, community-based projects so
8contributions are very welcome, it is how the code evolves and everyone can
9effect change. Contributions take different forms, if you have a fix for an
10issue you’ve run into, a patch is the most appropriate way to contribute it.
11If you run into an issue but don’t have a solution, opening a defect in
12:yocto_bugs:`Bugzilla <>` or asking questions on the mailing lists might be
13more appropriate. This guide intends to point you in the right direction to
14this.
15
16
17.. toctree::
18 :caption: Table of Contents
19 :numbered:
20
21 identify-component
22 report-defect
23 recipe-style-guide
24 submit-changes
25
26.. include:: /boilerplate.rst
diff --git a/documentation/contributor-guide/recipe-style-guide.rst b/documentation/contributor-guide/recipe-style-guide.rst
new file mode 100644
index 0000000000..c1a12f03ac
--- /dev/null
+++ b/documentation/contributor-guide/recipe-style-guide.rst
@@ -0,0 +1,257 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Recipe Style Guide
4******************
5
6Recipe Naming Conventions
7=========================
8
9In general, most recipes should follow the naming convention
10``recipes-category/package/packagename_version.bb``. Recipes for related
11projects may share the same package directory. ``packagename``, ``category``,
12and ``package`` may contain hyphens, but hyphens are not allowed in ``version``.
13
14If the recipe is tracking a Git revision that does not correspond to a released
15version of the software, ``version`` may be ``git`` (e.g. ``packagename_git.bb``)
16
17Version Policy
18==============
19
20Our versions follow the form ``<package epoch>:<package version>-<package revision>``
21or in BitBake variable terms ${:term:`PE`}:${:term:`PV`}-${:term:`PR`}. We
22generally follow the `Debian <https://www.debian.org/doc/debian-policy/ch-controlfields.html#version>`__
23version policy which defines these terms.
24
25In most cases the version :term:`PV` will be set automatically from the recipe
26file name. It is recommended to use released versions of software as these are
27revisions that upstream are expecting people to use.
28
29Package versions should always compare and sort correctly so that upgrades work
30as expected. With conventional versions such as ``1.4`` upgrading ``to 1.5``
31this happens naturally, but some versions don't sort. For example,
32``1.5 Release Candidate 2`` could be written as ``1.5rc2`` but this sorts after
33``1.5``, so upgrades from feeds won't happen correctly.
34
35Instead the tilde (``~``) operator can be used, which sorts before the empty
36string so ``1.5~rc2`` comes before ``1.5``. There is a historical syntax which
37may be found where :term:`PV` is set as a combination of the prior version
38``+`` the pre-release version, for example ``PV=1.4+1.5rc2``. This is a valid
39syntax but the tilde form is preferred.
40
41For version comparisons, the ``opkg-compare-versions`` program from
42``opkg-utils`` can be useful when attempting to determine how two version
43numbers compare to each other. Our definitive version comparison algorithm is
44the one within bitbake which aims to match those of the package managers and
45Debian policy closely.
46
47When a recipe references a git revision that does not correspond to a released
48version of software (e.g. is not a tagged version), the :term:`PV` variable
49should include the Git revision using the following to make the
50version clear::
51
52 PV = "<version>+git${SRCPV}"
53
54In this case, ``<version>`` should be the most recently released version of the
55software from the current source revision (``git describe`` can be useful for
56determining this). Whilst not recommended for published layers, this format is
57also useful when using :term:`AUTOREV` to set the recipe to increment source
58control revisions automatically, which can be useful during local development.
59
60Version Number Changes
61======================
62
63The :term:`PR` variable is used to indicate different revisions of a recipe
64that reference the same upstream source version. It can be used to force a
65new version of a package to be installed onto a device from a package feed.
66These once had to be set manually but in most cases these can now be set and
67incremented automatically by a PR Server connected with a package feed.
68
69When :term:`PV` increases, any existing :term:`PR` value can and should be
70removed.
71
72If :term:`PV` changes in such a way that it does not increase with respect to
73the previous value, you need to increase :term:`PE` to ensure package managers
74will upgrade it correctly. If unset you should set :term:`PE` to "1" since
75the default of empty is easily confused with "0" depending on the package
76manager. :term:`PE` can only have an integer value.
77
78Recipe formatting
79=================
80
81Variable Formatting
82-------------------
83
84- Variable assignment should a space around each side of the operator, e.g.
85 ``FOO = "bar"``, not ``FOO="bar"``.
86
87- Double quotes should be used on the right-hand side of the assignment,
88 e.g. ``FOO = "bar"`` not ``FOO = 'bar'``
89
90- Spaces should be used for indenting variables, with 4 spaces per tab
91
92- Long variables should be split over multiple lines when possible by using
93 the continuation character (``\``)
94
95- When splitting a long variable over multiple lines, all continuation lines
96 should be indented (with spaces) to align with the start of the quote on the
97 first line::
98
99 FOO = "this line is \
100 long \
101 "
102
103 Instead of::
104
105 FOO = "this line is \
106 long \
107 "
108
109Python Function formatting
110--------------------------
111
112- Spaces must be used for indenting Python code, with 4 spaces per tab
113
114Shell Function formatting
115-------------------------
116
117- The formatting of shell functions should be consistent within layers.
118 Some use tabs, some use spaces.
119
120Recipe metadata
121===============
122
123Required Variables
124------------------
125
126The following variables should be included in all recipes:
127
128- :term:`SUMMARY`: a one line description of the upstream project
129
130- :term:`DESCRIPTION`: an extended description of the upstream project,
131 possibly with multiple lines. If no reasonable description can be written,
132 this may be omitted as it defaults to :term:`SUMMARY`.
133
134- :term:`HOMEPAGE`: the URL to the upstream projects homepage.
135
136- :term:`BUGTRACKER`: the URL upstream projects bug tracking website,
137 if applicable.
138
139Recipe Ordering
140---------------
141
142When a variable is defined in recipes and classes, variables should follow the
143general order when possible:
144
145- :term:`SUMMARY`
146- :term:`DESCRIPTION`
147- :term:`HOMEPAGE`
148- :term:`BUGTRACKER`
149- :term:`SECTION`
150- :term:`LICENSE`
151- :term:`LIC_FILES_CHKSUM`
152- :term:`DEPENDS`
153- :term:`PROVIDES`
154- :term:`PV`
155- :term:`SRC_URI`
156- :term:`SRCREV`
157- :term:`S`
158- ``inherit ...``
159- :term:`PACKAGECONFIG`
160- Build class specific variables such as ``EXTRA_QMAKEVARS_POST`` and :term:`EXTRA_OECONF`
161- Tasks such as :ref:`ref-tasks-configure`
162- :term:`PACKAGE_ARCH`
163- :term:`PACKAGES`
164- :term:`FILES`
165- :term:`RDEPENDS`
166- :term:`RRECOMMENDS`
167- :term:`RSUGGESTS`
168- :term:`RPROVIDES`
169- :term:`RCONFLICTS`
170- :term:`BBCLASSEXTEND`
171
172There are some cases where ordering is important and these cases would override
173this default order. Examples include:
174
175- :term:`PACKAGE_ARCH` needing to be set before ``inherit packagegroup``
176
177Tasks should be ordered based on the order they generally execute. For commonly
178used tasks this would be:
179
180- :ref:`ref-tasks-fetch`
181- :ref:`ref-tasks-unpack`
182- :ref:`ref-tasks-patch`
183- :ref:`ref-tasks-prepare_recipe_sysroot`
184- :ref:`ref-tasks-configure`
185- :ref:`ref-tasks-compile`
186- :ref:`ref-tasks-install`
187- :ref:`ref-tasks-populate_sysroot`
188- :ref:`ref-tasks-package`
189
190Custom tasks should be sorted similarly.
191
192Package specific variables are typically grouped together, e.g.::
193
194 RDEPENDS:${PN} = “foo”
195 RDEPENDS:${PN}-libs = “bar”
196
197 RRECOMMENDS:${PN} = “one”
198 RRECOMMENDS:${PN}-libs = “two”
199
200Recipe License Fields
201---------------------
202
203Recipes need to define both the :term:`LICENSE` and
204:term:`LIC_FILES_CHKSUM` variables:
205
206- :term:`LICENSE`: This variable specifies the license for the software.
207 If you do not know the license under which the software you are
208 building is distributed, you should go to the source code and look
209 for that information. Typical files containing this information
210 include ``COPYING``, :term:`LICENSE`, and ``README`` files. You could
211 also find the information near the top of a source file. For example,
212 given a piece of software licensed under the GNU General Public
213 License version 2, you would set :term:`LICENSE` as follows::
214
215 LICENSE = "GPL-2.0-only"
216
217 The licenses you specify within :term:`LICENSE` can have any name as long
218 as you do not use spaces, since spaces are used as separators between
219 license names. For standard licenses, use the names of the files in
220 ``meta/files/common-licenses/`` or the :term:`SPDXLICENSEMAP` flag names
221 defined in ``meta/conf/licenses.conf``.
222
223- :term:`LIC_FILES_CHKSUM`: The OpenEmbedded build system uses this
224 variable to make sure the license text has not changed. If it has,
225 the build produces an error and it affords you the chance to figure
226 it out and correct the problem.
227
228 You need to specify all applicable licensing files for the software.
229 At the end of the configuration step, the build process will compare
230 the checksums of the files to be sure the text has not changed. Any
231 differences result in an error with the message containing the
232 current checksum. For more explanation and examples of how to set the
233 :term:`LIC_FILES_CHKSUM` variable, see the
234 ":ref:`dev-manual/common-tasks:tracking license changes`" section.
235
236 To determine the correct checksum string, you can list the
237 appropriate files in the :term:`LIC_FILES_CHKSUM` variable with incorrect
238 md5 strings, attempt to build the software, and then note the
239 resulting error messages that will report the correct md5 strings.
240 See the ":ref:`dev-manual/common-tasks:fetching code`" section for
241 additional information.
242
243 Here is an example that assumes the software has a ``COPYING`` file::
244
245 LIC_FILES_CHKSUM = "file://COPYING;md5=xxx"
246
247 When you try to build the
248 software, the build system will produce an error and give you the
249 correct string that you can substitute into the recipe file for a
250 subsequent build.
251
252Tips and Guidelines for Writing Recipes
253---------------------------------------
254
255- Use :term:`BBCLASSEXTEND` instead of creating separate recipes such as ``-native``
256 and ``-nativesdk`` ones, whenever possible. This avoids having to maintain multiple
257 recipe files at the same time.
diff --git a/documentation/contributor-guide/report-defect.rst b/documentation/contributor-guide/report-defect.rst
new file mode 100644
index 0000000000..8ef133b842
--- /dev/null
+++ b/documentation/contributor-guide/report-defect.rst
@@ -0,0 +1,67 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Reporting a Defect Against the Yocto Project and OpenEmbedded
4**************************************************************
5
6You can use the Yocto Project instance of
7`Bugzilla <https://www.bugzilla.org/about/>`__ to submit a defect (bug)
8against BitBake, OpenEmbedded-Core, against any other Yocto Project component
9or for tool issues. For additional information on this implementation of
10Bugzilla see the ":ref:`Yocto Project Bugzilla <resources-bugtracker>`" section
11in the Yocto Project Reference Manual. For more detail on any of the following
12steps, see the Yocto Project
13:yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`.
14
15Use the following general steps to submit a bug:
16
17#. Open the Yocto Project implementation of :yocto_bugs:`Bugzilla <>`.
18
19#. Click "File a Bug" to enter a new bug.
20
21#. Choose the appropriate "Classification", "Product", and "Component"
22 for which the bug was found. Bugs for the Yocto Project fall into
23 one of several classifications, which in turn break down into
24 several products and components. For example, for a bug against the
25 ``meta-intel`` layer, you would choose "Build System, Metadata &
26 Runtime", "BSPs", and "bsps-meta-intel", respectively.
27
28#. Choose the "Version" of the Yocto Project for which you found the
29 bug (e.g. &DISTRO;).
30
31#. Determine and select the "Severity" of the bug. The severity
32 indicates how the bug impacted your work.
33
34#. Choose the "Hardware" that the bug impacts.
35
36#. Choose the "Architecture" that the bug impacts.
37
38#. Choose a "Documentation change" item for the bug. Fixing a bug might
39 or might not affect the Yocto Project documentation. If you are
40 unsure of the impact to the documentation, select "Don't Know".
41
42#. Provide a brief "Summary" of the bug. Try to limit your summary to
43 just a line or two and be sure to capture the essence of the bug.
44
45#. Provide a detailed "Description" of the bug. You should provide as
46 much detail as you can about the context, behavior, output, and so
47 forth that surrounds the bug. You can even attach supporting files
48 for output from logs by using the "Add an attachment" button.
49
50#. Click the "Submit Bug" button submit the bug. A new Bugzilla number
51 is assigned to the bug and the defect is logged in the bug tracking
52 system.
53
54Once you file a bug, the bug is processed by the Yocto Project Bug
55Triage Team and further details concerning the bug are assigned (e.g.
56priority and owner). You are the "Submitter" of the bug and any further
57categorization, progress, or comments on the bug result in Bugzilla
58sending you an automated email concerning the particular change or
59progress to the bug.
60
61There are no guarantees about if or when a bug might be worked on since an
62open-source project has no dedicated engineering resources. However, the
63project does have a good track record of resolving common issues over the
64medium and long term. We do encourage people to file bugs so issues are
65at least known about. It helps other users when they find somebody having
66the same issue as they do, and an issue that is unknown is much less likely
67to ever be fixed!
diff --git a/documentation/contributor-guide/submit-changes.rst b/documentation/contributor-guide/submit-changes.rst
new file mode 100644
index 0000000000..65d8ea5343
--- /dev/null
+++ b/documentation/contributor-guide/submit-changes.rst
@@ -0,0 +1,754 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Contributing Changes to a Component
4************************************
5
6Contributions to the Yocto Project and OpenEmbedded are very welcome.
7Because the system is extremely configurable and flexible, we recognize
8that developers will want to extend, configure or optimize it for their
9specific uses.
10
11.. _ref-why-mailing-lists:
12
13Contributing through mailing lists --- Why not using web-based workflows?
14=========================================================================
15
16Both Yocto Project and OpenEmbedded have many key components that are
17maintained by patches being submitted on mailing lists. We appreciate this
18approach does look a little old fashioned when other workflows are available
19through web technology such as GitHub, GitLab and others. Since we are often
20asked this question, we’ve decided to document the reasons for using mailing
21lists.
22
23One significant factor is that we value peer review. When a change is proposed
24to many of the core pieces of the project, it helps to have many eyes of review
25go over them. Whilst there is ultimately one maintainer who needs to make the
26final call on accepting or rejecting a patch, the review is made by many eyes
27and the exact people reviewing it are likely unknown to the maintainer. It is
28often the surprise reviewer that catches the most interesting issues!
29
30This is in contrast to the "GitHub" style workflow where either just a
31maintainer makes that review, or review is specifically requested from
32nominated people. We believe there is significant value added to the codebase
33by this peer review and that moving away from mailing lists would be to the
34detriment of our code.
35
36We also need to acknowledge that many of our developers are used to this
37mailing list workflow and have worked with it for years, with tools and
38processes built around it. Changing away from this would result in a loss
39of key people from the project, which would again be to its detriment.
40
41The projects are acutely aware that potential new contributors find the
42mailing list approach off-putting and would prefer a web-based GUI.
43Since we don’t believe that can work for us, the project is aiming to ensure
44`patchwork <https://patchwork.yoctoproject.org/>`__ is available to help track
45patch status and also looking at how tooling can provide more feedback to users
46about patch status. We are looking at improving tools such as ``patchtest`` to
47test user contributions before they hit the mailing lists and also at better
48documenting how to use such workflows since we recognise that whilst this was
49common knowledge a decade ago, it might not be as familiar now.
50
51Preparing Changes for Submission
52================================
53
54Set up Git
55----------
56
57The first thing to do is to install Git packages. Here is an example
58on Debian and Ubuntu::
59
60 sudo aptitude install git-core git-email
61
62Then, you need to set a name and e-mail address that Git will
63use to identify your commits::
64
65 git config --global user.name "Ada Lovelace"
66 git config --global user.email "ada.lovelace@gmail.com"
67
68Clone the Git repository for the component to modify
69----------------------------------------------------
70
71After identifying the component to modify as described in the
72":doc:`../contributor-guide/identify-component`" section, clone the
73corresponding Git repository. Here is an example for OpenEmbedded-Core::
74
75 git clone https://git.openembedded.org/openembedded-core
76 cd openembedded-core
77
78Create a new branch
79-------------------
80
81Then, create a new branch in your local Git repository
82for your changes, starting from the reference branch in the upstream
83repository (often called ``master``)::
84
85 $ git checkout <ref-branch>
86 $ git checkout -b my-changes
87
88If you have completely unrelated sets of changes to submit, you should even
89create one branch for each set.
90
91Implement and commit changes
92----------------------------
93
94In each branch, you should group your changes into small, controlled and
95isolated ones. Keeping changes small and isolated aids review, makes
96merging/rebasing easier and keeps the change history clean should anyone need
97to refer to it in future.
98
99To this purpose, you should create *one Git commit per change*,
100corresponding to each of the patches you will eventually submit.
101See `further guidance <https://www.kernel.org/doc/html/latest/process/submitting-patches.html#separate-your-changes>`__
102in the Linux kernel documentation if needed.
103
104For example, when you intend to add multiple new recipes, each recipe
105should be added in a separate commit. For upgrades to existing recipes,
106the previous version should usually be deleted as part of the same commit
107to add the upgraded version.
108
109#. *Stage Your Changes:* Stage your changes by using the ``git add``
110 command on each file you modified. If you want to stage all the
111 files you modified, you can even use the ``git add -A`` command.
112
113#. *Commit Your Changes:* This is when you can create separate commits. For
114 each commit to create, use the ``git commit -s`` command with the files
115 or directories you want to include in the commit::
116
117 $ git commit -s file1 file2 dir1 dir2 ...
118
119 To include **a**\ ll staged files::
120
121 $ git commit -sa
122
123 - The ``-s`` option of ``git commit`` adds a "Signed-off-by:" line
124 to your commit message. There is the same requirement for contributing
125 to the Linux kernel. Adding such a line signifies that you, the
126 submitter, have agreed to the `Developer's Certificate of Origin 1.1
127 <https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin>`__
128 as follows:
129
130 .. code-block:: none
131
132 Developer's Certificate of Origin 1.1
133
134 By making a contribution to this project, I certify that:
135
136 (a) The contribution was created in whole or in part by me and I
137 have the right to submit it under the open source license
138 indicated in the file; or
139
140 (b) The contribution is based upon previous work that, to the best
141 of my knowledge, is covered under an appropriate open source
142 license and I have the right under that license to submit that
143 work with modifications, whether created in whole or in part
144 by me, under the same open source license (unless I am
145 permitted to submit under a different license), as indicated
146 in the file; or
147
148 (c) The contribution was provided directly to me by some other
149 person who certified (a), (b) or (c) and I have not modified
150 it.
151
152 (d) I understand and agree that this project and the contribution
153 are public and that a record of the contribution (including all
154 personal information I submit with it, including my sign-off) is
155 maintained indefinitely and may be redistributed consistent with
156 this project or the open source license(s) involved.
157
158 - Provide a single-line summary of the change and, if more
159 explanation is needed, provide more detail in the body of the
160 commit. This summary is typically viewable in the "shortlist" of
161 changes. Thus, providing something short and descriptive that
162 gives the reader a summary of the change is useful when viewing a
163 list of many commits. You should prefix this short description
164 with the recipe name (if changing a recipe), or else with the
165 short form path to the file being changed.
166
167 .. note::
168
169 To find a suitable prefix for the commit summary, a good idea
170 is to look for prefixes used in previous commits touching the
171 same files or directories::
172
173 git log --oneline <paths>
174
175 - For the body of the commit message, provide detailed information
176 that describes what you changed, why you made the change, and the
177 approach you used. It might also be helpful if you mention how you
178 tested the change. Provide as much detail as you can in the body
179 of the commit message.
180
181 .. note::
182
183 If the single line summary is enough to describe a simple
184 change, the body of the commit message can be left empty.
185
186 - If the change addresses a specific bug or issue that is associated
187 with a bug-tracking ID, include a reference to that ID in your
188 detailed description. For example, the Yocto Project uses a
189 specific convention for bug references --- any commit that addresses
190 a specific bug should use the following form for the detailed
191 description. Be sure to use the actual bug-tracking ID from
192 Bugzilla for bug-id::
193
194 Fixes [YOCTO #bug-id]
195
196 detailed description of change
197
198#. *Crediting contributors:* By using the ``git commit --amend`` command,
199 you can add some tags to the commit description to credit other contributors
200 to the change:
201
202 - ``Reported-by``: name and email of a person reporting a bug
203 that your commit is trying to fix. This is a good practice
204 to encourage people to go on reporting bugs and let them
205 know that their reports are taken into account.
206
207 - ``Suggested-by``: name and email of a person to credit for the
208 idea of making the change.
209
210 - ``Tested-by``, ``Reviewed-by``: name and email for people having
211 tested your changes or reviewed their code. These fields are
212 usually added by the maintainer accepting a patch, or by
213 yourself if you submitted your patches to early reviewers,
214 or are submitting an unmodified patch again as part of a
215 new iteration of your patch series.
216
217 - ``CC:`` Name and email of people you want to send a copy
218 of your changes to. This field will be used by ``git send-email``.
219
220 See `more guidance about using such tags
221 <https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>`__
222 in the Linux kernel documentation.
223
224Creating Patches
225================
226
227Here is the general procedure on how to create patches to be sent through email:
228
229#. *Describe the Changes in your Branch:* If you have more than one commit
230 in your branch, it's recommended to provide a cover letter describing
231 the series of patches you are about to send.
232
233 For this purpose, a good solution is to store the cover letter contents
234 in the branch itself::
235
236 git branch --edit-description
237
238 This will open a text editor to fill in the description for your
239 changes. This description can be updated when necessary and will
240 be used by Git to create the cover letter together with the patches.
241
242 It is recommended to start this description with a title line which
243 will serve a the subject line for the cover letter.
244
245#. *Generate Patches for your Branch:* The ``git format-patch`` command will
246 generate patch files for each of the commits in your branch. You need
247 to pass the reference branch your branch starts from.
248
249 If you branch didn't need a description in the previous step::
250
251 $ git format-patch <ref-branch>
252
253 If you filled a description for your branch, you will want to generate
254 a cover letter too::
255
256 $ git format-patch --cover-letter --cover-from-description=auto <ref-branch>
257
258 After the command is run, the current directory contains numbered
259 ``.patch`` files for the commits in your branch. If you have a cover
260 letter, it will be in the ``0000-cover-letter.patch``.
261
262 .. note::
263
264 The ``--cover-from-description=auto`` option makes ``git format-patch``
265 use the first paragraph of the branch description as the cover
266 letter title. Another possibility, which is easier to remember, is to pass
267 only the ``--cover-letter`` option, but you will have to edit the
268 subject line manually every time you generate the patches.
269
270 See the `git format-patch manual page <https://git-scm.com/docs/git-format-patch>`__
271 for details.
272
273#. *Review each of the Patch Files:* This final review of the patches
274 before sending them often allows to view your changes from a different
275 perspective and discover defects such as typos, spacing issues or lines
276 or even files that you didn't intend to modify. This review should
277 include the cover letter patch too.
278
279 If necessary, rework your commits as described in
280 ":ref:`contributor-guide/submit-changes:taking patch review into account`".
281
282Sending the Patches via Email
283=============================
284
285Using Git to Send Patches
286-------------------------
287
288To submit patches through email, it is very important that you send them
289without any whitespace or HTML formatting that either you or your mailer
290introduces. The maintainer that receives your patches needs to be able
291to save and apply them directly from your emails, using the ``git am``
292command.
293
294Using the ``git send-email`` command is the only error-proof way of sending
295your patches using email since there is no risk of compromising whitespace
296in the body of the message, which can occur when you use your own mail
297client. It will also properly include your patches as *inline attachments*,
298which is not easy to do with standard e-mail clients without breaking lines.
299If you used your regular e-mail client and shared your patches as regular
300attachments, reviewers wouldn't be able to quote specific sections of your
301changes and make comments about them.
302
303Setting up Git to Send Email
304----------------------------
305
306The ``git send-email`` command can send email by using a local or remote
307Mail Transport Agent (MTA) such as ``msmtp``, ``sendmail``, or
308through a direct SMTP configuration in your Git ``~/.gitconfig`` file.
309
310Here are the settings for letting ``git send-email`` send e-mail through your
311regular STMP server, using a Google Mail account as an example::
312
313 git config --global sendemail.smtpserver smtp.gmail.com
314 git config --global sendemail.smtpserverport 587
315 git config --global sendemail.smtpencryption tls
316 git config --global sendemail.smtpuser ada.lovelace@gmail.com
317 git config --global sendemail.smtppass = XXXXXXXX
318
319These settings will appear in the ``.gitconfig`` file in your home directory.
320
321If you neither can use a local MTA nor SMTP, make sure you use an email client
322that does not touch the message (turning spaces in tabs, wrapping lines, etc.).
323A good mail client to do so is Pine (or Alpine) or Mutt. For more
324information about suitable clients, see `Email clients info for Linux
325<https://www.kernel.org/doc/html/latest/process/email-clients.html>`__
326in the Linux kernel sources.
327
328If you use such clients, just include the patch in the body of your email.
329
330Finding a Suitable Mailing List
331-------------------------------
332
333You should send patches to the appropriate mailing list so that they can be
334reviewed by the right contributors and merged by the appropriate maintainer.
335The specific mailing list you need to use depends on the location of the code
336you are changing.
337
338If people have concerns with any of the patches, they will usually voice
339their concern over the mailing list. If patches do not receive any negative
340reviews, the maintainer of the affected layer typically takes them, tests them,
341and then based on successful testing, merges them.
342
343In general, each component (e.g. layer) should have a ``README`` file
344that indicates where to send the changes and which process to follow.
345
346The "poky" repository, which is the Yocto Project's reference build
347environment, is a hybrid repository that contains several individual
348pieces (e.g. BitBake, Metadata, documentation, and so forth) built using
349the combo-layer tool. The upstream location used for submitting changes
350varies by component:
351
352- *Core Metadata:* Send your patches to the
353 :oe_lists:`openembedded-core </g/openembedded-core>`
354 mailing list. For example, a change to anything under the ``meta`` or
355 ``scripts`` directories should be sent to this mailing list.
356
357- *BitBake:* For changes to BitBake (i.e. anything under the
358 ``bitbake`` directory), send your patches to the
359 :oe_lists:`bitbake-devel </g/bitbake-devel>`
360 mailing list.
361
362- *"meta-\*" trees:* These trees contain Metadata. Use the
363 :yocto_lists:`poky </g/poky>` mailing list.
364
365- *Documentation*: For changes to the Yocto Project documentation, use the
366 :yocto_lists:`docs </g/docs>` mailing list.
367
368For changes to other layers and tools hosted in the Yocto Project source
369repositories (i.e. :yocto_git:`git.yoctoproject.org <>`), use the
370:yocto_lists:`yocto </g/yocto/>` general mailing list.
371
372For changes to other layers hosted in the OpenEmbedded source
373repositories (i.e. :oe_git:`git.openembedded.org <>`), use
374the :oe_lists:`openembedded-devel </g/openembedded-devel>`
375mailing list, unless specified otherwise in the layer's ``README`` file.
376
377If you intend to submit a new recipe that neither fits into the core Metadata,
378nor into :oe_git:`meta-openembedded </meta-openembedded/>`, you should
379look for a suitable layer in https://layers.openembedded.org. If similar
380recipes can be expected, you may consider :ref:`dev-manual/common-tasks:creating your own layer`.
381
382If in doubt, please ask on the :yocto_lists:`yocto </g/yocto/>` general mailing list
383or on the :oe_lists:`openembedded-devel </g/openembedded-devel>` mailing list.
384
385Subscribing to the Mailing List
386-------------------------------
387
388After identifying the right mailing list to use, you will have to subscribe to
389it if you haven't done it yet.
390
391If you attempt to send patches to a list you haven't subscribed to, your email
392will be returned as undelivered.
393
394However, if you don't want to be receive all the messages sent to a mailing list,
395you can set your subscription to "no email". You will still be a subscriber able
396to send messages, but you won't receive any e-mail. If people reply to your message,
397their e-mail clients will default to including your email address in the
398conversation anyway.
399
400Anyway, you'll also be able to access the new messages on mailing list archives,
401either through a web browser, or for the lists archived on https://lore.kernelorg,
402through an individual newsgroup feed or a git repository.
403
404Sending Patches via Email
405-------------------------
406
407At this stage, you are ready to send your patches via email. Here's the
408typical usage of ``git send-email``::
409
410 git send-email --to <mailing-list-address> *.patch
411
412Then, review each subject line and list of recipients carefully, and then
413and then allow the command to send each message.
414
415You will see that ``git send-email`` will automatically copy the people listed
416in any commit tags such as ``Signed-off-by`` or ``Reported-by``.
417
418In case you are sending patches for :oe_git:`meta-openembedded </meta-openembedded/>`
419or any layer other than :oe_git:`openembedded-core </openembedded-core/>`,
420please add the appropriate prefix so that it is clear which layer the patch is intended
421to be applied to::
422
423 git send-email --subject-prefix="meta-oe][PATCH" ...
424
425.. note::
426
427 It is actually possible to send patches without generating them
428 first. However, make sure you have reviewed your changes carefully
429 because ``git send-email`` will just show you the title lines of
430 each patch.
431
432 Here's a command you can use if you just have one patch in your
433 branch::
434
435 git send-email --to <mailing-list-address> -1
436
437 If you have multiple patches and a cover letter, you can send
438 patches for all the commits between the reference branch
439 and the tip of your branch::
440
441 git send-email --cover-letter --cover-from-description=auto --to <mailing-list-address> -M <ref-branch>
442
443See the `git send-email manual page <https://git-scm.com/docs/git-send-email>`__
444for details.
445
446Troubleshooting Email Issues
447----------------------------
448
449Fixing your From identity
450~~~~~~~~~~~~~~~~~~~~~~~~~
451
452We have a frequent issue with contributors whose patches are received through
453a ``From`` field which doesn't match the ``Signed-off-by`` information. Here is
454a typical example for people sending from a domain name with :wikipedia:`DMARC`::
455
456 From: "Linus Torvalds via lists.openembedded.org <linus.torvalds=kernel.org@lists.openembedded.org>"
457
458This ``From`` field is used by ``git am`` to recreate commits with the right
459author name. The following will ensure that your e-mails have an additional
460``From`` field at the beginning of the Email body, and therefore that
461maintainers accepting your patches don't have to fix commit author information
462manually::
463
464 git config --global sendemail.from "linus.torvalds@kernel.org"
465
466The ``sendemail.from`` should match your ``user.email`` setting,
467which appears in the ``Signed-off-by`` line of your commits.
468
469Streamlining git send-email usage
470---------------------------------
471
472If you want to save time and not be forced to remember the right options to use
473with ``git send-email``, you can use Git configuration settings.
474
475- To set the right mailing list address for a given repository::
476
477 git config --local sendemail.to openembedded-devel@lists.openembedded.org
478
479- If the mailing list requires a subject prefix for the layer
480 (this only works when the repository only contains one layer)::
481
482 git config --local format.subjectprefix "meta-something][PATCH"
483
484Using Scripts to Push a Change Upstream and Request a Pull
485==========================================================
486
487For larger patch series it is preferable to send a pull request which not
488only includes the patch but also a pointer to a branch that can be pulled
489from. This involves making a local branch for your changes, pushing this
490branch to an accessible repository and then using the ``create-pull-request``
491and ``send-pull-request`` scripts from openembedded-core to create and send a
492patch series with a link to the branch for review.
493
494Follow this procedure to push a change to an upstream "contrib" Git
495repository once the steps in
496":ref:`contributor-guide/submit-changes:preparing changes for submission`"
497have been followed:
498
499.. note::
500
501 You can find general Git information on how to push a change upstream
502 in the
503 `Git Community Book <https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows>`__.
504
505#. *Request Push Access to an "Upstream" Contrib Repository:* Send an email to
506 ``helpdesk@yoctoproject.org``:
507
508 - Attach your SSH public key which usually named ``id_rsa.pub.``.
509 If you don't have one generate it by running ``ssh-keygen -t rsa -b 4096 -C "your_email@example.com"``.
510
511 - List the repositories you're planning to contribute to.
512
513 - Include your preferred branch prefix for ``-contrib`` repositories.
514
515#. *Push Your Commits to the "Contrib" Upstream:* Push your
516 changes to that repository::
517
518 $ git push upstream_remote_repo local_branch_name
519
520 For example, suppose you have permissions to push
521 into the upstream ``meta-intel-contrib`` repository and you are
522 working in a local branch named `your_name`\ ``/README``. The following
523 command pushes your local commits to the ``meta-intel-contrib``
524 upstream repository and puts the commit in a branch named
525 `your_name`\ ``/README``::
526
527 $ git push meta-intel-contrib your_name/README
528
529#. *Determine Who to Notify:* Determine the maintainer or the mailing
530 list that you need to notify for the change.
531
532 Before submitting any change, you need to be sure who the maintainer
533 is or what mailing list that you need to notify. Use either these
534 methods to find out:
535
536 - *Maintenance File:* Examine the ``maintainers.inc`` file, which is
537 located in the :term:`Source Directory` at
538 ``meta/conf/distro/include``, to see who is responsible for code.
539
540 - *Search by File:* Using :ref:`overview-manual/development-environment:git`, you can
541 enter the following command to bring up a short list of all
542 commits against a specific file::
543
544 git shortlog -- filename
545
546 Just provide the name of the file for which you are interested. The
547 information returned is not ordered by history but does include a
548 list of everyone who has committed grouped by name. From the list,
549 you can see who is responsible for the bulk of the changes against
550 the file.
551
552 - *Find the Mailing List to Use:* See the
553 ":ref:`contributor-guide/submit-changes:finding a suitable mailing list`"
554 section above.
555
556#. *Make a Pull Request:* Notify the maintainer or the mailing list that
557 you have pushed a change by making a pull request.
558
559 The Yocto Project provides two scripts that conveniently let you
560 generate and send pull requests to the Yocto Project. These scripts
561 are ``create-pull-request`` and ``send-pull-request``. You can find
562 these scripts in the ``scripts`` directory within the
563 :term:`Source Directory` (e.g.
564 ``poky/scripts``).
565
566 Using these scripts correctly formats the requests without
567 introducing any whitespace or HTML formatting. The maintainer that
568 receives your patches either directly or through the mailing list
569 needs to be able to save and apply them directly from your emails.
570 Using these scripts is the preferred method for sending patches.
571
572 First, create the pull request. For example, the following command
573 runs the script, specifies the upstream repository in the contrib
574 directory into which you pushed the change, and provides a subject
575 line in the created patch files::
576
577 $ poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README"
578
579 Running this script forms ``*.patch`` files in a folder named
580 ``pull-``\ `PID` in the current directory. One of the patch files is a
581 cover letter.
582
583 Before running the ``send-pull-request`` script, you must edit the
584 cover letter patch to insert information about your change. After
585 editing the cover letter, send the pull request. For example, the
586 following command runs the script and specifies the patch directory
587 and email address. In this example, the email address is a mailing
588 list::
589
590 $ poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@lists.yoctoproject.org
591
592 You need to follow the prompts as the script is interactive.
593
594 .. note::
595
596 For help on using these scripts, simply provide the ``-h``
597 argument as follows::
598
599 $ poky/scripts/create-pull-request -h
600 $ poky/scripts/send-pull-request -h
601
602Submitting Changes to Stable Release Branches
603=============================================
604
605The process for proposing changes to a Yocto Project stable branch differs
606from the steps described above. Changes to a stable branch must address
607identified bugs or CVEs and should be made carefully in order to avoid the
608risk of introducing new bugs or breaking backwards compatibility. Typically
609bug fixes must already be accepted into the master branch before they can be
610backported to a stable branch unless the bug in question does not affect the
611master branch or the fix on the master branch is unsuitable for backporting.
612
613The list of stable branches along with the status and maintainer for each
614branch can be obtained from the
615:yocto_wiki:`Releases wiki page </Releases>`.
616
617.. note::
618
619 Changes will not typically be accepted for branches which are marked as
620 End-Of-Life (EOL).
621
622With this in mind, the steps to submit a change for a stable branch are as
623follows:
624
625#. *Identify the bug or CVE to be fixed:* This information should be
626 collected so that it can be included in your submission.
627
628 See :ref:`dev-manual/common-tasks:checking for vulnerabilities`
629 for details about CVE tracking.
630
631#. *Check if the fix is already present in the master branch:* This will
632 result in the most straightforward path into the stable branch for the
633 fix.
634
635 #. *If the fix is present in the master branch --- submit a backport request
636 by email:* You should send an email to the relevant stable branch
637 maintainer and the mailing list with details of the bug or CVE to be
638 fixed, the commit hash on the master branch that fixes the issue and
639 the stable branches which you would like this fix to be backported to.
640
641 #. *If the fix is not present in the master branch --- submit the fix to the
642 master branch first:* This will ensure that the fix passes through the
643 project's usual patch review and test processes before being accepted.
644 It will also ensure that bugs are not left unresolved in the master
645 branch itself. Once the fix is accepted in the master branch a backport
646 request can be submitted as above.
647
648 #. *If the fix is unsuitable for the master branch --- submit a patch
649 directly for the stable branch:* This method should be considered as a
650 last resort. It is typically necessary when the master branch is using
651 a newer version of the software which includes an upstream fix for the
652 issue or when the issue has been fixed on the master branch in a way
653 that introduces backwards incompatible changes. In this case follow the
654 steps in ":ref:`contributor-guide/submit-changes:preparing changes for submission`"
655 and in the following sections but modify the subject header of your patch
656 email to include the name of the stable branch which you are
657 targetting. This can be done using the ``--subject-prefix`` argument to
658 ``git format-patch``, for example to submit a patch to the
659 "&DISTRO_NAME_NO_CAP_MINUS_ONE;" branch use::
660
661 git format-patch --subject-prefix='&DISTRO_NAME_NO_CAP_MINUS_ONE;][PATCH' ...
662
663Taking Patch Review into Account
664================================
665
666You may get feedback on your submitted patches from other community members
667or from the automated patchtest service. If issues are identified in your
668patches then it is usually necessary to address these before the patches are
669accepted into the project. In this case you should your commits according
670to the feedback and submit an updated version to the relevant mailing list.
671
672In any case, never fix reported issues by fixing them in new commits
673on the tip of your branch. Always come up with a new series of commits
674without the reported issues.
675
676.. note::
677
678 It is a good idea to send a copy to the reviewers who provided feedback
679 to the previous version of the patch. You can make sure this happens
680 by adding a ``CC`` tag to the commit description::
681
682 CC: William Shakespeare <bill@yoctoproject.org>
683
684A single patch can be amended using ``git commit --amend``, and multiple
685patches can be easily reworked and reordered through an interactive Git rebase::
686
687 git rebase -i <ref-branch>
688
689See `this tutorial <https://hackernoon.com/beginners-guide-to-interactive-rebasing-346a3f9c3a6d>`__
690for practical guidance about using Git interactive rebasing.
691
692You should also modify the ``[PATCH]`` tag in the email subject line when
693sending the revised patch to mark the new iteration as ``[PATCH v2]``,
694``[PATCH v3]``, etc as appropriate. This can be done by passing the ``-v``
695argument to ``git format-patch`` with a version number::
696
697 git format-patch -v2 <ref-branch>
698
699Lastly please ensure that you also test your revised changes. In particular
700please don't just edit the patch file written out by ``git format-patch`` and
701resend it.
702
703Tracking the Status of Patches
704==============================
705
706The Yocto Project uses a `Patchwork instance <https://patchwork.yoctoproject.org/>`__
707to track the status of patches submitted to the various mailing lists and to
708support automated patch testing. Each submitted patch is checked for common
709mistakes and deviations from the expected patch format and submitters are
710notified by ``patchtest`` if such mistakes are found. This process helps to
711reduce the burden of patch review on maintainers.
712
713.. note::
714
715 This system is imperfect and changes can sometimes get lost in the flow.
716 Asking about the status of a patch or change is reasonable if the change
717 has been idle for a while with no feedback.
718
719If your patches have not had any feedback in a few days, they may have already
720been merged. You can run ``git pull`` branch to check this. Note that many if
721not most layer maintainers do not send out acknowledgement emails when they
722accept patches. Alternatively, if there is no response or merge after a few days
723the patch may have been missed or the appropriate reviewers may not currently be
724around. It is then perfectly fine to reply to it yourself with a reminder asking
725for feedback.
726
727.. note::
728
729 Patch reviews for feature and recipe upgrade patches are likely be delayed
730 during a feature freeze because these types of patches aren't merged during
731 at that time --- you may have to wait until after the freeze is lifted.
732
733Maintainers also commonly use ``-next`` branches to test submissions prior to
734merging patches. Thus, you can get an idea of the status of a patch based on
735whether the patch has been merged into one of these branches. The commonly
736used testing branches for OpenEmbedded-Core are as follows:
737
738- *openembedded-core "master-next" branch:* This branch is part of the
739 :oe_git:`openembedded-core </openembedded-core/>` repository and contains
740 proposed changes to the core metadata.
741
742- *poky "master-next" branch:* This branch is part of the
743 :yocto_git:`poky </poky/>` repository and combines proposed
744 changes to BitBake, the core metadata and the poky distro.
745
746Similarly, stable branches maintained by the project may have corresponding
747``-next`` branches which collect proposed changes. For example,
748``&DISTRO_NAME_NO_CAP;-next`` and ``&DISTRO_NAME_NO_CAP_MINUS_ONE;-next``
749branches in both the "openembdedded-core" and "poky" repositories.
750
751Other layers may have similar testing branches but there is no formal
752requirement or standard for these so please check the documentation for the
753layers you are contributing to.
754
diff --git a/documentation/dev-manual/common-tasks.rst b/documentation/dev-manual/common-tasks.rst
index bc1a13f0ab..6a527f0ef8 100644
--- a/documentation/dev-manual/common-tasks.rst
+++ b/documentation/dev-manual/common-tasks.rst
@@ -10045,8 +10045,7 @@ The build should work without issue.
10045As with all solved problems, if they originated upstream, you need to 10045As with all solved problems, if they originated upstream, you need to
10046submit the fix for the recipe in OE-Core and upstream so that the 10046submit the fix for the recipe in OE-Core and upstream so that the
10047problem is taken care of at its source. See the 10047problem is taken care of at its source. See the
10048":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 10048:doc:`../contributor-guide/submit-changes` section for more information.
10049section for more information.
10050 10049
10051Debugging With the GNU Project Debugger (GDB) Remotely 10050Debugging With the GNU Project Debugger (GDB) Remotely
10052------------------------------------------------------ 10051------------------------------------------------------
@@ -10409,9 +10408,7 @@ Here are some other tips that you might find useful:
10409 :yocto_bugs:`Bugzilla <>`. For information on 10408 :yocto_bugs:`Bugzilla <>`. For information on
10410 how to submit a bug against the Yocto Project, see the Yocto Project 10409 how to submit a bug against the Yocto Project, see the Yocto Project
10411 Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 10410 Bugzilla :yocto_wiki:`wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
10412 and the 10411 and the ":doc:`../contributor-guide/report-defect`" section.
10413 ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`"
10414 section.
10415 10412
10416 .. note:: 10413 .. note::
10417 10414
@@ -10419,529 +10416,6 @@ Here are some other tips that you might find useful:
10419 that are purely internal and have a limited scope (e.g. internal 10416 that are purely internal and have a limited scope (e.g. internal
10420 variables used to implement a single ``.bbclass`` file). 10417 variables used to implement a single ``.bbclass`` file).
10421 10418
10422Making Changes to the Yocto Project
10423===================================
10424
10425Because the Yocto Project is an open-source, community-based project,
10426you can effect changes to the project. This section presents procedures
10427that show you how to submit a defect against the project and how to
10428submit a change.
10429
10430Submitting a Defect Against the Yocto Project
10431---------------------------------------------
10432
10433Use the Yocto Project implementation of
10434`Bugzilla <https://www.bugzilla.org/about/>`__ to submit a defect (bug)
10435against the Yocto Project. For additional information on this
10436implementation of Bugzilla see the ":ref:`Yocto Project
10437Bugzilla <resources-bugtracker>`" section in the
10438Yocto Project Reference Manual. For more detail on any of the following
10439steps, see the Yocto Project
10440:yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`.
10441
10442Use the following general steps to submit a bug:
10443
104441. Open the Yocto Project implementation of :yocto_bugs:`Bugzilla <>`.
10445
104462. Click "File a Bug" to enter a new bug.
10447
104483. Choose the appropriate "Classification", "Product", and "Component"
10449 for which the bug was found. Bugs for the Yocto Project fall into
10450 one of several classifications, which in turn break down into
10451 several products and components. For example, for a bug against the
10452 ``meta-intel`` layer, you would choose "Build System, Metadata &
10453 Runtime", "BSPs", and "bsps-meta-intel", respectively.
10454
104554. Choose the "Version" of the Yocto Project for which you found the
10456 bug (e.g. &DISTRO;).
10457
104585. Determine and select the "Severity" of the bug. The severity
10459 indicates how the bug impacted your work.
10460
104616. Choose the "Hardware" that the bug impacts.
10462
104637. Choose the "Architecture" that the bug impacts.
10464
104658. Choose a "Documentation change" item for the bug. Fixing a bug might
10466 or might not affect the Yocto Project documentation. If you are
10467 unsure of the impact to the documentation, select "Don't Know".
10468
104699. Provide a brief "Summary" of the bug. Try to limit your summary to
10470 just a line or two and be sure to capture the essence of the bug.
10471
1047210. Provide a detailed "Description" of the bug. You should provide as
10473 much detail as you can about the context, behavior, output, and so
10474 forth that surrounds the bug. You can even attach supporting files
10475 for output from logs by using the "Add an attachment" button.
10476
1047711. Click the "Submit Bug" button submit the bug. A new Bugzilla number
10478 is assigned to the bug and the defect is logged in the bug tracking
10479 system.
10480
10481Once you file a bug, the bug is processed by the Yocto Project Bug
10482Triage Team and further details concerning the bug are assigned (e.g.
10483priority and owner). You are the "Submitter" of the bug and any further
10484categorization, progress, or comments on the bug result in Bugzilla
10485sending you an automated email concerning the particular change or
10486progress to the bug.
10487
10488Submitting a Change to the Yocto Project
10489----------------------------------------
10490
10491Contributions to the Yocto Project and OpenEmbedded are very welcome.
10492Because the system is extremely configurable and flexible, we recognize
10493that developers will want to extend, configure or optimize it for their
10494specific uses.
10495
10496The Yocto Project uses a mailing list and a patch-based workflow that is
10497similar to the Linux kernel but contains important differences. In
10498general, there is a mailing list through which you can submit patches. You
10499should send patches to the appropriate mailing list so that they can be
10500reviewed and merged by the appropriate maintainer. The specific mailing
10501list you need to use depends on the location of the code you are
10502changing. Each component (e.g. layer) should have a ``README`` file that
10503indicates where to send the changes and which process to follow.
10504
10505You can send the patch to the mailing list using whichever approach you
10506feel comfortable with to generate the patch. Once sent, the patch is
10507usually reviewed by the community at large. If somebody has concerns
10508with the patch, they will usually voice their concern over the mailing
10509list. If a patch does not receive any negative reviews, the maintainer
10510of the affected layer typically takes the patch, tests it, and then
10511based on successful testing, merges the patch.
10512
10513The "poky" repository, which is the Yocto Project's reference build
10514environment, is a hybrid repository that contains several individual
10515pieces (e.g. BitBake, Metadata, documentation, and so forth) built using
10516the combo-layer tool. The upstream location used for submitting changes
10517varies by component:
10518
10519- *Core Metadata:* Send your patch to the
10520 :oe_lists:`openembedded-core </g/openembedded-core>`
10521 mailing list. For example, a change to anything under the ``meta`` or
10522 ``scripts`` directories should be sent to this mailing list.
10523
10524- *BitBake:* For changes to BitBake (i.e. anything under the
10525 ``bitbake`` directory), send your patch to the
10526 :oe_lists:`bitbake-devel </g/bitbake-devel>`
10527 mailing list.
10528
10529- *"meta-\*" trees:* These trees contain Metadata. Use the
10530 :yocto_lists:`poky </g/poky>` mailing list.
10531
10532- *Documentation*: For changes to the Yocto Project documentation, use the
10533 :yocto_lists:`docs </g/docs>` mailing list.
10534
10535For changes to other layers hosted in the Yocto Project source
10536repositories (i.e. ``yoctoproject.org``) and tools use the
10537:yocto_lists:`Yocto Project </g/yocto/>` general mailing list.
10538
10539.. note::
10540
10541 Sometimes a layer's documentation specifies to use a particular
10542 mailing list. If so, use that list.
10543
10544For additional recipes that do not fit into the core Metadata, you
10545should determine which layer the recipe should go into and submit the
10546change in the manner recommended by the documentation (e.g. the
10547``README`` file) supplied with the layer. If in doubt, please ask on the
10548Yocto general mailing list or on the openembedded-devel mailing list.
10549
10550You can also push a change upstream and request a maintainer to pull the
10551change into the component's upstream repository. You do this by pushing
10552to a contribution repository that is upstream. See the
10553":ref:`overview-manual/development-environment:git workflows and the yocto project`"
10554section in the Yocto Project Overview and Concepts Manual for additional
10555concepts on working in the Yocto Project development environment.
10556
10557Maintainers commonly use ``-next`` branches to test submissions prior to
10558merging patches. Thus, you can get an idea of the status of a patch based on
10559whether the patch has been merged into one of these branches. The commonly
10560used testing branches for OpenEmbedded-Core are as follows:
10561
10562- *openembedded-core "master-next" branch:* This branch is part of the
10563 :oe_git:`openembedded-core </openembedded-core/>` repository and contains
10564 proposed changes to the core metadata.
10565
10566- *poky "master-next" branch:* This branch is part of the
10567 :yocto_git:`poky </poky/>` repository and combines proposed
10568 changes to bitbake, the core metadata and the poky distro.
10569
10570Similarly, stable branches maintained by the project may have corresponding
10571``-next`` branches which collect proposed changes. For example,
10572``&DISTRO_NAME_NO_CAP;-next`` and ``&DISTRO_NAME_NO_CAP_MINUS_ONE;-next``
10573branches in both the "openembdedded-core" and "poky" repositories.
10574
10575Other layers may have similar testing branches but there is no formal
10576requirement or standard for these so please check the documentation for the
10577layers you are contributing to.
10578
10579The following sections provide procedures for submitting a change.
10580
10581Preparing Changes for Submission
10582~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10583
105841. *Make Your Changes Locally:* Make your changes in your local Git
10585 repository. You should make small, controlled, isolated changes.
10586 Keeping changes small and isolated aids review, makes
10587 merging/rebasing easier and keeps the change history clean should
10588 anyone need to refer to it in future.
10589
105902. *Stage Your Changes:* Stage your changes by using the ``git add``
10591 command on each file you changed.
10592
105933. *Commit Your Changes:* Commit the change by using the ``git commit``
10594 command. Make sure your commit information follows standards by
10595 following these accepted conventions:
10596
10597 - Be sure to include a "Signed-off-by:" line in the same style as
10598 required by the Linux kernel. This can be done by using the
10599 ``git commit -s`` command. Adding this line signifies that you,
10600 the submitter, have agreed to the Developer's Certificate of
10601 Origin 1.1 as follows:
10602
10603 .. code-block:: none
10604
10605 Developer's Certificate of Origin 1.1
10606
10607 By making a contribution to this project, I certify that:
10608
10609 (a) The contribution was created in whole or in part by me and I
10610 have the right to submit it under the open source license
10611 indicated in the file; or
10612
10613 (b) The contribution is based upon previous work that, to the best
10614 of my knowledge, is covered under an appropriate open source
10615 license and I have the right under that license to submit that
10616 work with modifications, whether created in whole or in part
10617 by me, under the same open source license (unless I am
10618 permitted to submit under a different license), as indicated
10619 in the file; or
10620
10621 (c) The contribution was provided directly to me by some other
10622 person who certified (a), (b) or (c) and I have not modified
10623 it.
10624
10625 (d) I understand and agree that this project and the contribution
10626 are public and that a record of the contribution (including all
10627 personal information I submit with it, including my sign-off) is
10628 maintained indefinitely and may be redistributed consistent with
10629 this project or the open source license(s) involved.
10630
10631 - Provide a single-line summary of the change and, if more
10632 explanation is needed, provide more detail in the body of the
10633 commit. This summary is typically viewable in the "shortlist" of
10634 changes. Thus, providing something short and descriptive that
10635 gives the reader a summary of the change is useful when viewing a
10636 list of many commits. You should prefix this short description
10637 with the recipe name (if changing a recipe), or else with the
10638 short form path to the file being changed.
10639
10640 - For the body of the commit message, provide detailed information
10641 that describes what you changed, why you made the change, and the
10642 approach you used. It might also be helpful if you mention how you
10643 tested the change. Provide as much detail as you can in the body
10644 of the commit message.
10645
10646 .. note::
10647
10648 You do not need to provide a more detailed explanation of a
10649 change if the change is minor to the point of the single line
10650 summary providing all the information.
10651
10652 - If the change addresses a specific bug or issue that is associated
10653 with a bug-tracking ID, include a reference to that ID in your
10654 detailed description. For example, the Yocto Project uses a
10655 specific convention for bug references - any commit that addresses
10656 a specific bug should use the following form for the detailed
10657 description. Be sure to use the actual bug-tracking ID from
10658 Bugzilla for bug-id::
10659
10660 Fixes [YOCTO #bug-id]
10661
10662 detailed description of change
10663
10664Using Email to Submit a Patch
10665~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10666
10667Depending on the components changed, you need to submit the email to a
10668specific mailing list. For some guidance on which mailing list to use,
10669see the
10670:ref:`list <dev-manual/common-tasks:submitting a change to the yocto project>`
10671at the beginning of this section. For a description of all the available
10672mailing lists, see the ":ref:`Mailing Lists <resources-mailinglist>`" section in the
10673Yocto Project Reference Manual.
10674
10675Here is the general procedure on how to submit a patch through email
10676without using the scripts once the steps in
10677:ref:`dev-manual/common-tasks:preparing changes for submission` have been followed:
10678
106791. *Format the Commit:* Format the commit into an email message. To
10680 format commits, use the ``git format-patch`` command. When you
10681 provide the command, you must include a revision list or a number of
10682 patches as part of the command. For example, either of these two
10683 commands takes your most recent single commit and formats it as an
10684 email message in the current directory::
10685
10686 $ git format-patch -1
10687
10688 or ::
10689
10690 $ git format-patch HEAD~
10691
10692 After the command is run, the current directory contains a numbered
10693 ``.patch`` file for the commit.
10694
10695 If you provide several commits as part of the command, the
10696 ``git format-patch`` command produces a series of numbered files in
10697 the current directory – one for each commit. If you have more than
10698 one patch, you should also use the ``--cover`` option with the
10699 command, which generates a cover letter as the first "patch" in the
10700 series. You can then edit the cover letter to provide a description
10701 for the series of patches. For information on the
10702 ``git format-patch`` command, see ``GIT_FORMAT_PATCH(1)`` displayed
10703 using the ``man git-format-patch`` command.
10704
10705 .. note::
10706
10707 If you are or will be a frequent contributor to the Yocto Project
10708 or to OpenEmbedded, you might consider requesting a contrib area
10709 and the necessary associated rights.
10710
107112. *Send the patches via email:* Send the patches to the recipients and
10712 relevant mailing lists by using the ``git send-email`` command.
10713
10714 .. note::
10715
10716 In order to use ``git send-email``, you must have the proper Git packages
10717 installed on your host.
10718 For Ubuntu, Debian, and Fedora the package is ``git-email``.
10719
10720 The ``git send-email`` command sends email by using a local or remote
10721 Mail Transport Agent (MTA) such as ``msmtp``, ``sendmail``, or
10722 through a direct ``smtp`` configuration in your Git ``~/.gitconfig``
10723 file. If you are submitting patches through email only, it is very
10724 important that you submit them without any whitespace or HTML
10725 formatting that either you or your mailer introduces. The maintainer
10726 that receives your patches needs to be able to save and apply them
10727 directly from your emails. A good way to verify that what you are
10728 sending will be applicable by the maintainer is to do a dry run and
10729 send them to yourself and then save and apply them as the maintainer
10730 would.
10731
10732 The ``git send-email`` command is the preferred method for sending
10733 your patches using email since there is no risk of compromising
10734 whitespace in the body of the message, which can occur when you use
10735 your own mail client. The command also has several options that let
10736 you specify recipients and perform further editing of the email
10737 message. For information on how to use the ``git send-email``
10738 command, see ``GIT-SEND-EMAIL(1)`` displayed using the
10739 ``man git-send-email`` command.
10740
10741The Yocto Project uses a `Patchwork instance <https://patchwork.yoctoproject.org/>`__
10742to track the status of patches submitted to the various mailing lists and to
10743support automated patch testing. Each submitted patch is checked for common
10744mistakes and deviations from the expected patch format and submitters are
10745notified by patchtest if such mistakes are found. This process helps to
10746reduce the burden of patch review on maintainers.
10747
10748.. note::
10749
10750 This system is imperfect and changes can sometimes get lost in the flow.
10751 Asking about the status of a patch or change is reasonable if the change
10752 has been idle for a while with no feedback.
10753
10754Using Scripts to Push a Change Upstream and Request a Pull
10755~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10756
10757For larger patch series it is preferable to send a pull request which not
10758only includes the patch but also a pointer to a branch that can be pulled
10759from. This involves making a local branch for your changes, pushing this
10760branch to an accessible repository and then using the ``create-pull-request``
10761and ``send-pull-request`` scripts from openembedded-core to create and send a
10762patch series with a link to the branch for review.
10763
10764Follow this procedure to push a change to an upstream "contrib" Git
10765repository once the steps in :ref:`dev-manual/common-tasks:preparing changes for submission` have
10766been followed:
10767
10768.. note::
10769
10770 You can find general Git information on how to push a change upstream
10771 in the
10772 `Git Community Book <https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows>`__.
10773
107741. *Push Your Commits to a "Contrib" Upstream:* If you have arranged for
10775 permissions to push to an upstream contrib repository, push the
10776 change to that repository::
10777
10778 $ git push upstream_remote_repo local_branch_name
10779
10780 For example, suppose you have permissions to push
10781 into the upstream ``meta-intel-contrib`` repository and you are
10782 working in a local branch named `your_name`\ ``/README``. The following
10783 command pushes your local commits to the ``meta-intel-contrib``
10784 upstream repository and puts the commit in a branch named
10785 `your_name`\ ``/README``::
10786
10787 $ git push meta-intel-contrib your_name/README
10788
107892. *Determine Who to Notify:* Determine the maintainer or the mailing
10790 list that you need to notify for the change.
10791
10792 Before submitting any change, you need to be sure who the maintainer
10793 is or what mailing list that you need to notify. Use either these
10794 methods to find out:
10795
10796 - *Maintenance File:* Examine the ``maintainers.inc`` file, which is
10797 located in the :term:`Source Directory` at
10798 ``meta/conf/distro/include``, to see who is responsible for code.
10799
10800 - *Search by File:* Using :ref:`overview-manual/development-environment:git`, you can
10801 enter the following command to bring up a short list of all
10802 commits against a specific file::
10803
10804 git shortlog -- filename
10805
10806 Just provide the name of the file for which you are interested. The
10807 information returned is not ordered by history but does include a
10808 list of everyone who has committed grouped by name. From the list,
10809 you can see who is responsible for the bulk of the changes against
10810 the file.
10811
10812 - *Examine the List of Mailing Lists:* For a list of the Yocto
10813 Project and related mailing lists, see the ":ref:`Mailing
10814 lists <resources-mailinglist>`" section in
10815 the Yocto Project Reference Manual.
10816
108173. *Make a Pull Request:* Notify the maintainer or the mailing list that
10818 you have pushed a change by making a pull request.
10819
10820 The Yocto Project provides two scripts that conveniently let you
10821 generate and send pull requests to the Yocto Project. These scripts
10822 are ``create-pull-request`` and ``send-pull-request``. You can find
10823 these scripts in the ``scripts`` directory within the
10824 :term:`Source Directory` (e.g.
10825 ``poky/scripts``).
10826
10827 Using these scripts correctly formats the requests without
10828 introducing any whitespace or HTML formatting. The maintainer that
10829 receives your patches either directly or through the mailing list
10830 needs to be able to save and apply them directly from your emails.
10831 Using these scripts is the preferred method for sending patches.
10832
10833 First, create the pull request. For example, the following command
10834 runs the script, specifies the upstream repository in the contrib
10835 directory into which you pushed the change, and provides a subject
10836 line in the created patch files::
10837
10838 $ poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README"
10839
10840 Running this script forms ``*.patch`` files in a folder named
10841 ``pull-``\ `PID` in the current directory. One of the patch files is a
10842 cover letter.
10843
10844 Before running the ``send-pull-request`` script, you must edit the
10845 cover letter patch to insert information about your change. After
10846 editing the cover letter, send the pull request. For example, the
10847 following command runs the script and specifies the patch directory
10848 and email address. In this example, the email address is a mailing
10849 list::
10850
10851 $ poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@lists.yoctoproject.org
10852
10853 You need to follow the prompts as the script is interactive.
10854
10855 .. note::
10856
10857 For help on using these scripts, simply provide the ``-h``
10858 argument as follows::
10859
10860 $ poky/scripts/create-pull-request -h
10861 $ poky/scripts/send-pull-request -h
10862
10863Responding to Patch Review
10864~~~~~~~~~~~~~~~~~~~~~~~~~~
10865
10866You may get feedback on your submitted patches from other community members
10867or from the automated patchtest service. If issues are identified in your
10868patch then it is usually necessary to address these before the patch will be
10869accepted into the project. In this case you should amend the patch according
10870to the feedback and submit an updated version to the relevant mailing list,
10871copying in the reviewers who provided feedback to the previous version of the
10872patch.
10873
10874The patch should be amended using ``git commit --amend`` or perhaps ``git
10875rebase`` for more expert git users. You should also modify the ``[PATCH]``
10876tag in the email subject line when sending the revised patch to mark the new
10877iteration as ``[PATCH v2]``, ``[PATCH v3]``, etc as appropriate. This can be
10878done by passing the ``-v`` argument to ``git format-patch`` with a version
10879number.
10880
10881Lastly please ensure that you also test your revised changes. In particular
10882please don't just edit the patch file written out by ``git format-patch`` and
10883resend it.
10884
10885Submitting Changes to Stable Release Branches
10886~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10887
10888The process for proposing changes to a Yocto Project stable branch differs
10889from the steps described above. Changes to a stable branch must address
10890identified bugs or CVEs and should be made carefully in order to avoid the
10891risk of introducing new bugs or breaking backwards compatibility. Typically
10892bug fixes must already be accepted into the master branch before they can be
10893backported to a stable branch unless the bug in question does not affect the
10894master branch or the fix on the master branch is unsuitable for backporting.
10895
10896The list of stable branches along with the status and maintainer for each
10897branch can be obtained from the
10898:yocto_wiki:`Releases wiki page </Releases>`.
10899
10900.. note::
10901
10902 Changes will not typically be accepted for branches which are marked as
10903 End-Of-Life (EOL).
10904
10905With this in mind, the steps to submit a change for a stable branch are as
10906follows:
10907
109081. *Identify the bug or CVE to be fixed:* This information should be
10909 collected so that it can be included in your submission.
10910
10911 See :ref:`dev-manual/common-tasks:checking for vulnerabilities`
10912 for details about CVE tracking.
10913
109142. *Check if the fix is already present in the master branch:* This will
10915 result in the most straightforward path into the stable branch for the
10916 fix.
10917
10918 a. *If the fix is present in the master branch - Submit a backport request
10919 by email:* You should send an email to the relevant stable branch
10920 maintainer and the mailing list with details of the bug or CVE to be
10921 fixed, the commit hash on the master branch that fixes the issue and
10922 the stable branches which you would like this fix to be backported to.
10923
10924 b. *If the fix is not present in the master branch - Submit the fix to the
10925 master branch first:* This will ensure that the fix passes through the
10926 project's usual patch review and test processes before being accepted.
10927 It will also ensure that bugs are not left unresolved in the master
10928 branch itself. Once the fix is accepted in the master branch a backport
10929 request can be submitted as above.
10930
10931 c. *If the fix is unsuitable for the master branch - Submit a patch
10932 directly for the stable branch:* This method should be considered as a
10933 last resort. It is typically necessary when the master branch is using
10934 a newer version of the software which includes an upstream fix for the
10935 issue or when the issue has been fixed on the master branch in a way
10936 that introduces backwards incompatible changes. In this case follow the
10937 steps in :ref:`dev-manual/common-tasks:preparing changes for submission` and
10938 :ref:`dev-manual/common-tasks:using email to submit a patch` but modify the subject header of your patch
10939 email to include the name of the stable branch which you are
10940 targetting. This can be done using the ``--subject-prefix`` argument to
10941 ``git format-patch``, for example to submit a patch to the dunfell
10942 branch use
10943 ``git format-patch --subject-prefix='&DISTRO_NAME_NO_CAP_MINUS_ONE;][PATCH' ...``.
10944
10945Working With Licenses 10419Working With Licenses
10946===================== 10420=====================
10947 10421
@@ -11485,7 +10959,7 @@ issues may be impacting Poky and OE-Core. It is up to the maintainers, users,
11485contributors and anyone interested in the issues to investigate and possibly fix them by 10959contributors and anyone interested in the issues to investigate and possibly fix them by
11486updating software components to newer versions or by applying patches to address them. 10960updating software components to newer versions or by applying patches to address them.
11487It is recommended to work with Poky and OE-Core upstream maintainers and submit 10961It is recommended to work with Poky and OE-Core upstream maintainers and submit
11488patches to fix them, see ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" for details. 10962patches to fix them, see :doc:`../contributor-guide/submit-changes` for details.
11489 10963
11490Vulnerability check at build time 10964Vulnerability check at build time
11491--------------------------------- 10965---------------------------------
diff --git a/documentation/dev-manual/start.rst b/documentation/dev-manual/start.rst
index 96fabac1aa..d5e702a5a4 100644
--- a/documentation/dev-manual/start.rst
+++ b/documentation/dev-manual/start.rst
@@ -246,14 +246,13 @@ particular working environment and set of practices.
246 - The Yocto Project community encourages you to send patches to the 246 - The Yocto Project community encourages you to send patches to the
247 project to fix bugs or add features. If you do submit patches, 247 project to fix bugs or add features. If you do submit patches,
248 follow the project commit guidelines for writing good commit 248 follow the project commit guidelines for writing good commit
249 messages. See the 249 messages. See the ":doc:`../contributor-guide/submit-changes`"
250 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 250 section in the Yocto Project and OpenEmbedded Contributor Guide.
251 section.
252 251
253 - Send changes to the core sooner than later as others are likely 252 - Send changes to the core sooner than later as others are likely
254 to run into the same issues. For some guidance on mailing lists 253 to run into the same issues. For some guidance on mailing lists
255 to use, see the list in the 254 to use, see the lists in the
256 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 255 ":ref:`contributor-guide/submit-changes:finding a suitable mailing list`"
257 section. For a description 256 section. For a description
258 of the available mailing lists, see the ":ref:`resources-mailinglist`" section in 257 of the available mailing lists, see the ":ref:`resources-mailinglist`" section in
259 the Yocto Project Reference Manual. 258 the Yocto Project Reference Manual.
diff --git a/documentation/index.rst b/documentation/index.rst
index 6335c707e0..3fef1704a4 100644
--- a/documentation/index.rst
+++ b/documentation/index.rst
@@ -26,6 +26,7 @@ Welcome to the Yocto Project Documentation
26 :caption: Manuals 26 :caption: Manuals
27 27
28 Overview and Concepts Manual <overview-manual/index> 28 Overview and Concepts Manual <overview-manual/index>
29 Contributor Guide <contributor-guide/index>
29 Reference Manual <ref-manual/index> 30 Reference Manual <ref-manual/index>
30 Board Support Package (BSP) Developer's guide <bsp-guide/index> 31 Board Support Package (BSP) Developer's guide <bsp-guide/index>
31 Development Tasks Manual <dev-manual/index> 32 Development Tasks Manual <dev-manual/index>
diff --git a/documentation/overview-manual/development-environment.rst b/documentation/overview-manual/development-environment.rst
index 19095fc116..5b182e70e3 100644
--- a/documentation/overview-manual/development-environment.rst
+++ b/documentation/overview-manual/development-environment.rst
@@ -244,8 +244,8 @@ and so forth.
244 244
245 For information on finding out who is responsible for (maintains) a 245 For information on finding out who is responsible for (maintains) a
246 particular area of code in the Yocto Project, see the 246 particular area of code in the Yocto Project, see the
247 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 247 ":doc:`../contributor-guide/identify-component`"
248 section of the Yocto Project Development Tasks Manual. 248 section of the Yocto Project and OpenEmbedded Contributor Guide.
249 249
250The Yocto Project ``poky`` Git repository also has an upstream 250The Yocto Project ``poky`` Git repository also has an upstream
251contribution Git repository named ``poky-contrib``. You can see all the 251contribution Git repository named ``poky-contrib``. You can see all the
@@ -276,8 +276,8 @@ push them into the "contrib" area and subsequently request that the
276maintainer include them into an upstream branch. This process is called 276maintainer include them into an upstream branch. This process is called
277"submitting a patch" or "submitting a change." For information on 277"submitting a patch" or "submitting a change." For information on
278submitting patches and changes, see the 278submitting patches and changes, see the
279":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 279":doc:`../contributor-guide/submit-changes`" section in the Yocto Project
280section in the Yocto Project Development Tasks Manual. 280and OpenEmbedded Contributor Guide.
281 281
282In summary, there is a single point of entry for changes into the 282In summary, there is a single point of entry for changes into the
283development branch of the Git repository, which is controlled by the 283development branch of the Git repository, which is controlled by the
@@ -340,11 +340,10 @@ Book <https://book.git-scm.com>`__.
340 software on which to develop. The Yocto Project has two scripts named 340 software on which to develop. The Yocto Project has two scripts named
341 ``create-pull-request`` and ``send-pull-request`` that ship with the 341 ``create-pull-request`` and ``send-pull-request`` that ship with the
342 release to facilitate this workflow. You can find these scripts in 342 release to facilitate this workflow. You can find these scripts in
343 the ``scripts`` folder of the 343 the ``scripts`` folder of the :term:`Source Directory`. For information
344 :term:`Source Directory`. For information
345 on how to use these scripts, see the 344 on how to use these scripts, see the
346 ":ref:`dev-manual/common-tasks:using scripts to push a change upstream and request a pull`" 345 ":ref:`contributor-guide/submit-changes:using scripts to push a change upstream and request a pull`"
347 section in the Yocto Project Development Tasks Manual. 346 section in the Yocto Project and OpenEmbedded Contributor Guide.
348 347
349- *Patch Workflow:* This workflow allows you to notify the maintainer 348- *Patch Workflow:* This workflow allows you to notify the maintainer
350 through an email that you have a change (or patch) you would like 349 through an email that you have a change (or patch) you would like
@@ -352,8 +351,8 @@ Book <https://book.git-scm.com>`__.
352 this type of change, you format the patch and then send the email 351 this type of change, you format the patch and then send the email
353 using the Git commands ``git format-patch`` and ``git send-email``. 352 using the Git commands ``git format-patch`` and ``git send-email``.
354 For information on how to use these scripts, see the 353 For information on how to use these scripts, see the
355 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 354 ":doc:`../contributor-guide/submit-changes`" section in the Yocto Project
356 section in the Yocto Project Development Tasks Manual. 355 and OpenEmbedded Contributor Guide.
357 356
358Git 357Git
359=== 358===
diff --git a/documentation/ref-manual/resources.rst b/documentation/ref-manual/resources.rst
index c942384662..a175a1db8e 100644
--- a/documentation/ref-manual/resources.rst
+++ b/documentation/ref-manual/resources.rst
@@ -23,8 +23,7 @@ The Yocto Project gladly accepts contributions. You can submit changes
23to the project either by creating and sending pull requests, or by 23to the project either by creating and sending pull requests, or by
24submitting patches through email. For information on how to do both as 24submitting patches through email. For information on how to do both as
25well as information on how to identify the maintainer for each area of 25well as information on how to identify the maintainer for each area of
26code, see the ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" section in the 26code, see the :doc:`../contributor-guide/index`.
27Yocto Project Development Tasks Manual.
28 27
29.. _resources-bugtracker: 28.. _resources-bugtracker:
30 29
@@ -46,8 +45,8 @@ your expectations).
46For a general procedure and guidelines on how to use Bugzilla to submit a bug 45For a general procedure and guidelines on how to use Bugzilla to submit a bug
47against the Yocto Project, see the following: 46against the Yocto Project, see the following:
48 47
49- The ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`" 48- The ":doc:`../contributor-guide/report-defect`"
50 section in the Yocto Project Development Tasks Manual. 49 section in the Yocto Project and OpenEmbedded Contributor Guide.
51 50
52- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 51- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
53 52
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 83e9ea0f43..2527b5bdb6 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -115,9 +115,8 @@ tested on former revisions of "&DISTRO_NAME;", but no longer are:
115 interested in hearing about your experience. For information on 115 interested in hearing about your experience. For information on
116 how to submit a bug, see the Yocto Project 116 how to submit a bug, see the Yocto Project
117 :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 117 :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
118 and the ":ref:`dev-manual/common-tasks:submitting a defect against the yocto project`" 118 and the ":doc:`../contributor-guide/report-defect`"
119 section in the Yocto Project Development Tasks Manual. 119 section in the Yocto Project and OpenEmbedded Contributor Guide.
120
121 120
122Required Packages for the Build Host 121Required Packages for the Build Host
123==================================== 122====================================