Producing Open Source Software How to Run a Successful Free Software Project

Total Page:16

File Type:pdf, Size:1020Kb

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-2017 Karl Fogel, under the CreativeCommons Attribution-ShareAlike (4.0) license [http://cre- ativecommons.org/licenses/by-sa/4.0/]. Version: 2.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? .................................................................................... 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
Recommended publications
  • Debian 1 Debian
    Debian 1 Debian Debian Part of the Unix-like family Debian 7.0 (Wheezy) with GNOME 3 Company / developer Debian Project Working state Current Source model Open-source Initial release September 15, 1993 [1] Latest release 7.5 (Wheezy) (April 26, 2014) [±] [2] Latest preview 8.0 (Jessie) (perpetual beta) [±] Available in 73 languages Update method APT (several front-ends available) Package manager dpkg Supported platforms IA-32, x86-64, PowerPC, SPARC, ARM, MIPS, S390 Kernel type Monolithic: Linux, kFreeBSD Micro: Hurd (unofficial) Userland GNU Default user interface GNOME License Free software (mainly GPL). Proprietary software in a non-default area. [3] Official website www.debian.org Debian (/ˈdɛbiən/) is an operating system composed of free software mostly carrying the GNU General Public License, and developed by an Internet collaboration of volunteers aligned with the Debian Project. It is one of the most popular Linux distributions for personal computers and network servers, and has been used as a base for other Linux distributions. Debian 2 Debian was announced in 1993 by Ian Murdock, and the first stable release was made in 1996. The development is carried out by a team of volunteers guided by a project leader and three foundational documents. New distributions are updated continually and the next candidate is released after a time-based freeze. As one of the earliest distributions in Linux's history, Debian was envisioned to be developed openly in the spirit of Linux and GNU. This vision drew the attention and support of the Free Software Foundation, who sponsored the project for the first part of its life.
    [Show full text]
  • SPI Annual Report 2015
    Software in the Public Interest, Inc. 2015 Annual Report July 12, 2016 To the membership, board and friends of Software in the Public Interest, Inc: As mandated by Article 8 of the SPI Bylaws, I respectfully submit this annual report on the activities of Software in the Public Interest, Inc. and extend my thanks to all of those who contributed to the mission of SPI in the past year. { Martin Michlmayr, SPI Secretary 1 Contents 1 President's Welcome3 2 Committee Reports4 2.1 Membership Committee.......................4 2.1.1 Statistics...........................4 3 Board Report5 3.1 Board Members............................5 3.2 Board Changes............................6 3.3 Elections................................6 4 Treasurer's Report7 4.1 Income Statement..........................7 4.2 Balance Sheet............................. 13 5 Member Project Reports 16 5.1 New Associated Projects....................... 16 5.2 Updates from Associated Projects................. 16 5.2.1 0 A.D.............................. 16 5.2.2 Chakra............................ 16 5.2.3 Debian............................. 17 5.2.4 Drizzle............................. 17 5.2.5 FFmpeg............................ 18 5.2.6 GNU TeXmacs........................ 18 5.2.7 Jenkins............................ 18 5.2.8 LibreOffice.......................... 18 5.2.9 OFTC............................. 19 5.2.10 PostgreSQL.......................... 19 5.2.11 Privoxy............................ 19 5.2.12 The Mana World....................... 19 A About SPI 21 2 Chapter 1 President's Welcome SPI continues to focus on our core services, quietly and competently supporting the activities of our associated projects. A huge thank-you to everyone, particularly our board and other key volun- teers, whose various contributions of time and attention over the last year made continued SPI operations possible! { Bdale Garbee, SPI President 3 Chapter 2 Committee Reports 2.1 Membership Committee 2.1.1 Statistics On January 1, 2015 we had 512 contributing and 501 non-contributing mem- bers.
    [Show full text]
  • Social Dynamics of Free and Open Source Team Communications
    Social dynamics of free and open source team communications James Howison, Keisuke Inoue, and Kevin Crowston School of Information Studies Syracuse University Syracuse, USA {jhowison,kinoue,crowston}@syr.edu Abstract 1 This paper furthers inquiry into the social structure of free and open source software (FLOSS) teams by undertaking social network analysis across time. Contrary to expectations, we confirmed earlier findings of a wide distribution of centralizations even when examining the networks over time. The paper also provides empir- ical evidence that while change at the center of FLOSS projects is relatively uncommon, participation across the project communities is highly skewed, with many participants appearing for only one pe- riod. Surprisingly, large project teams are not more likely to undergo change at their centers. Keywords: Software Development, Human Fac- tors, Dynamic social networks, FLOSS teams, bug fixing, communications, longitudinal social network analysis 1 Introduction and Literature Review Free/Libre Open Source Software (FLOSS2) is a broad term used to em- brace software developed and released under an “open source” license allowing inspection, modification and redistribution of the software’s source without charge (“free as in beer”). Much though not all of this software is also “free software,” meaning that derivative works must be made available under the same unrestrictive license terms (“free as in speech”, thus “libre”). We study 1 Acknowledgement: This research was partially supported by NSF Grants 03– 41475, 04–14468 and 05–27457. Any opinions, findings, and conclusions or rec- ommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation 2 The free software movement and the open source movement are distinct and have different philosophies but mostly common practices.
    [Show full text]
  • Software Process Maturity and the Success of Free Software Projects
    Software Process Maturity and the Success of Free Software Projects Martin MICHLMAYR Department of Computer Science and Software Engineering University of Melbourne Victoria, 3010, Australia 1 e-mail: [email protected] Abstract. The success of free software and open source projects has increased interest in utilizing the open source model for mature software development. However, the ad hoc nature of open source development may result in poor quality software or failures for a number of volunteer projects. In this paper, projects from SourceForge are assessed to test the hypothesis that there is a relationship between process maturity and the success of free software and open source projects. This study addresses the question of whether the maturity of particular software processes differs in successful and unsuccessful projects. Processes are identified that are key factors in successful free software projects. The insights gained from this study can be applied as to improve the software process used by free software projects. Keywords. Process maturity, quality improvement, free software, open source Introduction The development model employed in free software and open source projects is unique in many respects. Free software and open source projects are traditionally characterized by two factors that have an impact on quality and project management [8], [7]. The first factor is that they are performed by volunteers, the second that the participants are globally distributed. In addition to these two important characteristics, the development model is also crucially determined by the nature of free software and open source itself; all source code is available and shared with others. Raymond suggests that this open exchange leads to a high level of peer review and user involvement [11], [13].
    [Show full text]
  • A Brief History of Debian I
    A Brief History of Debian i A Brief History of Debian A Brief History of Debian ii 1999-2020Debian Documentation Team [email protected] Debian Documentation Team This document may be freely redistributed or modified in any form provided your changes are clearly documented. This document may be redistributed for fee or free, and may be modified (including translation from one type of media or file format to another or from one spoken language to another) provided that all changes from the original are clearly marked as such. Significant contributions were made to this document by • Javier Fernández-Sanguino [email protected] • Bdale Garbee [email protected] • Hartmut Koptein [email protected] • Nils Lohner [email protected] • Will Lowe [email protected] • Bill Mitchell [email protected] • Ian Murdock • Martin Schulze [email protected] • Craig Small [email protected] This document is primarily maintained by Bdale Garbee [email protected]. A Brief History of Debian iii COLLABORATORS TITLE : A Brief History of Debian ACTION NAME DATE SIGNATURE WRITTEN BY September 14, 2020 REVISION HISTORY NUMBER DATE DESCRIPTION NAME A Brief History of Debian iv Contents 1 Introduction -- What is the Debian Project? 1 1.1 In the Beginning ................................................... 1 1.2 Pronouncing Debian ................................................. 1 2 Leadership 2 3 Debian Releases 3 4 A Detailed History 6 4.1 The 0.x Releases ................................................... 6 4.1.1 The Early Debian Packaging System ..................................... 7 4.2 The 1.x Releases ................................................... 7 4.3 The 2.x Releases ................................................... 8 4.4 The 3.x Releases ................................................... 8 4.5 The 4.x Releases ..................................................
    [Show full text]
  • FOSS Foundations Commonalities, Deficiencies, and Recommendations
    FOSS Foundations Commonalities, Deficiencies, and Recommendations Martin Michlmayr April 2021 Preface Background FOSS foundations are organizations (typically non-profit) that support open source projects in a number of ways. Aim This research studied FOSS foundations in order to better understand their role in con- tributing to the success and sustainability of open source projects. The aim is to better understand the operations and challenges FOSS foundations face and to find areas of improvement and collaboration. Topics This report covers topics such as: • Role and activities of foundations • Challenges faced and gaps in the service offerings • Operational aspects, including reasons for starting an org and choice of jurisdiction • Trends, such as the “foundation in a foundation” model • Recommendations for different stakeholders Target audience This report is targeted at those who are interested in better understanding the nature, role and operations of FOSS foundations; in particular, it’s aimed at those involved in running and those considering to create a FOSS foundation as well as those supporting such foundations (grant bodies, corporations, etc). Credits This work was sponsored by the Ford Foundation and the Alfred P. Sloan Foundation. 2 Contents Preface 2 Background . .2 Aim ...........................................2 Topics . .2 Target audience . .2 Credits . .2 FOSS foundations5 Classification . .5 Expanding role of foundations . .5 Diversity of organizations . .6 Limitation on technical influence . .6 Activities . .7 Sustainability . .8 Explicit restrictions . .9 Gaps...........................................9 Challenges . .9 Removing constraints . 10 Awareness . 10 Summary . 11 Incorporation 12 Reasons for creating an incorporated organization . 12 Jurisdiction and legal structure . 12 Starting a new organization . 13 Consolidation and the “foundation in a foundation” model .
    [Show full text]
  • Open Source Software License Information
    Open Source Software license information This document contains an open source software license information for the product VACUU·SELECT. The product VACUU·SELECT contains open source components which are licensed under the applicable open source licenses. The applicable open source licenses are listed below. The open source software licenses are granted by the respective right holders directly. The open source licenses prevail all other license information with regard to the respective open source software components contained in the product. Modifications of our programs which are linked to LGPL libraries are permitted for the customer's own use and reverse engineering for debugging such modifications. However, forwarding the information acquired during reverse engineering or debugging to third parties is prohibited. Furthermore, it is prohibited to distribute modified versions of our programs. In any case, the warranty for the product VACUU·SELECT will expire, as long as the customer cannot prove that the defect would also occur without these modification. WARRANTY DISCLAIMER THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. See the applicable licenses for more details. Written offer This product VACUU·SELECT contains software components that are licensed by the holder of the rights as free software, or Open Source software, under GNU General Public License, Versions 2 and 3, or GNU Lesser General Public License, Versions 2.1, or GNU Library General Public License, Version 2, respectively. The source code for these software components can be obtained from us on a data carrier (e.g.
    [Show full text]
  • The Labor of Maintaining and Scaling Free and Open-Source Software Projects
    UC San Diego UC San Diego Previously Published Works Title The Labor of Maintaining and Scaling Free and Open-Source Software Projects Permalink https://escholarship.org/uc/item/3mz2d0kk Journal Proceedings of the ACM on Human-Computer Interaction, 5(CSCW1) ISSN 2573-0142 Authors Geiger, R Stuart Howard, Dorothy Irani, Lilly Publication Date 2021-04-13 DOI 10.1145/3449249 License https://creativecommons.org/licenses/by/4.0/ 4.0 Peer reviewed eScholarship.org Powered by the California Digital Library University of California The Labor of Maintaining and Scaling Free and Open-Source Software Projects R. STUART GEIGER∗, University of California, San Diego; Department of Communication and Halicioglu Data Science Institute, USA DOROTHY HOWARD, University of California, San Diego; Department of Communication and Feminist Labor Lab, USA LILLY IRANI, University of California, San Diego; Department of Communication, The Design Lab, and Feminist Labor Lab, USA Free and/or open-source software (or F/OSS) projects now play a major and dominant role in society, consti- tuting critical digital infrastructure relied upon by companies, academics, non-profits, activists, and more. As F/OSS has become larger and more established, we investigate the labor of maintaining and sustaining those projects at various scales. We report findings from an interview-based study with contributors and maintainers working in a wide range of F/OSS projects. Maintainers of F/OSS projects do not just maintain software code in a more traditional software engineering understanding of the term: fixing bugs, patching security vulnera- bilities, and updating dependencies. F/OSS maintainers also perform complex and often-invisible interpersonal and organizational work to keep their projects operating as active communities of users and contributors.
    [Show full text]
  • 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-2021 Karl Fogel, under the CreativeCommons Attribution-ShareAlike (4.0) license. Version: 2.3214 Home site: https://producingoss.com/ 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 Acknowledgements ................................................................................................................................. viii For the first edition (2005) .............................................................................................................. viii For the second edition (2021) ............................................................................................................ ix Disclaimer .............................................................................................................................................
    [Show full text]
  • Free Software Project Management HOWTO
    Free Software Project Management HOWTO Benjamin "Mako" Hill [email protected] Revision History Revision v0.3.2 15 April 2002 Revised by: bch Revision v0.3.1 18 June 2001 Revised by: bch Revision v0.3 5 May 2001 Revised by: bch Revision v0.2.1 10 April 2001 Revised by: bch Revision v0.2 8 April 2001 Revised by: bch Revision v0.01 27 March 2001 Revised by: bch Initial Release This HOWTO is designed for people with experience in programming and some skills in managing a software project but who are new to the world of free software. This document is meant to act as a guide to the non−technical aspects of free software project management and was written to be a crash course in the people skills that aren't taught to commercial coders but that can make or break a free software project. Free Software Project Management HOWTO Table of Contents 1. Introduction.....................................................................................................................................................1 1.1. Copyright Information......................................................................................................................1 1.2. Disclaimer.........................................................................................................................................1 1.3. New Versions....................................................................................................................................2 1.4. Credits...............................................................................................................................................2
    [Show full text]
  • A System That Works for Me” – How Ubuntu Hackers Use and Configure Their System
    22:15:51 kernel: Inspecting /boot/System.map-2.6.17-11-generic 22:15:51 kernel: Loaded 22866 symbols from /boot/System.map-2.6.17-11-generic. 22:15:51 kernel: Symbols match kernel version 2.6.17. 22:15:51 kernel: No module symbols loaded - kernel modules not enabled. 22:15:51 kernel: [17179569.184000] Linux version 2.6.17-11-generic (root@terranova) (gcc version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1- 13ubuntu5)) 22:15:51 kernel: [17179569.184000] BIOS-provided physical RAM map: 22:15:51 kernel: [17179569.184000] BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) 22:15:51 kernel: [17179569.184000] BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) 22:15:51 kernel: [17179569.184000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) 22:15:51 kernel: [17179569.184000] BIOS-e820: 0000000000100000 - 000000001eff0000 (usable) 22:15:51 kernel: [17179569.184000] BIOS-e820: 000000001eff0000 - 000000001effffc0 (ACPI data) 22:15:51 kernel: [17179569.184000] BIOS-e820: 000000001effffc0 - 000000001f000000 (ACPI NVS) 22:15:51 kernel: [17179569.184000] BIOS-e820: 00000000ffb80000 - 00000000ffc00000 (reserved) 22:15:51 kernel: [17179569.184000] BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved) 22:15:51 kernel: [17179569.184000] 0MB HIGHMEM available. 22:15:51 kernel: [17179569.184000] 495MB LOWMEM available. 22:15:51 kernel: [17179569.184000] DMI 2.3 present. 22:15:51 kernel: [17179569.184000] ACPI: PM-Timer IO Port: 0x1008 22:15:51 kernel: [17179569.184000] Allocating PCI resources starting at 20000000 (gap: 1f0 00000:e0b80000) 22:15:51 kernel: [17179569.184000] Built 1 zonelists 22:15:51 kernel: [17179569.184000] Kernel command line: root=/dev/hda1 ro quiet splash 22:15:51 kernel: [17179569.184000] Local APIC disabled by BIOS (or by default) -- you can enable it with ”lapic” 22:15:51 kernel: [17179569.184000] Enabling fast FPU save and restore..
    [Show full text]
  • Martin Michlmayr –
    Martin Michlmayr Work History 01/2018 to Consultant. current ○␣ Evaluate, plan and implement improvements to the accounting software infrastructure for Software Freedom Conservancy ○␣ Study the role of FOSS Foundations in the sustainability of open source as part of our digital infrastructure 09/2017 to Head of Open Source, Clearmatics. 12/2017 ○␣ Developed strategy and plan for open sourcing key technologies ○␣ Advised on open source licensing ○␣ Defined approach and philosophy of community engagement 02/2015 to Senior Open Source Community Expert, HPE Linux, Hewlett-Packard. 04/2017 ○␣ Developed strategy on open source engagement with Debian ○␣ Mentored engineers on open source culture and participation ○␣ Performed change management to integrate open source processes ○␣ Implemented move to open source mindset as part of leadership team ○␣ Developed roadmap for engineering tasks around Debian ○␣ Coordinated major infrastructure investments in Debian 12/2007 to Open Source Community Expert, Open Source Program Office, Hewlett-Packard. 01/2015 ○␣ Led external open source governance and compliance community ○␣ Led internal open source community to promote open source inside the company ○␣ Improved open source ecosystem through work on open source foundations ○␣ Represented HP at events world-wide ○␣ Influenced HP’s sponsorship of open source events and foundations Open Source Activities 07/2014 to Director and Treasurer, Software Freedom Conservancy. current ○␣ Influenced the direction and activities of the organization ○␣ Provided oversight of budgets, tax returns and financial transactions ○␣ Participated in outreach and communication campaigns 05/2014 to Director, Secretary and President, Software in the Public Interest. current ○␣ Worked closely with liaisons from associated projects ○␣ Fostered communication across board of directors ○␣ Coordinated board meetings and maintained agendas and minutes [email protected] 1/2 10/2000 to Debian Developer, Debian.
    [Show full text]