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 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

View Full Text

Details

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