Synopses & Reviews
The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their time and energy to create better software.
The truth is, however, that the overwhelming majority of free software projects fail. To help you beat the odds, O'Reilly has put together Producing Open Source Software, a guide that recommends tried and true steps to help free software developers work together toward a common goal. Not just for developers who are considering starting their own free software project, this book will also help those who want to participate in the process at any level.
The book tackles this very complex topic by distilling it down into easily understandable parts. Starting with the basics of project management, it details specific tools used in free software projects, including version control, IRC, bug tracking, and Wikis. Author Karl Fogel, known for his work on CVS and Subversion, offers practical advice on how to set up and use a range of tools in combination with open mailing lists and archives. He also provides several chapters on the essentials of recruiting and motivating developers, as well as how to gain much-needed publicity for your project.
While managing a team of enthusiastic developers -- most of whom you've never even met -- can be challenging, it can also be fun. Producing Open Source Software takes this into account, too, as it speaks of the sheer pleasure to be had from working with a motivated team of free software developers.
Not just for developers who are considering starting their own free software project, this book will also help those who want to participate in the process at any level. The book tackles this very complex topic by distilling it down into easily understandable parts.
While managing a team of enthusiastic developers -- most of whom you've never even met -- can be challenging, it can also be fun. "Producing Open Source Software" takes this into account, too, as it speaks of the sheer pleasure to be had from working with a motivated team of free software developers.
About the Author
In 1995, Karl Fogel co-founded Cyclic Software, a company offering commercial CVS support. In 1999 he added support for CVS anonymous read-only repository access, inaugurating a new standard for access to development sources in open source projects. That same year, he wrote "Open Source Development With CVS" (published by Coriolis), now in its third edition via Paraglyph Press.Since early 2000, he has worked for CollabNet, Inc, managing the creation and development of Subversion, a version control system written from scratch by CollabNet and a team of open source volunteers, and meant to replace CVS as the de facto standard among open source projects. He also participates in various other open source projects as a module maintainer, patch contributor, and documentation writer.
Table of Contents
Dedication; Foreword; Preface; Why Write This Book?; Who Should Read This Book?; How to Use This Book; Sources; Conventions; Comments and Questions; Safari Enabled; Acknowledgments; Disclaimer; Chapter 1: Introduction; 1.1 History; 1.2 The Situation Today; Chapter 2: Getting Started; 2.1 First, Look Around; 2.2 Starting from What You Have; 2.3 Choosing a License and Applying It; 2.4 Setting the Tone; 2.5 Announcing; Chapter 3: Technical Infrastructure; 3.1 What a Project Needs; 3.2 Mailing Lists; 3.3 Version Control; 3.4 Bug Tracker; 3.5 IRC/Real-Time Chat Systems; 3.6 Wikis; 3.7 Web Site; Chapter 4: Social and Political Infrastructure; 4.1 Forkability; 4.2 Benevolent Dictators; 4.3 Consensus-Based Democracy; 4.4 Writing It All Down; Chapter 5: Money; 5.1 Types of Involvement; 5.2 Hire for the Long Term; 5.3 Appear as Many, Not as One; 5.4 Be Open About Your Motivations; 5.5 Money Can't Buy You Love; 5.6 Contracting; 5.7 Funding Non-Programming Activities; 5.8 Marketing; Chapter 6: Communications; 6.1 You Are What You Write; 6.2 Avoiding Common Pitfalls; 6.3 Difficult People; 6.4 Handling Growth; 6.5 No Conversations in the Bug Tracker; 6.6 Publicity; Chapter 7: Packaging, Releasing, and Daily Development; 7.1 Release Numbering; 7.2 Release Branches; 7.3 Stabilizing a Release; 7.4 Packaging; 7.5 Testing and Releasing; 7.6 Maintaining Multiple Release Lines; 7.7 Releases and Daily Development; Chapter 8: Managing Volunteers; 8.1 Getting the Most Out of Volunteers; 8.2 Share Management Tasks as Well as Technical Tasks; 8.3 Transitions; 8.4 Committers; 8.5 Credit; 8.6 Forks; Chapter 9: Licenses, Copyrights, and Patents; 9.1 Terminology; 9.2 Aspects of Licenses; 9.3 The GPL and License Compatibility; 9.4 Choosing a License; 9.5 Copyright Assignment and Ownership; 9.6 Dual Licensing Schemes; 9.7 Patents; 9.8 Further Resources; Appendix A: Free Version Control Systems; A.1 Subversion; A.2 SVK; A.3 Arch; A.4 monotone; A.5 Codeville; A.6 Vesta; A.7 Darcs; A.8 Aegis; A.9 CVSNT; A.10 Meta-CVS; A.11 OpenCM; A.12 Stellation; A.13 PRCS; A.14 Bazaar; A.15 Bazaar-NG; A.16 ArX; A.17 SourceJammer; A.18 FastCST; A.19 GIT; A.20 Superversion; Appendix B: Free Bug Trackers; B.1 Bugzilla; B.2 GNATS; B.3 RT; B.4 Trac; B.5 Roundup; B.6 Mantis; B.7 Scarab; B.8 DBTS; B.9 Trouble-Ticket Trackers; B.10 BTT; Appendix C: Why Should I Care What Color the Bikeshed Is?; Appendix D: Example Instructions for Reporting Bugs; Colophon;