Producing Open Source Software(E BOOK) How to Run a Successful Free Software Project Karl Fogel

Publisher: CreativeCommons Attribution 2009Description: 200pDDC classification: 005.1
Contents:
Preface .. vi Why Write This Book? ... vi Who Should Read This Book? ... vi Sources .. vii Acknowledgments .. vii Disclaimer ... ix 1. Introduction ..... 10 History .............. 12 The Rise of Proprietary Software and Free Software .. 12 "Free" Versus "Open Source" ... 16 The Situation Today .. 18 2. Getting Started ......... 19 Starting From What You Have... 20 Choose a Good Name ............... 21 Have a Clear Mission Statement22 State That the Project is Free .. 22 Features and Requirements List 23 Development Status ... 23 Downloads .. 24 Version Control and Bug Tracker Access.... 25 Communications Channels ... 25 Developer Guidelines.. 26 Documentation ........... 26 Example Output and Screenshots.. 29 Canned Hosting .. 29 Choosing a License and Applying It ... 29 The "Do Anything" Licenses .... 30 The GPL ... 30 How to Apply a License to Your Software . 30 Setting the Tone ...... 31 Avoid Private Discussions .... 32 Nip Rudeness in the Bud ...... 33 Practice Conspicuous Code Review ..... 34 When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change ...... 35 Announcing ... 36 3. Technical Infrastructure ....... 38 What a Project Needs .. 39 Mailing Lists ....... 40 Spam Prevention .. 41 Identification and Header Management ... 43 The Great Reply-to Debate ..... 44 Archiving .... 46 Software .. 47 Version Control.. 48 Version Control Vocabulary . 48 Choosing a Version Control System.... 51 Using the Version Control System ...... 51 Bug Tracker 57 Interaction with Mailing Lists ............ 59 Pre-Filtering the Bug Tracker ..... 59 Producing Open Source Software iii IRC / Real-Time Chat Systems ..... 60 Bots .... 61 Archiving IRC ..... 62 RSS Feeds ..... 62 Wikis ......... 63 Web Site................... 64 Canned Hosting ....... 64 4. Social and Political Infrastructure ....... 67 Benevolent Dictators .... 68 Who Can Be a Good Benevolent Dictator? ... 68 Consensus-based Democracy .... 69 Version Control Means You Can Relax.. 70 When Consensus Cannot Be Reached, Vote 70 When To Vote .. 71 Who Votes? .... 72 Polls Versus Votes .. 72 Vetoes .......... 72 Writing It All Down ..... 73 5. Money ..... 75 Types of Involvement ...... 76 Hire for the Long Term .................... 77 Appear as Many, Not as One....................... 78 Be Open About Your Motivations ........................ 79 Money Can't Buy You Love ............ 80 Contracting ............. 81 Review and Acceptance of Changes ......... 83 Funding Non-Programming Activities ................. 83 Quality Assurance (i.e., Professional Testing) ............ 84 Legal Advice and Protection .. 85 Documentation and Usability ..... 85 Providing Hosting/Bandwidth .... 86 Marketing ....... 86 Remember That You Are Being Watched..... 87 Don't Bash Competing Open Source Products ..... 88 6. Communications......... 89 You Are What You Write ................ 89 Structure and Formatting ........... 90 Content ..... 91 Tone ................................. 92 Recognizing Rudeness 94 Avoiding Common Pitfalls . 96 Don't Post Without a Purpose............... 96 Productive vs Unproductive Threads .................................................................... 97 The Softer the Topic, the Longer the Debate ........... 98 Avoid Holy Wars .............. 99 The "Noisy Minority" Effect ............................................................................. 100 Difficult People. 101 Handling Difficult people 101 Case study..................... 102 Handling Growth .............. 103 Conspicuous Use of Archives .............. 105 Codifying Tradition ......................................................................................... 107 No Conversations in the Bug Tracker ................ 110 Producing Open Source Software iv Publicity ..................... 111 Announcing Security Vulnerabilities ................................................................... 112 7. Packaging, Releasing, and Daily Development 118 Release Numbering ................... 118 Release Number Components .......... 119 The Simple Strategy ......... 120 The Even/Odd Strategy ........... 122 Release Branches ....... 122 Mechanics of Release Branches ........ 123 Stabilizing a Release ........................................ 124 Dictatorship by Release Owner 125 Change Voting ............ 125 Packaging ....... 128 Format ................. 128 Name and Layout ............. 128 Compilation and Installation ..... 130 Binary Packages ............................ 131 Testing and Releasing ............................ 132 Candidate Releases ......................... 133 Announcing Releases ............... 133 Maintaining Multiple Release Lines ........ 134 Security Releases ..... 134 Releases and Daily Development ....................... 135 Planning Releases ............ 136 8. Managing Volunteers ......... 138 Getting the Most Out of Volunteers ............ 138 Delegation ................ 139 Praise and Criticism ............ 141 Prevent Territoriality ................................... 142 The Automation Ratio ................ 143 Treat Every User as a Potential Volunteer........ 145 Share Management Tasks as Well as Technical Tasks ...... 147 Patch Manager ........................... 148 Translation Manager ....... 149 Documentation Manager .... 150 Issue Manager ............ 151 FAQ Manager ....... 152 Transitions ................. 152 Committers .......... 154 Choosing Committers ............ 155 Revoking Commit Access ............. 155 Partial Commit Access ................. 156 Dormant Committers .............. 156 Avoid Mystery ......... 157 Credit ..................................... 157 Forks ....... 158 Handling a Fork .............. 159 Initiating a Fork .............. 160 9. Licenses, Copyrights, and Patents............... 162 Terminology..................... 162 Aspects of Licenses ....... 164 The GPL and License Compatibility ....................... 165 Choosing a License .................................................... 166 The MIT / X Window System License ........... 166 Producing Open Source Software v The GNU General Public License .......... 167 What About The BSD License? ............. 169 Copyright Assignment and Ownership ...... 169 Doing Nothing ..................... 170 Contributor License Agreements ........... 170 Transfer of Copyright ...................................................................................... 171 Dual Licensing Schemes ............................ 171 Patents ........................................ 172 Further Resources ............... 174 A. Free Version Control Systems ................................... 176 B. Free Bug Trackers 180 C. Why Should I Care What Color the Bikeshed Is? .............................................................. 183 D. Example Instructions for Reporting Bugs ... 188 E. Copyright .............
Tags from this library: No tags from this library for this title. Log in to add tags.
Item type Current location Home library Collection Call number URL Status Date due Barcode Item holds
Book Book Military College of Signals (MCS)
Military College of Signals (MCS)
NFIC 005.1 FOG (Browse shelf) Link to resource Available MCSEB-1005
Total holds: 0

