Kihagyás

Hogyan kapcsolódjunk be egy open source projekt fejlesztésébe?

Mostanra már meg lettek szavazva minden egyes gyakorlaton a projektmunkák, amiken a félév során dolgozni fogunk. Meg kell keresnünk a listában a választott projektet és rá kell kattintanunk az ott található linkekre. Jogosan érkezhet a kérdés, hogy hogyan tovább?

A mai gyakorlaton ezt tárjuk fel a következő példa alapján

Példa

Tegyük fel, hogy az Apache Tinkerpop programra szavaztak a legtöbben a gyakorlaton.

kep

A következő leírást találhatjuk amikor az az oldal linkjére kattintunk.

"Apache TinkerPop is a graph computing framework for both graph databases (OLTP) and graph analytic systems (OLAP). Apache TinkerPop is an open source, vendor-agnostic, graph computing framework distributed under the commercial friendly Apache2 license. When a data system is TinkerPop-enabled, its users are able to model their domain as a graph and analyze that graph using the Gremlin graph traversal language."

Ezután érdemes a dokumentációba is beleásnunk magunkat mélyebben.

Mit tanultunk a leírásból és a dokumentáció elolvasásából?

  • ez egy library, azaz nem egy standalone program, hanem a saját kódunkban tudjuk felhasználni.
  • adatbázis elérésre és feldolgozásra is van lehetőségünk
  • Apache2 licence → „nem ragadós”
  • „szabvány” amit más szolgáltatók valósíthatnak meg

Bármit lehet tenni nyílt forrású rendszerrel?

Felmerülhetnek a következő kérdések az emberben, amikor egy Open-Source kódot vizsgál:

  • kereshetek vele pénzt?
  • ragadós? bezárható?
  • módosítható?
  • újra kiadható?
  • stb

Azonban a legtöbb esetben még az Open-Source programokat is valamilyen licence védi, ami leírja hogyan és mit csinálhatunk a kóddal. Jogi szabályozás nyílt forráskódú licencek: https://choosealicense.com/

Közösség szabályai

Ha mégis arra adjuk a fejünket, hogy belevágjunk egy Open-Source program fejlesztésébe érdemes utánna néznünk a szabályoknak amelyeket követnünk kell. Ez a dokumentum az alábbi kérdésekre adhat választ:

  • Ki küldhet be módosításokat?
  • Ki ellenőrzi a beküldött kódot?
  • Milyen minőségűnek kell lennie a kódnak?
  • Hibák javítása? Tesztelés?

Általában egy külön wiki oldal van ennek dedikálva, de előfordulhat, hogy nem találjuk meg ezt. Ezesetben ne habozzunk e-mailt küldeni a fejlesztőknek, hiszen nagy valószínűséggel szívesen válaszolnak a kérdéseinkre.

Órai feladat

Importáljuk a github oldalról a projektet a saját gitlab oldalunkra.

Tutorial videó a repo forkolásához:

Készítsünk egy szekciót a README.md-ben a csapat projektjéhez amibe rögzítjük a fontosabb adatokat a projektről.

Hogyan kezdjünk neki?

Ismerkedés a projekttel

  • Mi a hivatalos oldal? (Mire való a szoftver?)
  • Hol található a dokumentáció?
    • Tutorials, Getting started, First steps, . . .
    • referencia dokumentáció
    • Javadoc
  • Van-e előre fordított csomag? (Milyen fordítási rendszert használ?)
Feladat
  • Indítsuk el a programot nézzük meg hogyan működik a gyakorlatban.

Warning

Ha a buildelés nem megy, akkor keressünk egy előre lefordított verziót az interneten, és azt indítsuk el.

  • Készítsünk egy egyszerű példa alkalmazást ami használja a library-t.

Hozzájárulás a projekthez

Ha később PR-t (azaz Pull Request-et) akarunk indítani, tehát a fejlesztésünket az eredeti repository részeként akarjuk tudni, akkor érdemes már a fejlesztés előtt megkeresni, hogy milyen szabályokat érdemes betartanunk.

  • Hol található a forráskód? (Milyen verziókövetőt használ?)

    • Git, SVN, stb.
    • A gyakorlaton olyan programok lettek összeválogatva amik csak gitet használnak.
  • Milyen szabályokkal lehet hozzájárulni a projekthez?

    • Community → Contribution/Developer Guide
    • Általában létezik leírás ami alapján kódolnunk kell, de ha nem találjuk érdemes lehet keresni a repository tulajdonosát
  • Hol tartják számon a hibákat és változásokat?
    • Jira
    • GitHub/GitLab issues
    • Redmine
  • Kitől tudok kérdezni?
    • Felhasználói levelező lista
    • Fejlesztői levelezői lista
    • Slack, Twitter, Messanger, . . .

Ismerkedés a forráskóddal

  • Hogyan lehet lefordítani a projektet?
  • Milyen fordítási rendszert használ?
    • Maven, Gradle, Ant stb.
    • Docker
    • egyedi build szkript
  • Milyen programozási nyelveken íródott?
    • Java, C#, C++, . . . ,
    • XML, JSON, . . . ,
    • Bash, Batch, PowerShell, . . .
  • Hogyan épül fel a projekt?
  • Milyen modulokból áll?
  • Milyen rendszer architektúrát követ?
    • Model-View-Control, Pipe and Filter, . . . ?
Feladat
  • Írjuk ki a nevünket a help/about oldalon vagy felületen.
  • Módosítsuk a library egyik osztályát úgy, hogy kiírja a nevünket.

Utolsó frissítés: 2021-02-26 13:59:15