2.Process.rst (d053cf0d771f6547cb0537759a9af63cf402908d) | 2.Process.rst (e7b4311ebcac142be28c9fa1b9f63a9d35fc2a92) |
---|---|
1.. _development_process: 2 3How the development process works 4================================= 5 6Linux kernel development in the early 1990's was a pretty loose affair, 7with relatively small numbers of users and developers involved. With a 8user base in the millions and with some 2,000 developers involved over the --- 281 unchanged lines hidden (view full) --- 290patches which accumulate in -mm will eventually either be forwarded on to 291an appropriate subsystem tree or be sent directly to Linus. In a typical 292development cycle, approximately 5-10% of the patches going into the 293mainline get there via -mm. 294 295The current -mm patch is available in the "mmotm" (-mm of the moment) 296directory at: 297 | 1.. _development_process: 2 3How the development process works 4================================= 5 6Linux kernel development in the early 1990's was a pretty loose affair, 7with relatively small numbers of users and developers involved. With a 8user base in the millions and with some 2,000 developers involved over the --- 281 unchanged lines hidden (view full) --- 290patches which accumulate in -mm will eventually either be forwarded on to 291an appropriate subsystem tree or be sent directly to Linus. In a typical 292development cycle, approximately 5-10% of the patches going into the 293mainline get there via -mm. 294 295The current -mm patch is available in the "mmotm" (-mm of the moment) 296directory at: 297 |
298 http://www.ozlabs.org/~akpm/mmotm/ | 298 https://www.ozlabs.org/~akpm/mmotm/ |
299 300Use of the MMOTM tree is likely to be a frustrating experience, though; 301there is a definite chance that it will not even compile. 302 303The primary tree for next-cycle patch merging is linux-next, maintained by 304Stephen Rothwell. The linux-next tree is, by design, a snapshot of what 305the mainline is expected to look like after the next merge window closes. 306Linux-next trees are announced on the linux-kernel and linux-next mailing 307lists when they are assembled; they can be downloaded from: 308 | 299 300Use of the MMOTM tree is likely to be a frustrating experience, though; 301there is a definite chance that it will not even compile. 302 303The primary tree for next-cycle patch merging is linux-next, maintained by 304Stephen Rothwell. The linux-next tree is, by design, a snapshot of what 305the mainline is expected to look like after the next merge window closes. 306Linux-next trees are announced on the linux-kernel and linux-next mailing 307lists when they are assembled; they can be downloaded from: 308 |
309 http://www.kernel.org/pub/linux/kernel/next/ | 309 https://www.kernel.org/pub/linux/kernel/next/ |
310 311Linux-next has become an integral part of the kernel development process; 312all patches merged during a given merge window should really have found 313their way into linux-next some time before the merge window opens. 314 315 316Staging trees 317------------- --- 42 unchanged lines hidden (view full) --- 360for being difficult to learn and use, though it has gotten better over 361time. Some sort of familiarity with git is almost a requirement for kernel 362developers; even if they do not use it for their own work, they'll need git 363to keep up with what other developers (and the mainline) are doing. 364 365Git is now packaged by almost all Linux distributions. There is a home 366page at: 367 | 310 311Linux-next has become an integral part of the kernel development process; 312all patches merged during a given merge window should really have found 313their way into linux-next some time before the merge window opens. 314 315 316Staging trees 317------------- --- 42 unchanged lines hidden (view full) --- 360for being difficult to learn and use, though it has gotten better over 361time. Some sort of familiarity with git is almost a requirement for kernel 362developers; even if they do not use it for their own work, they'll need git 363to keep up with what other developers (and the mainline) are doing. 364 365Git is now packaged by almost all Linux distributions. There is a home 366page at: 367 |
368 http://git-scm.com/ | 368 https://git-scm.com/ |
369 370That page has pointers to documentation and tutorials. 371 372Among the kernel developers who do not use git, the most popular choice is 373almost certainly Mercurial: 374 | 369 370That page has pointers to documentation and tutorials. 371 372Among the kernel developers who do not use git, the most popular choice is 373almost certainly Mercurial: 374 |
375 http://www.selenic.com/mercurial/ | 375 https://www.selenic.com/mercurial/ |
376 377Mercurial shares many features with git, but it provides an interface which 378many find easier to use. 379 380The other tool worth knowing about is Quilt: 381 | 376 377Mercurial shares many features with git, but it provides an interface which 378many find easier to use. 379 380The other tool worth knowing about is Quilt: 381 |
382 http://savannah.nongnu.org/projects/quilt/ | 382 https://savannah.nongnu.org/projects/quilt/ |
383 384Quilt is a patch management system, rather than a source code management 385system. It does not track history over time; it is, instead, oriented 386toward tracking a specific set of changes against an evolving code base. 387Some major subsystem maintainers use quilt to manage patches intended to go 388upstream. For the management of certain kinds of trees (-mm, for example), 389quilt is the best tool for the job. 390 --- 98 unchanged lines hidden (view full) --- 489:: 490 491 The #1 project for all kernel beginners should surely be "make sure 492 that the kernel runs perfectly at all times on all machines which 493 you can lay your hands on". Usually the way to do this is to work 494 with others on getting things fixed up (this can require 495 persistence!) but that's fine - it's a part of kernel development. 496 | 383 384Quilt is a patch management system, rather than a source code management 385system. It does not track history over time; it is, instead, oriented 386toward tracking a specific set of changes against an evolving code base. 387Some major subsystem maintainers use quilt to manage patches intended to go 388upstream. For the management of certain kinds of trees (-mm, for example), 389quilt is the best tool for the job. 390 --- 98 unchanged lines hidden (view full) --- 489:: 490 491 The #1 project for all kernel beginners should surely be "make sure 492 that the kernel runs perfectly at all times on all machines which 493 you can lay your hands on". Usually the way to do this is to work 494 with others on getting things fixed up (this can require 495 persistence!) but that's fine - it's a part of kernel development. 496 |
497(http://lwn.net/Articles/283982/). | 497(https://lwn.net/Articles/283982/). |
498 499In the absence of obvious problems to fix, developers are advised to look 500at the current lists of regressions and open bugs in general. There is 501never any shortage of issues in need of fixing; by addressing these issues, 502developers will gain experience with the process while, at the same time, 503building respect with the rest of the development community. | 498 499In the absence of obvious problems to fix, developers are advised to look 500at the current lists of regressions and open bugs in general. There is 501never any shortage of issues in need of fixing; by addressing these issues, 502developers will gain experience with the process while, at the same time, 503building respect with the rest of the development community. |