9.2 Atvērtā koda licences un dokumentācija
Stundas uzdevums: Iepazīt atvērtā koda licences (MIT, GPL, Apache) un iemācīties lasīt bibliotēku dokumentāciju.
70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - noskaidro savu bibliotēku licences · 2. uzdevums (~25 min) - atrodi atbildi oficiālajā dokumentācijā · 3. uzdevums (~20 min) - noformē README ar licenci un atkarībām. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.
Pirms sāc: atver savu 9.1 stundas projektu ar requirements.txt. Šajā stundā uzzināsi, ko tu drīksti ar svešu kodu darīt.
Teorija: Atvērtā koda licences un dokumentācijas lasīšana
Atvērtā koda licence nosaka, kā Tu drīksti izmantot, modificēt un izplatīt cita autora kodu.
| Licence | Atļauj | Pienākumi |
|---|---|---|
| MIT | Visu (komercdarbība, modifikācijas) | Saglabāt licences tekstu |
| Apache 2.0 | Visu | Licences teksts + izmaiņu paziņojums |
| GPL v3 | Visu | Tava versija arī jāpublicē kā GPL ("copyleft") |
| BSD | Visu | Saglabāt licences tekstu |
| Bez licences | NEKO - pēc noklusējuma viss aizliegts | - |
# GitHub izveidotā LICENSE faila sākums
MIT License
Copyright (c) 2026 Tavs Vārds
# Pārējo MIT licences tekstu atstāj nemainītu.
Kā lasīt dokumentāciju: 1) sākums (Quickstart) → 2) primers ar koda piemēru → 3) API atsauce (visas funkcijas) → 4) FAQ → 5) Issues GitHub.
Praktiskie uzdevumi
1. uzdevums -
Noskaidro savu bibliotēku licences
Beigās tu zināsi, vai savu projektu drīksti publicēt.
- Atver
requirements.txtun izraksti visas bibliotēkas. - Atrodi katrai bibliotēkai PyPI lapu vietnē
pypi.org. - Pieraksti katrai tās licences nosaukumu.
- Atzīmē, kura no tām ir copyleft (GPL).
- Pieraksti, ko GPL prasītu no tava projekta.
- Secini, vai vari savu projektu izlaist ar MIT licenci.
Gatavs, kad: katrai bibliotēkai ir pierakstīta licence, un tu vari pateikt, vai kāda no tām liedz MIT.
2. uzdevums -
Atrodi atbildi oficiālajā dokumentācijā
Beigās tu pratīsi atrast atbildi pats, nevis meklēt gatavu kodu.
- Atver
requestsoficiālo dokumentāciju. - Atrodi sadaļu par
timeoutparametru. - Pieraksti, kā to lieto un ko tas dara.
- Pievieno savam 9.1 API izsaukumam
timeout=5. - Atrodi dokumentācijā, kāda kļūda rodas, ja laiks beidzas.
- Ieliec izsaukumu
try/exceptblokā ar šo kļūdu. - Pieraksti saiti uz to dokumentācijas lapu, kur atradi atbildi.
Gatavs, kad: tavā kodā ir timeout=5, apstrādāta atbilstošā kļūda, un README.md failā ir saite uz dokumentāciju.
3. uzdevums -
Noformē README ar licenci un atkarībām
Beigās citi redzēs, ko drīkst darīt ar tavu kodu.
- Pievieno krātuvei failu
LICENSEar MIT licenci. - Pievieno
README.mdsadaļu## Licencear vienu teikumu. - Pievieno sadaļu
## Atkarības. - Uzskaiti katru bibliotēku ar tās licenci iekavās.
- Pievieno sadaļu
## Uzstādīšanaarpip install -r requirements.txt. - Veic commit un push.
- Pieraksti vienu secinājumu: kas notiek ar kodu, kuram nav licences.
Gatavs, kad: GitHub krātuves sākumlapā redzama licence un pilns atkarību saraksts.
Papildu uzdevums - Salīdzini divas licences
Ja pamatdarbs ir gatavs, izpēti, kad MIT neder.
- Atrodi vienu populāru GPL bibliotēku PyPI vietnē.
- Pieraksti, ko tā prasītu no tava projekta.
- Pieraksti, kāpēc uzņēmumi bieži izvairās no GPL.
- Pieraksti vienu situāciju, kad GPL ir labāka izvēle.
- Pievieno secinājumu README sadaļā
## Licence.
Gatavs, kad: tavā README ir viens teikums, kas pamato tieši MIT izvēli.
Biežākās kļūdas
- Bez licences = pilnībā aizliegts: Pēc noklusējuma copyright pieder autoram.
- MIT izmantošana ≠ komerciāla pārdošana: MIT atļauj komercdarbību, GPL prasa atvērtu kodu.
- Lasi tikai sākumu: Reālā problēma bieži ir API atsauces sadaļā.
Koda piemērs
# requirements.txt
requests==2.31.0
flask==3.0.0
streamlit==1.29.0
# README.md sekcija
## Licence
Šis projekts ir licencēts ar MIT licenci - skatīt LICENSE failu.
## Atkarības
- requests (Apache 2.0)
- flask (BSD-3)
- streamlit (Apache 2.0)