diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2012-06-14 11:35:18 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-06-29 14:59:25 +0100 |
commit | a6f25334ec17091a8b4e1f4cd1f12217a1cd5950 (patch) | |
tree | 5da8d8d0b01182a731b43a083a0a4921ff24fa34 /documentation/dev-manual | |
parent | ed26c02ac6cb435137ffaafddcd71fa5d7658076 (diff) | |
download | poky-a6f25334ec17091a8b4e1f4cd1f12217a1cd5950.tar.gz |
documentation/dev-manual/dev-manual-newbie.xml: 1.1.2 variables and updates
First pass at implementing the poky.ent variables. Also changed some
selected areas of text.
(From yocto-docs rev: 1e46573591037ce446bacd2096228dff4e4987c9)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r-- | documentation/dev-manual/dev-manual-newbie.xml | 98 |
1 files changed, 61 insertions, 37 deletions
diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml index 81e425c491..bc95a20c2a 100644 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ b/documentation/dev-manual/dev-manual-newbie.xml | |||
@@ -1,5 +1,6 @@ | |||
1 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 1 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | 2 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" |
3 | [<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] > | ||
3 | 4 | ||
4 | <chapter id='dev-manual-newbie'> | 5 | <chapter id='dev-manual-newbie'> |
5 | 6 | ||
@@ -7,11 +8,11 @@ | |||
7 | 8 | ||
8 | <para> | 9 | <para> |
9 | This chapter helps you understand the Yocto Project as an open source development project. | 10 | This chapter helps you understand the Yocto Project as an open source development project. |
10 | In general, working in an open source environment is very different as compared to working in a | 11 | In general, working in an open source environment is very different from working in a |
11 | proprietary environment. | 12 | closed, proprietary environment. |
12 | Additionally, the Yocto Project uses specific tools and constructs as part of its development | 13 | Additionally, the Yocto Project uses specific tools and constructs as part of its development |
13 | environment. | 14 | environment. |
14 | The chapter specifically addresses open source philosophy, licensing issues, code repositories, | 15 | This chapter specifically addresses open source philosophy, licensing issues, code repositories, |
15 | the open source distributed version control system Git, and best practices using the Yocto Project. | 16 | the open source distributed version control system Git, and best practices using the Yocto Project. |
16 | </para> | 17 | </para> |
17 | 18 | ||
@@ -20,10 +21,10 @@ | |||
20 | 21 | ||
21 | <para> | 22 | <para> |
22 | Open source philosophy is characterized by software development directed by peer production | 23 | Open source philosophy is characterized by software development directed by peer production |
23 | and collaboration through a concerned community of developers. | 24 | and collaboration through an active community of developers. |
24 | Contrast this to the more standard centralized development models used by commercial software | 25 | Contrast this to the more standard centralized development models used by commercial software |
25 | companies where a finite set of developers produce a product for sale using a defined set | 26 | companies where a finite set of developers produce a product for sale using a defined set |
26 | of procedures that ultimately result in an end-product whose architecture and source material | 27 | of procedures that ultimately result in an end product whose architecture and source material |
27 | are closed to the public. | 28 | are closed to the public. |
28 | </para> | 29 | </para> |
29 | 30 | ||
@@ -33,7 +34,7 @@ | |||
33 | stake in the software project. | 34 | stake in the software project. |
34 | The open source environment contains new copyright, licensing, domain, and consumer issues | 35 | The open source environment contains new copyright, licensing, domain, and consumer issues |
35 | that differ from the more traditional development environment. | 36 | that differ from the more traditional development environment. |
36 | In an open source environment, the end-product, source material, and documentation are | 37 | In an open source environment, the end product, source material, and documentation are |
37 | all available to the public at no cost. | 38 | all available to the public at no cost. |
38 | </para> | 39 | </para> |
39 | 40 | ||
@@ -58,7 +59,7 @@ | |||
58 | 59 | ||
59 | <para> | 60 | <para> |
60 | The Yocto Project team maintains complete source repositories for all Yocto Project files | 61 | The Yocto Project team maintains complete source repositories for all Yocto Project files |
61 | <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi'>here</ulink>. | 62 | at <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'></ulink>. |
62 | This web-based source code browser is organized into categories by function such as | 63 | This web-based source code browser is organized into categories by function such as |
63 | IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and so forth. | 64 | IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and so forth. |
64 | From the interface, you can click on any particular item in the "Name" column and | 65 | From the interface, you can click on any particular item in the "Name" column and |
@@ -73,13 +74,13 @@ | |||
73 | Conversely, if you are a developer that is not interested in contributing back to the | 74 | Conversely, if you are a developer that is not interested in contributing back to the |
74 | Yocto Project, you have the ability to simply download and extract release tarballs | 75 | Yocto Project, you have the ability to simply download and extract release tarballs |
75 | and use them within the Yocto Project environment. | 76 | and use them within the Yocto Project environment. |
76 | All that is required is a particular release of Yocto Project, a kernel, and | 77 | All that is required is a particular release of the Yocto Project and |
77 | your application source code. | 78 | your application source code. |
78 | </para> | 79 | </para> |
79 | 80 | ||
80 | <para> | 81 | <para> |
81 | For any supported release of Yocto Project, you can go to the Yocto Project website’s | 82 | For any supported release of Yocto Project, you can go to the Yocto Project website’s |
82 | <ulink url='http://www.yoctoproject.org/download'>download page</ulink> and get a | 83 | <ulink url='&YOCTO_HOME_URL;/download'>download page</ulink> and get a |
83 | tarball of the release. | 84 | tarball of the release. |
84 | You can also go to this site to download any supported BSP tarballs. | 85 | You can also go to this site to download any supported BSP tarballs. |
85 | Unpacking the tarball gives you a hierarchical directory structure of Yocto Project | 86 | Unpacking the tarball gives you a hierarchical directory structure of Yocto Project |
@@ -94,15 +95,15 @@ | |||
94 | <para> | 95 | <para> |
95 | In summary, here is where you can get the Yocto Project files needed for development: | 96 | In summary, here is where you can get the Yocto Project files needed for development: |
96 | <itemizedlist> | 97 | <itemizedlist> |
97 | <listitem><para><emphasis><ulink url='http://git.yoctoproject.org/cgit/cgit.cgi'>Source Repositories:</ulink></emphasis> | 98 | <listitem><para><emphasis><ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'>Source Repositories:</ulink></emphasis> |
98 | This area contains IDE Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and Yocto | 99 | This area contains IDE Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and Yocto |
99 | Metadata Layers. | 100 | Metadata Layers. |
100 | You can create Git repositories for each of these areas.</para> | 101 | You can create Git repositories for each of these areas.</para> |
101 | <para> | 102 | <para> |
102 | <imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" /> | 103 | <imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" /> |
103 | </para></listitem> | 104 | </para></listitem> |
104 | <listitem><para><anchor id='index-downloads' /><emphasis><ulink url='http://downloads.yoctoproject.org/releases/'>Index of /releases:</ulink></emphasis> | 105 | <listitem><para><anchor id='index-downloads' /><emphasis><ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink></emphasis> |
105 | This area contains an index releases such as | 106 | This area contains index releases such as |
106 | the <trademark class='trade'>Eclipse</trademark> | 107 | the <trademark class='trade'>Eclipse</trademark> |
107 | Yocto Plug-in, miscellaneous support, Poky, pseudo, cross-development toolchains, | 108 | Yocto Plug-in, miscellaneous support, Poky, pseudo, cross-development toolchains, |
108 | and all released versions of Yocto Project in the form of images or tarballs. | 109 | and all released versions of Yocto Project in the form of images or tarballs. |
@@ -111,11 +112,11 @@ | |||
111 | <para> | 112 | <para> |
112 | <imagedata fileref="figures/index-downloads.png" align="center" width="6in" depth="4in" /> | 113 | <imagedata fileref="figures/index-downloads.png" align="center" width="6in" depth="4in" /> |
113 | </para></listitem> | 114 | </para></listitem> |
114 | <listitem><para><emphasis><ulink url='http://www.yoctoproject.org/download'>Yocto Project Download Page</ulink></emphasis> | 115 | <listitem><para><emphasis><ulink url='&YOCTO_HOME_URL;/download'>Yocto Project Download Page</ulink></emphasis> |
115 | This page on the Yocto Project website allows you to download any Yocto Project | 116 | This page on the Yocto Project website allows you to download any Yocto Project |
116 | release or Board Support Package (BSP) in tarball form. | 117 | release or Board Support Package (BSP) in tarball form. |
117 | The tarballs are similar to those found in the | 118 | The tarballs are similar to those found in the |
118 | <ulink url='http://downloads.yoctoproject.org/releases/'>Index of /releases:</ulink> area.</para> | 119 | <ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink> area.</para> |
119 | <para> | 120 | <para> |
120 | <imagedata fileref="figures/yp-download.png" align="center" width="6in" depth="4in" /> | 121 | <imagedata fileref="figures/yp-download.png" align="center" width="6in" depth="4in" /> |
121 | </para></listitem> | 122 | </para></listitem> |
@@ -305,7 +306,7 @@ | |||
305 | 306 | ||
306 | <para> | 307 | <para> |
307 | You can find a list of the combined SPDX and OSI licenses that the Yocto Project uses | 308 | You can find a list of the combined SPDX and OSI licenses that the Yocto Project uses |
308 | <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/files/common-licenses'>here</ulink>. | 309 | <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta/files/common-licenses'>here</ulink>. |
309 | This wiki page discusses the license infrastructure used by the Yocto Project. | 310 | This wiki page discusses the license infrastructure used by the Yocto Project. |
310 | </para> | 311 | </para> |
311 | </section> | 312 | </section> |
@@ -316,7 +317,10 @@ | |||
316 | <para> | 317 | <para> |
317 | The Yocto Project uses Git, which is a free, open source distributed version control system. | 318 | The Yocto Project uses Git, which is a free, open source distributed version control system. |
318 | Git supports distributed development, non-linear development, and can handle large projects. | 319 | Git supports distributed development, non-linear development, and can handle large projects. |
319 | It is best that you know how to work with Git if you are going to use Yocto Project for development. | 320 | It is best that you have some fundamental understanding of how Git tracks projects and |
321 | how to work with Git if you are going to use Yocto Project for development. | ||
322 | This section provides a quick overview of how Git works and provides you with a summary | ||
323 | of some essential Git commands. | ||
320 | </para> | 324 | </para> |
321 | 325 | ||
322 | <para> | 326 | <para> |
@@ -423,7 +427,7 @@ | |||
423 | In particular, the information covers basic practices that describe roles and actions in a | 427 | In particular, the information covers basic practices that describe roles and actions in a |
424 | collaborative development environment. | 428 | collaborative development environment. |
425 | Again, if you are familiar with this type of development environment, you might want to just | 429 | Again, if you are familiar with this type of development environment, you might want to just |
426 | skip the section. | 430 | skip this section. |
427 | </para> | 431 | </para> |
428 | 432 | ||
429 | <para> | 433 | <para> |
@@ -436,7 +440,7 @@ | |||
436 | The maintainer is responsible for allowing changes in from other developers and for | 440 | The maintainer is responsible for allowing changes in from other developers and for |
437 | organizing the underlying branch structure to reflect release strategies and so forth. | 441 | organizing the underlying branch structure to reflect release strategies and so forth. |
438 | <note>You can see who is the maintainer for Yocto Project files by examining the | 442 | <note>You can see who is the maintainer for Yocto Project files by examining the |
439 | <filename>distro_tracking_fields</filename> file in the Yocto Project | 443 | <filename>distro_tracking_fields.inc</filename> file in the Yocto Project |
440 | <filename>meta/conf/distro/include</filename> directory.</note> | 444 | <filename>meta/conf/distro/include</filename> directory.</note> |
441 | </para> | 445 | </para> |
442 | 446 | ||
@@ -475,7 +479,7 @@ | |||
475 | "master" branch of the Git repository, which is controlled by the project’s maintainer. | 479 | "master" branch of the Git repository, which is controlled by the project’s maintainer. |
476 | And, we have a set of developers who independently develop, test, and submit changes | 480 | And, we have a set of developers who independently develop, test, and submit changes |
477 | to "contrib" areas for the maintainer to examine. | 481 | to "contrib" areas for the maintainer to examine. |
478 | The maintainer then chooses which changes are going to become permanently a part of the project. | 482 | The maintainer then chooses which changes are going to become a permanent part of the project. |
479 | </para> | 483 | </para> |
480 | 484 | ||
481 | <para> | 485 | <para> |
@@ -489,12 +493,15 @@ | |||
489 | For more information about Git workflows, see the workflow topics in the | 493 | For more information about Git workflows, see the workflow topics in the |
490 | <ulink url='http://book.git-scm.com'>Git Community Book</ulink>. | 494 | <ulink url='http://book.git-scm.com'>Git Community Book</ulink>. |
491 | <itemizedlist> | 495 | <itemizedlist> |
492 | <listitem><para><emphasis>Make Small Changes:</emphasis> It is best to keep your changes you commit | 496 | <listitem><para><emphasis>Make Small Changes:</emphasis> It is best to keep the changes you commit |
493 | small as compared to bundling many disparate changes into a single commit. | 497 | small as compared to bundling many disparate changes into a single commit. |
494 | This practice not only keeps things manageable but also allows the maintainer | 498 | This practice not only keeps things manageable but also allows the maintainer |
495 | to more easily include or refuse changes.</para> | 499 | to more easily include or refuse changes.</para> |
496 | <para>It is also good practice to leave the repository in a state that allows you to | 500 | <para>It is also good practice to leave the repository in a state that allows you to |
497 | still successfully build your project.</para></listitem> | 501 | still successfully build your project. In other words, do not commit half of a feature, |
502 | then add the other half in a separate, later commit. | ||
503 | Each commit should take you from one buildable project state to another | ||
504 | buildable state.</para></listitem> | ||
498 | <listitem><para><emphasis>Use Branches Liberally:</emphasis> It is very easy to create, use, and | 505 | <listitem><para><emphasis>Use Branches Liberally:</emphasis> It is very easy to create, use, and |
499 | delete local branches in your working Git repository. | 506 | delete local branches in your working Git repository. |
500 | You can name these branches anything you like. | 507 | You can name these branches anything you like. |
@@ -527,7 +534,7 @@ | |||
527 | <filename>send-pull-request</filename> that ship with the release to facilitate this | 534 | <filename>send-pull-request</filename> that ship with the release to facilitate this |
528 | workflow. | 535 | workflow. |
529 | You can find these scripts in the local Yocto Project files Git repository in | 536 | You can find these scripts in the local Yocto Project files Git repository in |
530 | <filename>scripts</filename>.</para></listitem> | 537 | the <filename>scripts</filename> directory.</para></listitem> |
531 | <listitem><para><emphasis>Patch Workflow:</emphasis> This workflow allows you to notify the | 538 | <listitem><para><emphasis>Patch Workflow:</emphasis> This workflow allows you to notify the |
532 | maintainer through an email that you have a change (or patch) you would like considered | 539 | maintainer through an email that you have a change (or patch) you would like considered |
533 | for the "master" branch of the Git repository. | 540 | for the "master" branch of the Git repository. |
@@ -548,7 +555,7 @@ | |||
548 | changes, can be used to communicate changes and problems with developers, can be used to | 555 | changes, can be used to communicate changes and problems with developers, can be used to |
549 | submit and review patches, and can be used to manage quality assurance. | 556 | submit and review patches, and can be used to manage quality assurance. |
550 | The home page for the Yocto Project implementation of Bugzilla is | 557 | The home page for the Yocto Project implementation of Bugzilla is |
551 | <ulink url='http://bugzilla.yoctoproject.org'>http://bugzilla.yoctoproject.org</ulink>. | 558 | <ulink url='&YOCTO_BUGZILLA_URL;'>&YOCTO_BUGZILLA_URL;</ulink>. |
552 | </para> | 559 | </para> |
553 | 560 | ||
554 | <para> | 561 | <para> |
@@ -559,7 +566,7 @@ | |||
559 | Bugzilla. | 566 | Bugzilla. |
560 | You can find more information on defect management, bug tracking, and feature request | 567 | You can find more information on defect management, bug tracking, and feature request |
561 | processes all accomplished through the Yocto Project Bugzilla on the wiki page | 568 | processes all accomplished through the Yocto Project Bugzilla on the wiki page |
562 | <ulink url='https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking'>here</ulink>. | 569 | <ulink url='&YOCTO_WIKI_URL;/wiki/Bugzilla_Configuration_and_Bug_Tracking'>here</ulink>. |
563 | <orderedlist> | 570 | <orderedlist> |
564 | <listitem><para>Always use the Yocto Project implementation of Bugzilla to submit | 571 | <listitem><para>Always use the Yocto Project implementation of Bugzilla to submit |
565 | a bug.</para></listitem> | 572 | a bug.</para></listitem> |
@@ -602,27 +609,28 @@ | |||
602 | 609 | ||
603 | <para> | 610 | <para> |
604 | Contributions to the Yocto Project are very welcome. | 611 | Contributions to the Yocto Project are very welcome. |
612 | Because the Yocto Project is extremely configurable and flexible, we recognize that developers | ||
613 | will want to extend, configure or optimize it for their specific uses. | ||
605 | You should send patches to the appropriate Yocto Project mailing list to get them | 614 | You should send patches to the appropriate Yocto Project mailing list to get them |
606 | in front of the Yocto Project Maintainer. | 615 | in front of the Yocto Project Maintainer. |
607 | For a list of the Yocto Project mailing lists, see the | 616 | For a list of the Yocto Project mailing lists, see the |
608 | "<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#resources-mailinglist'>Mailing lists</ulink>" section in | 617 | "<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing lists</ulink>" section in |
609 | <ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'> The | 618 | The Yocto Project Reference Manual. |
610 | Yocto Project Reference Manual</ulink>. | ||
611 | </para> | 619 | </para> |
612 | 620 | ||
613 | <para> | 621 | <para> |
614 | Following is some guidance on which mailing list to use for what type of defect: | 622 | The following is some guidance on which mailing list to use for what type of defect: |
615 | <itemizedlist> | 623 | <itemizedlist> |
616 | <listitem><para>For defects against the Yocto Project build system Poky, send | 624 | <listitem><para>For defects against the Yocto Project build system Poky, send |
617 | your patch to the | 625 | your patch to the |
618 | <ulink url='http://lists.yoctoproject.org/listinfo/poky'></ulink> mailing list. | 626 | <ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink> mailing list. |
619 | This mailing list corresponds to issues that are not specific to the Yocto Project but | 627 | This mailing list corresponds to issues that are not specific to the Yocto Project but |
620 | are part of the OE-core. | 628 | are part of the OE-core. |
621 | For example, a defect against anything in the <filename>meta</filename> layer | 629 | For example, a defect against anything in the <filename>meta</filename> layer |
622 | or the BitBake Manual could be sent to this mailing list.</para></listitem> | 630 | or the BitBake Manual could be sent to this mailing list.</para></listitem> |
623 | <listitem><para>For defects against Yocto-specific layers, tools, and Yocto Project | 631 | <listitem><para>For defects against Yocto-specific layers, tools, and Yocto Project |
624 | documentation use the | 632 | documentation use the |
625 | <ulink url='http://lists.yoctoproject.org/listinfo/yocto'></ulink> mailing list. | 633 | <ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'></ulink> mailing list. |
626 | This mailing list corresponds to Yocto-specific areas such as | 634 | This mailing list corresponds to Yocto-specific areas such as |
627 | <filename>meta-yocto</filename>, <filename>meta-intel</filename>, | 635 | <filename>meta-yocto</filename>, <filename>meta-intel</filename>, |
628 | <filename>linux-yocto</filename>, and <filename>documentation</filename>.</para></listitem> | 636 | <filename>linux-yocto</filename>, and <filename>documentation</filename>.</para></listitem> |
@@ -630,7 +638,7 @@ | |||
630 | </para> | 638 | </para> |
631 | 639 | ||
632 | <para> | 640 | <para> |
633 | When you send a patch, be sure to include a "signed-off-by:" | 641 | When you send a patch, be sure to include a "Signed-off-by:" |
634 | line in the same style as required by the Linux kernel. | 642 | line in the same style as required by the Linux kernel. |
635 | Adding this line signifies the developer has agreed to the Developer's Certificate of Origin 1.1 | 643 | Adding this line signifies the developer has agreed to the Developer's Certificate of Origin 1.1 |
636 | as follows: | 644 | as follows: |
@@ -672,11 +680,14 @@ | |||
672 | <para> | 680 | <para> |
673 | In a collaborative environment, it is necessary to have some sort of standard | 681 | In a collaborative environment, it is necessary to have some sort of standard |
674 | or method through which you submit changes. | 682 | or method through which you submit changes. |
675 | Otherwise, things could get quite chaotic. | 683 | Otherwise, things could get quite chaotic. |
684 | One general practice to follow is to make small, controlled changes to the | ||
685 | Yocto Project. | ||
686 | Keeping changes small and isolated lets you best keep pace with future Yocto Project changes. | ||
676 | </para> | 687 | </para> |
677 | 688 | ||
678 | <para> | 689 | <para> |
679 | When you form a commit, you must follow certain standards established by the | 690 | When you create a commit, you must follow certain standards established by the |
680 | Yocto Project development team. | 691 | Yocto Project development team. |
681 | For each commit, you must provide a single-line summary of the change and you | 692 | For each commit, you must provide a single-line summary of the change and you |
682 | almost always provide a more detailed description of what you did (i.e. the body | 693 | almost always provide a more detailed description of what you did (i.e. the body |
@@ -710,7 +721,7 @@ | |||
710 | <para> | 721 | <para> |
711 | You can find more guidance on creating well-formed commit messages at this OpenEmbedded | 722 | You can find more guidance on creating well-formed commit messages at this OpenEmbedded |
712 | wiki page: | 723 | wiki page: |
713 | <ulink url='http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines'></ulink>. | 724 | <ulink url='&OE_HOME_URL;/wiki/Commit_Patch_Message_Guidelines'></ulink>. |
714 | </para> | 725 | </para> |
715 | 726 | ||
716 | <para> | 727 | <para> |
@@ -774,7 +785,7 @@ | |||
774 | See the earlier section | 785 | See the earlier section |
775 | "<link linkend='how-to-submit-a-change'>How to Submit a Change</link>" | 786 | "<link linkend='how-to-submit-a-change'>How to Submit a Change</link>" |
776 | for Yocto Project commit message standards.</para></listitem> | 787 | for Yocto Project commit message standards.</para></listitem> |
777 | <listitem><para>Format the commit into an email messsage. | 788 | <listitem><para>Format the commit into an email message. |
778 | To format commits, use the <filename>git format-patch</filename> command. | 789 | To format commits, use the <filename>git format-patch</filename> command. |
779 | When you provide the command, you must include a revision list or a number of patches | 790 | When you provide the command, you must include a revision list or a number of patches |
780 | as part of the command. | 791 | as part of the command. |
@@ -789,6 +800,11 @@ | |||
789 | <para>If you provide several commits as part of the command, | 800 | <para>If you provide several commits as part of the command, |
790 | the <filename>git format-patch</filename> command produces a numbered | 801 | the <filename>git format-patch</filename> command produces a numbered |
791 | series of files in the current directory – one for each commit. | 802 | series of files in the current directory – one for each commit. |
803 | If you have more than one patch, you should also use the | ||
804 | <filename>--cover</filename> option with the command, which generates a | ||
805 | cover letter as the first "patch" in the series. | ||
806 | You can then edit the cover letter to provide a description for | ||
807 | the series of patches. | ||
792 | For information on the <filename>git format-patch</filename> command, | 808 | For information on the <filename>git format-patch</filename> command, |
793 | see <filename>GIT_FORMAT_PATCH(1)</filename> displayed using the | 809 | see <filename>GIT_FORMAT_PATCH(1)</filename> displayed using the |
794 | <filename>man git-format-patch</filename> command.</para></listitem> | 810 | <filename>man git-format-patch</filename> command.</para></listitem> |
@@ -801,7 +817,15 @@ | |||
801 | or remote Mail Transport Agent (MTA) such as | 817 | or remote Mail Transport Agent (MTA) such as |
802 | <filename>msmtp</filename>, <filename>sendmail</filename>, or through a direct | 818 | <filename>msmtp</filename>, <filename>sendmail</filename>, or through a direct |
803 | <filename>smtp</filename> configuration in your Git <filename>config</filename> | 819 | <filename>smtp</filename> configuration in your Git <filename>config</filename> |
804 | file.</para> | 820 | file. |
821 | If you are submitting patches through email only, it is very important | ||
822 | that you submit them without any whitespace or HTML formatting that | ||
823 | either you or your mailer introduces. | ||
824 | The maintainer that receives your patches needs to be able to save and | ||
825 | apply them directly from your emails. | ||
826 | A good way to verify that what you are sending will be applicable by the | ||
827 | maintainer is to do a dry run and send them to yourself and then | ||
828 | save and apply them as the maintainer would.</para> | ||
805 | <para>The <filename>git send-email</filename> command is the preferred method | 829 | <para>The <filename>git send-email</filename> command is the preferred method |
806 | for sending your patches since there is no risk of compromising whitespace | 830 | for sending your patches since there is no risk of compromising whitespace |
807 | in the body of the message, which can occur when you use your own mail client. | 831 | in the body of the message, which can occur when you use your own mail client. |