diff options
| author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-09-19 07:07:36 -0400 |
|---|---|---|
| committer | Jonathan Corbet <corbet@lwn.net> | 2016-09-20 20:30:43 -0400 |
| commit | f7c9fe4b1cd144f7afc1712bb25141c55c406e1b (patch) | |
| tree | ad56ecfa99ef9abe7dd84744cf7dc3770bf1d087 /Documentation/development-process/2.Process | |
| parent | 1414f0488803d8963b5868b1512515c997b54571 (diff) | |
doc: development-process: convert it to ReST markup
This document is on good shape for ReST: all it was needed was
to fix the section markups, add a toctree, convert the tables
and add a few code/quote blocks.
While not strictly required, I opted to use lowercase for
the titles, just like the other books that were converted
to Sphinx.
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'Documentation/development-process/2.Process')
| -rw-r--r-- | Documentation/development-process/2.Process | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/Documentation/development-process/2.Process b/Documentation/development-process/2.Process index c24e156a6118..ce5561bb3f8e 100644 --- a/Documentation/development-process/2.Process +++ b/Documentation/development-process/2.Process | |||
| @@ -1,4 +1,7 @@ | |||
| 1 | 2: HOW THE DEVELOPMENT PROCESS WORKS | 1 | .. _development_process: |
| 2 | |||
| 3 | How the development process works | ||
| 4 | ================================= | ||
| 2 | 5 | ||
| 3 | Linux kernel development in the early 1990's was a pretty loose affair, | 6 | Linux kernel development in the early 1990's was a pretty loose affair, |
| 4 | with relatively small numbers of users and developers involved. With a | 7 | with relatively small numbers of users and developers involved. With a |
| @@ -7,19 +10,21 @@ course of one year, the kernel has since had to evolve a number of | |||
| 7 | processes to keep development happening smoothly. A solid understanding of | 10 | processes to keep development happening smoothly. A solid understanding of |
| 8 | how the process works is required in order to be an effective part of it. | 11 | how the process works is required in order to be an effective part of it. |
| 9 | 12 | ||
| 10 | 13 | The big picture | |
| 11 | 2.1: THE BIG PICTURE | 14 | --------------- |
| 12 | 15 | ||
| 13 | The kernel developers use a loosely time-based release process, with a new | 16 | The kernel developers use a loosely time-based release process, with a new |
| 14 | major kernel release happening every two or three months. The recent | 17 | major kernel release happening every two or three months. The recent |
| 15 | release history looks like this: | 18 | release history looks like this: |
| 16 | 19 | ||
| 20 | ====== ================= | ||
| 17 | 2.6.38 March 14, 2011 | 21 | 2.6.38 March 14, 2011 |
| 18 | 2.6.37 January 4, 2011 | 22 | 2.6.37 January 4, 2011 |
| 19 | 2.6.36 October 20, 2010 | 23 | 2.6.36 October 20, 2010 |
| 20 | 2.6.35 August 1, 2010 | 24 | 2.6.35 August 1, 2010 |
| 21 | 2.6.34 May 15, 2010 | 25 | 2.6.34 May 15, 2010 |
| 22 | 2.6.33 February 24, 2010 | 26 | 2.6.33 February 24, 2010 |
| 27 | ====== ================= | ||
| 23 | 28 | ||
| 24 | Every 2.6.x release is a major kernel release with new features, internal | 29 | Every 2.6.x release is a major kernel release with new features, internal |
| 25 | API changes, and more. A typical 2.6 release can contain nearly 10,000 | 30 | API changes, and more. A typical 2.6 release can contain nearly 10,000 |
| @@ -68,6 +73,7 @@ At that point the whole process starts over again. | |||
| 68 | As an example, here is how the 2.6.38 development cycle went (all dates in | 73 | As an example, here is how the 2.6.38 development cycle went (all dates in |
| 69 | 2011): | 74 | 2011): |
| 70 | 75 | ||
| 76 | ============== =============================== | ||
| 71 | January 4 2.6.37 stable release | 77 | January 4 2.6.37 stable release |
| 72 | January 18 2.6.38-rc1, merge window closes | 78 | January 18 2.6.38-rc1, merge window closes |
| 73 | January 21 2.6.38-rc2 | 79 | January 21 2.6.38-rc2 |
| @@ -78,6 +84,7 @@ As an example, here is how the 2.6.38 development cycle went (all dates in | |||
| 78 | March 1 2.6.38-rc7 | 84 | March 1 2.6.38-rc7 |
| 79 | March 7 2.6.38-rc8 | 85 | March 7 2.6.38-rc8 |
| 80 | March 14 2.6.38 stable release | 86 | March 14 2.6.38 stable release |
| 87 | ============== =============================== | ||
| 81 | 88 | ||
| 82 | How do the developers decide when to close the development cycle and create | 89 | How do the developers decide when to close the development cycle and create |
| 83 | the stable release? The most significant metric used is the list of | 90 | the stable release? The most significant metric used is the list of |
| @@ -105,11 +112,13 @@ next development kernel. Kernels will typically receive stable updates for | |||
| 105 | a little more than one development cycle past their initial release. So, | 112 | a little more than one development cycle past their initial release. So, |
| 106 | for example, the 2.6.36 kernel's history looked like: | 113 | for example, the 2.6.36 kernel's history looked like: |
| 107 | 114 | ||
| 115 | ============== =============================== | ||
| 108 | October 10 2.6.36 stable release | 116 | October 10 2.6.36 stable release |
| 109 | November 22 2.6.36.1 | 117 | November 22 2.6.36.1 |
| 110 | December 9 2.6.36.2 | 118 | December 9 2.6.36.2 |
| 111 | January 7 2.6.36.3 | 119 | January 7 2.6.36.3 |
| 112 | February 17 2.6.36.4 | 120 | February 17 2.6.36.4 |
| 121 | ============== =============================== | ||
| 113 | 122 | ||
| 114 | 2.6.36.4 was the final stable update for the 2.6.36 release. | 123 | 2.6.36.4 was the final stable update for the 2.6.36 release. |
| 115 | 124 | ||
| @@ -117,9 +126,11 @@ Some kernels are designated "long term" kernels; they will receive support | |||
| 117 | for a longer period. As of this writing, the current long term kernels | 126 | for a longer period. As of this writing, the current long term kernels |
| 118 | and their maintainers are: | 127 | and their maintainers are: |
| 119 | 128 | ||
| 129 | ====== ====================== =========================== | ||
| 120 | 2.6.27 Willy Tarreau (Deep-frozen stable kernel) | 130 | 2.6.27 Willy Tarreau (Deep-frozen stable kernel) |
| 121 | 2.6.32 Greg Kroah-Hartman | 131 | 2.6.32 Greg Kroah-Hartman |
| 122 | 2.6.35 Andi Kleen (Embedded flag kernel) | 132 | 2.6.35 Andi Kleen (Embedded flag kernel) |
| 133 | ====== ====================== =========================== | ||
| 123 | 134 | ||
| 124 | The selection of a kernel for long-term support is purely a matter of a | 135 | The selection of a kernel for long-term support is purely a matter of a |
| 125 | maintainer having the need and the time to maintain that release. There | 136 | maintainer having the need and the time to maintain that release. There |
| @@ -127,7 +138,8 @@ are no known plans for long-term support for any specific upcoming | |||
| 127 | release. | 138 | release. |
| 128 | 139 | ||
| 129 | 140 | ||
| 130 | 2.2: THE LIFECYCLE OF A PATCH | 141 | The lifecycle of a patch |
| 142 | ------------------------ | ||
| 131 | 143 | ||
| 132 | Patches do not go directly from the developer's keyboard into the mainline | 144 | Patches do not go directly from the developer's keyboard into the mainline |
| 133 | kernel. There is, instead, a somewhat involved (if somewhat informal) | 145 | kernel. There is, instead, a somewhat involved (if somewhat informal) |
| @@ -195,8 +207,8 @@ is to try to cut the process down to a single "merging into the mainline" | |||
| 195 | step. This approach invariably leads to frustration for everybody | 207 | step. This approach invariably leads to frustration for everybody |
| 196 | involved. | 208 | involved. |
| 197 | 209 | ||
| 198 | 210 | How patches get into the Kernel | |
| 199 | 2.3: HOW PATCHES GET INTO THE KERNEL | 211 | ------------------------------- |
| 200 | 212 | ||
| 201 | There is exactly one person who can merge patches into the mainline kernel | 213 | There is exactly one person who can merge patches into the mainline kernel |
| 202 | repository: Linus Torvalds. But, of the over 9,500 patches which went | 214 | repository: Linus Torvalds. But, of the over 9,500 patches which went |
| @@ -242,7 +254,8 @@ finding the right maintainer. Sending patches directly to Linus is not | |||
| 242 | normally the right way to go. | 254 | normally the right way to go. |
| 243 | 255 | ||
| 244 | 256 | ||
| 245 | 2.4: NEXT TREES | 257 | Next trees |
| 258 | ---------- | ||
| 246 | 259 | ||
| 247 | The chain of subsystem trees guides the flow of patches into the kernel, | 260 | The chain of subsystem trees guides the flow of patches into the kernel, |
| 248 | but it also raises an interesting question: what if somebody wants to look | 261 | but it also raises an interesting question: what if somebody wants to look |
| @@ -294,7 +307,8 @@ all patches merged during a given merge window should really have found | |||
| 294 | their way into linux-next some time before the merge window opens. | 307 | their way into linux-next some time before the merge window opens. |
| 295 | 308 | ||
| 296 | 309 | ||
| 297 | 2.4.1: STAGING TREES | 310 | Staging trees |
| 311 | ------------- | ||
| 298 | 312 | ||
| 299 | The kernel source tree contains the drivers/staging/ directory, where | 313 | The kernel source tree contains the drivers/staging/ directory, where |
| 300 | many sub-directories for drivers or filesystems that are on their way to | 314 | many sub-directories for drivers or filesystems that are on their way to |
| @@ -322,7 +336,8 @@ staging drivers. So staging is, at best, a stop on the way toward becoming | |||
| 322 | a proper mainline driver. | 336 | a proper mainline driver. |
| 323 | 337 | ||
| 324 | 338 | ||
| 325 | 2.5: TOOLS | 339 | Tools |
| 340 | ----- | ||
| 326 | 341 | ||
| 327 | As can be seen from the above text, the kernel development process depends | 342 | As can be seen from the above text, the kernel development process depends |
| 328 | heavily on the ability to herd collections of patches in various | 343 | heavily on the ability to herd collections of patches in various |
| @@ -368,7 +383,8 @@ upstream. For the management of certain kinds of trees (-mm, for example), | |||
| 368 | quilt is the best tool for the job. | 383 | quilt is the best tool for the job. |
| 369 | 384 | ||
| 370 | 385 | ||
| 371 | 2.6: MAILING LISTS | 386 | Mailing lists |
| 387 | ------------- | ||
| 372 | 388 | ||
| 373 | A great deal of Linux kernel development work is done by way of mailing | 389 | A great deal of Linux kernel development work is done by way of mailing |
| 374 | lists. It is hard to be a fully-functioning member of the community | 390 | lists. It is hard to be a fully-functioning member of the community |
| @@ -436,7 +452,8 @@ filesystem, etc. subsystems. The best place to look for mailing lists is | |||
| 436 | in the MAINTAINERS file packaged with the kernel source. | 452 | in the MAINTAINERS file packaged with the kernel source. |
| 437 | 453 | ||
| 438 | 454 | ||
| 439 | 2.7: GETTING STARTED WITH KERNEL DEVELOPMENT | 455 | Getting started with Kernel development |
| 456 | --------------------------------------- | ||
| 440 | 457 | ||
| 441 | Questions about how to get started with the kernel development process are | 458 | Questions about how to get started with the kernel development process are |
| 442 | common - from both individuals and companies. Equally common are missteps | 459 | common - from both individuals and companies. Equally common are missteps |
| @@ -463,6 +480,8 @@ they wish for by these means. | |||
| 463 | 480 | ||
| 464 | Andrew Morton gives this advice for aspiring kernel developers | 481 | Andrew Morton gives this advice for aspiring kernel developers |
| 465 | 482 | ||
| 483 | :: | ||
| 484 | |||
| 466 | The #1 project for all kernel beginners should surely be "make sure | 485 | The #1 project for all kernel beginners should surely be "make sure |
| 467 | that the kernel runs perfectly at all times on all machines which | 486 | that the kernel runs perfectly at all times on all machines which |
| 468 | you can lay your hands on". Usually the way to do this is to work | 487 | you can lay your hands on". Usually the way to do this is to work |
