Опенсорс - што гэта і навошта?
Як вы думаеце пра запуск свайго опенсорс-праекта? Віншуем! Свет шануе ваш удзел. Давайце пагаворым пра тое, што такое опенсорс і чаму людзі ім займаюцца.
Што азначае “опенсорс”?
Опенсорс-праект азначае, што хто-заўгодна можа свабоднага яго выкарыстоўваць, вывучаць, змяняць і распаўсюджваць незалежна ад мэты. Гэтыя дазволы даюцца праз опенсорс-ліцэнзію.
Перавага опенсорса ў тым, што ён зніжае бар’еры для выбару і супрацоўніцтва, дазваляючы людзям хутка распаўсюджваць і паляпшаць праекты. Акрамя таго, у параўнанні з закрытым кодам, ён дае карыстальнікам магчымасць кантраляваць код. Кампанія, якая выкарыстоўвае праграмнае забеспячэнне (па) з адкрытым зыходным кодам, можа наняць каго-то для дапрацоўкі гэтага ПА, а не спадзявацца выключна на рашэнне пастаўшчыка з закрытым кодам.
Свободное ПО ставіцца да тых жа праектах, што і опенсорс. Часам вы можаце сустрэць камбінацыі гэтых тэрмінаў:” свабоднае і адкрытае па “ (free and open source software FOSS або free, libre, and open source software FLOSS). Словы free і libre тут азначаюць “свабоднае”, а не “бясплатнае”.
Чаму людзі робяць сваю працу адкрытай?
Ёсць шмат прычын чаму чалавек ці арганізацыя адкрываюць зыходнікі свайго праекта. Вось некаторыя з іх:
-
Супрацоўніцтва: у опенсорс-праект можа ўнесці змены любы чалавек, дзе б ён ні знаходзіўся. Напрыклад, платформа для практыкаванняў па праграмаванні Exercism налічвае 350 кантрыб’ютараў.
-
Адаптацыя і дапрацоўкі: Опенсорс-праекты могуць выкарыстоўвацца кім заўгодна практычна для любой мэты. Людзі могуць выкарыстоўваць ваш праект для стварэння чагосьці новага. WordPress, напрыклад, стартаваў як форк(адгалінаванне) ужо існуючага праекта b2.
-
Празрыстасць: любы можа праверыць опенсорс-праект на наяўнасць памылак і неадпаведнасцяў. Празрыстасць важная нават на дзяржаўным узроўні. Напрыклад, Урад Балгарыі і ЗША заканадаўча прадпісалі празрыстасць для такіх галін як банкаўская справа ,ахова здароўя, і праграм бяспекі, накшталт Let’s Encrypt.
Опенсорсом можа быць не толькі па, але і многае іншае: ад набораў дадзеных да кніг. У раздзеле GitHub Explore можна азнаёміцца з ідэямі праектаў, якія можна заапенсорсіць.
Опенсорс-значыць бясплатна?
Бясплатнасць опенсорс-гэта адно з самых вялікіх пераваг, якое хутчэй з’яўляецца пабочным прадуктам яго сукупнай каштоўнасці.
Паколькі опенсорс-Ліцэнзія мяркуе, што хто заўгодна можа выкарыстоўваць, мадыфікаваць, і распаўсюджваць ваш праект амаль для любых мэт, то ў большасці выпадкаў гэта азначае бясплатнасць. Таму што, калі б праект каштуе грошай, то любы мог абсалютна легальна скапіяваць яго і тым самым выкарыстоўваць яго бясплатна. Таму большасць опенсорс-праектаў бясплатныя, хоць гэта ўласцівасць не ўваходзіць у вызначэнне само опенсорса. Ёсць спосабы аплаты спагнання аплаты за карыстанне опенсорс-праектаў ўскосным чынам праз Падвойнае ліцэнзаванне або абмежаванне функцыянальнасці, пры гэтым такія праекты па-ранейшаму будуць адпавядаць афіцыйнаму вызначэнню опенсорса.
Ці варта мне запускаць свой опенсорс-праект?
Кароткі адказ-так, таму што незалежна ад выніку, запуск собстенного праекта — гэта выдатны спосаб даведацца, як працуе опенсорс.
Калі вы ніколі раней не запускалі падобных праектаў, вы можаце перажываць з нагоды таго, што скажуць людзі, і заўважыць ці хто-небудзь яго наогул. Калі вам знаёма гэта адчуванне, не турбуйцеся, вы не адзін такі!
Опенсорс падобны на любую іншую творчую працу, няхай гэта будзе пісьменніцтва або маляванне. Можа быць страшна паказваць сваю працу ўсім свеце. Але як вядома, практыка-гэта шлях да дасканаласці, нават калі ў вас пакуль няма сваёй аўдыторыі.
Калі вы яшчэ не вырашыліся, знайдзіце час падумаць аб вашых магчымых мэтах.
Пастаноўка мэтаў
Мэты дапамогуць вам вызначыцца, над чым працаваць, ад чаго адмовіцца, і дзе вам спатрэбіцца дапамога з боку. Спытаеце сябе: “навошта мне патрэбен гэты опенсорс-праект?”.
Адзінага адказу на гэтае пытанне не існуе. Можа быць адразу некалькі мэтаў на адзін праект, або розныя праекты з рознымі мэтамі.
Калі ваша адзіная мэта-паказаць сваю працу, хутчэй за ўсё вы не маеце патрэбу ў іншай дапамогі, пра што варта відавочна можна паказаць у файле README. З іншага боку, калі вы зацікаўлены ў памочніках, то варта выдаткаваць час на напісанне зразумелай дакументацыі і праявіць клопат аб пачаткоўцах.
Па меры росту праекта ваша супольнасць будзе мець патрэбу не толькі ў кодзе. Адказы ў ишью, праверка кода і рэклама ўласнага праекта — усё гэта важныя задачы любога опенсорс-праекта.
Хоць колькасць часу на непрограммистские задачы залежыць ад памеру і маштабу вашага праекта, вы павінны быць гатовыя вырашаць іх самі або знайсці для гэтага памочніка.
Калі вы працуеце ў кампаніі, якая запускае опенсорс-праект,, пераканайцеся загадзя, у вас ёсць ўнутраныя рэсурсы для яго развіцця. Вам трэба вызначыць, хто будзе адказваць за падтрымку праекта пасля яго запуску, і як будзеце размяркоўваць задачы ўнутры супольнасці.
Калі вам патрэбен выдзелены бюджэт або людзі для прасоўвання, працы і падтрымкі праекта, абгаворыце гэта як мага раней.
Удзел у чужых праектах
Калі ваша мэта-зразумець як ўзаемадзейнічаць з іншымі і як працуе опенсорс, разгледзьце магчымасць удзелу ва ўжо існуючым праекце, які вы выкарыстоўваеце і любіце. Вашым удзелам можа быць нешта простае, накшталт выпраўленне памылак друку і абнаўленне дакументацыі.
Калі вы не разумееце, як увайсці ў чужы праект, азнаёмцеся з нашым кіраўніцтвам як удзельнічаць у опенсорс-праекце.
Запуск уласнага опенсорс-праекта
Няма ідэальнага моманту, калі трэба адкрываць зыходнікі сваёй працы. Вы можаце адкрыць іх на стадыі ідэі, у працэсе працы або пасля некалькіх гадоў закрытасці.
У агульным выпадку, адкрываць зыходнікі можна, калі вы адчуваеце сябе ўпэўнена настолькі, што староннія людзі будуць глядзець вашу працу і выказвацца пра яе.
У кожным праекце па-за залежнасці ад стадыі, на якой вы вырашылі адкрыць зыходнікі, павінна быць наступная дакументацыя:
Гэтыя файлы дапамогуць вам данесці чакання, вызначыць працэс па ўдзелу, і абараніць законныя правы ўсіх, уключаючы вас саміх. Усё гэта значна павялічвае шанцы, што ўсё пойдзе добра.
Калі ваш праект на GitHub і вы размесціце гэтыя файлы ў каранёвай катэгорыі з рэкамендаванымі назвамі, GitHub распазнае іх і аўтаматычна адлюструе наведвальнікам рэпазітара.
Выбар ліцэнзіі
Ліцэнзія для адкрытага зыходнага кода гарантуе, што іншыя могуць выкарыстоўваць, капіяваць, змяняць і ўносіць праўкі ў ваш праект без якіх-небудзь наступстваў. Яна таксама абараняе вас ад непрыемных юрыдычных сітуацый. Вы павінны дадаць ліцэнзію пры запуску опенсорс-праекта.
Юрыдычная праца - не з лёгкіх. Але ёсць добрыя навіны: вы можаце скапіяваць існуючую ліцэнзію і размясціць яе ў сваім рэпазітары, за адну хвіліну абараніўшы ваш цяжкая праца.
MIT, Apache 2.0, і GPLv3 — гэта самыя папулярныя ліцэнзіі, але ёсць і іншыя варыянты.
Калі вы ствараеце новы праект на GitHub, вам даецца на выбар некалькі ліцэнзій. Выбраўшы опенсорс-ліцэнзію, вы зробіце свой праект адкрытым.

