Kako započeti projekt otvorenog koda

Moje ime je Dima i ja sam programer za Ruby. Danas želim podijeliti svoje iskustvo stvaranja rješenja otvorenog koda. Govorit ću o tome koje korake projekt treba poduzeti, kako odabrati pravu funkcionalnost za prvo izdanje i s pogreškama s kojima sam se osobno suočio prilikom stvaranja svog projekta otvorenog koda.

Prije pola godine dobio sam ideju da bi bilo dobro stvoriti projekt otvorenog koda. Umjesto testnih zadataka za intervju, bilo bi mi dovoljno da pošaljem vezu do spremišta. Mene je nadahnula mogućnost da pomognem kolegama u rješavanju njihovih svakodnevnih problema.

Oduvijek nisam volio dragulje za stvaranje administrativnih ploča. Svako dodatno kretanje treba redefinirati klasu, a za polja promjena morate unijeti promjene u datoteke. Nakon razmišljanja i razgovora s kolegama, odlučio sam stvoriti novu knjižnicu koja će biti fleksibilna i neće trebati nadzorne ploče ili konfiguracijske datoteke.

Odredite ciljeve

Svaki projekt otvorenog koda rješava određeni problem. Razgovarajte s kolegama, chatovima, forumima i podijelite svoju ideju. Sve vam pomaže u prvim koracima da razumiješ važne stvari, poput onih koja rješenja već postoje, i da čuješ kritike. Razgovarajte s ljudima koji već imaju projekte otvorenog koda. Oni vam mogu dati vrlo vrijedne savjete, zato se nemojte bojati pitati i preuzeti inicijativu.

Jedan važan savjet koji sam dobio u toj fazi je da prije svega obratim pažnju na dokumentaciju projekta. Možete imati vrlo dobar projekt, ali nitko neće potrošiti vrijeme da shvati kako to funkcionira.

Najvažniji aspekt, bez kojeg su daljnji koraci nemogući, je motivacija. Ideja projekta trebala bi vas prvenstveno nadahnuti. Najčešće se ljudi naviknu na alate s kojima rade i upadnu u zonu udobnosti, pa vanjska mišljenja mogu biti dvosmislena.

Planiranje

Izbor određenog menadžera zadaća stvar je ukusa. Trebao bi imati jasnu sliku zadataka i faza vašeg projekta.

Podijelite zadatke na podzadatke. U idealnom slučaju, ako jedan zadatak ne traje duže od 3-4 sata, važno je uživati ​​u provedbi malih zadataka. To će vam pomoći izbjeći izgaranje i gubitak motivacije.

Koristim ključni tracker. Glavna prednost je besplatna verzija za projekte otvorenog koda gdje možete sortirati zadatke po vrsti (značajka, programska pogreška, posao, izdanje) i grupirati ih u izdanja i određene rokove.

Dokumentacija

Svaki projekt otvorenog koda trebao bi sadržavati sljedeće stvari:

  • Pročitaj me
  • Licenca otvorenog koda
  • Doprinosi smjernicama
  • Popis promjena

Datoteka README ne objašnjava samo kako koristiti projekt, već i svrhu projekta. Ako ne znate pravilno napisati README datoteku, možete pogledati druge poznate projekte otvorenog koda ili upotrijebiti predložak.

Licenca jamči da drugi mogu koristiti, kopirati i mijenjati izvorni kod projekta. Morate dodati ovu datoteku u svako spremište s vašim projektom otvorenog koda. MIT i Apache 2.0 GPLv3 najpopularnije su licence za projekte otvorenog koda. Ako niste sigurni što odabrati, možete koristiti ovu prikladnu uslugu.

DODATNA datoteka pomoći će drugim programerima da doprinesu projektu. U prvim koracima projekta nije potrebno pažljivo paziti na ovu datoteku. Možete koristiti već pripremljeni predložak iz drugog projekta.

Popis promjena sadrži podržani, kronološki poredani popis značajnih promjena za svaku verziju. Kao i kod DOPRINOSNE datoteke, ne savjetujem tome obraćati posebnu pažnju u ranoj fazi.

Verziranje

Za praćenje važnih promjena za korisnike i suradnike postoji semantička verzija. Broj verzije sadrži brojeve i pridržava se sljedećeg uzorka XYZ

  • X glavno izdanje
  • Y manje izdanje
  • Z flaster

Kontinuirana integracija / kontinuirana isporuka

Za automatsko pokretanje testova i izradu koristim Travis CI. Također je dobro dodati značke za prikaz uspješnog sastavljanja gradnje u čarobnjaku, pokrivenost testom (Codecov) i dokumentaciju (Inch CI).

Nakon svakog novog urezivanja ili spajanja u masteru, automatski imam raspored na Heroku (vrlo povoljna integracija s GitHubom). Svi su alati apsolutno besplatni za projekt otvorenog koda.

Moje pogreške

Da bih analizirao početnu fazu, imao sam ideju, ali nije bilo jasnog plana. Odlučio sam da to želim učiniti, a da nemam jasnu predodžbu o tome koliko vremena treba ili specifičan prikaz funkcija koje će biti u prvoj verziji knjižnice. Imao sam samo puno želje i nedostatak jasnog plana.

Također, nakon čitanja povijesti drugih projekata (ne samo otvorenog koda), primijetio sam da su u ranoj fazi neki planovi previše optimistični. Potrebna im je ponovna procjena njihovih snaga i sposobnosti. Ali nije lako svaki dan naći vremena za pisanje nove značajke u projektu. Većina je zadataka na kraju morala biti uklonjena, ostavljajući potreban minimum za MVP.

Trenutno je moj jednostavan administratorski projekt u alfa verziji. Daljnji planovi uključuju stvaranje zasebne verzije knjižnice za Hanami.