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-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 Underhill 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 ................................................. 3 "Free" Versus "Open Source" ............................................................................... 7 The Situation Today ................................................................................................... 9 2. Getting Started .............................................................................................................. 10 Starting From What You Have .................................................................................... 11 Choose a Good Name ........................................................................................ 12 Have a Clear Mission Statement .......................................................................... 13 State That the Project is Free .............................................................................. 13 Features and Requirements List ........................................................................... 14 Development Status ........................................................................................... 14 Downloads ....................................................................................................... 15 Version Control and Bug Tracker Access .............................................................. 16 Communications Channels .................................................................................. 16 Developer Guidelines ........................................................................................ 17 Documentation ................................................................................................. 17 Example Output and Screenshots ......................................................................... 20 Canned Hosting ................................................................................................ 20 Choosing a License and Applying It ............................................................................ 21 The "Do Anything" Licenses .............................................................................. 21 The GPL ......................................................................................................... 21 How to Apply a License to Your Software ............................................................ 21 Setting the Tone ....................................................................................................... 22 Avoid Private Discussions .................................................................................. 23 Nip Rudeness in the Bud ................................................................................... 24 Practice Conspicuous Code Review ...................................................................... 25 When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change ............................................................................................................ 26 Announcing ............................................................................................................. 27 3. Technical Infrastructure .................................................................................................. 29 What a Project Needs ................................................................................................ 30 Mailing Lists ............................................................................................................ 31 Spam Prevention ............................................................................................... 32 Identification and Header Management ................................................................. 34 The Great Reply-to Debate ................................................................................. 35 Archiving ........................................................................................................ 37 Software .......................................................................................................... 38 Version Control ........................................................................................................ 39 Version Control Vocabulary ............................................................................... 40 Choosing a Version Control System ..................................................................... 42 Using the Version Control System ....................................................................... 43 Bug Tracker ............................................................................................................. 48 Interaction with Mailing Lists ............................................................................. 50 Pre-Filtering the Bug Tracker .............................................................................. 50 ii Producing Open Source Software IRC / Real-Time Chat Systems .................................................................................... 52 Bots ................................................................................................................ 53 Archiving IRC .................................................................................................. 54 RSS Feeds ............................................................................................................... 54 Wikis ...................................................................................................................... 54 Web Site ................................................................................................................. 56 Canned Hosting ................................................................................................ 56 Social Networking Services ........................................................................................ 58 4. Social and Political Infrastructure ..................................................................................... 59 Benevolent Dictators ................................................................................................. 60 Who Can Be a Good Benevolent Dictator? ............................................................ 60 Consensus-based Democracy ...................................................................................... 61 Version Control Means You Can Relax ................................................................ 62 When Consensus Cannot Be Reached, Vote ........................................................... 62 When To Vote ................................................................................................. 63 Who Votes? ..................................................................................................... 64 Polls Versus Votes ............................................................................................ 64 Vetoes ............................................................................................................ 65 Writing It All Down .................................................................................................. 65 Joining or Creating a Non-Profit Organization ............................................................... 66 5. Money ......................................................................................................................... 67 Crowdfunding: Kickstarter, etc .................................................................................... 68 Types of Corporate Involvement .................................................................................. 68 Hire for the Long Term ............................................................................................. 69 Appear as Many, Not as One ...................................................................................... 70 Be Open About Your Motivations ............................................................................... 71 Money Can't Buy You Love ....................................................................................... 72 Contracting .............................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    207 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