Калі ў вас ёсць іншыя пытанні або турботы адносна юрыдычных аспектаў опенсорса, мы апісалі іх тут.
Напісанне README
Файл README (“Прачытай мяне”) не толькі распавядае, як выкарыстоўваць ваш праект, але і тлумачыць, чаму ён важны, і што карыстальнікі могуць з ім рабіць.
Паспрабуйце адказаць у README на наступныя пытанні:
- Што робіць гэты праект?
- Чым гэты праект карысны?
- Як пачаць працаваць з ім?
- Дзе атрымаць дапамогу, калі спатрэбіцца?
Таксама можна ў README можна даць адказы на іншыя пытанні, напрыклад, як паўдзельнічаць у праекце, якія яго мэты, а таксама расказаць пра ліцэнзію і аўтарства. Калі вы не плануеце прымаць дапамогу ад іншых людзей, ці ён яшчэ не гатовы для запуску-так і напішыце пра гэта.
Часам людзі адкладаюць напісанне README, таму што адчуваюць, што праект не завершаны, ці не хочуць, каб іншыя ў ім удзельнічалі. Але гэта як раз добрая нагода напісаць пра гэта.
Для натхнення, можаце азнаёміцца з “кіраўніцтвам “зрабі README” ад @dguo або ўзяць на ўзбраенне Шаблон README ад @PurpleBooth.
Калі вы дадасце файл README ў каранёвую дырэкторыю праекта, GitHub аўтаматычна заўважыць яго і пакажа на галоўнай старонцы рэпазітара.
Напісанне кіраўніцтва для ўдзельнікаў
Файл CONTRIBUTING кажа вашай аўдыторыі, як стаць удзельнікам вашага праекта. Напрыклад:
- Як паведаміць пра памылку (паспрабуйце выкарыстоўваць шаблоны для ишью і пул-реквестов)
- Як прапанаваць рэалізацыю новай функцыянальнасці
- Як наладзіць сераду выканання і запусціць тэсты
Акрамя тэхнічных дэталяў, у файле CONTRIBUTING толькі вітаецца выкласці свае чаканні адносна ўдзелу іншых людзей. Напрыклад:
- Якога роду ўдзел вы чакаеце?
- Вашы планы і бачанне развіцця праекта
- Як удзельнікі могуць (і не могуць) звязвацца з вамі
Ваш цёплы сяброўскі тон і канкрэтныя прапановы па ўдзелу, накшталт напісання дакументацыі або стварэння сайта, могуць мець вялікае значэнне для прыцягнення пачаткоўцаў да працы над праектам.
Напрыклад, Active Admin пачынае сваё кіраўніцтва па ўдзелу з такіх слоў:
У першую чаргу хочам выказаць Вам падзяку за тое, што падумваеце аб удзеле ў развіцці Active Admin. Менавіта такія людзі як вы робяць Active Admin выдатным інструментам.
На ранніх стадыях праекта ваш файл CONTRIBUTING можа быць простым. Вы заўсёды варта растлумачыць, як паведамляць пра багах і афармляць ишью, а таксама апісаць тэхнічныя патрабаванні да кантрыб’ютар (напрыклад, напісанне тэстаў).
З часам вы можаце дапоўніць яго адказамі на часта задаюць пытанні. Дзякуючы гэтаму менш людзей будуць пытацца вас аб адным і тым жа зноў і зноў.
Каб вам было прасцей напісаць файл CONTRIBUTING, азнаёмцеся з шаблонам Кіраўніцтва па сотрудничеству ад @nayafia або прачытайце “Як стварыць файл CONTRIBUTING.md” ад @ mozilla .
Пастаўце спасылку на файл CONTRIBUTING ўнутры README, так больш людзей ўбачаць яго. Калі вы размясціць файл CONTRIBUTING.md у корані вашага праекта, то GitHub аўтаматычна прапануе азнаёміцца з ім калі хтосьці адкрывае ишью або адпраўляе пул-реквест.

