Produkcja oprogramowania Open Source

Jak prowadzić udany projekt wolnego oprogramowania

Karl Fogel

(autor) 

Bartek Górny

(tłumacz) 

Jacek Medrzycki

(tłumacz) 

Łukasz Nowak

(tłumacz) 

Daniel Koć

(tłumacz) 

Dedykacja

Tę książkę dedykuję dwojgu moich drogich przyjaciół, bez których nie byłaby ona możliwa: Karen Underhill i Jimowi Blandy'emu.

Spis treści

Przedmowa
Dlaczego powstała ta książka?
Kto powinien przeczytać tę książkę?
Źródła
Podziękowania
Zastrzeżenie
1. Wstęp
Historia
The Rise of Proprietary Software and Free Software
Conscious resistance
Accidental resistance
"Free" Versus "Open Source"
The Situation Today
2. Zaczynamy
Starting From What You Have
Wybierz dobrą nazwę
Have a Clear Mission Statement
State That the Project is Free
Features and Requirements List
Development Status
Downloads
Version Control and Bug Tracker Access
Communications Channels
Developer Guidelines
Documentation
Availability of documentation
Developer documentation
Example Output and Screenshots
Canned Hosting
Choosing a License and Applying It
The "Do Anything" Licenses
The GPL
How to Apply a License to Your Software
Setting the Tone
Avoid Private Discussions
Nip Rudeness in the Bud
Practice Conspicuous Code Review
When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change
Announcing
3. Infrastruktura techniczna
Czego projekt potrzebuje
Listy dyskusyjne
Unikanie spamu
Filtrowanie wiadomości
Ukrywanie adresów w archiwach
Identyfikacja i nagłówki
Wielka debata o nagłówek Reply-to
Dwie fantazje
Archiwizacja
Oprogramowanie
Kontrola wersji
Słownictwo kontroli wersji
Wybór systemu kontroli wersji
Korzystanie z systemu kontroli wersji
Wersjonuj wszystko
Możliwość przeglądania
Powiadomienia o commitach
Use branches to avoid bottlenecks
Singularity of information
Authorization
Bug Tracker
Interaction with Mailing Lists
Pre-Filtering the Bug Tracker
IRC / Real-Time Chat Systems
Bots
Archiving IRC
Wikis
Web Site
Canned Hosting
Choosing a canned hosting site
Anonymity and involvement
4. Social and Political Infrastructure
Benevolent Dictators
Who Can Be a Good Benevolent Dictator?
Consensus-based Democracy
Version Control Means You Can Relax
When Consensus Cannot Be Reached, Vote
When To Vote
Who Votes?
Polls Versus Votes
Vetoes
Writing It All Down
5. Money
Types of Involvement
Hire for the Long Term
Appear as Many, Not as One
Be Open About Your Motivations
Money Can't Buy You Love
Contracting
Review and Acceptance of Changes
Case study: the CVS password-authentication protocol
Funding Non-Programming Activities
Quality Assurance (i.e., Professional Testing)
Legal Advice and Protection
Documentation and Usability
Providing Hosting/Bandwidth
Marketing
Remember That You Are Being Watched
Don't Bash Competing Open Source Products
6. Communications
You Are What You Write
Structure and Formatting
Content
Tone
Recognizing Rudeness
Face
Avoiding Common Pitfalls
Don't Post Without a Purpose
Productive vs Unproductive Threads
The Softer the Topic, the Longer the Debate
Avoid Holy Wars
The "Noisy Minority" Effect
Difficult People
Handling Difficult People
Case study
Handling Growth
Conspicuous Use of Archives
Treat all resources like archives
Codifying Tradition
No Conversations in the Bug Tracker
Publicity
Announcing Security Vulnerabilities
Receive the report
Develop the fix quietly
CAN/CVE numbers
Pre-notification
Distribute the fix publicly
7. Packaging, Releasing, and Daily Development
Release Numbering
Release Number Components
The Simple Strategy
The Even/Odd Strategy
Release Branches
Mechanics of Release Branches
Stabilizing a Release
Dictatorship by Release Owner
Change Voting
Managing collaborative release stabilization
Release manager
Packaging
Format
Name and Layout
To capitalize or not to capitalize
Pre-releases
Compilation and Installation
Binary Packages
Testing and Releasing
Candidate Releases
Announcing Releases
Maintaining Multiple Release Lines
Security Releases
Releases and Daily Development
Planning Releases
8. Zarządzanie ochotnikami
Najlepsze wykorzystywanie ochotników
Delegacja
Wyraźnie odróżniaj prośby od wyznaczania
Pilnuj swojego delegata
Zwracaj uwagę kto jest zainteresowany
Pochwały i krytyka
Zapobiegaj terytorializmowi
Współczynnik automatyzacji
Automatyczne testowanie
Traktuj każdego użytkownika jako potencjalnego ochotnika
Rozdzielaj zarówno zadania techniczne jak i kierownicze
Menedżer łatek
Menedżer tłumaczeń
Menedżer dokumentacji
Menedżer zgłoszeń
Menedżer FAQ
Przekazywanie obowiązków
Prawo zapisu
Przyznawanie prawa zapisu
Odbierania prawa zapisu
Częściowe prawo zapisu
Niewykorzystywane prawo zapisu
Unikaj tajemnic
Uznanie zasług
Rozwidlenia
Obchodzenie się z rozwidleniami
Inicjowanie rozwidlenia
9. Licenses, Copyrights, and Patents
Terminology
Aspects of Licenses
The GPL and License Compatibility
Choosing a License
The MIT / X Window System License
The GNU General Public License
Is the GPL free or not free?
What About The BSD License?
Copyright Assignment and Ownership
Doing Nothing
Contributor License Agreements
Transfer of Copyright
Dual Licensing Schemes
Patents
Further Resources
A. Wolne Systemy Kontroli Wersji (VCS)
B. Free Bug Trackers
C. Why Should I Care What Color the Bikeshed Is?
D. Example Instructions for Reporting Bugs
E. Copyright