TVORBA OPEN SOURCE SOFTWARU
Jak řídit úspěšný projekt svobodného softwaru
Author(s): Karl Fogel
Edition: 1
Publisher: CZ.NIC, z. s. p. o.
Year: 2012
Language: Czech
Pages: 312
City: Praha
Tvorba open source softwaru — Obálka
— Přehled kapitol
— Obsah
1. Úvod
— Obsah kapitoly
Úvod
Historie
Vzestup proprietárního softwaru a svobodného softwaru
Vědomé hnutí odporu
Neúmyslné hnutí odporu
„Free“ versus „open source“
Současná situace
2. Zahájení projektu
— Obsah kapitoly
Zahájení projektu
Nejdříve se ale rozhlédněte
Začněte od toho, co máte k dispozici
Vyberte dobré jméno
Určete jasné cíle projektu
Uveďte, že jde o svobodný projekt
Seznam funkcí a požadavků
Stav vývoje
Stahování
Zpřístupnění systémů správy verzí a sledování chyb
Komunikační kanály
Pokyny pro vývojáře
Dokumentace
Dostupnost dokumentace
Dokumentace pro vývojáře
Vzorový výstup a snímky obrazovky
Kompletní hosting
Výběr licence a její uplatnění
Licence typu „vše je povoleno“
GPL
Jak licenci aplikovat
Udávání tónu
Vyhněte se soukromým diskuzím
Nezdvořilé chování potlačte hned v zárodku
Kontrolujte kód veřejně
Když otvíráte dosud uzavřený projekt, uvědomte si rozsah změn
Oznamování
3. Technická infrastruktura
— Obsah kapitoly
Technická infrastruktura
Co je třeba pro projekt zajistit
Mailing listy
Ochrana před nežádoucími zprávami
Filtrování příspěvků
Skrývání adres v archivech
Identifikace a správa hlaviček
Velká debata o Reply-to
Dvě ideální řešení
Archivace
Software
Správa verzí
Slovníček pojmů správy verzí
Výběr systému pro správu verzí
Používání systému pro správu verzí
Sledujte verze u všeho
Možnost prohlížení
E-maily oznamující commit
Používejte větve, abyste nezpomalovali vývoj
Jedinečnost informace
Autorizace
Systém pro sledování chyb
Interakce s mailing listy
Předběžné filtrování v bug trackeru
IRC a jiné systémy pro diskuzi v reálném čase
Roboti
Archivace IRC
RSS
Wiki
Webové stránky
Kompletní hosting
Jak si vybrat kompletní hosting
Anonymita a zapojení se do projektu
4. Společenská a politická infrastruktura
— Obsah kapitoly
Společenská a politická infrastruktura
Schopnost vytvářet odnože
Benevolentní diktátoři
Kdo může být dobrým benevolentním diktátorem?
Demokracie založená na konsenzu
Řízení verzí znamená, že můžete být v pohodě
Když nelze dosáhnout konsenzu, hlasujte
Kdy hlasovat
Kdo hlasuje?
Ankety versus hlasování
Veto
Jak to všechno zapsat
5. Peníze
— Obsah kapitoly
Peníze
Typy zapojení do projektu
Pracovníky najímejte na dlouhodobý úvazek
Vystupujte jako jednotlivci, nikoli jako celek
Otevřeně hovořte o své motivaci
Lásku si za peníze nekoupíte
Dodavatelské smlouvy
Kontrola a přijetí změn
Případová studie: protokol pro ověřování hesla CVS
Financování neprogramovacích činností
Zajišťování kvality (tj. Profesionální testování)
Právní poradenství a ochrana
Dokumentace a použitelnost
Poskytování hostingu/síťové propustnosti
Marketing
Pamatujte na to, že jste sledováni
Nekritizujte konkurenční open source produkty
6. Komunikace
— Obsah kapitoly
Komunikace
Jste to, co píšete
Struktura a formátování
Obsah
Tón
Jak rozeznat hrubost
Tvář
Jak předejít častým potížím
Nepřispívejte zbytečně
Produktivní a neproduktivní vlákna
Čím jednodušší téma, tím delší debata
Vyvarujte se svatých válek
Efekt „hlučné minority“
Obtížní lidé
Jak se s obtížnými lidmi vypořádat
Případová studie
Jak se vyrovnat s růstem
Nápadné využívání archivů
Se všemi zdroji zacházejte jako s archivy
Kodifikace tradic
Nediskutujte v bug trackeru
Publicita
Ohlášení bezpečnostních chyb
Přijměte report
Opravu vyvíjejte potichu
Čísla CAN/CVE
Předběžné oznámení
Distribuujte opravu veřejně
7. Vytváření balíčků, vydávání releasů a každodenní práce na vývoji
— Obsah kapitoly
Vytváření balíčků, vydávání releasů a každodenní práce na vývoji
Číslování verzí
Z čeho se číslo verze skládá
Jednoduchá strategie
Strategie sudá / lichá
Release větve
Jak release větve fungují
Stabilizace release
Diktatura vlastníka release
Hlasování o změnách
Spolupráce na stabilizaci release a jak ji řídit
Správce release
Vytváření balíčků
Formát
Jméno balíčku a adresářový strom
Velká nebo malá písmena
Pre-release
Kompilace a instalace
Binární balíčky
Testování a releasing
Release kandidát
Oznamování release
Udržování více release řad
Bezpečnostní release
Vydávání releasů a každodenní práce
Plánování releasů
8. Řízení dobrovolníků
— Obsah kapitoly
Řízení dobrovolníků
Jak dostat z dobrovolníků to nejlepší
Delegování
Jasně rozlišujte mezi poptáváním a zadáváním
Postup po delegování
Všímejte si, o co se lidé zajímají
Pochvala a kritika
Zabraňte teritorialitě
Poměr automatizace
Automatizované testování
Ke všem uživatelům se chovejte jako k potenciálním dobrovolníkům
Podělte se o řídící i technické úkoly
Patch Manager (manažer záplat)
Translation Manager (manažer překladu)
Documentation Manager (manažer dokumentace)
Issue manager (manažer problémů)
FAQ Manager (manažer sekce s nejčastěji kladenými otázkami)
Personální změny
Committeři
Volba committerů
Odebrání commit access
Částečný commit access
Nečinní committeři
Nedělejte s ničím tajnosti
Uvádění tvůrců a spoluautorů (Credit)
Odnože (Forks)
Zvládání odnoží
Iniciování odnože
9. Licence, autorská práva a patenty
— Obsah kapitoly
Licence, autorská práva a patenty
Terminologie
Aspekty licence
GPL a kompatibilita licence
Volba licence
MIT / X Window System License
GNU General Public License
Je GPL svobodná licence, či nikoli?
A co licence BSD?
Převod a vlastnictví autorských práv
Nedělat nic
Licenční smlouvy s přispěvatelem (CLA)
Převod autorských práv
Systém dvojitých licencí
Patenty
Další zdroje
A. Svobodné systémy pro správu verzí
B. Volně přístupné bug trackery (záznamníky chyb)
C. Měl bych se starat o to, jakou barvu má přístřešek pro kola?
D. Vzorové pokyny pro hlášení chyb (bugů)
E. Copyright
Licenční ujednání
Upozornění Creative Commons