Како започети пројекат отвореног кода

Моје име је Дима и ја сам програмер за Руби. Данас желим да поделим своје искуство у стварању решења отвореног кода. Говорићу о томе које кораке пројекат треба да предузме, како да изаберем праву функционалност за прво издање и са којим грешкама сам се лично суочио приликом креирања свог пројекта отвореног кода.

Пре пола године стекао сам идеју да би било добро створити пројекат отвореног кода. Уместо тест задатака за интервју, било би ми довољно да пошаљем везу до спремишта. Мене је надахнула могућност да помогнем колегама у решавању њихових свакодневних проблема.

Одувек нисам волео драгуље за стварање административних панела. Свако додатно кретање треба да редефинише класу, а за поља за промене морате да направите промене у датотекама. Након размишљања и разговора са колегама, одлучио сам да створим нову библиотеку која ће бити флексибилна и неће захтевати контролне табле или конфигурационе датотеке.

Одредите циљеве

Сваки пројекат отвореног кода решава одређени проблем. Разговарајте са колегама, ћаскањем, форумима и поделите своју идеју. Све вам помаже у првим корацима да разумете важне ствари, на пример која решења већ постоје, и да чујете критике. Разговарајте са људима који већ имају пројекте отвореног кода. Они вам могу дати врло драгоцене савете, зато се не плашите да питате и преузмете иницијативу.

Један важан савет који сам добио у тој фази је да прво обратим пажњу на документацију пројекта. Можете имати врло добар пројекат, али нико неће потрошити време да схвати како то функционише.

Најважнији аспект, без којег су даљи кораци немогући, је мотивација. Идеја пројекта треба да вас инспирише пре свега. Најчешће се људи навикну на алате са којима раде и упадну у зону комфора, па спољна мишљења могу бити двосмислена.

Планирање

Избор одређеног менаџера задатака ствар је укуса. Требало би да има јасну слику задатака и фаза вашег пројекта.

Поделите задатке на подзадатке. У идеалном случају, ако један задатак не траје дуже од 3-4 сата, важно је уживати у спровођењу малих задатака. Ово ће помоћи да се избегне сагоревање и губитак мотивације.

Користим основни трацкер. Главна предност је бесплатна верзија за пројекте отвореног кода где можете сортирати задатке по типу (карактеристика, грешка, посао, издање) и груписати их у издања и одређене рокове.

Документација

Сваки пројекат отвореног кода треба да садржи следеће ствари:

  • РЕАДМЕ
  • Лиценца отвореног кода
  • Смернице које дају свој допринос
  • Цхангелог

Датотека РЕАДМЕ не објашњава само како се користи пројекат, већ и сврху пројекта. Ако не знате како правилно да напишете РЕАДМЕ датотеку, можете погледати друге познате пројекте отвореног кода или користити шаблон.

Лиценца гарантује да други могу да користе, копирају и мењају изворни код пројекта. Морате додати ову датотеку у свако спремиште са својим пројектом отвореног кода. МИТ и Апацхе 2.0 ГПЛв3 су најпопуларније лиценце за пројекте отвореног кода. Ако нисте сигурни шта да одаберете, можете да користите ову погодну услугу.

ДОДАТНА датотека помоћи ће другим програмерима да допринесу пројекту. У првим корацима пројекта није потребно пажљиво пазити на ову датотеку. Можете користити већ припремљени образац из другог пројекта.

Дневник промена садржи подржану, хронолошки поредану листу значајних промена за сваку верзију. Као и код датотеке ДОПРИНОСИ, не саветујем да се томе обраћа посебна пажња у раној фази.

Израда верзија

Постоји семантичка верзија за праћење важних промена за кориснике и сараднике. Број верзије садржи бројеве и придржава се следећег узорка КСИЗ

  • Кс главно издање
  • И мање издање
  • З патцх релеасе

Континуирана интеграција / континуирана испорука

За аутоматско покретање тестова и израду користим Травис ЦИ. Такође је добра идеја да додате значке за приказ успешног склапања израде у чаробњаку, покривеност тестом (Цодецов) и документацију (Инцх ЦИ).

После сваког новог урезивања или спајања у мастеру, аутоматски имам распоред на Хероку (врло згодна интеграција са ГитХуб-ом). Сви алати су апсолутно бесплатни за пројекат отвореног кода.

Моје грешке

Да бих анализирао почетну фазу, имао сам идеју, али није постојао јасан план. Одлучио сам да то желим да радим, а да немам јасну представу о томе колико времена ће бити потребно или конкретну представу функција које ће бити у првој верзији библиотеке. Имао сам само пуно жеље и недостатак јасног плана.

Такође, након читања историје других пројеката (не само отвореног кода), приметио сам да су у раној фази неки планови превише оптимистични. Потребна им је поновна процена њихових снага и способности. Али није лако свакодневно наћи времена за писање нове функције у пројекту. Већина задатака је на крају морала бити уклоњена, остављајући неопходни минимум за МВП.

Тренутно је мој пројекат једноставног администратора у алфа верзији. Даљи планови укључују стварање засебне верзије библиотеке за Ханами.