Open Source Guidelines

CivicTech România este comunitatea celor care lucrează împreună ca să modernizeze România, folosind potențialul tehnologiei deschise (Open Source) și talentul specialiștilor din IT&C pentru a dezvolta noua generație de servicii digitale de utilitate publică. Mai multe detalii despre proiectele CivicTech România pe civictech.ro.

Tocmai de aceea am creat și acest ghid, pentru a stabili împreună cum putem colabora la dezvoltarea acestor proiecte și pentru a strânge în jurul nostru o comunitate de oameni cu aceeași viziune ca și noi. În redactarea acestor guidelines ne-am folosit de experiența dobândită în mediul privat și de bunele practici promovate acolo, dar și de experiența de până acum în CivicTech România și GovITHub.


Aceste guidelines sunt în continuă dezvoltare, folosind ca sursă de inspirație The US Digital Services Playbook, GitHub Open Source Guides dar și setul de guidelines dezvoltat inițial în cadrul GovITHub. Așteptăm propunerile voastre pe GitHub!

GUIDELINE 1

Cum contribui?

Dacă citești asta, deja ai făcut un prim pas înspre a deveni un contribuitor la proiectele noastre Open Source. Fie că ai sau nu cunoștințe de programare, contribuția ta este bine-venită. Sunt mai multe modalități de a te implica în succesul unui proiect CivicTech România, iar contribuțiile de cod sunt doar o parte dintre acestea. În secțiunea aceasta vom vorbi un pic despre felul în care ne poți ajuta, ce ai tu de câștigat din colaborarea cu noi și despre modul în care organizăm munca în proiectele noastre Open Source.

De ce să contribui?

Cum ne organizăm?

GUIDELINE 2

Cu ce poți contribui?

Sunt mai multe modalități de a contribui la proiectele noastre, în funcție de proiect, dar și de skill-urile tale. Deși proiectele noastre “trăiesc” pe GitHub, asta nu înseamnă că sunt proiecte făcute doar de programatori, pentru programatori. Iată câteva dintre metodele de a contribui:

Îți place să scrii?

Vrei să ajuți oameni?

Ești o persoană foarte organizată?

Ești pasionat(ă) de UX/UI?

Scrii cod?

Îți place să organizezi evenimente?

Ai experiență în administrația locală sau națională?

Altceva?

GUIDELINE 3

Ce ar trebui să conțină un issue?

Exceptând issues sub formă de întrebare (Cum se numește canalul de Slack al proiectului? etc.), fiecare issue ar trebui să conțină câteva elemente ce permit membrilor unui proiect să acționeze cât mai rapid:

Pentru raportarea problemelor de securitate

Pentru raportarea bug-urilor

Pentru sugestii

Reguli generale

GUIDELINE 4

Echipa unui proiect

Echipele proiectelor sunt formate din mai mulți membri ai comunității CivicTech România și cel puțin un membru core-team. Deși nu există o ierarhie oficială în proiectele CivicTech, există câteva roluri pe care le îndeplinesc membrii echipei.

Roluri

GUIDELINE 5

Code Review

Procesul de code review este foarte important pentru ecosistem. Ar trebui ca fiecare contribuție să aibă review de la cel puțin o persoană (owner/maintainer al repository-ului). Pentru un proces cât mai eficient, code review-urile trebuie prioritizate, ar trebui ca cineva să fie disponibil pentru code review imediat după trimiterea unui Pull Request (de la câteva minute până la câteva ore după trimiterea acestuia).

Pentru alegerea unui reviewer, în afara owner-ului/maintainer-ilor de proiect, ar trebui alese persoanele care au contribuit deja la acel proiect, fiind familiarizați cu codebase-ul, sau acele persoane care cunosc foarte bine stack-ul cu care se lucrează.

Reguli pentru revieweri

Reguli pentru cei care primesc review

Elemente de stil

GUIDELINE 6

Pull Request Checklist

Deoarece avem un portofoliu variat în ceea ce privește tehnologiile folosite, dar ne confruntăm și cu constrângeri externe atunci când integrăm cu alte proiecte, nu putem adopta un Style Guide sau un set de reguli strict, la nivel de organizație.

Așa că am definit un mic set de reguli care se poate aplica pentru orice proiect și care poate deservi drept checklist pentru contribuțiile de cod.

Checklist