X-Git-Url: https://projects.mako.cc/source/to_fork_or_not/blobdiff_plain/d901603b808a946ed51c24c167c02124c0941ff7..1a659e5c80e31116bd3ce0b0e1acaf8a650a76b4:/to_fork_or_not_to_fork.xml diff --git a/to_fork_or_not_to_fork.xml b/to_fork_or_not_to_fork.xml index e43618b..dfd08b2 100644 --- a/to_fork_or_not_to_fork.xml +++ b/to_fork_or_not_to_fork.xml @@ -38,6 +38,39 @@ 2005 Benjamin Mako Hill + + + + This material is licensed under the Creative + Commons Attribution-Sharealike 2.0 License. + + The canonical location for the most recent version of this + document is at the author's + website. + + + + + + 0.2 + August 7, 2005 + Correction and improvements. + + + 0.1 + May 15, 2005 + + + The first version of this paper was written to an + accepted talk given at Linuxtag 2005 given in Karlsruhe, + Germany. + + + + + +
@@ -199,7 +232,7 @@ diff, patch, CVS and Subversion which are not optimized for this task. The worse (and much more common) situation occurs when two groups go about their work ignorant or partially ignorant of the - code bieng cut on the other side of the fork. Important features + code being cut on the other side of the fork. Important features and fixes are implemented twice — differently and incompatibly. @@ -253,22 +286,23 @@ here: http://distrowatch.com/dwres.php?resource=independence - — most of them currently active to varying - degrees. Each distribution represents at least one person — - and in most cases a community of people — who disagreed with - Debian's vision or direction strongly enough to want to create - a new distribution and who had the - technical capacity to follow through with this goal. Despite - Debian's long-standing slogan — "the universal operating - system" — the fact that the Debian project has become the - fastest growing operating system while spawning so many - derivatives is testament to the fact that, as far as software - is concerned, one size can not fit - all. - Netcraft posts yearly updates on the speed at which - Linux distributions are growing. The one in question can - be found at: http://news.netcraft.com/archives/2004/01/28/debian_fastest_growing_linux_distribution.html + — most of them + are currently active to varying degrees. Each distribution + represents at least one person — and in most cases a + community of people — who disagreed with Debian's vision + or direction strongly enough to want to create a new + distribution and who had the technical + capacity to follow through with this goal. Despite Debian's + long-standing slogan — "the universal operating system" + — the fact + that the Debian project has become the fastest growing + operating system while spawning so many derivatives is + testament to the fact that, as far as software is concerned, + one size can not fit all. + Netcraft posts yearly updates on the speed at which + Linux distributions are growing. The one in question can be + found at: http://news.netcraft.com/archives/2004/01/28/debian_fastest_growing_linux_distribution.html @@ -358,7 +392,7 @@ most intrusive kind — changes to the code itself. That said, the Ubuntu project is explicit about the fact - that it could not exist with the work done by the Debian + that it could not exist without the work done by the Debian project. You can see that explicit statement on Ubuntu's website here: Scott James Remnant, a prominent Debian developer and a hacker on Ubuntu who works for Canonical Ltd., described the situation this way on his web log to introduce the Ubuntu - development methodology in the week after first public - announcement of Canonical and Ubuntu: - The entire post can be read here: http://www.netsplit.com/blog/work/canonical/ubuntu_and_debian.html + development methodology in the week after the first public + announcement of Canonical and Ubuntu: The + entire post can be read here: http://www.netsplit.com/blog/work/canonical/ubuntu_and_debian.html @@ -402,9 +436,10 @@ - One thing that should be obvious from this is our job is - a lot easier if Debian take all of our changes, the model - actually encourages us to give back to Debian. + One thing that should be obvious from this is that our + job is a lot easier if Debian takes all of our changes. The + model actually encourages us to give back to + Debian. That's why from the very first day we started fixing bugs we began sending That said, the importance of the goals described by Remnant in the context of of the Ubuntu development model - cannot be overstated. Ever line of delta between Debian and + cannot be overstated. Every line of delta between Debian and Ubuntu has a cost for Ubuntu developers. Technology, social practices, and wise choices may reduce that cost but it cannot eliminate it. The resources that Ubuntu can bring to bear upon @@ -473,7 +508,7 @@ needs of its users lies at the heart of the free software movement's success. However, while modification usually comes in the form of collaboration on a single code-base, this is - function of limitations in software development methodologies + a function of limitations in software development methodologies and tools rather than the best response to the needs or desires of users or developers. @@ -482,7 +517,7 @@ single free software project to be multiple things to multiple users simultaneously. This will translate into the fact that, in the next ten years, technology and social processes will - evolve so that forking is increasingly less of a bad thing. + evolve, so that forking is increasingly less of a bad thing. Free software development methodology will become less dependent on a single project and begin to emphasize parallel development within an ecosystem of related projects. The @@ -547,7 +582,7 @@ - By breaking down the problem in this way. Debian derivers + By breaking down the problem in this way, Debian derivers have been able to approach derivation in ways that focus energy on the less intrusive problems first. @@ -571,7 +606,7 @@ metapackages: empty packages with long lists of "dependencies." - The second item, configuration changes, are also + The second item, configuration changes, is also relatively low-impact. Focusing on moving as many changes as possible into the realm of configuration changes is a sustainable strategy that derivers working within the Debian @@ -688,14 +723,14 @@ moment, an incomplete list of free software VCS tools includes GNU Arch, Bazaar, Bazaar-NG, Darcs, Monotone, SVK (based on Subversion), GIT (a system developed by Linus Torvalds as a - temporary replacement for BitKeeper) and others. + replacement for BitKeeper) and others. Each of these tools, at least after they reach a certain level of maturity, allow or will allow users to develop software in a distributed fashion and to, over time, compare their software and pull changes from others significantly more easily than they could otherwise. The idea of parallel - development lies at the heart of the model, the tools for + development lies at the heart of the model. The tools for merging and resolving conflicts over time, and the ability to "cherry pick" certain patches or changes from a parallel developer each make this type of development significantly @@ -710,20 +745,21 @@ In many ways, employing distributed version control effectively is a much easier problem to solve for small, more traditional, free software development projects than it is for - GNU/Linux distributions. Because the problems with maintaining - parallel development of a single piece of software in a set of - related distributed repositories is the primary use case for - distributed version control systems, distributed VCS alone can - be a technical solution for certain types of parallel - development. As the tools and social processes for distributed - VCS evolve, they will become increasingly important tools in - the way that free software is developed. + GNU/Linux distributions. Because the problems associated with + maintaining parallel development of a single piece of software + in a set of related distributed repositories is the primary + use case for distributed version control systems, distributed + VCS alone can be a technical solution for certain types of + parallel development. As the tools and social processes for + distributed VCS evolve, they will become increasingly + important tools in the way that free software is + developed. Because the problems of scale associated with building an entire derivative distribution are more complicated than those associated with working with a single "upstream" project, distributed version control is only now being actively - deployed in the Ubuntu project. In doing so, th project is + deployed in the Ubuntu project. In doing so, the project is focusing on integrating these into problem specific tools built on top of distributed version control. @@ -768,12 +804,12 @@ It has been said that it is a common folly of a technophile to attempt to employ technical solutions toward solving social problems. The problem of deriving software is - both a technical and a social problem and + both a technical and social problem and adequately addressing the larger problems requires approaches that take into consideration both types of solution. Scott James Remnant compares the relationship between - distributions and derived distributions as not unlike the + distributions and derived distributions as similar to the relationship between distributions and upstream maintainers: