ebSkola

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.

SR 3.1.3. Skaidro intelektuālā īpašuma tiesības un licences SR 2.4.11. Standartizētas bibliotēkas SR 2.3.3. Tehnoloģiju loma un ietekme

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.

LicenceAtļaujPienākumi
MITVisu (komercdarbība, modifikācijas)Saglabāt licences tekstu
Apache 2.0VisuLicences teksts + izmaiņu paziņojums
GPL v3VisuTava versija arī jāpublicē kā GPL ("copyleft")
BSDVisuSaglabāt licences tekstu
Bez licencesNEKO - 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.

  1. Atver requirements.txt un izraksti visas bibliotēkas.
  2. Atrodi katrai bibliotēkai PyPI lapu vietnē pypi.org.
  3. Pieraksti katrai tās licences nosaukumu.
  4. Atzīmē, kura no tām ir copyleft (GPL).
  5. Pieraksti, ko GPL prasītu no tava projekta.
  6. 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.

  1. Atver requests oficiālo dokumentāciju.
  2. Atrodi sadaļu par timeout parametru.
  3. Pieraksti, kā to lieto un ko tas dara.
  4. Pievieno savam 9.1 API izsaukumam timeout=5.
  5. Atrodi dokumentācijā, kāda kļūda rodas, ja laiks beidzas.
  6. Ieliec izsaukumu try/except blokā ar šo kļūdu.
  7. 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.

  1. Pievieno krātuvei failu LICENSE ar MIT licenci.
  2. Pievieno README.md sadaļu ## Licence ar vienu teikumu.
  3. Pievieno sadaļu ## Atkarības.
  4. Uzskaiti katru bibliotēku ar tās licenci iekavās.
  5. Pievieno sadaļu ## Uzstādīšana ar pip install -r requirements.txt.
  6. Veic commit un push.
  7. 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.

  1. Atrodi vienu populāru GPL bibliotēku PyPI vietnē.
  2. Pieraksti, ko tā prasītu no tava projekta.
  3. Pieraksti, kāpēc uzņēmumi bieži izvairās no GPL.
  4. Pieraksti vienu situāciju, kad GPL ir labāka izvēle.
  5. 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)
Visas atkarības ir saderīgas ar MIT izvēli.