Распрацоўка нормаў паводзін
У выніку, нормы паводзін вызначаюць базавыя правілы паводзін удзельнікаў вашага праекта. Гэта асабліва важна, калі вы запускаеце праект для кампаніі або супольнасці. Нормы паводзін спрыяе ўсталяванню здаровага, канструктыўнага паводзінаў у супольнасці, зніжаючы стрэс для вас, як для мейнтейнера праекта.
Больш падрабязна глядзіце на старонцы Кіраўніцтва па нормах паводзін.
Акрамя апісання каким вы хочаце бачыць паводзіны ўдзельнікаў, нормы паводзін таксама тлумачаць, да каго і калі яны ўжываецца, і што будзе ў выпадку іх парушэння.
Па аналогіі з ліцэнзіяй, вам не абавязкова пісаць нормы самім, а можна скапіяваць адзін з існуючых варыянтаў. Contributor Covenant выкарыстоўваецца ў больш 40.000 опенсорс-праектах, уключаючы Kubernetes, Rails, і Swift. Якія б нормы вы не абралі, будзьце гатовыя ўжыць іх пры неабходнасці. Устаўце тэкст у файл CODE_OF_CONDUCT.md у корані праекта, так яго будзе прасцей знаходзіць і спасылацца на яго, напрыклад, з README.
Назва і брэндынг вашага праекта
Брэндынг-гэта не толькі яркі лагатып і запамінальная назва, але і тое, як вы кажаце пра свой праект і каму хочаце звярнуцца з ім.
Выбар правільнага назвы
Прыдумайце назву, якое лёгка запамінаецца і, у ідэале, дае ўяўленне пра сутнасць праекта. Напрыклад:
- Sentry (з англ. - варта) - сэрвіс для маніторынгу прыкладання
- Thin (з англ. - худы) - хуткі і просты вэб-сервер на Ruby
Калі вы ствараеце нешта, абапіраючыся на ўжо існуючы праект, то дадайце яго назву ў выглядзе прэфікса да свайго праекту, — гэта дасць больш дэталяў пра яго. Напрыклад node-fetch рэалізуе ‘window fetch’ у Node.js.
Выбірайце зразумелая Назва праекта перш за ўсё. Каламбуры могуць быць пацешнымі, але падумайце пра людзей з іншых культур або вопытам, якія могуць не зразумець жарт. Вашы патэнцыйныя карыстальнікі могуць быць работнікамі кампаній, якія будуць распавядаць аб праекце на працы. Не прымушайце іх чырванець пры гэтым!
Канфлікт імёнаў
Праверце наяўнасць опенсорс-праектаў з такой жа назвай, асабліва калі вы выкарыстоўваеце тую ж мову ці экасістэму. Калі ваша назва супадзе з папулярным існуючым праектам, вы можаце заблытаць сваю аўдыторыю.
Калі вы плануеце завесці сайт, твітэр або любую пляцоўку для публікацый, пераканайцеся, што патрэбнае Вам назва там свабодна. Лепш за ўсё зарэгіструйце ўсе акаўнты зараз, хоць проста для душэўнага спакою, нават калі пакуль не плануеце імі карыстацца.
Пераканайцеся, што вы не замахваліся на гандлёвую марку якой-небудзь кампаніі. У будучыні яна зможа папрасіць вас зачыніць праект або нават падаць у суд на вас. Гэта неапраўданая рызыка.
Праверце імя ў сусветнай базе брэндаў WIPO, каб пазбегнуць канфлікту з нагоды аўтарскіх правоў. Калі вы робіце праект ад асобы кампаніі, то юрыдычны аддзел можа дапамагчы вам з гэтым.
Напрыканцы, выканае хуткі пошук у Google па назве вашага праекта. Ці змогуць людзі па ім лёгка знайсці ваш праект? А можа быць, па гэтым запыце з’яўляецца нешта непажаданае?
Тое, як вы пішыце (і кодзіце) таксама ўплывае на ваш брэнд!
За ўсё жыццё праекта вы будзеце шмат пісаць: README, кіраўніцтва, дакументы супольнасці, адказы на пытанні, магчыма нават інфармацыйныя бюлетэні і спісы рассылання.
Няхай гэта будзе афіцыйная дакументацыя або звычайнае паведамленне, стыль лісты таксама з’яўляецца часткай брэнда праекта. Падумайце пра тое, у якім святле вы выглядаеце перад аўдыторыяй, і ці правільны падабралі тон.
Добры і ветлівы тон створыць прыемную атмасферу для новых удзельнікаў. Сачыце гэтак жа за прастатой выкладу, так як для многіх чытачоў Англійская можа быць не родным.
Не толькі словы, што вы пішаце, але і стыль кода можа стаць часткай брэнда вашага праекта. Angular і jQuery - толькі два прыклады праектаў са строгімі стылямі напісання кода і рэкамендацыямі.
Няма неабходнасці складаць Кіраўніцтва па стылі, калі вы толькі пачынаеце, магчыма вам спадабаецца сумяшчаць у сваім праекце розныя стылі. Але варта загадзя прадбачыць, што стыль напісання і кода можа як прыцягваць, так і адштурхоўваць людзей. На ранніх стадыях праекта фармуецца тое, якім у далейшым стане ваш праект, і залежыць ад вас, якім вы хочаце яго бачыць.
Чэкліст перад запускам
Вы гатовыя адкрыць свой праект? Вось вам праверачны ліст у дапамогу. Калі адзначце ўсе пункты, адкрыйце ваш праект і пахваліце сябе.
Дакументацыя
Код
Людзі
Калі вы прыватная асоба:
Калі вы кампанія або арганізацыя:
Вы зрабілі гэта!
Віншуем з адкрыццём зыходнікаў вашага першага праекта! Па-за залежнасці ад выніку, праца на ўвазе ў людзей-гэта падарунак для супольнасці. Кожны комм, каментар і запыт на праўку — гэта магчымасць вучыцца і расці для сябе і іншых.