The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their time an
Producing Open Source Software: How to Run a Successful Free Software Project
β Scribed by Fogel, Karl
- Publisher
- O'Reilly Media, Inc
- Year
- 2005;2009
- Tongue
- English
- Leaves
- 304
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their time and energy to create better software.
The truth is, however, that the overwhelming majority of free software projects fail. To help you beat the odds, O'Reilly has put togetherProducing Open Source Software, a guide that recommends tried and true steps to help free software developers work together toward a common goal. Not just for developers who are considering starting their own free software project, this book will also help those who want to participate in the process at any level.
The book tackles this very complex topic by distilling it down into easily understandable parts. Starting with the basics of project management, it details specific tools used in free software projects, including version control, IRC, bug tracking, and Wikis. Author Karl Fogel, known for his work on CVS and Subversion, offers practical advice on how to set up and use a range of tools in combination with open mailing lists and archives. He also provides several chapters on the essentials of recruiting and motivating developers, as well as how to gain much-needed publicity for your project.
While managing a team of enthusiastic developers -- most of whom you've never even met -- can be challenging, it can also be fun.Producing Open Source Softwaretakes this into account, too, as it speaks of the sheer pleasure to be had from working with a motivated team of free software developers.
β¦ Table of Contents
Copyright......Page 4
Dedication......Page 5
Table of Contents......Page 7
Foreword......Page 11
Why Write This Book?......Page 15
Who Should Read This Book?......Page 16
How to Use This Book......Page 17
Sources......Page 18
Comments and Questions......Page 19
Acknowledgments......Page 20
Disclaimer......Page 22
Introduction......Page 23
History......Page 26
The Rise of Proprietary Software and Free Software......Page 27
Conscious resistance......Page 28
Accidental resistance......Page 31
Free Versus Open Source......Page 33
The Situation Today......Page 36
Getting Started......Page 39
First, Look Around......Page 41
Starting from What You Have......Page 42
Choose a Good Name......Page 43
Have a Clear Mission Statement......Page 44
State that the Project Is Free......Page 45
Development Status......Page 46
Downloads......Page 47
Version Control and Bug Tracker Access......Page 48
Communications Channels......Page 49
Documentation......Page 50
Availability of documentation......Page 52
Developer documentation......Page 53
Canned Hosting......Page 54
The βDo Anythingβ Licenses......Page 55
How to Apply a License to Your Software......Page 56
Setting the Tone......Page 57
Avoid Private Discussions......Page 58
Nip Rudeness in the Bud......Page 60
Practice Conspicuous Code Review......Page 61
When Opening a Formerly Closed Project, Be Sensitive to the Magnitude of the Change......Page 63
Announcing......Page 65
Technical Infrastructure......Page 67
What a Project Needs......Page 69
Mailing Lists......Page 70
Filtering posts......Page 72
Address hiding in archives......Page 74
Identification and Header Management......Page 75
The Great Reply-to Debate......Page 77
Two fantasies......Page 79
Archiving......Page 80
Software......Page 81
Version Control......Page 82
Version Control Vocabulary......Page 83
Choosing a Version Control System......Page 86
Using the Version Control System......Page 87
Browseability......Page 88
Commit emails......Page 89
Use branches to avoid bottlenecks......Page 91
Singularity of information......Page 92
Authorization......Page 93
Bug Tracker......Page 95
Interaction with Mailing Lists......Page 98
Prefiltering the Bug Tracker......Page 99
IRC/Real-Time Chat Systems......Page 101
Bots......Page 102
Archiving IRC......Page 103
Wikis......Page 104
Canned Hosting......Page 106
Choosing a canned hosting site......Page 107
Anonymity and involvement......Page 108
Social and Political Infrastructure......Page 109
Forkability......Page 110
Who Can Be a Good Benevolent Dictator?......Page 111
Consensus-Based Democracy......Page 112
When Consensus Cannot Be Reached, Vote......Page 114
When to Vote......Page 116
Who Votes?......Page 117
Vetoes......Page 118
Writing It All Down......Page 119
Money......Page 121
Types of Involvement......Page 123
Hire for the Long Term......Page 125
Appear as Many, Not as One......Page 126
Be Open About Your Motivations......Page 127
Money Canβt Buy You Love......Page 129
Contracting......Page 131
Case study: the CVS password-authentication protocol......Page 134
Funding Non-Programming Activities......Page 135
Quality Assurance (i.e., Professional Testing)......Page 136
Legal Advice and Protection......Page 137
Providing Hosting/Bandwidth......Page 138
Remember That You Are Being Watched......Page 139
Donβt Bash Competing Open Source Products......Page 141
Communications......Page 143
You Are What You Write......Page 144
Structure and Formatting......Page 145
Content......Page 146
Tone......Page 148
Recognizing Rudeness......Page 150
Face......Page 151
Donβt Post Without a Purpose......Page 154
Productive Versus Unproductive Threads......Page 155
The Softer the Topic, the Longer the Debate......Page 157
Avoid Holy Wars......Page 158
The βNoisy Minorityβ Effect......Page 160
Handling Difficult People......Page 161
Case Study......Page 163
Handling Growth......Page 164
Conspicuous Use of Archives......Page 166
Treat all resources like archives......Page 168
Codifying Tradition......Page 169
No Conversations in the Bug Tracker......Page 173
Publicity......Page 175
Announcing Security Vulnerabilities......Page 177
Receive the report......Page 178
Develop the fix quietly......Page 179
CAN/CVE numbers......Page 180
Pre-notification......Page 182
Distribute the fix publicly......Page 183
Packaging, Releasing, and Daily Development......Page 185
Release Numbering......Page 186
Release Number Components......Page 187
The Simple Strategy......Page 189
The Even/Odd Strategy......Page 191
Release Branches......Page 192
Mechanics of Release Branches......Page 193
Stabilizing a Release......Page 195
Change Voting......Page 196
Managing collaborative release stabilization......Page 198
Release manager......Page 199
Name and Layout......Page 200
To capitalize or not to capitalize......Page 203
Compilation and Installation......Page 204
Binary Packages......Page 205
Testing and Releasing......Page 207
Announcing Releases......Page 208
Maintaining Multiple Release Lines......Page 209
Security Releases......Page 210
Releases and Daily Development......Page 211
Planning Releases......Page 212
Managing Volunteers......Page 215
Getting the Most Out of Volunteers......Page 216
Delegation......Page 217
Distinguish clearly between inquiry and assignment......Page 218
Notice what people are interested in......Page 219
Praise and Criticism......Page 220
Prevent Territoriality......Page 221
Automated testing......Page 224
Treat Every User as a Potential Volunteer......Page 227
Share Management Tasks as Well as Technical Tasks......Page 230
Patch Manager......Page 231
Translation Manager......Page 232
Documentation Manager......Page 234
Issue Manager......Page 235
FAQ Manager......Page 237
Transitions......Page 238
Committers......Page 241
Choosing Committers......Page 242
Partial Commit Access......Page 243
Dormant Committers......Page 244
Credit......Page 245
Forks......Page 247
Handling a Fork......Page 248
Initiating a Fork......Page 250
Terminology......Page 253
Aspects of Licenses......Page 257
The GPL and License Compatibility......Page 258
The MIT/X Window System License......Page 260
Is the GPL free or not free?......Page 261
What About The BSD License?......Page 262
Copyright Assignment and Ownership......Page 263
Dual Licensing Schemes......Page 264
Patents......Page 265
Further Resources......Page 268
Subversion......Page 271
Codeville......Page 272
Darcs......Page 273
OpenCM......Page 274
Bazaar-NG......Page 275
GIT......Page 276
Superversion......Page 277
Bugzilla......Page 279
Roundup......Page 280
DBTS......Page 281
BTT......Page 282
Why Should I Care What Color the Bikeshed Is?......Page 283
Example Instructions for Reporting Bugs......Page 291
Index......Page 295
About the Author......Page 303
Colophon......Page 304
β¦ Subjects
Nonfiction;Computer Science;Programming;Software;Science;Technology;Business;Management;Computers;Philosophy;Reference;Technical
π SIMILAR VOLUMES
<div><p> The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their
<div><p> The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP). Each is the result of a publicly collaborative process among numerous developers who volunteer their
Producing Open Source Software is a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software.