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-2018 Karl Fogel, under the CreativeCommons Attribution-ShareAlike (4.0) license. Version: 2.3098 Home site: http://producingoss.com/ 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? .................................................................................... vii Sources ................................................................................................................... vii Acknowledgements ................................................................................................... viii For the first edition (2005) ................................................................................ viii For the second edition (2017) ............................................................................... x Disclaimer .............................................................................................................. xiii 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 ......................................................................................................... 24 How to Apply a License to Your Software ............................................................ 25 Setting the Tone ....................................................................................................... 26 Avoid Private Discussions .................................................................................. 26 Nip Rudeness in the Bud .................................................................................... 28 Codes of Conduct ............................................................................................. 29 Practice Conspicuous Code Review ...................................................................... 29 Be Open From Day One .................................................................................... 31 Opening a Formerly Closed Project .............................................................................. 33 Announcing .............................................................................................................. 34 3. Technical Infrastructure .................................................................................................. 37 What a Project Needs ................................................................................................ 38 Web Site ................................................................................................................. 39 Canned Hosting ................................................................................................ 40 Mailing Lists / Message Forums .................................................................................. 42 Choosing the Right Forum Management Software .................................................. 44 Version Control ........................................................................................................ 52 Version Control Vocabulary ................................................................................ 53 Choosing a Version Control System ..................................................................... 56 Using the Version Control System ....................................................................... 57 Receiving and Reviewing Contributions ................................................................ 60 Bug Tracker ............................................................................................................. 62 ii Producing Open Source Software Interaction with Email ........................................................................................ 64 Pre-Filtering the Bug Tracker .............................................................................. 65 IRC / Real-Time Chat Systems .................................................................................... 66 IRC Bots ......................................................................................................... 68 Archiving IRC .................................................................................................. 68 Wikis ...................................................................................................................... 69 Wikis and Spam ............................................................................................... 69 Choosing a Wiki ............................................................................................... 70 Q&A Forums ........................................................................................................... 70 Translation Infrastructure ............................................................................................ 71 Social Networking Services ........................................................................................ 71 4. Social and Political Infrastructure ..................................................................................... 73 Forkability ............................................................................................................... 73 Benevolent Dictators .................................................................................................. 74 Who Can Be a Good Benevolent Dictator? ............................................................ 74 Consensus-based Democracy ....................................................................................... 75 Version Control Means You Can Relax ................................................................ 76 When Consensus Cannot Be Reached, Vote ........................................................... 76 When To Vote .................................................................................................. 77 Who Votes? ..................................................................................................... 78 Polls Versus Votes ............................................................................................ 79 Vetoes ............................................................................................................. 79 Writing It All Down .................................................................................................. 80 Joining or Creating a Non-Profit Organization ................................................................ 81 5. Participating as a Business, Non-Profit, or Government Agency ............................................. 83 The Economics of Open Source .................................................................................. 83 Types of Corporate Involvement .................................................................................. 84 Governments

View Full Text

Details

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