
Producing Open Source Software How to Run a Successful Free Software Project Karl Fogel Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel Copyright © 2005-2013 Karl Fogel, under a CreativeCommons Attribution-ShareAlike (3.0) license [http:// creativecommons.org/licenses/by/3.0/]. Dedication This book is dedicated to two dear friends without whom it would not have been possible: Karen Under- hill and Jim Blandy. i Table of Contents Preface ............................................................................................................................. vi Why Write This Book? ............................................................................................... vi Who Should Read This Book? ..................................................................................... vi Sources .................................................................................................................... vii Acknowledgments .................................................................................................... viii Disclaimer ................................................................................................................. ix 1. Introduction .................................................................................................................... 1 History ...................................................................................................................... 3 The Rise of Proprietary Software and Free Software ................................................. 4 "Free" Versus "Open Source" ................................................................................ 7 The Situation Today .................................................................................................... 9 2. Getting Started .............................................................................................................. 11 Starting From What You Have .................................................................................... 12 Choose a Good Name ........................................................................................ 13 Have a Clear Mission Statement .......................................................................... 15 State That the Project is Free .............................................................................. 15 Features and Requirements List ........................................................................... 16 Development Status ........................................................................................... 16 Downloads ....................................................................................................... 17 Version Control and Bug Tracker Access .............................................................. 18 Communications Channels .................................................................................. 19 Developer Guidelines ......................................................................................... 19 Documentation .................................................................................................. 20 Demos, Screenshots, Videos, and Example Output .................................................. 22 Hosting ............................................................................................................ 23 Choosing a License and Applying It ............................................................................. 24 The "Do Anything" Licenses ............................................................................... 24 The GPL .......................................................................................................... 25 How to Apply a License to Your Software ............................................................ 25 Setting the Tone ........................................................................................................ 26 Avoid Private Discussions ................................................................................... 27 Nip Rudeness in the Bud .................................................................................... 28 Practice Conspicuous Code Review ...................................................................... 29 Be Open From Day One ..................................................................................... 30 When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change ............................................................................................................ 32 Announcing .............................................................................................................. 33 3. Technical Infrastructure .................................................................................................. 36 What a Project Needs ................................................................................................. 37 Web Site .................................................................................................................. 38 Canned Hosting ................................................................................................. 39 Mailing Lists / Message Forums ................................................................................... 41 Choosing the Right Forum Management Software ................................................... 42 Version Control ......................................................................................................... 50 Version Control Vocabulary ................................................................................ 51 Choosing a Version Control System ..................................................................... 54 Using the Version Control System ........................................................................ 54 Tools for commit review .................................................................................... 58 Bug Tracker ............................................................................................................. 59 Interaction with Mailing Lists .............................................................................. 61 Pre-Filtering the Bug Tracker .............................................................................. 62 ii Producing Open Source Software IRC / Real-Time Chat Systems .................................................................................... 63 Bots ................................................................................................................ 64 Archiving IRC .................................................................................................. 65 RSS Feeds ................................................................................................................ 66 Wikis ....................................................................................................................... 66 Social Networking Services ......................................................................................... 67 4. Social and Political Infrastructure ..................................................................................... 69 Benevolent Dictators .................................................................................................. 70 Who Can Be a Good Benevolent Dictator? ............................................................ 70 Consensus-based Democracy ....................................................................................... 71 Version Control Means You Can Relax ................................................................. 72 When Consensus Cannot Be Reached, Vote ........................................................... 72 When To Vote .................................................................................................. 73 Who Votes? ...................................................................................................... 74 Polls Versus Votes ............................................................................................ 74 Vetoes ............................................................................................................. 75 Writing It All Down .................................................................................................. 75 Joining or Creating a Non-Profit Organization ................................................................ 76 5. Money ......................................................................................................................... 77 Crowdfunding: Kickstarter, etc .................................................................................... 78 Types of Corporate Involvement .................................................................................. 78 Hire for the Long Term .............................................................................................. 79 Appear as Many, Not as One ...................................................................................... 80 Be Open About Your Motivations ................................................................................ 81 Money Can't Buy You Love ........................................................................................ 82 Contracting ............................................................................................................... 83 Review and Acceptance of Changes ..................................................................... 85 Funding
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages219 Page
-
File Size-