Jak zvolit správnou open source licenci pro váš projekt
Než začnete psát první skript, ujasněte si, co přesně chcete automatizovat. Rozdělte úkol na malé kroky: co je vstupem, co výstupem a jaké operace se mají provést. Například pokud potřebujete hromadně přejmenovat soubory, zjistěte, v jakém formátu jsou názvy, a napište jednoduchý cyklus, který projde složku a upraví názvy podle vzoru. Python k tomu nabízí moduly jako `os` a `pathlib`, které práci se soubory zjednodušují.
Dalším častým omylem je domněnka, že open source licence řeší i ochranu ochranných známek. Název projektu či logo obvykle nejsou licencí pokryty a je nutné je řešit zvlášť. Pokud chcete, aby nikdo nepoužíval váš název pro odvozené produkty, zvažte přidání dodatku k licenci nebo samostatné ochranné známky.
Tipy pro přesnější odhad Zkuste použít techniku „hodinové rezervy" – ke každému odhadu přidejte 20–30 % navíc jako buffer na neočekávané komplikace. Tuto rezervu ale neuvádějte jako „nečinnost", ale jako součást času na skutečnou práci. Například pokud odhadujete samotné programování na 8 hodin, přidejte 2 hodiny na chyby, 1 hodinu na schůzky a 1 hodinu na ostatní rušivé momenty. Výsledných 12 hodin je realističtější.
Výběr open source licence je jedním z nejdůležitějších rozhodnutí při publikování softwaru. Ovlivňuje, jak mohou ostatní váš kód používat, upravovat a distribuovat. Častou chybou je převzít licenci z jiného projektu bez přemýšlení, nebo ji dokonce vynechat. Bez licence totiž není software open source – ostatní ho legálně nesmí použít.
Permisivní licence umožňují komukoli použít kód i v proprietárním softwaru, často bez nutnosti zveřejňovat změny. To je ideální pro knihovny, nástroje nebo projekty, kde chcete maximální adopci. Naproti tomu copyleftové licence (GPL, AGPL) vyžadují, aby odvozené dílo bylo distribuováno pod stejnou licencí. To oceníte, pokud chcete zabránit tomu, aby někdo váš kód „zavřel" a nevrátil komunité žádné úpravy.
První commit: od návrhu k přijetí Než začnete psát kód, založte si vlastní větev (fork) a v ní vytvořte samostatnou větev pro vaši změnu. Postupujte podle pokynů v dokumentaci – pokud tam není řečeno nic jiného, držte se stylu kódu, který už v projektu existuje. Napište testy pro novou funkci a ověřte, že všechny stávající testy procházejí. Commitové zprávy pište stručně a výstižně – popište, co děláte a proč, ne kopírujte celou diskuzi z issue. Po odeslání pull requestu se připravte na to, že maintaineři mohou požadovat úpravy. To je normální součást procesu, neznamená to, že vaše práce je špatná.
Při výběru se vyhněte vytváření vlastní licence, pokud nemáte právní znalosti. Nekvalitně formulovaná licence může vést k nejasnostem a soudním sporům. Místo toho použijte některou z osvědčených a široce akceptovaných licencí, na kterých již existuje bohatá judikatura a komunita.
Nejprve si vytvořte seznam všech činností, které s úkolem souvisí, i když se nezdají být důležité. Rozdělte si práci na fáze – příprava, implementace, kontrola, nasazení. Ke každé fázi si zapište nejen hlavní úkol, ale i vedlejší aktivity: komunikaci s kolegy, koordinaci s jiným týmem, čtení dokumentace, hledání chyb, psaní testů, aktualizaci CI. Čím konkrétnější seznam, tím lépe.
Kromě kódu existuje mnoho dalších způsobů, jak přispět. Dokumentace, překlady, návody, odpovídání na dotazy v diskuzích – to vše je pro komunitu stejně cenné a často i vděčnější než přidání nové funkce. Pokud si nejste jistí, zeptejte se nejprve na chatu nebo v mailové konferenci, co by projekt nejvíce potřeboval. Mnozí maintaineři uvítají pomoc s údržbou, kterou nikdo nedělá rád – třeba s tříděním issue nebo kontrolou překlepů v dokumentaci.
Mezi časté chyby začátečníků patří posílání obrovských pull requestů, které mění mnoho věcí najednou. Takové změny se obtížně kontrolují a často končí zamítnutím. Rozdělte práci na menší, logicky ucelené části – každý pull request by měl řešit jeden problém. Dále se vyhněte tomu, abyste se snažili vyřešit všechno najednou, nebo abyste měnili věci, které s daným problémem nesouvisí. A pozor také na to, abyste nezasahovali do cizích pull requestů bez vyzvání – počkejte, až vás maintainer požádá o spolupráci.
Skryté činnosti nejde odstranit, ale lze je odhadnout. Začněte si je zapisovat, počítejte s nimi a kontrolujte zpětně. Po třech až pěti úkolech uvidíte strukturu, která vám umožní dělat odhady, na které se dá spolehnout. Výsledkem nebude dokonalý plán, ale mnohem menší stres z nepředvídaných prodlev a lepší komunikace s ostatními.
V neposlední řadě si dejte pozor na přehnaný optimismus plynoucí z „známého prostředí". I když děláte podobný úkol jako minule, objeví se změny v knihovnách, v prostředí nebo v požadavcích. Vždy přidejte alespoň malou rezervu na neznámé. Když je úkol nový, klidně zdvojnásobte hrubý odhad – realita se tomu často blíží.