diff options
Diffstat (limited to 'documentation')
| -rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 627 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual-newbie.xml | 627 | ||||
| -rw-r--r-- | documentation/dev-manual/dev-manual.xml | 2 | ||||
| -rw-r--r-- | documentation/mega-manual/mega-manual.xml | 2 |
4 files changed, 627 insertions, 631 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 9e8dd5fa92..fe1bfba6cf 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
| @@ -13783,6 +13783,633 @@ | |||
| 13783 | </section> | 13783 | </section> |
| 13784 | </section> | 13784 | </section> |
| 13785 | 13785 | ||
| 13786 | <section id='making-changes-to-the-yocto-project'> | ||
| 13787 | <title>Making Changes to the Yocto Project</title> | ||
| 13788 | |||
| 13789 | <para> | ||
| 13790 | Because the Yocto Project is an open-source, community-based | ||
| 13791 | project, you can effect changes to the project. | ||
| 13792 | This section presents procedures that show you how to submit | ||
| 13793 | a defect against the project and how to submit a change. | ||
| 13794 | </para> | ||
| 13795 | |||
| 13796 | <section id='submitting-a-defect-against-the-yocto-project'> | ||
| 13797 | <title>Submitting a Defect Against the Yocto Project</title> | ||
| 13798 | |||
| 13799 | <para> | ||
| 13800 | Use the Yocto Project implementation of | ||
| 13801 | <ulink url='http://www.bugzilla.org/about/'>Bugzilla</ulink> | ||
| 13802 | to submit a defect (bug) against the Yocto Project. | ||
| 13803 | For additional information on this implementation of Bugzilla see the | ||
| 13804 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-bugtracker'>Yocto Project Bugzilla</ulink>" | ||
| 13805 | section in the Yocto Project Reference Manual. | ||
| 13806 | For more detail on any of the following steps, see the Yocto Project | ||
| 13807 | <ulink url='&YOCTO_WIKI_URL;/wiki/Bugzilla_Configuration_and_Bug_Tracking'>Bugzilla wiki page</ulink>. | ||
| 13808 | </para> | ||
| 13809 | |||
| 13810 | <para> | ||
| 13811 | Use the following general steps to submit a bug" | ||
| 13812 | |||
| 13813 | <orderedlist> | ||
| 13814 | <listitem><para> | ||
| 13815 | Open the Yocto Project implementation of | ||
| 13816 | <ulink url='&YOCTO_BUGZILLA_URL;'>Bugzilla</ulink>. | ||
| 13817 | </para></listitem> | ||
| 13818 | <listitem><para> | ||
| 13819 | Click "File a Bug" to enter a new bug. | ||
| 13820 | </para></listitem> | ||
| 13821 | <listitem><para> | ||
| 13822 | Choose the appropriate "Classification", "Product", and | ||
| 13823 | "Component" for which the bug was found. | ||
| 13824 | Bugs for the Yocto Project fall into one of several | ||
| 13825 | classifications, which in turn break down into several | ||
| 13826 | products and components. | ||
| 13827 | For example, for a bug against the | ||
| 13828 | <filename>meta-intel</filename> layer, you would choose | ||
| 13829 | "Build System, Metadata & Runtime", "BSPs", and | ||
| 13830 | "bsps-meta-intel", respectively. | ||
| 13831 | </para></listitem> | ||
| 13832 | <listitem><para> | ||
| 13833 | Choose the "Version" of the Yocto Project for which you found | ||
| 13834 | the bug (e.g. &DISTRO;). | ||
| 13835 | </para></listitem> | ||
| 13836 | <listitem><para> | ||
| 13837 | Determine and select the "Severity" of the bug. | ||
| 13838 | The severity indicates how the bug impacted your work. | ||
| 13839 | </para></listitem> | ||
| 13840 | <listitem><para> | ||
| 13841 | Choose the "Hardware" that the bug impacts. | ||
| 13842 | </para></listitem> | ||
| 13843 | <listitem><para> | ||
| 13844 | Choose the "Architecture" that the bug impacts. | ||
| 13845 | </para></listitem> | ||
| 13846 | <listitem><para> | ||
| 13847 | Choose a "Documentation change" item for the bug. | ||
| 13848 | Fixing a bug might or might not affect the Yocto Project | ||
| 13849 | documentation. | ||
| 13850 | If you are unsure of the impact to the documentation, select | ||
| 13851 | "Don't Know". | ||
| 13852 | </para></listitem> | ||
| 13853 | <listitem><para> | ||
| 13854 | Provide a brief "Summary" of the bug. | ||
| 13855 | Try to limit your summary to just a line or two and be sure | ||
| 13856 | to capture the essence of the bug. | ||
| 13857 | </para></listitem> | ||
| 13858 | <listitem><para> | ||
| 13859 | Provide a detailed "Description" of the bug. | ||
| 13860 | You should provide as much detail as you can about the context, | ||
| 13861 | behavior, output, and so forth that surrounds the bug. | ||
| 13862 | You can even attach supporting files for output from logs by | ||
| 13863 | using the "Add an attachment" button. | ||
| 13864 | </para></listitem> | ||
| 13865 | <listitem><para> | ||
| 13866 | Click the "Submit Bug" button submit the bug. | ||
| 13867 | A new Bugzilla number is assigned to the bug and the defect | ||
| 13868 | is logged in the bug tracking system. | ||
| 13869 | </para></listitem> | ||
| 13870 | </orderedlist> | ||
| 13871 | Once you file a bug, the bug is processed by the Yocto Project Bug | ||
| 13872 | Triage Team and further details concerning the bug are assigned | ||
| 13873 | (e.g. priority and owner). | ||
| 13874 | You are the "Submitter" of the bug and any further categorization, | ||
| 13875 | progress, or comments on the bug result in Bugzilla sending you an | ||
| 13876 | automated email concerning the particular change or progress to the | ||
| 13877 | bug. | ||
| 13878 | </para> | ||
| 13879 | </section> | ||
| 13880 | |||
| 13881 | <section id='how-to-submit-a-change'> | ||
| 13882 | <title>Submitting a Change to the Yocto Project</title> | ||
| 13883 | |||
| 13884 | <para> | ||
| 13885 | Contributions to the Yocto Project and OpenEmbedded are very welcome. | ||
| 13886 | Because the system is extremely configurable and flexible, we recognize | ||
| 13887 | that developers will want to extend, configure or optimize it for | ||
| 13888 | their specific uses. | ||
| 13889 | </para> | ||
| 13890 | |||
| 13891 | <para> | ||
| 13892 | The Yocto Project uses a mailing list and a patch-based workflow | ||
| 13893 | that is similar to the Linux kernel but contains important | ||
| 13894 | differences. | ||
| 13895 | In general, a mailing list exists through which you can submit | ||
| 13896 | patches. | ||
| 13897 | You should send patches to the appropriate mailing list so that they | ||
| 13898 | can be reviewed and merged by the appropriate maintainer. | ||
| 13899 | The specific mailing list you need to use depends on the | ||
| 13900 | location of the code you are changing. | ||
| 13901 | Each component (e.g. layer) should have a | ||
| 13902 | <filename>README</filename> file that indicates where to send | ||
| 13903 | the changes and which process to follow. | ||
| 13904 | </para> | ||
| 13905 | |||
| 13906 | <para> | ||
| 13907 | You can send the patch to the mailing list using whichever approach | ||
| 13908 | you feel comfortable with to generate the patch. | ||
| 13909 | Once sent, the patch is usually reviewed by the community at large. | ||
| 13910 | If somebody has concerns with the patch, they will usually voice | ||
| 13911 | their concern over the mailing list. | ||
| 13912 | If a patch does not receive any negative reviews, the maintainer of | ||
| 13913 | the affected layer typically takes the patch, tests it, and then | ||
| 13914 | based on successful testing, merges the patch. | ||
| 13915 | </para> | ||
| 13916 | |||
| 13917 | <para id='figuring-out-the-mailing-list-to-use'> | ||
| 13918 | The "poky" repository, which is the Yocto Project's reference build | ||
| 13919 | environment, is a hybrid repository that contains several | ||
| 13920 | individual pieces (e.g. BitBake, Metadata, documentation, | ||
| 13921 | and so forth) built using the combo-layer tool. | ||
| 13922 | The upstream location used for submitting changes varies by | ||
| 13923 | component: | ||
| 13924 | <itemizedlist> | ||
| 13925 | <listitem><para> | ||
| 13926 | <emphasis>Core Metadata:</emphasis> | ||
| 13927 | Send your patch to the | ||
| 13928 | <ulink url='http://lists.openembedded.org/mailman/listinfo/openembedded-core'>openembedded-core</ulink> | ||
| 13929 | mailing list. For example, a change to anything under | ||
| 13930 | the <filename>meta</filename> or | ||
| 13931 | <filename>scripts</filename> directories should be sent | ||
| 13932 | to this mailing list. | ||
| 13933 | </para></listitem> | ||
| 13934 | <listitem><para> | ||
| 13935 | <emphasis>BitBake:</emphasis> | ||
| 13936 | For changes to BitBake (i.e. anything under the | ||
| 13937 | <filename>bitbake</filename> directory), send your patch | ||
| 13938 | to the | ||
| 13939 | <ulink url='http://lists.openembedded.org/mailman/listinfo/bitbake-devel'>bitbake-devel</ulink> | ||
| 13940 | mailing list. | ||
| 13941 | </para></listitem> | ||
| 13942 | <listitem><para> | ||
| 13943 | <emphasis>"meta-*" trees:</emphasis> | ||
| 13944 | These trees contain Metadata. | ||
| 13945 | Use the | ||
| 13946 | <ulink url='https://lists.yoctoproject.org/listinfo/poky'>poky</ulink> | ||
| 13947 | mailing list. | ||
| 13948 | </para></listitem> | ||
| 13949 | </itemizedlist> | ||
| 13950 | </para> | ||
| 13951 | |||
| 13952 | <para> | ||
| 13953 | For changes to other layers hosted in the Yocto Project source | ||
| 13954 | repositories (i.e. <filename>yoctoproject.org</filename>), tools, | ||
| 13955 | and the Yocto Project documentation, use the | ||
| 13956 | <ulink url='https://lists.yoctoproject.org/listinfo/yocto'>Yocto Project</ulink> | ||
| 13957 | general mailing list. | ||
| 13958 | <note> | ||
| 13959 | Sometimes a layer's documentation specifies to use a | ||
| 13960 | particular mailing list. | ||
| 13961 | If so, use that list. | ||
| 13962 | </note> | ||
| 13963 | For additional recipes that do not fit into the core Metadata, you | ||
| 13964 | should determine which layer the recipe should go into and submit | ||
| 13965 | the change in the manner recommended by the documentation (e.g. | ||
| 13966 | the <filename>README</filename> file) supplied with the layer. | ||
| 13967 | If in doubt, please ask on the Yocto general mailing list or on | ||
| 13968 | the openembedded-devel mailing list. | ||
| 13969 | </para> | ||
| 13970 | |||
| 13971 | <para> | ||
| 13972 | You can also push a change upstream and request a maintainer to | ||
| 13973 | pull the change into the component's upstream repository. | ||
| 13974 | You do this by pushing to a contribution repository that is upstream. | ||
| 13975 | See the | ||
| 13976 | "<ulink url='&YOCTO_DOCS_OM_URL;#gs-git-workflows-and-the-yocto-project'>Git Workflows and the Yocto Project</ulink>" | ||
| 13977 | section in the Yocto Project Overview and Concepts Manual for additional | ||
| 13978 | concepts on working in the Yocto Project development environment. | ||
| 13979 | </para> | ||
| 13980 | |||
| 13981 | <para> | ||
| 13982 | Two commonly used testing repositories exist for | ||
| 13983 | OpenEmbedded-Core: | ||
| 13984 | <itemizedlist> | ||
| 13985 | <listitem><para> | ||
| 13986 | <emphasis>"ross/mut" branch:</emphasis> | ||
| 13987 | The "mut" (master-under-test) tree | ||
| 13988 | exists in the <filename>poky-contrib</filename> repository | ||
| 13989 | in the | ||
| 13990 | <ulink url='&YOCTO_GIT_URL;'>Yocto Project source repositories</ulink>. | ||
| 13991 | </para></listitem> | ||
| 13992 | <listitem><para> | ||
| 13993 | <emphasis>"master-next" branch:</emphasis> | ||
| 13994 | This branch is part of the main | ||
| 13995 | "poky" repository in the Yocto Project source repositories. | ||
| 13996 | </para></listitem> | ||
| 13997 | </itemizedlist> | ||
| 13998 | Maintainers use these branches to test submissions prior to merging | ||
| 13999 | patches. | ||
| 14000 | Thus, you can get an idea of the status of a patch based on | ||
| 14001 | whether the patch has been merged into one of these branches. | ||
| 14002 | <note> | ||
| 14003 | This system is imperfect and changes can sometimes get lost in the | ||
| 14004 | flow. | ||
| 14005 | Asking about the status of a patch or change is reasonable if the | ||
| 14006 | change has been idle for a while with no feedback. | ||
| 14007 | The Yocto Project does have plans to use | ||
| 14008 | <ulink url='https://en.wikipedia.org/wiki/Patchwork_(software)'>Patchwork</ulink> | ||
| 14009 | to track the status of patches and also to automatically preview | ||
| 14010 | patches. | ||
| 14011 | </note> | ||
| 14012 | </para> | ||
| 14013 | |||
| 14014 | <para> | ||
| 14015 | The following sections provide procedures for submitting a change. | ||
| 14016 | </para> | ||
| 14017 | |||
| 14018 | <section id='pushing-a-change-upstream'> | ||
| 14019 | <title>Using Scripts to Push a Change Upstream and Request a Pull</title> | ||
| 14020 | |||
| 14021 | <para> | ||
| 14022 | Follow this procedure to push a change to an upstream "contrib" | ||
| 14023 | Git repository: | ||
| 14024 | <note> | ||
| 14025 | You can find general Git information on how to push a change | ||
| 14026 | upstream in the | ||
| 14027 | <ulink url='http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows'>Git Community Book</ulink>. | ||
| 14028 | </note> | ||
| 14029 | <orderedlist> | ||
| 14030 | <listitem><para> | ||
| 14031 | <emphasis>Make Your Changes Locally:</emphasis> | ||
| 14032 | Make your changes in your local Git repository. | ||
| 14033 | You should make small, controlled, isolated changes. | ||
| 14034 | Keeping changes small and isolated aids review, | ||
| 14035 | makes merging/rebasing easier and keeps the change | ||
| 14036 | history clean should anyone need to refer to it in | ||
| 14037 | future. | ||
| 14038 | </para></listitem> | ||
| 14039 | <listitem><para> | ||
| 14040 | <emphasis>Stage Your Changes:</emphasis> | ||
| 14041 | Stage your changes by using the <filename>git add</filename> | ||
| 14042 | command on each file you changed. | ||
| 14043 | </para></listitem> | ||
| 14044 | <listitem><para id='making-sure-you-have-correct-commit-information'> | ||
| 14045 | <emphasis>Commit Your Changes:</emphasis> | ||
| 14046 | Commit the change by using the | ||
| 14047 | <filename>git commit</filename> command. | ||
| 14048 | Make sure your commit information follows standards by | ||
| 14049 | following these accepted conventions: | ||
| 14050 | <itemizedlist> | ||
| 14051 | <listitem><para> | ||
| 14052 | Be sure to include a "Signed-off-by:" line in the | ||
| 14053 | same style as required by the Linux kernel. | ||
| 14054 | Adding this line signifies that you, the submitter, | ||
| 14055 | have agreed to the Developer's Certificate of | ||
| 14056 | Origin 1.1 as follows: | ||
| 14057 | <literallayout class='monospaced'> | ||
| 14058 | Developer's Certificate of Origin 1.1 | ||
| 14059 | |||
| 14060 | By making a contribution to this project, I certify that: | ||
| 14061 | |||
| 14062 | (a) The contribution was created in whole or in part by me and I | ||
| 14063 | have the right to submit it under the open source license | ||
| 14064 | indicated in the file; or | ||
| 14065 | |||
| 14066 | (b) The contribution is based upon previous work that, to the best | ||
| 14067 | of my knowledge, is covered under an appropriate open source | ||
| 14068 | license and I have the right under that license to submit that | ||
| 14069 | work with modifications, whether created in whole or in part | ||
| 14070 | by me, under the same open source license (unless I am | ||
| 14071 | permitted to submit under a different license), as indicated | ||
| 14072 | in the file; or | ||
| 14073 | |||
| 14074 | (c) The contribution was provided directly to me by some other | ||
| 14075 | person who certified (a), (b) or (c) and I have not modified | ||
| 14076 | it. | ||
| 14077 | |||
| 14078 | (d) I understand and agree that this project and the contribution | ||
| 14079 | are public and that a record of the contribution (including all | ||
| 14080 | personal information I submit with it, including my sign-off) is | ||
| 14081 | maintained indefinitely and may be redistributed consistent with | ||
| 14082 | this project or the open source license(s) involved. | ||
| 14083 | </literallayout> | ||
| 14084 | </para></listitem> | ||
| 14085 | <listitem><para> | ||
| 14086 | Provide a single-line summary of the change. | ||
| 14087 | and, | ||
| 14088 | if more explanation is needed, provide more | ||
| 14089 | detail in the body of the commit. | ||
| 14090 | This summary is typically viewable in the | ||
| 14091 | "shortlist" of changes. | ||
| 14092 | Thus, providing something short and descriptive | ||
| 14093 | that gives the reader a summary of the change is | ||
| 14094 | useful when viewing a list of many commits. | ||
| 14095 | You should prefix this short description with the | ||
| 14096 | recipe name (if changing a recipe), or else with | ||
| 14097 | the short form path to the file being changed. | ||
| 14098 | </para></listitem> | ||
| 14099 | <listitem><para> | ||
| 14100 | For the body of the commit message, provide | ||
| 14101 | detailed information that describes what you | ||
| 14102 | changed, why you made the change, and the approach | ||
| 14103 | you used. | ||
| 14104 | It might also be helpful if you mention how you | ||
| 14105 | tested the change. | ||
| 14106 | Provide as much detail as you can in the body of | ||
| 14107 | the commit message. | ||
| 14108 | <note> | ||
| 14109 | You do not need to provide a more detailed | ||
| 14110 | explanation of a change if the change is | ||
| 14111 | minor to the point of the single line | ||
| 14112 | summary providing all the information. | ||
| 14113 | </note> | ||
| 14114 | </para></listitem> | ||
| 14115 | <listitem><para> | ||
| 14116 | If the change addresses a specific bug or issue | ||
| 14117 | that is associated with a bug-tracking ID, | ||
| 14118 | include a reference to that ID in your detailed | ||
| 14119 | description. | ||
| 14120 | For example, the Yocto Project uses a specific | ||
| 14121 | convention for bug references - any commit that | ||
| 14122 | addresses a specific bug should use the following | ||
| 14123 | form for the detailed description. | ||
| 14124 | Be sure to use the actual bug-tracking ID from | ||
| 14125 | Bugzilla for | ||
| 14126 | <replaceable>bug-id</replaceable>: | ||
| 14127 | <literallayout class='monospaced'> | ||
| 14128 | Fixes [YOCTO #<replaceable>bug-id</replaceable>] | ||
| 14129 | |||
| 14130 | <replaceable>detailed description of change</replaceable> | ||
| 14131 | </literallayout> | ||
| 14132 | </para></listitem> | ||
| 14133 | </itemizedlist> | ||
| 14134 | </para></listitem> | ||
| 14135 | <listitem><para> | ||
| 14136 | <emphasis>Push Your Commits to a "Contrib" Upstream:</emphasis> | ||
| 14137 | If you have arranged for permissions to push to an | ||
| 14138 | upstream contrib repository, push the change to that | ||
| 14139 | repository: | ||
| 14140 | <literallayout class='monospaced'> | ||
| 14141 | $ git push <replaceable>upstream_remote_repo</replaceable> <replaceable>local_branch_name</replaceable> | ||
| 14142 | </literallayout> | ||
| 14143 | For example, suppose you have permissions to push into the | ||
| 14144 | upstream <filename>meta-intel-contrib</filename> | ||
| 14145 | repository and you are working in a local branch named | ||
| 14146 | <replaceable>your_name</replaceable><filename>/README</filename>. | ||
| 14147 | The following command pushes your local commits to the | ||
| 14148 | <filename>meta-intel-contrib</filename> upstream | ||
| 14149 | repository and puts the commit in a branch named | ||
| 14150 | <replaceable>your_name</replaceable><filename>/README</filename>: | ||
| 14151 | <literallayout class='monospaced'> | ||
| 14152 | $ git push meta-intel-contrib <replaceable>your_name</replaceable>/README | ||
| 14153 | </literallayout> | ||
| 14154 | </para></listitem> | ||
| 14155 | <listitem><para id='push-determine-who-to-notify'> | ||
| 14156 | <emphasis>Determine Who to Notify:</emphasis> | ||
| 14157 | Determine the maintainer or the mailing list | ||
| 14158 | that you need to notify for the change.</para> | ||
| 14159 | |||
| 14160 | <para>Before submitting any change, you need to be sure | ||
| 14161 | who the maintainer is or what mailing list that you need | ||
| 14162 | to notify. | ||
| 14163 | Use either these methods to find out: | ||
| 14164 | <itemizedlist> | ||
| 14165 | <listitem><para> | ||
| 14166 | <emphasis>Maintenance File:</emphasis> | ||
| 14167 | Examine the <filename>maintainers.inc</filename> | ||
| 14168 | file, which is located in the | ||
| 14169 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
| 14170 | at | ||
| 14171 | <filename>meta/conf/distro/include</filename>, | ||
| 14172 | to see who is responsible for code. | ||
| 14173 | </para></listitem> | ||
| 14174 | <listitem><para> | ||
| 14175 | <emphasis>Search by File:</emphasis> | ||
| 14176 | Using <ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink>, | ||
| 14177 | you can enter the following command to bring up a | ||
| 14178 | short list of all commits against a specific file: | ||
| 14179 | <literallayout class='monospaced'> | ||
| 14180 | git shortlog -- <replaceable>filename</replaceable> | ||
| 14181 | </literallayout> | ||
| 14182 | Just provide the name of the file for which you | ||
| 14183 | are interested. | ||
| 14184 | The information returned is not ordered by history | ||
| 14185 | but does include a list of everyone who has | ||
| 14186 | committed grouped by name. | ||
| 14187 | From the list, you can see who is responsible for | ||
| 14188 | the bulk of the changes against the file. | ||
| 14189 | </para></listitem> | ||
| 14190 | <listitem><para> | ||
| 14191 | <emphasis>Examine the List of Mailing Lists:</emphasis> | ||
| 14192 | For a list of the Yocto Project and related mailing | ||
| 14193 | lists, see the | ||
| 14194 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing lists</ulink>" | ||
| 14195 | section in the Yocto Project Reference Manual. | ||
| 14196 | </para></listitem> | ||
| 14197 | </itemizedlist> | ||
| 14198 | </para></listitem> | ||
| 14199 | <listitem><para> | ||
| 14200 | <emphasis>Make a Pull Request:</emphasis> | ||
| 14201 | Notify the maintainer or the mailing list that you have | ||
| 14202 | pushed a change by making a pull request.</para> | ||
| 14203 | |||
| 14204 | <para>The Yocto Project provides two scripts that | ||
| 14205 | conveniently let you generate and send pull requests to the | ||
| 14206 | Yocto Project. | ||
| 14207 | These scripts are <filename>create-pull-request</filename> | ||
| 14208 | and <filename>send-pull-request</filename>. | ||
| 14209 | You can find these scripts in the | ||
| 14210 | <filename>scripts</filename> directory within the | ||
| 14211 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
| 14212 | (e.g. <filename>~/poky/scripts</filename>). | ||
| 14213 | </para> | ||
| 14214 | |||
| 14215 | <para>Using these scripts correctly formats the requests | ||
| 14216 | without introducing any whitespace or HTML formatting. | ||
| 14217 | The maintainer that receives your patches either directly | ||
| 14218 | or through the mailing list needs to be able to save and | ||
| 14219 | apply them directly from your emails. | ||
| 14220 | Using these scripts is the preferred method for sending | ||
| 14221 | patches.</para> | ||
| 14222 | |||
| 14223 | <para>First, create the pull request. | ||
| 14224 | For example, the following command runs the script, | ||
| 14225 | specifies the upstream repository in the contrib directory | ||
| 14226 | into which you pushed the change, and provides a subject | ||
| 14227 | line in the created patch files: | ||
| 14228 | <literallayout class='monospaced'> | ||
| 14229 | $ ~/poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README" | ||
| 14230 | </literallayout> | ||
| 14231 | Running this script forms | ||
| 14232 | <filename>*.patch</filename> files in a folder named | ||
| 14233 | <filename>pull-</filename><replaceable>PID</replaceable> | ||
| 14234 | in the current directory. | ||
| 14235 | One of the patch files is a cover letter.</para> | ||
| 14236 | |||
| 14237 | <para>Before running the | ||
| 14238 | <filename>send-pull-request</filename> script, you must | ||
| 14239 | edit the cover letter patch to insert information about | ||
| 14240 | your change. | ||
| 14241 | After editing the cover letter, send the pull request. | ||
| 14242 | For example, the following command runs the script and | ||
| 14243 | specifies the patch directory and email address. | ||
| 14244 | In this example, the email address is a mailing list: | ||
| 14245 | <literallayout class='monospaced'> | ||
| 14246 | $ ~/poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@yoctoproject.org | ||
| 14247 | </literallayout> | ||
| 14248 | You need to follow the prompts as the script is | ||
| 14249 | interactive. | ||
| 14250 | <note> | ||
| 14251 | For help on using these scripts, simply provide the | ||
| 14252 | <filename>-h</filename> argument as follows: | ||
| 14253 | <literallayout class='monospaced'> | ||
| 14254 | $ poky/scripts/create-pull-request -h | ||
| 14255 | $ poky/scripts/send-pull-request -h | ||
| 14256 | </literallayout> | ||
| 14257 | </note> | ||
| 14258 | </para></listitem> | ||
| 14259 | </orderedlist> | ||
| 14260 | </para> | ||
| 14261 | </section> | ||
| 14262 | |||
| 14263 | <section id='submitting-a-patch'> | ||
| 14264 | <title>Using Email to Submit a Patch</title> | ||
| 14265 | |||
| 14266 | <para> | ||
| 14267 | You can submit patches without using the | ||
| 14268 | <filename>create-pull-request</filename> and | ||
| 14269 | <filename>send-pull-request</filename> scripts described in the | ||
| 14270 | previous section. | ||
| 14271 | However, keep in mind, the preferred method is to use the scripts. | ||
| 14272 | </para> | ||
| 14273 | |||
| 14274 | <para> | ||
| 14275 | Depending on the components changed, you need to submit the email | ||
| 14276 | to a specific mailing list. | ||
| 14277 | For some guidance on which mailing list to use, see the | ||
| 14278 | <link linkend='figuring-out-the-mailing-list-to-use'>list</link> | ||
| 14279 | at the beginning of this section. | ||
| 14280 | For a description of all the available mailing lists, see the | ||
| 14281 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing Lists</ulink>" | ||
| 14282 | section in the Yocto Project Reference Manual. | ||
| 14283 | </para> | ||
| 14284 | |||
| 14285 | <para> | ||
| 14286 | Here is the general procedure on how to submit a patch through | ||
| 14287 | email without using the scripts: | ||
| 14288 | <orderedlist> | ||
| 14289 | <listitem><para> | ||
| 14290 | <emphasis>Make Your Changes Locally:</emphasis> | ||
| 14291 | Make your changes in your local Git repository. | ||
| 14292 | You should make small, controlled, isolated changes. | ||
| 14293 | Keeping changes small and isolated aids review, | ||
| 14294 | makes merging/rebasing easier and keeps the change | ||
| 14295 | history clean should anyone need to refer to it in | ||
| 14296 | future. | ||
| 14297 | </para></listitem> | ||
| 14298 | <listitem><para> | ||
| 14299 | <emphasis>Stage Your Changes:</emphasis> | ||
| 14300 | Stage your changes by using the <filename>git add</filename> | ||
| 14301 | command on each file you changed. | ||
| 14302 | </para></listitem> | ||
| 14303 | <listitem><para> | ||
| 14304 | <emphasis>Commit Your Changes:</emphasis> | ||
| 14305 | Commit the change by using the | ||
| 14306 | <filename>git commit --signoff</filename> command. | ||
| 14307 | Using the <filename>--signoff</filename> option identifies | ||
| 14308 | you as the person making the change and also satisfies | ||
| 14309 | the Developer's Certificate of Origin (DCO) shown earlier. | ||
| 14310 | </para> | ||
| 14311 | |||
| 14312 | <para>When you form a commit, you must follow certain | ||
| 14313 | standards established by the Yocto Project development | ||
| 14314 | team. | ||
| 14315 | See | ||
| 14316 | <link linkend='making-sure-you-have-correct-commit-information'>Step 3</link> | ||
| 14317 | in the previous section for information on how to | ||
| 14318 | provide commit information that meets Yocto Project | ||
| 14319 | commit message standards. | ||
| 14320 | </para></listitem> | ||
| 14321 | <listitem><para> | ||
| 14322 | <emphasis>Format the Commit:</emphasis> | ||
| 14323 | Format the commit into an email message. | ||
| 14324 | To format commits, use the | ||
| 14325 | <filename>git format-patch</filename> command. | ||
| 14326 | When you provide the command, you must include a revision | ||
| 14327 | list or a number of patches as part of the command. | ||
| 14328 | For example, either of these two commands takes your most | ||
| 14329 | recent single commit and formats it as an email message in | ||
| 14330 | the current directory: | ||
| 14331 | <literallayout class='monospaced'> | ||
| 14332 | $ git format-patch -1 | ||
| 14333 | </literallayout> | ||
| 14334 | or | ||
| 14335 | <literallayout class='monospaced'> | ||
| 14336 | $ git format-patch HEAD~ | ||
| 14337 | </literallayout></para> | ||
| 14338 | |||
| 14339 | <para>After the command is run, the current directory | ||
| 14340 | contains a numbered <filename>.patch</filename> file for | ||
| 14341 | the commit.</para> | ||
| 14342 | |||
| 14343 | <para>If you provide several commits as part of the | ||
| 14344 | command, the <filename>git format-patch</filename> command | ||
| 14345 | produces a series of numbered files in the current | ||
| 14346 | directory – one for each commit. | ||
| 14347 | If you have more than one patch, you should also use the | ||
| 14348 | <filename>--cover</filename> option with the command, | ||
| 14349 | which generates a cover letter as the first "patch" in | ||
| 14350 | the series. | ||
| 14351 | You can then edit the cover letter to provide a | ||
| 14352 | description for the series of patches. | ||
| 14353 | For information on the | ||
| 14354 | <filename>git format-patch</filename> command, | ||
| 14355 | see <filename>GIT_FORMAT_PATCH(1)</filename> displayed | ||
| 14356 | using the <filename>man git-format-patch</filename> | ||
| 14357 | command. | ||
| 14358 | <note> | ||
| 14359 | If you are or will be a frequent contributor to the | ||
| 14360 | Yocto Project or to OpenEmbedded, you might consider | ||
| 14361 | requesting a contrib area and the necessary associated | ||
| 14362 | rights. | ||
| 14363 | </note> | ||
| 14364 | </para></listitem> | ||
| 14365 | <listitem><para> | ||
| 14366 | <emphasis>Import the Files Into Your Mail Client:</emphasis> | ||
| 14367 | Import the files into your mail client by using the | ||
| 14368 | <filename>git send-email</filename> command. | ||
| 14369 | <note> | ||
| 14370 | In order to use <filename>git send-email</filename>, | ||
| 14371 | you must have the proper Git packages installed on | ||
| 14372 | your host. | ||
| 14373 | For Ubuntu, Debian, and Fedora the package is | ||
| 14374 | <filename>git-email</filename>. | ||
| 14375 | </note></para> | ||
| 14376 | |||
| 14377 | <para>The <filename>git send-email</filename> command | ||
| 14378 | sends email by using a local or remote Mail Transport Agent | ||
| 14379 | (MTA) such as <filename>msmtp</filename>, | ||
| 14380 | <filename>sendmail</filename>, or through a direct | ||
| 14381 | <filename>smtp</filename> configuration in your Git | ||
| 14382 | <filename>~/.gitconfig</filename> file. | ||
| 14383 | If you are submitting patches through email only, it is | ||
| 14384 | very important that you submit them without any whitespace | ||
| 14385 | or HTML formatting that either you or your mailer | ||
| 14386 | introduces. | ||
| 14387 | The maintainer that receives your patches needs to be able | ||
| 14388 | to save and apply them directly from your emails. | ||
| 14389 | A good way to verify that what you are sending will be | ||
| 14390 | applicable by the maintainer is to do a dry run and send | ||
| 14391 | them to yourself and then save and apply them as the | ||
| 14392 | maintainer would.</para> | ||
| 14393 | |||
| 14394 | <para>The <filename>git send-email</filename> command is | ||
| 14395 | the preferred method for sending your patches using | ||
| 14396 | email since there is no risk of compromising whitespace | ||
| 14397 | in the body of the message, which can occur when you use | ||
| 14398 | your own mail client. | ||
| 14399 | The command also has several options that let you | ||
| 14400 | specify recipients and perform further editing of the | ||
| 14401 | email message. | ||
| 14402 | For information on how to use the | ||
| 14403 | <filename>git send-email</filename> command, | ||
| 14404 | see <filename>GIT-SEND-EMAIL(1)</filename> displayed using | ||
| 14405 | the <filename>man git-send-email</filename> command. | ||
| 14406 | </para></listitem> | ||
| 14407 | </orderedlist> | ||
| 14408 | </para> | ||
| 14409 | </section> | ||
| 14410 | </section> | ||
| 14411 | </section> | ||
| 14412 | |||
| 13786 | <section id='working-with-licenses'> | 14413 | <section id='working-with-licenses'> |
| 13787 | <title>Working With Licenses</title> | 14414 | <title>Working With Licenses</title> |
| 13788 | 14415 | ||
diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml deleted file mode 100644 index 27e1d04761..0000000000 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ /dev/null | |||
| @@ -1,627 +0,0 @@ | |||
| 1 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
| 2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" | ||
| 3 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | ||
| 4 | |||
| 5 | <chapter id='dev-manual-newbie'> | ||
| 6 | |||
| 7 | <title>The Yocto Project Open Source Development Environment</title> | ||
| 8 | |||
| 9 | <section id='submitting-a-defect-against-the-yocto-project'> | ||
| 10 | <title>Submitting a Defect Against the Yocto Project</title> | ||
| 11 | |||
| 12 | <para> | ||
| 13 | Use the Yocto Project implementation of | ||
| 14 | <ulink url='http://www.bugzilla.org/about/'>Bugzilla</ulink> | ||
| 15 | to submit a defect (bug) against the Yocto Project. | ||
| 16 | For additional information on this implementation of Bugzilla see the | ||
| 17 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-bugtracker'>Yocto Project Bugzilla</ulink>" | ||
| 18 | section in the Yocto Project Reference Manual. | ||
| 19 | For more detail on any of the following steps, see the Yocto Project | ||
| 20 | <ulink url='&YOCTO_WIKI_URL;/wiki/Bugzilla_Configuration_and_Bug_Tracking'>Bugzilla wiki page</ulink>. | ||
| 21 | </para> | ||
| 22 | |||
| 23 | <para> | ||
| 24 | Use the following general steps to submit a bug" | ||
| 25 | |||
| 26 | <orderedlist> | ||
| 27 | <listitem><para> | ||
| 28 | Open the Yocto Project implementation of | ||
| 29 | <ulink url='&YOCTO_BUGZILLA_URL;'>Bugzilla</ulink>. | ||
| 30 | </para></listitem> | ||
| 31 | <listitem><para> | ||
| 32 | Click "File a Bug" to enter a new bug. | ||
| 33 | </para></listitem> | ||
| 34 | <listitem><para> | ||
| 35 | Choose the appropriate "Classification", "Product", and | ||
| 36 | "Component" for which the bug was found. | ||
| 37 | Bugs for the Yocto Project fall into one of several | ||
| 38 | classifications, which in turn break down into several | ||
| 39 | products and components. | ||
| 40 | For example, for a bug against the | ||
| 41 | <filename>meta-intel</filename> layer, you would choose | ||
| 42 | "Build System, Metadata & Runtime", "BSPs", and | ||
| 43 | "bsps-meta-intel", respectively. | ||
| 44 | </para></listitem> | ||
| 45 | <listitem><para> | ||
| 46 | Choose the "Version" of the Yocto Project for which you found | ||
| 47 | the bug (e.g. &DISTRO;). | ||
| 48 | </para></listitem> | ||
| 49 | <listitem><para> | ||
| 50 | Determine and select the "Severity" of the bug. | ||
| 51 | The severity indicates how the bug impacted your work. | ||
| 52 | </para></listitem> | ||
| 53 | <listitem><para> | ||
| 54 | Choose the "Hardware" that the bug impacts. | ||
| 55 | </para></listitem> | ||
| 56 | <listitem><para> | ||
| 57 | Choose the "Architecture" that the bug impacts. | ||
| 58 | </para></listitem> | ||
| 59 | <listitem><para> | ||
| 60 | Choose a "Documentation change" item for the bug. | ||
| 61 | Fixing a bug might or might not affect the Yocto Project | ||
| 62 | documentation. | ||
| 63 | If you are unsure of the impact to the documentation, select | ||
| 64 | "Don't Know". | ||
| 65 | </para></listitem> | ||
| 66 | <listitem><para> | ||
| 67 | Provide a brief "Summary" of the bug. | ||
| 68 | Try to limit your summary to just a line or two and be sure | ||
| 69 | to capture the essence of the bug. | ||
| 70 | </para></listitem> | ||
| 71 | <listitem><para> | ||
| 72 | Provide a detailed "Description" of the bug. | ||
| 73 | You should provide as much detail as you can about the context, | ||
| 74 | behavior, output, and so forth that surrounds the bug. | ||
| 75 | You can even attach supporting files for output from logs by | ||
| 76 | using the "Add an attachment" button. | ||
| 77 | </para></listitem> | ||
| 78 | <listitem><para> | ||
| 79 | Click the "Submit Bug" button submit the bug. | ||
| 80 | A new Bugzilla number is assigned to the bug and the defect | ||
| 81 | is logged in the bug tracking system. | ||
| 82 | </para></listitem> | ||
| 83 | </orderedlist> | ||
| 84 | Once you file a bug, the bug is processed by the Yocto Project Bug | ||
| 85 | Triage Team and further details concerning the bug are assigned | ||
| 86 | (e.g. priority and owner). | ||
| 87 | You are the "Submitter" of the bug and any further categorization, | ||
| 88 | progress, or comments on the bug result in Bugzilla sending you an | ||
| 89 | automated email concerning the particular change or progress to the | ||
| 90 | bug. | ||
| 91 | </para> | ||
| 92 | </section> | ||
| 93 | |||
| 94 | <section id='how-to-submit-a-change'> | ||
| 95 | <title>Submitting a Change to the Yocto Project</title> | ||
| 96 | |||
| 97 | <para> | ||
| 98 | Contributions to the Yocto Project and OpenEmbedded are very welcome. | ||
| 99 | Because the system is extremely configurable and flexible, we recognize | ||
| 100 | that developers will want to extend, configure or optimize it for | ||
| 101 | their specific uses. | ||
| 102 | </para> | ||
| 103 | |||
| 104 | <para> | ||
| 105 | The Yocto Project uses a mailing list and a patch-based workflow | ||
| 106 | that is similar to the Linux kernel but contains important | ||
| 107 | differences. | ||
| 108 | In general, a mailing list exists through which you can submit | ||
| 109 | patches. | ||
| 110 | You should send patches to the appropriate mailing list so that they | ||
| 111 | can be reviewed and merged by the appropriate maintainer. | ||
| 112 | The specific mailing list you need to use depends on the | ||
| 113 | location of the code you are changing. | ||
| 114 | Each component (e.g. layer) should have a | ||
| 115 | <filename>README</filename> file that indicates where to send | ||
| 116 | the changes and which process to follow. | ||
| 117 | </para> | ||
| 118 | |||
| 119 | <para> | ||
| 120 | You can send the patch to the mailing list using whichever approach | ||
| 121 | you feel comfortable with to generate the patch. | ||
| 122 | Once sent, the patch is usually reviewed by the community at large. | ||
| 123 | If somebody has concerns with the patch, they will usually voice | ||
| 124 | their concern over the mailing list. | ||
| 125 | If a patch does not receive any negative reviews, the maintainer of | ||
| 126 | the affected layer typically takes the patch, tests it, and then | ||
| 127 | based on successful testing, merges the patch. | ||
| 128 | </para> | ||
| 129 | |||
| 130 | <para id='figuring-out-the-mailing-list-to-use'> | ||
| 131 | The "poky" repository, which is the Yocto Project's reference build | ||
| 132 | environment, is a hybrid repository that contains several | ||
| 133 | individual pieces (e.g. BitBake, Metadata, documentation, | ||
| 134 | and so forth) built using the combo-layer tool. | ||
| 135 | The upstream location used for submitting changes varies by | ||
| 136 | component: | ||
| 137 | <itemizedlist> | ||
| 138 | <listitem><para> | ||
| 139 | <emphasis>Core Metadata:</emphasis> | ||
| 140 | Send your patch to the | ||
| 141 | <ulink url='http://lists.openembedded.org/mailman/listinfo/openembedded-core'>openembedded-core</ulink> | ||
| 142 | mailing list. For example, a change to anything under | ||
| 143 | the <filename>meta</filename> or | ||
| 144 | <filename>scripts</filename> directories should be sent | ||
| 145 | to this mailing list. | ||
| 146 | </para></listitem> | ||
| 147 | <listitem><para> | ||
| 148 | <emphasis>BitBake:</emphasis> | ||
| 149 | For changes to BitBake (i.e. anything under the | ||
| 150 | <filename>bitbake</filename> directory), send your patch | ||
| 151 | to the | ||
| 152 | <ulink url='http://lists.openembedded.org/mailman/listinfo/bitbake-devel'>bitbake-devel</ulink> | ||
| 153 | mailing list. | ||
| 154 | </para></listitem> | ||
| 155 | <listitem><para> | ||
| 156 | <emphasis>"meta-*" trees:</emphasis> | ||
| 157 | These trees contain Metadata. | ||
| 158 | Use the | ||
| 159 | <ulink url='https://lists.yoctoproject.org/listinfo/poky'>poky</ulink> | ||
| 160 | mailing list. | ||
| 161 | </para></listitem> | ||
| 162 | </itemizedlist> | ||
| 163 | </para> | ||
| 164 | |||
| 165 | <para> | ||
| 166 | For changes to other layers hosted in the Yocto Project source | ||
| 167 | repositories (i.e. <filename>yoctoproject.org</filename>), tools, | ||
| 168 | and the Yocto Project documentation, use the | ||
| 169 | <ulink url='https://lists.yoctoproject.org/listinfo/yocto'>Yocto Project</ulink> | ||
| 170 | general mailing list. | ||
| 171 | <note> | ||
| 172 | Sometimes a layer's documentation specifies to use a | ||
| 173 | particular mailing list. | ||
| 174 | If so, use that list. | ||
| 175 | </note> | ||
| 176 | For additional recipes that do not fit into the core Metadata, you | ||
| 177 | should determine which layer the recipe should go into and submit | ||
| 178 | the change in the manner recommended by the documentation (e.g. | ||
| 179 | the <filename>README</filename> file) supplied with the layer. | ||
| 180 | If in doubt, please ask on the Yocto general mailing list or on | ||
| 181 | the openembedded-devel mailing list. | ||
| 182 | </para> | ||
| 183 | |||
| 184 | <para> | ||
| 185 | You can also push a change upstream and request a maintainer to | ||
| 186 | pull the change into the component's upstream repository. | ||
| 187 | You do this by pushing to a contribution repository that is upstream. | ||
| 188 | See the | ||
| 189 | "<ulink url='&YOCTO_DOCS_OM_URL;#gs-git-workflows-and-the-yocto-project'>Git Workflows and the Yocto Project</ulink>" | ||
| 190 | section in the Yocto Project Overview and Concepts Manual for additional | ||
| 191 | concepts on working in the Yocto Project development environment. | ||
| 192 | </para> | ||
| 193 | |||
| 194 | <para> | ||
| 195 | Two commonly used testing repositories exist for | ||
| 196 | OpenEmbedded-Core: | ||
| 197 | <itemizedlist> | ||
| 198 | <listitem><para> | ||
| 199 | <emphasis>"ross/mut" branch:</emphasis> | ||
| 200 | The "mut" (master-under-test) tree | ||
| 201 | exists in the <filename>poky-contrib</filename> repository | ||
| 202 | in the | ||
| 203 | <ulink url='&YOCTO_GIT_URL;'>Yocto Project source repositories</ulink>. | ||
| 204 | </para></listitem> | ||
| 205 | <listitem><para> | ||
| 206 | <emphasis>"master-next" branch:</emphasis> | ||
| 207 | This branch is part of the main | ||
| 208 | "poky" repository in the Yocto Project source repositories. | ||
| 209 | </para></listitem> | ||
| 210 | </itemizedlist> | ||
| 211 | Maintainers use these branches to test submissions prior to merging | ||
| 212 | patches. | ||
| 213 | Thus, you can get an idea of the status of a patch based on | ||
| 214 | whether the patch has been merged into one of these branches. | ||
| 215 | <note> | ||
| 216 | This system is imperfect and changes can sometimes get lost in the | ||
| 217 | flow. | ||
| 218 | Asking about the status of a patch or change is reasonable if the | ||
| 219 | change has been idle for a while with no feedback. | ||
| 220 | The Yocto Project does have plans to use | ||
| 221 | <ulink url='https://en.wikipedia.org/wiki/Patchwork_(software)'>Patchwork</ulink> | ||
| 222 | to track the status of patches and also to automatically preview | ||
| 223 | patches. | ||
| 224 | </note> | ||
| 225 | </para> | ||
| 226 | |||
| 227 | <para> | ||
| 228 | The following sections provide procedures for submitting a change. | ||
| 229 | </para> | ||
| 230 | |||
| 231 | <section id='pushing-a-change-upstream'> | ||
| 232 | <title>Using Scripts to Push a Change Upstream and Request a Pull</title> | ||
| 233 | |||
| 234 | <para> | ||
| 235 | Follow this procedure to push a change to an upstream "contrib" | ||
| 236 | Git repository: | ||
| 237 | <note> | ||
| 238 | You can find general Git information on how to push a change | ||
| 239 | upstream in the | ||
| 240 | <ulink url='http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows'>Git Community Book</ulink>. | ||
| 241 | </note> | ||
| 242 | <orderedlist> | ||
| 243 | <listitem><para> | ||
| 244 | <emphasis>Make Your Changes Locally:</emphasis> | ||
| 245 | Make your changes in your local Git repository. | ||
| 246 | You should make small, controlled, isolated changes. | ||
| 247 | Keeping changes small and isolated aids review, | ||
| 248 | makes merging/rebasing easier and keeps the change | ||
| 249 | history clean should anyone need to refer to it in | ||
| 250 | future. | ||
| 251 | </para></listitem> | ||
| 252 | <listitem><para> | ||
| 253 | <emphasis>Stage Your Changes:</emphasis> | ||
| 254 | Stage your changes by using the <filename>git add</filename> | ||
| 255 | command on each file you changed. | ||
| 256 | </para></listitem> | ||
| 257 | <listitem><para id='making-sure-you-have-correct-commit-information'> | ||
| 258 | <emphasis>Commit Your Changes:</emphasis> | ||
| 259 | Commit the change by using the | ||
| 260 | <filename>git commit</filename> command. | ||
| 261 | Make sure your commit information follows standards by | ||
| 262 | following these accepted conventions: | ||
| 263 | <itemizedlist> | ||
| 264 | <listitem><para> | ||
| 265 | Be sure to include a "Signed-off-by:" line in the | ||
| 266 | same style as required by the Linux kernel. | ||
| 267 | Adding this line signifies that you, the submitter, | ||
| 268 | have agreed to the Developer's Certificate of | ||
| 269 | Origin 1.1 as follows: | ||
| 270 | <literallayout class='monospaced'> | ||
| 271 | Developer's Certificate of Origin 1.1 | ||
| 272 | |||
| 273 | By making a contribution to this project, I certify that: | ||
| 274 | |||
| 275 | (a) The contribution was created in whole or in part by me and I | ||
| 276 | have the right to submit it under the open source license | ||
| 277 | indicated in the file; or | ||
| 278 | |||
| 279 | (b) The contribution is based upon previous work that, to the best | ||
| 280 | of my knowledge, is covered under an appropriate open source | ||
| 281 | license and I have the right under that license to submit that | ||
| 282 | work with modifications, whether created in whole or in part | ||
| 283 | by me, under the same open source license (unless I am | ||
| 284 | permitted to submit under a different license), as indicated | ||
| 285 | in the file; or | ||
| 286 | |||
| 287 | (c) The contribution was provided directly to me by some other | ||
| 288 | person who certified (a), (b) or (c) and I have not modified | ||
| 289 | it. | ||
| 290 | |||
| 291 | (d) I understand and agree that this project and the contribution | ||
| 292 | are public and that a record of the contribution (including all | ||
| 293 | personal information I submit with it, including my sign-off) is | ||
| 294 | maintained indefinitely and may be redistributed consistent with | ||
| 295 | this project or the open source license(s) involved. | ||
| 296 | </literallayout> | ||
| 297 | </para></listitem> | ||
| 298 | <listitem><para> | ||
| 299 | Provide a single-line summary of the change. | ||
| 300 | and, | ||
| 301 | if more explanation is needed, provide more | ||
| 302 | detail in the body of the commit. | ||
| 303 | This summary is typically viewable in the | ||
| 304 | "shortlist" of changes. | ||
| 305 | Thus, providing something short and descriptive | ||
| 306 | that gives the reader a summary of the change is | ||
| 307 | useful when viewing a list of many commits. | ||
| 308 | You should prefix this short description with the | ||
| 309 | recipe name (if changing a recipe), or else with | ||
| 310 | the short form path to the file being changed. | ||
| 311 | </para></listitem> | ||
| 312 | <listitem><para> | ||
| 313 | For the body of the commit message, provide | ||
| 314 | detailed information that describes what you | ||
| 315 | changed, why you made the change, and the approach | ||
| 316 | you used. | ||
| 317 | It might also be helpful if you mention how you | ||
| 318 | tested the change. | ||
| 319 | Provide as much detail as you can in the body of | ||
| 320 | the commit message. | ||
| 321 | <note> | ||
| 322 | You do not need to provide a more detailed | ||
| 323 | explanation of a change if the change is | ||
| 324 | minor to the point of the single line | ||
| 325 | summary providing all the information. | ||
| 326 | </note> | ||
| 327 | </para></listitem> | ||
| 328 | <listitem><para> | ||
| 329 | If the change addresses a specific bug or issue | ||
| 330 | that is associated with a bug-tracking ID, | ||
| 331 | include a reference to that ID in your detailed | ||
| 332 | description. | ||
| 333 | For example, the Yocto Project uses a specific | ||
| 334 | convention for bug references - any commit that | ||
| 335 | addresses a specific bug should use the following | ||
| 336 | form for the detailed description. | ||
| 337 | Be sure to use the actual bug-tracking ID from | ||
| 338 | Bugzilla for | ||
| 339 | <replaceable>bug-id</replaceable>: | ||
| 340 | <literallayout class='monospaced'> | ||
| 341 | Fixes [YOCTO #<replaceable>bug-id</replaceable>] | ||
| 342 | |||
| 343 | <replaceable>detailed description of change</replaceable> | ||
| 344 | </literallayout> | ||
| 345 | </para></listitem> | ||
| 346 | </itemizedlist> | ||
| 347 | </para></listitem> | ||
| 348 | <listitem><para> | ||
| 349 | <emphasis>Push Your Commits to a "Contrib" Upstream:</emphasis> | ||
| 350 | If you have arranged for permissions to push to an | ||
| 351 | upstream contrib repository, push the change to that | ||
| 352 | repository: | ||
| 353 | <literallayout class='monospaced'> | ||
| 354 | $ git push <replaceable>upstream_remote_repo</replaceable> <replaceable>local_branch_name</replaceable> | ||
| 355 | </literallayout> | ||
| 356 | For example, suppose you have permissions to push into the | ||
| 357 | upstream <filename>meta-intel-contrib</filename> | ||
| 358 | repository and you are working in a local branch named | ||
| 359 | <replaceable>your_name</replaceable><filename>/README</filename>. | ||
| 360 | The following command pushes your local commits to the | ||
| 361 | <filename>meta-intel-contrib</filename> upstream | ||
| 362 | repository and puts the commit in a branch named | ||
| 363 | <replaceable>your_name</replaceable><filename>/README</filename>: | ||
| 364 | <literallayout class='monospaced'> | ||
| 365 | $ git push meta-intel-contrib <replaceable>your_name</replaceable>/README | ||
| 366 | </literallayout> | ||
| 367 | </para></listitem> | ||
| 368 | <listitem><para id='push-determine-who-to-notify'> | ||
| 369 | <emphasis>Determine Who to Notify:</emphasis> | ||
| 370 | Determine the maintainer or the mailing list | ||
| 371 | that you need to notify for the change.</para> | ||
| 372 | |||
| 373 | <para>Before submitting any change, you need to be sure | ||
| 374 | who the maintainer is or what mailing list that you need | ||
| 375 | to notify. | ||
| 376 | Use either these methods to find out: | ||
| 377 | <itemizedlist> | ||
| 378 | <listitem><para> | ||
| 379 | <emphasis>Maintenance File:</emphasis> | ||
| 380 | Examine the <filename>maintainers.inc</filename> | ||
| 381 | file, which is located in the | ||
| 382 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
| 383 | at | ||
| 384 | <filename>meta/conf/distro/include</filename>, | ||
| 385 | to see who is responsible for code. | ||
| 386 | </para></listitem> | ||
| 387 | <listitem><para> | ||
| 388 | <emphasis>Search by File:</emphasis> | ||
| 389 | Using <ulink url='&YOCTO_DOCS_OM_URL;#git'>Git</ulink>, | ||
| 390 | you can enter the following command to bring up a | ||
| 391 | short list of all commits against a specific file: | ||
| 392 | <literallayout class='monospaced'> | ||
| 393 | git shortlog -- <replaceable>filename</replaceable> | ||
| 394 | </literallayout> | ||
| 395 | Just provide the name of the file for which you | ||
| 396 | are interested. | ||
| 397 | The information returned is not ordered by history | ||
| 398 | but does include a list of everyone who has | ||
| 399 | committed grouped by name. | ||
| 400 | From the list, you can see who is responsible for | ||
| 401 | the bulk of the changes against the file. | ||
| 402 | </para></listitem> | ||
| 403 | <listitem><para> | ||
| 404 | <emphasis>Examine the List of Mailing Lists:</emphasis> | ||
| 405 | For a list of the Yocto Project and related mailing | ||
| 406 | lists, see the | ||
| 407 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing lists</ulink>" | ||
| 408 | section in the Yocto Project Reference Manual. | ||
| 409 | </para></listitem> | ||
| 410 | </itemizedlist> | ||
| 411 | </para></listitem> | ||
| 412 | <listitem><para> | ||
| 413 | <emphasis>Make a Pull Request:</emphasis> | ||
| 414 | Notify the maintainer or the mailing list that you have | ||
| 415 | pushed a change by making a pull request.</para> | ||
| 416 | |||
| 417 | <para>The Yocto Project provides two scripts that | ||
| 418 | conveniently let you generate and send pull requests to the | ||
| 419 | Yocto Project. | ||
| 420 | These scripts are <filename>create-pull-request</filename> | ||
| 421 | and <filename>send-pull-request</filename>. | ||
| 422 | You can find these scripts in the | ||
| 423 | <filename>scripts</filename> directory within the | ||
| 424 | <ulink url='&YOCTO_DOCS_REF_URL;#source-directory'>Source Directory</ulink> | ||
| 425 | (e.g. <filename>~/poky/scripts</filename>). | ||
| 426 | </para> | ||
| 427 | |||
| 428 | <para>Using these scripts correctly formats the requests | ||
| 429 | without introducing any whitespace or HTML formatting. | ||
| 430 | The maintainer that receives your patches either directly | ||
| 431 | or through the mailing list needs to be able to save and | ||
| 432 | apply them directly from your emails. | ||
| 433 | Using these scripts is the preferred method for sending | ||
| 434 | patches.</para> | ||
| 435 | |||
| 436 | <para>First, create the pull request. | ||
| 437 | For example, the following command runs the script, | ||
| 438 | specifies the upstream repository in the contrib directory | ||
| 439 | into which you pushed the change, and provides a subject | ||
| 440 | line in the created patch files: | ||
| 441 | <literallayout class='monospaced'> | ||
| 442 | $ ~/poky/scripts/create-pull-request -u meta-intel-contrib -s "Updated Manual Section Reference in README" | ||
| 443 | </literallayout> | ||
| 444 | Running this script forms | ||
| 445 | <filename>*.patch</filename> files in a folder named | ||
| 446 | <filename>pull-</filename><replaceable>PID</replaceable> | ||
| 447 | in the current directory. | ||
| 448 | One of the patch files is a cover letter.</para> | ||
| 449 | |||
| 450 | <para>Before running the | ||
| 451 | <filename>send-pull-request</filename> script, you must | ||
| 452 | edit the cover letter patch to insert information about | ||
| 453 | your change. | ||
| 454 | After editing the cover letter, send the pull request. | ||
| 455 | For example, the following command runs the script and | ||
| 456 | specifies the patch directory and email address. | ||
| 457 | In this example, the email address is a mailing list: | ||
| 458 | <literallayout class='monospaced'> | ||
| 459 | $ ~/poky/scripts/send-pull-request -p ~/meta-intel/pull-10565 -t meta-intel@yoctoproject.org | ||
| 460 | </literallayout> | ||
| 461 | You need to follow the prompts as the script is | ||
| 462 | interactive. | ||
| 463 | <note> | ||
| 464 | For help on using these scripts, simply provide the | ||
| 465 | <filename>-h</filename> argument as follows: | ||
| 466 | <literallayout class='monospaced'> | ||
| 467 | $ poky/scripts/create-pull-request -h | ||
| 468 | $ poky/scripts/send-pull-request -h | ||
| 469 | </literallayout> | ||
| 470 | </note> | ||
| 471 | </para></listitem> | ||
| 472 | </orderedlist> | ||
| 473 | </para> | ||
| 474 | </section> | ||
| 475 | |||
| 476 | <section id='submitting-a-patch'> | ||
| 477 | <title>Using Email to Submit a Patch</title> | ||
| 478 | |||
| 479 | <para> | ||
| 480 | You can submit patches without using the | ||
| 481 | <filename>create-pull-request</filename> and | ||
| 482 | <filename>send-pull-request</filename> scripts described in the | ||
| 483 | previous section. | ||
| 484 | However, keep in mind, the preferred method is to use the scripts. | ||
| 485 | </para> | ||
| 486 | |||
| 487 | <para> | ||
| 488 | Depending on the components changed, you need to submit the email | ||
| 489 | to a specific mailing list. | ||
| 490 | For some guidance on which mailing list to use, see the | ||
| 491 | <link linkend='figuring-out-the-mailing-list-to-use'>list</link> | ||
| 492 | at the beginning of this section. | ||
| 493 | For a description of all the available mailing lists, see the | ||
| 494 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing Lists</ulink>" | ||
| 495 | section in the Yocto Project Reference Manual. | ||
| 496 | </para> | ||
| 497 | |||
| 498 | <para> | ||
| 499 | Here is the general procedure on how to submit a patch through | ||
| 500 | email without using the scripts: | ||
| 501 | <orderedlist> | ||
| 502 | <listitem><para> | ||
| 503 | <emphasis>Make Your Changes Locally:</emphasis> | ||
| 504 | Make your changes in your local Git repository. | ||
| 505 | You should make small, controlled, isolated changes. | ||
| 506 | Keeping changes small and isolated aids review, | ||
| 507 | makes merging/rebasing easier and keeps the change | ||
| 508 | history clean should anyone need to refer to it in | ||
| 509 | future. | ||
| 510 | </para></listitem> | ||
| 511 | <listitem><para> | ||
| 512 | <emphasis>Stage Your Changes:</emphasis> | ||
| 513 | Stage your changes by using the <filename>git add</filename> | ||
| 514 | command on each file you changed. | ||
| 515 | </para></listitem> | ||
| 516 | <listitem><para> | ||
| 517 | <emphasis>Commit Your Changes:</emphasis> | ||
| 518 | Commit the change by using the | ||
| 519 | <filename>git commit --signoff</filename> command. | ||
| 520 | Using the <filename>--signoff</filename> option identifies | ||
| 521 | you as the person making the change and also satisfies | ||
| 522 | the Developer's Certificate of Origin (DCO) shown earlier. | ||
| 523 | </para> | ||
| 524 | |||
| 525 | <para>When you form a commit, you must follow certain | ||
| 526 | standards established by the Yocto Project development | ||
| 527 | team. | ||
| 528 | See | ||
| 529 | <link linkend='making-sure-you-have-correct-commit-information'>Step 3</link> | ||
| 530 | in the previous section for information on how to | ||
| 531 | provide commit information that meets Yocto Project | ||
| 532 | commit message standards. | ||
| 533 | </para></listitem> | ||
| 534 | <listitem><para> | ||
| 535 | <emphasis>Format the Commit:</emphasis> | ||
| 536 | Format the commit into an email message. | ||
| 537 | To format commits, use the | ||
| 538 | <filename>git format-patch</filename> command. | ||
| 539 | When you provide the command, you must include a revision | ||
| 540 | list or a number of patches as part of the command. | ||
| 541 | For example, either of these two commands takes your most | ||
| 542 | recent single commit and formats it as an email message in | ||
| 543 | the current directory: | ||
| 544 | <literallayout class='monospaced'> | ||
| 545 | $ git format-patch -1 | ||
| 546 | </literallayout> | ||
| 547 | or | ||
| 548 | <literallayout class='monospaced'> | ||
| 549 | $ git format-patch HEAD~ | ||
| 550 | </literallayout></para> | ||
| 551 | |||
| 552 | <para>After the command is run, the current directory | ||
| 553 | contains a numbered <filename>.patch</filename> file for | ||
| 554 | the commit.</para> | ||
| 555 | |||
| 556 | <para>If you provide several commits as part of the | ||
| 557 | command, the <filename>git format-patch</filename> command | ||
| 558 | produces a series of numbered files in the current | ||
| 559 | directory – one for each commit. | ||
| 560 | If you have more than one patch, you should also use the | ||
| 561 | <filename>--cover</filename> option with the command, | ||
| 562 | which generates a cover letter as the first "patch" in | ||
| 563 | the series. | ||
| 564 | You can then edit the cover letter to provide a | ||
| 565 | description for the series of patches. | ||
| 566 | For information on the | ||
| 567 | <filename>git format-patch</filename> command, | ||
| 568 | see <filename>GIT_FORMAT_PATCH(1)</filename> displayed | ||
| 569 | using the <filename>man git-format-patch</filename> | ||
| 570 | command. | ||
| 571 | <note> | ||
| 572 | If you are or will be a frequent contributor to the | ||
| 573 | Yocto Project or to OpenEmbedded, you might consider | ||
| 574 | requesting a contrib area and the necessary associated | ||
| 575 | rights. | ||
| 576 | </note> | ||
| 577 | </para></listitem> | ||
| 578 | <listitem><para> | ||
| 579 | <emphasis>Import the Files Into Your Mail Client:</emphasis> | ||
| 580 | Import the files into your mail client by using the | ||
| 581 | <filename>git send-email</filename> command. | ||
| 582 | <note> | ||
| 583 | In order to use <filename>git send-email</filename>, | ||
| 584 | you must have the proper Git packages installed on | ||
| 585 | your host. | ||
| 586 | For Ubuntu, Debian, and Fedora the package is | ||
| 587 | <filename>git-email</filename>. | ||
| 588 | </note></para> | ||
| 589 | |||
| 590 | <para>The <filename>git send-email</filename> command | ||
| 591 | sends email by using a local or remote Mail Transport Agent | ||
| 592 | (MTA) such as <filename>msmtp</filename>, | ||
| 593 | <filename>sendmail</filename>, or through a direct | ||
| 594 | <filename>smtp</filename> configuration in your Git | ||
| 595 | <filename>~/.gitconfig</filename> file. | ||
| 596 | If you are submitting patches through email only, it is | ||
| 597 | very important that you submit them without any whitespace | ||
| 598 | or HTML formatting that either you or your mailer | ||
| 599 | introduces. | ||
| 600 | The maintainer that receives your patches needs to be able | ||
| 601 | to save and apply them directly from your emails. | ||
| 602 | A good way to verify that what you are sending will be | ||
| 603 | applicable by the maintainer is to do a dry run and send | ||
| 604 | them to yourself and then save and apply them as the | ||
| 605 | maintainer would.</para> | ||
| 606 | |||
| 607 | <para>The <filename>git send-email</filename> command is | ||
| 608 | the preferred method for sending your patches using | ||
| 609 | email since there is no risk of compromising whitespace | ||
| 610 | in the body of the message, which can occur when you use | ||
| 611 | your own mail client. | ||
| 612 | The command also has several options that let you | ||
| 613 | specify recipients and perform further editing of the | ||
| 614 | email message. | ||
| 615 | For information on how to use the | ||
| 616 | <filename>git send-email</filename> command, | ||
| 617 | see <filename>GIT-SEND-EMAIL(1)</filename> displayed using | ||
| 618 | the <filename>man git-send-email</filename> command. | ||
| 619 | </para></listitem> | ||
| 620 | </orderedlist> | ||
| 621 | </para> | ||
| 622 | </section> | ||
| 623 | </section> | ||
| 624 | </chapter> | ||
| 625 | <!-- | ||
| 626 | vim: expandtab tw=80 ts=4 | ||
| 627 | --> | ||
diff --git a/documentation/dev-manual/dev-manual.xml b/documentation/dev-manual/dev-manual.xml index 18cdb23e7c..93a615c2aa 100644 --- a/documentation/dev-manual/dev-manual.xml +++ b/documentation/dev-manual/dev-manual.xml | |||
| @@ -168,8 +168,6 @@ | |||
| 168 | 168 | ||
| 169 | <xi:include href="dev-manual-start.xml"/> | 169 | <xi:include href="dev-manual-start.xml"/> |
| 170 | 170 | ||
| 171 | <xi:include href="dev-manual-newbie.xml"/> | ||
| 172 | |||
| 173 | <xi:include href="dev-manual-common-tasks.xml"/> | 171 | <xi:include href="dev-manual-common-tasks.xml"/> |
| 174 | 172 | ||
| 175 | <xi:include href="dev-manual-qemu.xml"/> | 173 | <xi:include href="dev-manual-qemu.xml"/> |
diff --git a/documentation/mega-manual/mega-manual.xml b/documentation/mega-manual/mega-manual.xml index ff7242347c..2c0943e261 100644 --- a/documentation/mega-manual/mega-manual.xml +++ b/documentation/mega-manual/mega-manual.xml | |||
| @@ -170,8 +170,6 @@ | |||
| 170 | <xi:include | 170 | <xi:include |
| 171 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-start.xml"/> | 171 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-start.xml"/> |
| 172 | <xi:include | 172 | <xi:include |
| 173 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-newbie.xml"/> | ||
| 174 | <xi:include | ||
| 175 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-common-tasks.xml"/> | 173 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-common-tasks.xml"/> |
| 176 | <xi:include | 174 | <xi:include |
| 177 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-qemu.xml"/> | 175 | xmlns:xi="http://www.w3.org/2003/XInclude" href="../dev-manual/dev-manual-qemu.xml"/> |