Preface .. vi Why Write This Book? ... vi Who Should Read This Book? ... vi Sources .. vii Acknowledgments .. vii Disclaimer ... ix 1. Introduction ..... 10 History .............. 12 The Rise of Proprietary Software and Free Software .. 12 "Free" Versus "Open Source" ... 16 The Situation Today .. 18 2. Getting Started ......... 19 Starting From What You Have... 20 Choose a Good Name ............... 21 Have a Clear Mission Statement22 State That the Project is Free .. 22 Features and Requirements List 23 Development Status ... 23 Downloads .. 24 Version Control and Bug Tracker Access.... 25 Communications Channels ... 25 Developer Guidelines.. 26 Documentation ........... 26 Example Output and Screenshots.. 29 Canned Hosting .. 29 Choosing a License and Applying It ... 29 The "Do Anything" Licenses .... 30 The GPL ... 30 How to Apply a License to Your Software . 30 Setting the Tone ...... 31 Avoid Private Discussions .... 32 Nip Rudeness in the Bud ...... 33 Practice Conspicuous Code Review ..... 34 When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change ...... 35 Announcing ... 36 3. Technical Infrastructure ....... 38 What a Project Needs .. 39 Mailing Lists ....... 40 Spam Prevention .. 41 Identification and Header Management ... 43 The Great Reply-to Debate ..... 44 Archiving .... 46 Software .. 47 Version Control.. 48 Version Control Vocabulary . 48 Choosing a Version Control System.... 51 Using the Version Control System ...... 51 Bug Tracker 57 Interaction with Mailing Lists ............ 59 Pre-Filtering the Bug Tracker ..... 59 Producing Open Source Software iii IRC / Real-Time Chat Systems ..... 60 Bots .... 61 Archiving IRC ..... 62 RSS Feeds ..... 62 Wikis ......... 63 Web Site................... 64 Canned Hosting ....... 64 4. Social and Political Infrastructure ....... 67 Benevolent Dictators .... 68 Who Can Be a Good Benevolent Dictator? ... 68 Consensus-based Democracy .... 69 Version Control Means You Can Relax.. 70 When Consensus Cannot Be Reached, Vote 70 When To Vote .. 71 Who Votes? .... 72 Polls Versus Votes .. 72 Vetoes .......... 72 Writing It All Down ..... 73 5. Money ..... 75 Types of Involvement ...... 76 Hire for the Long Term .................... 77 Appear as Many, Not as One....................... 78 Be Open About Your Motivations ........................ 79 Money Can't Buy You Love ............ 80 Contracting ............. 81 Review and Acceptance of Changes ......... 83 Funding Non-Programming Activities ................. 83 Quality Assurance (i.e., Professional Testing) ............ 84 Legal Advice and Protection .. 85 Documentation and Usability ..... 85 Providing Hosting/Bandwidth .... 86 Marketing ....... 86 Remember That You Are Being Watched..... 87 Don't Bash Competing Open Source Products ..... 88 6. Communications......... 89 You Are What You Write ................ 89 Structure and Formatting ........... 90 Content ..... 91 Tone ................................. 92 Recognizing Rudeness 94 Avoiding Common Pitfalls . 96 Don't Post Without a Purpose............... 96 Productive vs Unproductive Threads .................................................................... 97 The Softer the Topic, the Longer the Debate ........... 98 Avoid Holy Wars .............. 99 The "Noisy Minority" Effect ............................................................................. 100 Difficult People. 101 Handling Difficult people 101 Case study..................... 102 Handling Growth .............. 103 Conspicuous Use of Archives .............. 105 Codifying Tradition ......................................................................................... 107 No Conversations in the Bug Tracker ................ 110 Producing Open Source Software iv Publicity ..................... 111 Announcing Security Vulnerabilities ................................................................... 112 7. Packaging, Releasing, and Daily Development 118 Release Numbering ................... 118 Release Number Components .......... 119 The Simple Strategy ......... 120 The Even/Odd Strategy ........... 122 Release Branches ....... 122 Mechanics of Release Branches ........ 123 Stabilizing a Release ........................................ 124 Dictatorship by Release Owner 125 Change Voting ............ 125 Packaging ....... 128 Format ................. 128 Name and Layout ............. 128 Compilation and Installation ..... 130 Binary Packages ............................ 131 Testing and Releasing ............................ 132 Candidate Releases ......................... 133 Announcing Releases ............... 133 Maintaining Multiple Release Lines ........ 134 Security Releases ..... 134 Releases and Daily Development ....................... 135 Planning Releases ............ 136 8. Managing Volunteers ......... 138 Getting the Most Out of Volunteers ............ 138 Delegation ................ 139 Praise and Criticism ............ 141 Prevent Territoriality ................................... 142 The Automation Ratio ................ 143 Treat Every User as a Potential Volunteer........ 145 Share Management Tasks as Well as Technical Tasks ...... 147 Patch Manager ........................... 148 Translation Manager ....... 149 Documentation Manager .... 150 Issue Manager ............ 151 FAQ Manager ....... 152 Transitions ................. 152 Committers .......... 154 Choosing Committers ............ 155 Revoking Commit Access ............. 155 Partial Commit Access ................. 156 Dormant Committers .............. 156 Avoid Mystery ......... 157 Credit ..................................... 157 Forks ....... 158 Handling a Fork .............. 159 Initiating a Fork .............. 160 9. Licenses, Copyrights, and Patents............... 162 Terminology..................... 162 Aspects of Licenses ....... 164 The GPL and License Compatibility ....................... 165 Choosing a License .................................................... 166 The MIT / X Window System License ........... 166 Producing Open Source Software v The GNU General Public License .......... 167 What About The BSD License? ............. 169 Copyright Assignment and Ownership ...... 169 Doing Nothing ..................... 170 Contributor License Agreements ........... 170 Transfer of Copyright ...................................................................................... 171 Dual Licensing Schemes ............................ 171 Patents ........................................ 172 Further Resources ............... 174 A. Free Version Control Systems ................................... 176 B. Free Bug Trackers 180 C. Why Should I Care What Color the Bikeshed Is? .............................................................. 183 D. Example Instructions for Reporting Bugs ... 188 E. Copyright .............

There are no comments on this title.

to post a comment.
© 2023 Central Library, National University of Sciences and Technology. All Rights Reserved.