Producing Open Source Software How to Run a Successful Free Software Project

Producing Open Source Software How to Run a Successful Free Software Project

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 Karl Fogel, under a CreativeCommons Attribution-ShareAlike license 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 ......................................................................................................................v Why Write This Book? ........................................................................................ v Who Should Read This Book? ............................................................................... v Sources ............................................................................................................vi Acknowledgments .............................................................................................. vi Disclaimer ...................................................................................................... viii 1. Introduction ............................................................................................................ 9 History ............................................................................................................ 11 The Rise of Proprietary Software and Free Software ........................................ 11 "Free" Versus "Open Source" ...................................................................... 14 The Situation Today .......................................................................................... 16 2. Getting Started ...................................................................................................... 18 Starting From What You Have ............................................................................. 19 Choose a Good Name ................................................................................ 20 Have a Clear Mission Statement ................................................................... 21 State That the Project is Free ....................................................................... 21 Features and Requirements List ................................................................... 22 Development Status ................................................................................... 22 Downloads .............................................................................................. 23 Version Control and Bug Tracker Access ....................................................... 23 Communications Channels .......................................................................... 24 Developer Guidelines ................................................................................. 25 Documentation ......................................................................................... 25 Example Output and Screenshots ................................................................. 27 Canned Hosting ........................................................................................ 28 Choosing a License and Applying It ..................................................................... 28 The "Do Anything" Licenses ....................................................................... 28 The GPL ................................................................................................. 28 How to Apply a License to Your Software ..................................................... 28 Setting the Tone ................................................................................................ 29 Avoid Private Discussions .......................................................................... 30 Nip Rudeness in the Bud ............................................................................ 31 Practice Conspicuous Code Review .............................................................. 32 When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change ................................................................................................... 33 Announcing ..................................................................................................... 34 3. Technical Infrastructure .......................................................................................... 36 What a Project Needs ......................................................................................... 37 Mailing Lists .................................................................................................... 37 Spam Prevention ....................................................................................... 39 Identification and Header Management ......................................................... 41 The Great Reply-to Debate ......................................................................... 42 Archiving ................................................................................................ 44 Software .................................................................................................. 45 Version Control ................................................................................................ 46 Version Control Vocabulary ........................................................................ 46 Choosing a Version Control System .............................................................. 49 Using the Version Control System ................................................................ 49 Bug Tracker ..................................................................................................... 54 Interaction with Mailing Lists ...................................................................... 56 Pre-Filtering the Bug Tracker ...................................................................... 56 IRC / Real-Time Chat Systems ............................................................................ 58 Bots ........................................................................................................ 59 ii Producing Open Source Software Archiving IRC .......................................................................................... 59 Wikis .............................................................................................................. 60 Web Site ......................................................................................................... 61 Canned Hosting ........................................................................................ 61 4. Social and Political Infrastructure ............................................................................. 63 Benevolent Dictators ......................................................................................... 64 Who Can Be a Good Benevolent Dictator? ..................................................... 64 Consensus-based Democracy ............................................................................... 65 Version Control Means You Can Relax ......................................................... 65 When Consensus Cannot Be Reached, Vote ................................................... 66 When To Vote .......................................................................................... 67 Who Votes? ............................................................................................. 67 Polls Versus Votes .................................................................................... 68 Vetoes .................................................................................................... 68 Writing It All Down .......................................................................................... 69 5. Money ................................................................................................................. 71 Types of Involvement ........................................................................................ 72 Hire for the Long Term ...................................................................................... 73 Appear as Many, Not as One ............................................................................... 74 Be Open About Your Motivations ........................................................................ 74 Money Can't Buy You Love ................................................................................ 76 Contracting ...................................................................................................... 77 Review and Acceptance of Changes .............................................................. 78 Funding Non-Programming Activities ................................................................... 79 Quality Assurance (i.e., Professional Testing) ................................................. 79 Legal Advice and Protection ....................................................................... 80 Documentation and Usability ...................................................................... 81 Providing Hosting/Bandwidth ...................................................................... 81 Marketing ........................................................................................................ 81 Remember That You Are Being Watched ...................................................... 82 Don't Bash Competing Open Source Products ................................................. 83 6. Communications ...................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    184 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us