aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/development-process/2.Process
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2016-09-19 07:07:36 -0400
committerJonathan Corbet <corbet@lwn.net>2016-09-20 20:30:43 -0400
commitf7c9fe4b1cd144f7afc1712bb25141c55c406e1b (patch)
treead56ecfa99ef9abe7dd84744cf7dc3770bf1d087 /Documentation/development-process/2.Process
parent1414f0488803d8963b5868b1512515c997b54571 (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.Process41
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 @@
12: HOW THE DEVELOPMENT PROCESS WORKS 1.. _development_process:
2
3How the development process works
4=================================
2 5
3Linux kernel development in the early 1990's was a pretty loose affair, 6Linux kernel development in the early 1990's was a pretty loose affair,
4with relatively small numbers of users and developers involved. With a 7with 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
7processes to keep development happening smoothly. A solid understanding of 10processes to keep development happening smoothly. A solid understanding of
8how the process works is required in order to be an effective part of it. 11how the process works is required in order to be an effective part of it.
9 12
10 13The big picture
112.1: THE BIG PICTURE 14---------------
12 15
13The kernel developers use a loosely time-based release process, with a new 16The kernel developers use a loosely time-based release process, with a new
14major kernel release happening every two or three months. The recent 17major kernel release happening every two or three months. The recent
15release history looks like this: 18release 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
24Every 2.6.x release is a major kernel release with new features, internal 29Every 2.6.x release is a major kernel release with new features, internal
25API changes, and more. A typical 2.6 release can contain nearly 10,000 30API 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.
68As an example, here is how the 2.6.38 development cycle went (all dates in 73As an example, here is how the 2.6.38 development cycle went (all dates in
692011): 742011):
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
82How do the developers decide when to close the development cycle and create 89How do the developers decide when to close the development cycle and create
83the stable release? The most significant metric used is the list of 90the 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
105a little more than one development cycle past their initial release. So, 112a little more than one development cycle past their initial release. So,
106for example, the 2.6.36 kernel's history looked like: 113for 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
1142.6.36.4 was the final stable update for the 2.6.36 release. 1232.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
117for a longer period. As of this writing, the current long term kernels 126for a longer period. As of this writing, the current long term kernels
118and their maintainers are: 127and 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
124The selection of a kernel for long-term support is purely a matter of a 135The selection of a kernel for long-term support is purely a matter of a
125maintainer having the need and the time to maintain that release. There 136maintainer 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
127release. 138release.
128 139
129 140
1302.2: THE LIFECYCLE OF A PATCH 141The lifecycle of a patch
142------------------------
131 143
132Patches do not go directly from the developer's keyboard into the mainline 144Patches do not go directly from the developer's keyboard into the mainline
133kernel. There is, instead, a somewhat involved (if somewhat informal) 145kernel. 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"
195step. This approach invariably leads to frustration for everybody 207step. This approach invariably leads to frustration for everybody
196involved. 208involved.
197 209
198 210How patches get into the Kernel
1992.3: HOW PATCHES GET INTO THE KERNEL 211-------------------------------
200 212
201There is exactly one person who can merge patches into the mainline kernel 213There is exactly one person who can merge patches into the mainline kernel
202repository: Linus Torvalds. But, of the over 9,500 patches which went 214repository: 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
242normally the right way to go. 254normally the right way to go.
243 255
244 256
2452.4: NEXT TREES 257Next trees
258----------
246 259
247The chain of subsystem trees guides the flow of patches into the kernel, 260The chain of subsystem trees guides the flow of patches into the kernel,
248but it also raises an interesting question: what if somebody wants to look 261but 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
294their way into linux-next some time before the merge window opens. 307their way into linux-next some time before the merge window opens.
295 308
296 309
2972.4.1: STAGING TREES 310Staging trees
311-------------
298 312
299The kernel source tree contains the drivers/staging/ directory, where 313The kernel source tree contains the drivers/staging/ directory, where
300many sub-directories for drivers or filesystems that are on their way to 314many 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
322a proper mainline driver. 336a proper mainline driver.
323 337
324 338
3252.5: TOOLS 339Tools
340-----
326 341
327As can be seen from the above text, the kernel development process depends 342As can be seen from the above text, the kernel development process depends
328heavily on the ability to herd collections of patches in various 343heavily 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),
368quilt is the best tool for the job. 383quilt is the best tool for the job.
369 384
370 385
3712.6: MAILING LISTS 386Mailing lists
387-------------
372 388
373A great deal of Linux kernel development work is done by way of mailing 389A great deal of Linux kernel development work is done by way of mailing
374lists. It is hard to be a fully-functioning member of the community 390lists. 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
436in the MAINTAINERS file packaged with the kernel source. 452in the MAINTAINERS file packaged with the kernel source.
437 453
438 454
4392.7: GETTING STARTED WITH KERNEL DEVELOPMENT 455Getting started with Kernel development
456---------------------------------------
440 457
441Questions about how to get started with the kernel development process are 458Questions about how to get started with the kernel development process are
442common - from both individuals and companies. Equally common are missteps 459common - from both individuals and companies. Equally common are missteps
@@ -463,6 +480,8 @@ they wish for by these means.
463 480
464Andrew Morton gives this advice for aspiring kernel developers 481Andrew 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